поправочки

This commit is contained in:
AnnZhimol 2023-05-18 23:11:30 +04:00
parent b15327efd0
commit 105f89548f
3 changed files with 73 additions and 9 deletions

View File

@ -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;
}
}
}

View File

@ -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;
}
}
}

View File

@ -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();
}