поправочки
This commit is contained in:
parent
b15327efd0
commit
105f89548f
@ -1,4 +1,5 @@
|
||||
using HotelContracts.BindingModels;
|
||||
using HotelBusinessLogic.MailWorker;
|
||||
using HotelContracts.BindingModels;
|
||||
using HotelContracts.BusinessLogicsContracts;
|
||||
using HotelContracts.SearchModels;
|
||||
using HotelContracts.StoragesContracts;
|
||||
@ -13,23 +14,31 @@ namespace HotelBusinessLogic.BusinessLogics
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly IConferenceStorage _conferenceStorage;
|
||||
private readonly AbstractMailWorker _mailWorker;
|
||||
private readonly IOrganiserLogic _organiserLogic;
|
||||
|
||||
public ConferenceLogic(ILogger<ConferenceLogic> logger, IConferenceStorage conferenceStorage)
|
||||
public ConferenceLogic(ILogger<ConferenceLogic> logger, IConferenceStorage conferenceStorage, IOrganiserLogic organiserLogic, AbstractMailWorker mailWorker)
|
||||
{
|
||||
_logger = logger;
|
||||
_conferenceStorage = conferenceStorage;
|
||||
_organiserLogic = organiserLogic;
|
||||
_mailWorker = mailWorker;
|
||||
}
|
||||
public bool Create(ConferenceBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
model.ConferenceMembers = new();
|
||||
|
||||
if (_conferenceStorage.Insert(model) == null)
|
||||
var result = _conferenceStorage.Insert(model);
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
_logger.LogWarning("Insert operation failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
SendConferenceMessage(result.OrganiserId, $"Гостиница \"Развитие\", Конференция №{result.Id}", $"Конференция №{result.Id} под названием {result.ConferenceName} и датой начала {result.StartDate} добавлена");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -39,12 +48,16 @@ namespace HotelBusinessLogic.BusinessLogics
|
||||
|
||||
_logger.LogInformation("Delete. Id:{Id}", model.Id);
|
||||
|
||||
if (_conferenceStorage.Delete(model) == null)
|
||||
var result = _conferenceStorage.Delete(model);
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
_logger.LogWarning("Delete operation failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
SendConferenceMessage(result.OrganiserId, $"Гостиница \"Развитие\", Конференция №{result.Id}", $"Конференция №{result.Id} под названием {result.ConferenceName} и датой начала {result.StartDate} удалена");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -152,5 +165,24 @@ namespace HotelBusinessLogic.BusinessLogics
|
||||
|
||||
_logger.LogInformation("Conference. ConferenceName:{ConferenceName}.StartDate:{ StartDate}. Id: { Id}", model.ConferenceName, model.StartDate, model.Id);
|
||||
}
|
||||
|
||||
private bool SendConferenceMessage(int organiserId, string subject, string text)
|
||||
{
|
||||
var organiser = _organiserLogic.ReadElement(new() { Id = organiserId });
|
||||
|
||||
if (organiser == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
_mailWorker.MailSendAsync(new()
|
||||
{
|
||||
MailAddress = organiser.OrganiserEmail,
|
||||
Subject = subject,
|
||||
Text = text
|
||||
});
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using HotelContracts.BindingModels;
|
||||
using HotelBusinessLogic.MailWorker;
|
||||
using HotelContracts.BindingModels;
|
||||
using HotelContracts.BusinessLogicsContracts;
|
||||
using HotelContracts.SearchModels;
|
||||
using HotelContracts.StoragesContracts;
|
||||
@ -12,11 +13,15 @@ namespace HotelBusinessLogic.BusinessLogics
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly IMealPlanStorage _mealPlanStorage;
|
||||
private readonly AbstractMailWorker _mailWorker;
|
||||
private readonly IOrganiserLogic _organiserLogic;
|
||||
|
||||
public MealPlanLogic(ILogger<MealPlanLogic> logger, IMealPlanStorage mealPlanStorage)
|
||||
public MealPlanLogic(ILogger<MealPlanLogic> logger, IMealPlanStorage mealPlanStorage, IOrganiserLogic organiserLogic, AbstractMailWorker mailWorker)
|
||||
{
|
||||
_logger = logger;
|
||||
_mealPlanStorage = mealPlanStorage;
|
||||
_organiserLogic = organiserLogic;
|
||||
_mailWorker= mailWorker;
|
||||
}
|
||||
|
||||
public bool AddMemberToMealPlan(MealPlanSearchModel model, IMemberModel member)
|
||||
@ -56,12 +61,16 @@ namespace HotelBusinessLogic.BusinessLogics
|
||||
CheckModel(model);
|
||||
model.MealPlanMembers = new();
|
||||
|
||||
if (_mealPlanStorage.Insert(model) == null)
|
||||
var result = _mealPlanStorage.Insert(model);
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
_logger.LogWarning("Insert operation failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
SendMealPlanMessage(result.OrganiserId, $"Гостиница \"Развитие\", План питания №{result.Id}", $"План питания №{result.Id} под названием {result.MealPlanName} и стоимостью {result.MealPlanPrice} добавлен");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -71,12 +80,16 @@ namespace HotelBusinessLogic.BusinessLogics
|
||||
|
||||
_logger.LogInformation("Delete. Id:{Id}", model.Id);
|
||||
|
||||
if (_mealPlanStorage.Delete(model) == null)
|
||||
var result = _mealPlanStorage.Delete(model);
|
||||
|
||||
if (result== null)
|
||||
{
|
||||
_logger.LogWarning("Delete operation failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
SendMealPlanMessage(result.OrganiserId, $"Гостиница \"Развитие\", План питания №{result.Id}", $"План питания №{result.Id} под названием {result.MealPlanName} и стоимостью {result.MealPlanPrice} удален");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -166,5 +179,24 @@ namespace HotelBusinessLogic.BusinessLogics
|
||||
throw new InvalidOperationException("План питания с таким названием уже есть");
|
||||
}
|
||||
}
|
||||
|
||||
private bool SendMealPlanMessage(int organiserId, string subject, string text)
|
||||
{
|
||||
var organiser = _organiserLogic.ReadElement(new() { Id = organiserId });
|
||||
|
||||
if (organiser == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
_mailWorker.MailSendAsync(new()
|
||||
{
|
||||
MailAddress = organiser.OrganiserEmail,
|
||||
Subject = subject,
|
||||
Text = text
|
||||
});
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ namespace HotelDataBaseImplement.Implemets
|
||||
.ThenInclude(x => x.MealPlan)
|
||||
.Include(x => x.ConferenceBookings)
|
||||
.Include(x => x.Organiser)
|
||||
.Where(x => x.StartDate >= model.DateFrom && x.StartDate <= model.DateTo)
|
||||
.Where(x => x.StartDate >= model.DateFrom && x.StartDate <= model.DateTo && x.OrganiserId == model.OrganiserId)
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user