Сохранение перед проверкой корректности форм.

This commit is contained in:
Programmist73 2023-02-12 21:59:33 +04:00
parent d0b97a0dc9
commit 5d37351d22
11 changed files with 43 additions and 21 deletions

View File

@ -8,6 +8,12 @@
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.2.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BlacksmithWorkshopBusinessLogic\BlacksmithWorkshopBusinessLogic.csproj" />
<ProjectReference Include="..\BlacksmithWorkshopContracts\BlacksmithWorkshopContracts.csproj" />

View File

@ -46,7 +46,7 @@ namespace BlacksmithWorkshop
{
int id = Convert.ToInt32(comboBoxManufacture.SelectedValue);
var manufacture = _logicA.ReadManufacture(new ManufactureSearchModel
var manufacture = _logicA.ReadElement(new ManufactureSearchModel
{
Id = id
});

View File

@ -44,7 +44,7 @@ namespace BlacksmithWorkshop
try
{
var view = _logic.ReadManufacture(new ManufactureSearchModel { Id = _id.Value });
var view = _logic.ReadElement(new ManufactureSearchModel { Id = _id.Value });
if(view != null)
{

View File

@ -49,6 +49,7 @@ namespace BlacksmithWorkshop
services.AddTransient<FormWorkPieces>();
services.AddTransient<FormCreateOrder>();
services.AddTransient<FormManufacture>();
services.AddTransient<FormManufactures>();
services.AddTransient<FormManufactureWorkPiece>();
}

View File

@ -19,10 +19,10 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
private readonly IManufactureStorage _manufactureStorage;
//конструктор
public ManufactureLogic(ILogger<ManufactureLogic> logger, IManufactureStorage productStorage)
public ManufactureLogic(ILogger<ManufactureLogic> logger, IManufactureStorage manufactureStorage)
{
_logger = logger;
_manufactureStorage = productStorage;
_manufactureStorage = manufactureStorage;
}
//вывод отфильтрованного списка
@ -36,6 +36,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
if(list == null)
{
_logger.LogWarning("ReadList return null list");
return null;
}
@ -45,24 +46,25 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
}
//вывод конкретного изделия
public ManufactureViewModel? ReadManufacture(ManufactureSearchModel model)
public ManufactureViewModel? ReadElement(ManufactureSearchModel model)
{
if(model == null)
{
throw new ArgumentNullException(nameof(model));
}
_logger.LogInformation("ReadManufacture. ManufactureName:{ManufactureName}. Id:{Id}", model.ManufactureName, model.Id);
_logger.LogInformation("ReadElement. ManufactureName:{ManufactureName}. Id:{Id}", model.ManufactureName, model.Id);
var element = _manufactureStorage.GetElement(model);
if(element == null)
{
_logger.LogWarning("ReadManufacture element not found");
_logger.LogWarning("ReadElement element not found");
return null;
}
_logger.LogInformation("ReadManufacture find. Id:{Id}", model.Id);
_logger.LogInformation("ReadElement find. Id:{Id}", model.Id);
return element;
}
@ -75,6 +77,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
if(_manufactureStorage.Insert(model) == null)
{
_logger.LogWarning("Create operation failed");
return false;
}
@ -98,11 +101,14 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
//удаление изделия
public bool Delete(ManufactureBindingModel model)
{
CheckModel(model);
CheckModel(model, false);
_logger.LogInformation("Delete. Id:{Id}", model.Id);
if(_manufactureStorage.Delete(model) == null)
{
_logger.LogWarning("Delete operation failed");
return false;
}
@ -117,7 +123,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
throw new ArgumentNullException(nameof(model));
}
//если без параметров?
//так как при удалении параметром withParams передаём false
if (!withParams)
{
return;
@ -144,6 +150,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
ManufactureName = model.ManufactureName,
});
//если элемент найден и его Id не совпадает с Id объекта, переданного на вход
if(element != null && element.Id != model.Id)
{
throw new InvalidOperationException("Изделие с таким названием уже есть");

View File

@ -37,6 +37,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
if(list == null)
{
_logger.LogWarning("ReadList return null list");
return null;
}
@ -91,8 +92,8 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
throw new ArgumentNullException(nameof(model));
}
//если без параметров?
if(!withParams)
//так как при удалении параметром withParams передаём false
if (!withParams)
{
return;
}

View File

@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
{
//класс, реализующий логику для компонентов
//класс, реализующий логику для заготовок
public class WorkPieceLogic : IWorkPieceLogic
{
private readonly ILogger _logger;
@ -60,6 +60,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
if(element == null)
{
_logger.LogWarning("ReadElement element not found");
return null;
}
@ -76,6 +77,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
if(_workPieceStorage.Insert(model) == null)
{
_logger.LogWarning("Insert operation failed");
return false;
}
@ -90,6 +92,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
if(_workPieceStorage.Update(model) == null)
{
_logger.LogWarning("Update operation failed");
return false;
}
@ -99,11 +102,14 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
//удаление заготовки
public bool Delete(WorkPieceBindingModel model)
{
CheckModel(model);
CheckModel(model, false);
_logger.LogInformation("Delete. Id:{Id}", model.Id);
if (_workPieceStorage.Delete(model) == null)
{
_logger.LogWarning("Delete operation failed");
return false;
}
@ -118,7 +124,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
throw new ArgumentNullException(nameof(model));
}
//если без параметров?
//так как при удалении передаём как параметр false
if (!withParams)
{
return;
@ -144,6 +150,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
WorkPieceName = model.WorkPieceName,
});
//если элемент найден и его Id не совпадает с Id переданного объекта
if(element != null && element.Id != model.Id)
{
throw new InvalidOperationException("Заготовка с таким названием уже есть");

View File

@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace BlacksmithWorkshopContracts.BindingModels
{
//реализация сущности "Продукт"
//реализация сущности "Изделие"
public class ManufactureBindingModel : IManufactureModel
{
public int Id { get; set; }

View File

@ -12,8 +12,8 @@ namespace BlacksmithWorkshopContracts.BindingModels
{
public int Id { get; set; }
public double Cost { get; set; }
public string WorkPieceName { get; set; } = string.Empty;
public double Cost { get; set; }
}
}

View File

@ -14,7 +14,7 @@ namespace BlacksmithWorkshopContracts.BusinessLogicsContracts
{
List<ManufactureViewModel>? ReadList(ManufactureSearchModel? model);
ManufactureViewModel? ReadManufacture(ManufactureSearchModel model);
ManufactureViewModel? ReadElement(ManufactureSearchModel model);
bool Create(ManufactureBindingModel model);

View File

@ -27,10 +27,10 @@ namespace BlacksmithWorkshopContracts.ViewModels
public double Sum { get; set; }
[DisplayName("Статус")]
public OrderStatus Status { get; set; }
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
[DisplayName("Дата создания")]
public DateTime DateCreate { get; set; }
public DateTime DateCreate { get; set; } = DateTime.Now;
[DisplayName("Дата выполнения")]
public DateTime? DateImplement { get; set; }