Eliseev E.E. LabWork01 #1
@ -12,17 +12,17 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
{
|
||||
internal class ProductLogic : IArticleLogic
|
||||
internal class ArticleLogic : IArticleLogic
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private readonly IArticleStorage _productStorage;
|
||||
private readonly IArticleStorage _articleStorage;
|
||||
|
||||
//конструктор
|
||||
public ProductLogic(ILogger<ProductLogic> logger, IArticleStorage productStorage)
|
||||
public ArticleLogic(ILogger<ArticleLogic> logger, IArticleStorage productStorage)
|
||||
{
|
||||
_logger = logger;
|
||||
_productStorage = productStorage;
|
||||
_articleStorage = productStorage;
|
||||
}
|
||||
|
||||
//вывод отфильтрованного списка
|
||||
@ -31,7 +31,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
_logger.LogInformation("ReadList. ArticleName:{ArticleName}. Id:{Id}", model?.ArticleName, model?.Id);
|
||||
|
||||
//list хранит весь список в случае, если model пришло со значением null на вход метода
|
||||
var list = model == null ? _productStorage.GetFullList() : _productStorage.GetFilteredList(model);
|
||||
var list = model == null ? _articleStorage.GetFullList() : _articleStorage.GetFilteredList(model);
|
||||
|
||||
if(list == null)
|
||||
{
|
||||
@ -44,7 +44,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return list;
|
||||
}
|
||||
|
||||
//вывод конкретного продукта
|
||||
//вывод конкретного изделия
|
||||
public ArticleViewModel? ReadProduct(ArticleSearchModel model)
|
||||
{
|
||||
if(model == null)
|
||||
@ -54,7 +54,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
|
||||
_logger.LogInformation("ReadProduct. ArticleName:{ArticleName}. Id:{Id}", model.ArticleName, model.Id);
|
||||
|
||||
var element = _productStorage.GetElement(model);
|
||||
var element = _articleStorage.GetElement(model);
|
||||
|
||||
if(element == null)
|
||||
{
|
||||
@ -67,12 +67,12 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return element;
|
||||
}
|
||||
|
||||
//Создание продукта
|
||||
//Создание изделия
|
||||
public bool Create(ArticleBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
|
||||
if(_productStorage.Insert(model) == null)
|
||||
if(_articleStorage.Insert(model) == null)
|
||||
{
|
||||
_logger.LogWarning("Create operation failed");
|
||||
return false;
|
||||
@ -81,12 +81,12 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return true;
|
||||
}
|
||||
|
||||
//обновление продукта
|
||||
//обновление изделия
|
||||
public bool Update(ArticleBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
|
||||
if(_productStorage.Update(model) == null)
|
||||
if(_articleStorage.Update(model) == null)
|
||||
{
|
||||
_logger.LogWarning("Update operation failed");
|
||||
return false;
|
||||
@ -95,12 +95,12 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return true;
|
||||
}
|
||||
|
||||
//удаление продукта
|
||||
//удаление изделия
|
||||
public bool Delete(ArticleBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
|
||||
if(_productStorage.Delete(model) == null)
|
||||
if(_articleStorage.Delete(model) == null)
|
||||
{
|
||||
_logger.LogWarning("Delete operation failed");
|
||||
return false;
|
||||
@ -123,30 +123,30 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return;
|
||||
}
|
||||
|
||||
//проверка на наличие названия продукта
|
||||
//проверка на наличие названия изделия
|
||||
if (string.IsNullOrEmpty(model.ArticleName))
|
||||
{
|
||||
throw new ArgumentNullException("Нет названия продукта", nameof(model.ArticleName));
|
||||
throw new ArgumentNullException("Нет названия изделия", nameof(model.ArticleName));
|
||||
}
|
||||
|
||||
//проверка на наличие нормальной цены у продукта
|
||||
//проверка на наличие нормальной цены у изделия
|
||||
if(model.Price <= 0)
|
||||
{
|
||||
throw new ArgumentNullException("Цена продукта должна быть больше 0", nameof(model.Price));
|
||||
throw new ArgumentNullException("Цена изделия должна быть больше 0", nameof(model.Price));
|
||||
}
|
||||
|
||||
_logger.LogInformation("Product. ArticleName:{ArticleName}. Price:{Price}. Id:{Id}",
|
||||
_logger.LogInformation("Article. ArticleName:{ArticleName}. Price:{Price}. Id:{Id}",
|
||||
model.ArticleName, model.Price, model.Id);
|
||||
|
||||
//проверка на наличие такого же продукта в списке
|
||||
var element = _productStorage.GetElement(new ArticleSearchModel
|
||||
//проверка на наличие такого же изделия в списке
|
||||
var element = _articleStorage.GetElement(new ArticleSearchModel
|
||||
{
|
||||
ArticleName = model.ArticleName,
|
||||
});
|
||||
|
||||
if(element != null && element.Id != model.Id)
|
||||
{
|
||||
throw new InvalidOperationException("Компонент с таким названием уже есть");
|
||||
throw new InvalidOperationException("Изделие с таким названием уже есть");
|
||||
}
|
||||
}
|
||||
}
|
@ -100,7 +100,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
//проверка на наличие товаров в заказе
|
||||
if(model.Count <= 0)
|
||||
{
|
||||
throw new ArgumentNullException("В заказе не может быть 0 продуктов", nameof(model.Count));
|
||||
throw new ArgumentNullException("В заказе не может быть 0 изделий", nameof(model.Count));
|
||||
}
|
||||
|
||||
//проверка на наличие нормальной суммарной стоимости чека
|
||||
@ -109,10 +109,10 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
throw new ArgumentNullException("Суммарная стоимость заказа должна быть больше 0", nameof(model.Sum));
|
||||
}
|
||||
|
||||
//проверка корректности id у продуктов
|
||||
//проверка корректности id у изделий
|
||||
if (model.ArticleId < 0)
|
||||
{
|
||||
throw new ArgumentNullException("Некорректный id у продукта", nameof(model.ArticleId));
|
||||
throw new ArgumentNullException("Некорректный id у изделия", nameof(model.ArticleId));
|
||||
}
|
||||
|
||||
//проверка корректности дат
|
||||
|
@ -17,13 +17,13 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private readonly IWorkPieceStorage _componentStorage;
|
||||
private readonly IWorkPieceStorage _workPieceStorage;
|
||||
|
||||
//конструктор
|
||||
public ComponentLogic(ILogger<ComponentLogic> logger, IWorkPieceStorage componentStorage)
|
||||
{
|
||||
_logger = logger;
|
||||
_componentStorage = componentStorage;
|
||||
_workPieceStorage = componentStorage;
|
||||
}
|
||||
|
||||
//вывод отфильтрованного списка компонентов
|
||||
@ -32,7 +32,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
_logger.LogInformation("ReadList. WorkPieceName:{WorkPieceName}. Id:{Id}", model?.WorkPieceName, model?.Id);
|
||||
|
||||
//list хранит весь список в случае, если model пришло со значением null на вход метода
|
||||
var list = model == null ? _componentStorage.GetFullList() : _componentStorage.GetFilteredList(model);
|
||||
var list = model == null ? _workPieceStorage.GetFullList() : _workPieceStorage.GetFilteredList(model);
|
||||
|
||||
if(list == null)
|
||||
{
|
||||
@ -45,7 +45,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return list;
|
||||
}
|
||||
|
||||
//вывод конкретного компонента
|
||||
//вывод конкретного заготовки
|
||||
public WorkPieceViewModel? ReadElement(WorkPieceSearchModel model)
|
||||
{
|
||||
if(model == null)
|
||||
@ -53,9 +53,9 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
throw new ArgumentNullException(nameof(model));
|
||||
}
|
||||
|
||||
_logger.LogInformation("ReadElement. WorkPieceName:{Componentame}. Id:{Id}", model.WorkPieceName, model.Id);
|
||||
_logger.LogInformation("ReadElement. WorkPieceName:{WorkPieceName}. Id:{Id}", model.WorkPieceName, model.Id);
|
||||
|
||||
var element = _componentStorage.GetElement(model);
|
||||
var element = _workPieceStorage.GetElement(model);
|
||||
|
||||
if(element == null)
|
||||
{
|
||||
@ -68,12 +68,12 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return element;
|
||||
}
|
||||
|
||||
//создание компонента
|
||||
//создание заготовки
|
||||
public bool Create(WorkPieceBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
|
||||
if(_componentStorage.Insert(model) == null)
|
||||
if(_workPieceStorage.Insert(model) == null)
|
||||
{
|
||||
_logger.LogWarning("Insert operation failed");
|
||||
return false;
|
||||
@ -82,12 +82,12 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return true;
|
||||
}
|
||||
|
||||
//обновление компонента
|
||||
//обновление заготовки
|
||||
public bool Update(WorkPieceBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
|
||||
if(_componentStorage.Update(model) == null)
|
||||
if(_workPieceStorage.Update(model) == null)
|
||||
{
|
||||
_logger.LogWarning("Update operation failed");
|
||||
return false;
|
||||
@ -96,12 +96,12 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return true;
|
||||
}
|
||||
|
||||
//удаление компонента
|
||||
//удаление заготовки
|
||||
public bool Delete(WorkPieceBindingModel model)
|
||||
{
|
||||
CheckModel(model);
|
||||
|
||||
if (_componentStorage.Delete(model) == null)
|
||||
if (_workPieceStorage.Delete(model) == null)
|
||||
{
|
||||
_logger.LogWarning("Delete operation failed");
|
||||
return false;
|
||||
@ -124,29 +124,29 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
|
||||
return;
|
||||
}
|
||||
|
||||
//проверка на наличие названия компонента
|
||||
//проверка на наличие названия заготовки
|
||||
if (string.IsNullOrEmpty(model.WorkPieceName)){
|
||||
throw new ArgumentNullException("Нет названия компонента", nameof(model.WorkPieceName));
|
||||
throw new ArgumentNullException("Нет названия заготовки", nameof(model.WorkPieceName));
|
||||
}
|
||||
|
||||
//проверка на наличие нормальной цены у компонента
|
||||
//проверка на наличие нормальной цены у заготовки
|
||||
if(model.Cost <= 0)
|
||||
{
|
||||
throw new ArgumentNullException("Цена компонента должна быть больше 0", nameof(model.Cost));
|
||||
throw new ArgumentNullException("Цена заготовки должна быть больше 0", nameof(model.Cost));
|
||||
}
|
||||
|
||||
_logger.LogInformation("Component. WorkPieceName:{WorkPieceName}. Cost:{Cost}. Id:{Id}",
|
||||
model.WorkPieceName, model.Cost, model.Id);
|
||||
|
||||
//проверка на наличие такого же компонента в списке
|
||||
var element = _componentStorage.GetElement(new WorkPieceSearchModel
|
||||
//проверка на наличие такой же заготовки в списке
|
||||
var element = _workPieceStorage.GetElement(new WorkPieceSearchModel
|
||||
{
|
||||
WorkPieceName = model.WorkPieceName,
|
||||
});
|
||||
|
||||
if(element != null && element.Id != model.Id)
|
||||
{
|
||||
throw new InvalidOperationException("Компонент с таким названием уже есть");
|
||||
throw new InvalidOperationException("Заготовка с таким названием уже есть");
|
||||
}
|
||||
}
|
||||
}
|
@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace BlacksmithWorkshopContracts.SearchModels
|
||||
{
|
||||
//модель для поиска компонента "Продукт" (она же изделие)
|
||||
//модель для поиска заготовки "Продукт" (она же изделие)
|
||||
public class ArticleSearchModel
|
||||
{
|
||||
//для поиска по идентификатору
|
||||
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace BlacksmithWorkshopContracts.ViewModels
|
||||
{
|
||||
//класс для отображения пользователю данных о компонентах (заготовках)
|
||||
//класс для отображения пользователю данных о заготовких (заготовках)
|
||||
public class WorkPieceViewModel : IWorkPieceModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
Loading…
Reference in New Issue
Block a user