update bd
This commit is contained in:
parent
a87ad2e062
commit
e4533c4b03
@ -11,15 +11,15 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
{
|
{
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly IMachineStorage _machineStorage;
|
private readonly IMachineStorage _machineStorage;
|
||||||
public ProductLogic(ILogger<ProductLogic> logger, IProductStorage productStorage)
|
public MachineLogic(ILogger<MachineLogic> logger, IMachineStorage machineStorage)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_productStorage = productStorage;
|
_machineStorage = machineStorage;
|
||||||
}
|
}
|
||||||
public List<ProductViewModel>? ReadList(ProductSearchModel? model)
|
public List<MachineViewModel>? ReadList(MachineSearchModel? model)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("ReadList. ProductName:{name}. Id:{Id}. UserId:{UserId}", model?.Name, model?.Id, model?.UserId);
|
_logger.LogInformation("ReadList. MachineTitle:{Title}. Id:{Id}. UserId:{UserId}", model?.Title, model?.Id, model?.UserId);
|
||||||
var list = model == null ? _productStorage.GetFullList() : _productStorage.GetFilteredList(model);
|
var list = model == null ? _machineStorage.GetFullList() : _machineStorage.GetFilteredList(model);
|
||||||
if (list == null)
|
if (list == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("ReadList return null list");
|
_logger.LogWarning("ReadList return null list");
|
||||||
@ -28,14 +28,14 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
_logger.LogWarning("ReadList. Count:{Count}", list.Count);
|
_logger.LogWarning("ReadList. Count:{Count}", list.Count);
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
public ProductViewModel? ReadElement(ProductSearchModel? model)
|
public MachineViewModel? ReadElement(MachineSearchModel? model)
|
||||||
{
|
{
|
||||||
if (model == null)
|
if (model == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(model));
|
throw new ArgumentNullException(nameof(model));
|
||||||
}
|
}
|
||||||
_logger.LogInformation("ReadElement. ProductName:{Name}. Id:{Id}", model.Name, model.Id);
|
_logger.LogInformation("ReadElement. MachineTitle:{Title}. Id:{Id}", model.Title, model.Id);
|
||||||
var elem = _productStorage.GetElement(model);
|
var elem = _machineStorage.GetElement(model);
|
||||||
if (elem == null)
|
if (elem == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("ReadElement element not found");
|
_logger.LogWarning("ReadElement element not found");
|
||||||
@ -44,7 +44,7 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
_logger.LogInformation("ReadElement find. Id:{Id}", elem.Id);
|
_logger.LogInformation("ReadElement find. Id:{Id}", elem.Id);
|
||||||
return elem;
|
return elem;
|
||||||
}
|
}
|
||||||
private void CheckModel(ProductBindingModel? model, bool withParams = true)
|
private void CheckModel(MachineBindingModel? model, bool withParams = true)
|
||||||
{
|
{
|
||||||
if (model == null)
|
if (model == null)
|
||||||
{
|
{
|
||||||
@ -54,49 +54,49 @@ namespace BusinessLogic.BusinessLogic
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(model.Name))
|
if (string.IsNullOrEmpty(model.Title))
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException("Нет названия изделия", nameof(model.Name));
|
throw new ArgumentNullException("Нет названия изделия", nameof(model.Title));
|
||||||
}
|
}
|
||||||
if (model.Cost <= 0)
|
if (string.IsNullOrEmpty(model.Country))
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException("Цена изделия должна быть больше 0", nameof(model.Cost));
|
throw new ArgumentNullException("Нет страны изготовителя", nameof(model.Country));
|
||||||
}
|
}
|
||||||
_logger.LogInformation("Product. ProductName:{Name}. Cost:{Cost}. Id:{Id}", model.Name, model.Cost, model.Id);
|
_logger.LogInformation("Machine. MachineTitle:{Title}. Country:{Country}. Id:{Id}", model.Title, model.Country, model.Id);
|
||||||
var elem = _productStorage.GetElement(new ProductSearchModel
|
var elem = _machineStorage.GetElement(new MachineSearchModel
|
||||||
{
|
{
|
||||||
Name = model.Name
|
Title = model.Title
|
||||||
});
|
});
|
||||||
if (elem != null && elem.Id != model.Id)
|
if (elem != null && elem.Id != model.Id)
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("Изделие с таким названием уже существует");
|
throw new InvalidOperationException("Станок с таким названием уже существует");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool Create(ProductBindingModel? model)
|
public bool Create(MachineBindingModel? model)
|
||||||
{
|
{
|
||||||
CheckModel(model);
|
CheckModel(model);
|
||||||
if (_productStorage.Insert(model!) == null)
|
if (_machineStorage.Insert(model!) == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Insert error");
|
_logger.LogWarning("Insert error");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public bool Update(ProductBindingModel? model)
|
public bool Update(MachineBindingModel? model)
|
||||||
{
|
{
|
||||||
CheckModel(model);
|
CheckModel(model);
|
||||||
if (_productStorage.Update(model!) == null)
|
if (_machineStorage.Update(model!) == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Update error");
|
_logger.LogWarning("Update error");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public bool Delete(ProductBindingModel? model)
|
public bool Delete(MachineBindingModel? model)
|
||||||
{
|
{
|
||||||
CheckModel(model, false);
|
CheckModel(model, false);
|
||||||
_logger.LogInformation("Delete Id:{Id}", model!.Id);
|
_logger.LogInformation("Delete Id:{Id}", model!.Id);
|
||||||
if (_productStorage.Delete(model!) == null)
|
if (_machineStorage.Delete(model!) == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Delete error");
|
_logger.LogWarning("Delete error");
|
||||||
return false;
|
return false;
|
||||||
|
111
Course/BusinessLogic/BusinessLogic/WorkshopLogic.cs
Normal file
111
Course/BusinessLogic/BusinessLogic/WorkshopLogic.cs
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
using Contracts.BindingModels;
|
||||||
|
using Contracts.BusinessLogicsContracts;
|
||||||
|
using Contracts.SearchModels;
|
||||||
|
using Contracts.StoragesContracts;
|
||||||
|
using Contracts.ViewModels;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace BusinessLogic.BusinessLogic
|
||||||
|
{
|
||||||
|
public class WorkshopLogic : IWorkshopLogic
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IWorkshopStorage _machineStorage;
|
||||||
|
public WorkshopLogic(ILogger<WorkshopLogic> logger, IWorkshopStorage machineStorage)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_machineStorage = machineStorage;
|
||||||
|
}
|
||||||
|
public List<WorkshopViewModel>? ReadList(WorkshopSearchModel? model)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("ReadList. WorkshopTitle:{Title}. Id:{Id}. UserId:{UserId}", model?.Title, model?.Id, model?.UserId);
|
||||||
|
var list = model == null ? _machineStorage.GetFullList() : _machineStorage.GetFilteredList(model);
|
||||||
|
if (list == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("ReadList return null list");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
_logger.LogWarning("ReadList. Count:{Count}", list.Count);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
public WorkshopViewModel? ReadElement(WorkshopSearchModel? model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
}
|
||||||
|
_logger.LogInformation("ReadElement. WorkshopTitle:{Title}. Id:{Id}", model.Title, model.Id);
|
||||||
|
var elem = _machineStorage.GetElement(model);
|
||||||
|
if (elem == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("ReadElement element not found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("ReadElement find. Id:{Id}", elem.Id);
|
||||||
|
return elem;
|
||||||
|
}
|
||||||
|
private void CheckModel(WorkshopBindingModel? model, bool withParams = true)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
}
|
||||||
|
if (!withParams)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(model.Title))
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException("Нет названия изделия", nameof(model.Title));
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(model.Address))
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException("Нет адреса цеха", nameof(model.Address));
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(model.Director))
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException("Нет директора цеха", nameof(model.Director));
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Workshop. WorkshopTitle:{Title}. Address:{Address}. Director:{Director}. Id:{Id}", model.Title, model.Address, model.Director, model.Id);
|
||||||
|
var elem = _machineStorage.GetElement(new WorkshopSearchModel
|
||||||
|
{
|
||||||
|
Title = model.Title
|
||||||
|
});
|
||||||
|
if (elem != null && elem.Id != model.Id)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("Цех с таким названием уже существует");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public bool Create(WorkshopBindingModel? model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_machineStorage.Insert(model!) == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Insert error");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public bool Update(WorkshopBindingModel? model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_machineStorage.Update(model!) == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Update error");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public bool Delete(WorkshopBindingModel? model)
|
||||||
|
{
|
||||||
|
CheckModel(model, false);
|
||||||
|
_logger.LogInformation("Delete Id:{Id}", model!.Id);
|
||||||
|
if (_machineStorage.Delete(model!) == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Delete error");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -8,7 +8,6 @@ namespace Contracts.BindingModels
|
|||||||
public int UserId { get; set; }
|
public int UserId { get; set; }
|
||||||
public string Title { get; set; } = string.Empty;
|
public string Title { get; set; } = string.Empty;
|
||||||
public string Country { get; set; } = string.Empty;
|
public string Country { get; set; } = string.Empty;
|
||||||
public int ProductId { get; set; }
|
public Dictionary<int, IWorkerModel> MachineWorker { get; set; } = new();
|
||||||
public Dictionary<int, (IWorkerModel, int)> MachineWorker { get; set; } = new();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ namespace Contracts.BindingModels
|
|||||||
public string Title { get; set; } = string.Empty;
|
public string Title { get; set; } = string.Empty;
|
||||||
public string Address { get; set; } = string.Empty;
|
public string Address { get; set; } = string.Empty;
|
||||||
public string Director { get; set; } = string.Empty;
|
public string Director { get; set; } = string.Empty;
|
||||||
public int ProductionId { get; set; }
|
public int? ProductionId { get; set; }
|
||||||
public Dictionary<int, IWorkerModel> WorkshopWorker { get; set; } = new();
|
public Dictionary<int, IWorkerModel> WorkshopWorker { get; set; } = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ namespace Contracts.ViewModels
|
|||||||
[DisplayName("Страна производитель")]
|
[DisplayName("Страна производитель")]
|
||||||
public string Country { get; set; } = string.Empty;
|
public string Country { get; set; } = string.Empty;
|
||||||
public int UserId { get; set; }
|
public int UserId { get; set; }
|
||||||
public int ProductId { get; set; }
|
public Dictionary<int, IWorkerModel>? WorkerMachines { get; set; }
|
||||||
public Dictionary<int, (IWorkerModel, int)>? WorkerMachines { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ namespace Contracts.ViewModels
|
|||||||
[DisplayName("ФИО директора цеха")]
|
[DisplayName("ФИО директора цеха")]
|
||||||
public string Director { get; set; } = string.Empty;
|
public string Director { get; set; } = string.Empty;
|
||||||
public int UserId { get; set; }
|
public int UserId { get; set; }
|
||||||
public int ProductionId { get; set; }
|
public int? ProductionId { get; set; }
|
||||||
public Dictionary<int, (IWorkerModel, int)>? WorkerWorkshops { get; set; }
|
public Dictionary<int, IWorkerModel>? WorkerWorkshops { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
77
Course/DatabaseImplement/Implements/MachineStorage.cs
Normal file
77
Course/DatabaseImplement/Implements/MachineStorage.cs
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
using Contracts.BindingModels;
|
||||||
|
using Contracts.SearchModels;
|
||||||
|
using Contracts.StoragesContracts;
|
||||||
|
using Contracts.ViewModels;
|
||||||
|
using DatabaseImplement.Models;
|
||||||
|
|
||||||
|
namespace DatabaseImplement.Implements
|
||||||
|
{
|
||||||
|
public class MachineStorage : IMachineStorage
|
||||||
|
{
|
||||||
|
public MachineViewModel? Delete(MachineBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newMachine = context.Machines.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (newMachine == null)
|
||||||
|
return null;
|
||||||
|
context.Machines.Remove(newMachine);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newMachine.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MachineViewModel? GetElement(MachineSearchModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
return context.Machines.FirstOrDefault(x => (!string.IsNullOrEmpty(model.Title) && x.Title.Contains(model.Title)) || (model.Id.HasValue && x.Id == model.Id))?.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MachineViewModel> GetFilteredList(MachineSearchModel model)
|
||||||
|
{
|
||||||
|
if (!model.Id.HasValue && string.IsNullOrEmpty(model.Title) && !model.UserId.HasValue)
|
||||||
|
{
|
||||||
|
return new();
|
||||||
|
}
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
if (model.Id.HasValue)
|
||||||
|
{
|
||||||
|
return context.Machines.Where(x => x.Id == model.Id).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
else if (model.UserId.HasValue)
|
||||||
|
{
|
||||||
|
return context.Machines.Where(x => x.UserId == model.Id).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return context.Machines.Where(x => model.Title == x.Title).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MachineViewModel> GetFullList()
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
return context.Machines.Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MachineViewModel? Insert(MachineBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newMachine = Machine.Create(model, context);
|
||||||
|
if (newMachine == null)
|
||||||
|
return null;
|
||||||
|
context.Machines.Add(newMachine);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newMachine.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MachineViewModel? Update(MachineBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newMachine = context.Machines.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (newMachine == null)
|
||||||
|
return null;
|
||||||
|
newMachine.Update(model);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newMachine.GetViewModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
77
Course/DatabaseImplement/Implements/WorkerStorage.cs
Normal file
77
Course/DatabaseImplement/Implements/WorkerStorage.cs
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
using Contracts.BindingModels;
|
||||||
|
using Contracts.SearchModels;
|
||||||
|
using Contracts.StoragesContracts;
|
||||||
|
using Contracts.ViewModels;
|
||||||
|
using DatabaseImplement.Models;
|
||||||
|
|
||||||
|
namespace DatabaseImplement.Implements
|
||||||
|
{
|
||||||
|
public class WorkerStorage : IWorkerStorage
|
||||||
|
{
|
||||||
|
public WorkerViewModel? Delete(WorkerBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newWorker = context.Workers.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (newWorker == null)
|
||||||
|
return null;
|
||||||
|
context.Workers.Remove(newWorker);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newWorker.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorkerViewModel? GetElement(WorkerSearchModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
return context.Workers.FirstOrDefault(x => (!string.IsNullOrEmpty(model.Name) && x.Name.Contains(model.Name)) || (model.Id.HasValue && x.Id == model.Id))?.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<WorkerViewModel> GetFilteredList(WorkerSearchModel model)
|
||||||
|
{
|
||||||
|
if (!model.Id.HasValue && string.IsNullOrEmpty(model.Name) && !model.UserId.HasValue)
|
||||||
|
{
|
||||||
|
return new();
|
||||||
|
}
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
if (model.Id.HasValue)
|
||||||
|
{
|
||||||
|
return context.Workers.Where(x => x.Id == model.Id).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
else if (model.UserId.HasValue)
|
||||||
|
{
|
||||||
|
return context.Workers.Where(x => x.UserId == model.Id).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return context.Workers.Where(x => model.Name == x.Name).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<WorkerViewModel> GetFullList()
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
return context.Workers.Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorkerViewModel? Insert(WorkerBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newWorker = Worker.Create(model);
|
||||||
|
if (newWorker == null)
|
||||||
|
return null;
|
||||||
|
context.Workers.Add(newWorker);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newWorker.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorkerViewModel? Update(WorkerBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newWorker = context.Workers.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (newWorker == null)
|
||||||
|
return null;
|
||||||
|
newWorker.Update(model);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newWorker.GetViewModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
78
Course/DatabaseImplement/Implements/WorkshopStorage.cs
Normal file
78
Course/DatabaseImplement/Implements/WorkshopStorage.cs
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
using Contracts.BindingModels;
|
||||||
|
using Contracts.SearchModels;
|
||||||
|
using Contracts.StoragesContracts;
|
||||||
|
using Contracts.ViewModels;
|
||||||
|
using DatabaseImplement.Models;
|
||||||
|
|
||||||
|
namespace DatabaseImplement.Implements
|
||||||
|
{
|
||||||
|
public class WorkshopStorage : IWorkshopStorage
|
||||||
|
{
|
||||||
|
public WorkshopViewModel? Delete(WorkshopBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newWorkshop = context.Workshops.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (newWorkshop == null)
|
||||||
|
return null;
|
||||||
|
context.Workshops.Remove(newWorkshop);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newWorkshop.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorkshopViewModel? GetElement(WorkshopSearchModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
return context.Workshops.FirstOrDefault(x => (!string.IsNullOrEmpty(model.Title) && x.Title.Contains(model.Title)) || (model.Id.HasValue && x.Id == model.Id))?.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<WorkshopViewModel> GetFilteredList(WorkshopSearchModel model)
|
||||||
|
{
|
||||||
|
if (!model.Id.HasValue && string.IsNullOrEmpty(model.Title) && !model.UserId.HasValue)
|
||||||
|
{
|
||||||
|
return new();
|
||||||
|
}
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
if (model.Id.HasValue)
|
||||||
|
{
|
||||||
|
return context.Workshops.Where(x => x.Id == model.Id).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
else if (model.UserId.HasValue)
|
||||||
|
{
|
||||||
|
return context.Workshops.Where(x => x.UserId == model.Id).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return context.Workshops.Where(x => model.Title == x.Title).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<WorkshopViewModel> GetFullList()
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
return context.Workshops.Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorkshopViewModel? Insert(WorkshopBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newWorkshop = Workshop.Create(context, model);
|
||||||
|
if (newWorkshop == null)
|
||||||
|
return null;
|
||||||
|
context.Workshops.Add(newWorkshop);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newWorkshop.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorkshopViewModel? Update(WorkshopBindingModel model)
|
||||||
|
{
|
||||||
|
using var context = new FactoryGoWorkDatabase();
|
||||||
|
var newWorkshop = context.Workshops.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (newWorkshop == null)
|
||||||
|
return null;
|
||||||
|
newWorkshop.Update(model);
|
||||||
|
context.SaveChanges();
|
||||||
|
return newWorkshop.GetViewModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -21,18 +21,15 @@ namespace DatabaseImplement.Models
|
|||||||
public string Country { get; private set; } = string.Empty;
|
public string Country { get; private set; } = string.Empty;
|
||||||
[Required]
|
[Required]
|
||||||
public int UserId { get; private set; }
|
public int UserId { get; private set; }
|
||||||
[Required]
|
private Dictionary<int, IWorkerModel>? _workerMachines = null;
|
||||||
public int ProductId { get; private set; }
|
|
||||||
public virtual Product Product { get; set; }
|
|
||||||
private Dictionary<int, (IWorkerModel, int)>? _workerMachines = null;
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public Dictionary<int, (IWorkerModel, int)>? WorkerMachines
|
public Dictionary<int, IWorkerModel>? WorkerMachines
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_workerMachines == null)
|
if (_workerMachines == null)
|
||||||
{
|
{
|
||||||
_workerMachines = Workers.ToDictionary(recDP => recDP.WorkerId, recDp => (recDp.Worker as IWorkerModel, recDp.Count));
|
_workerMachines = Workers.ToDictionary(recDP => recDP.WorkerId, recDp => (recDp.Worker as IWorkerModel));
|
||||||
}
|
}
|
||||||
return _workerMachines;
|
return _workerMachines;
|
||||||
}
|
}
|
||||||
@ -47,8 +44,6 @@ namespace DatabaseImplement.Models
|
|||||||
Id = model.Id,
|
Id = model.Id,
|
||||||
Title = model.Title,
|
Title = model.Title,
|
||||||
Country = model.Country,
|
Country = model.Country,
|
||||||
ProductId = model.ProductId,
|
|
||||||
Product = context.Products.FirstOrDefault(x => x.Id == model.ProductId)!,
|
|
||||||
UserId = model.UserId,
|
UserId = model.UserId,
|
||||||
Workers = model.MachineWorker.Select(x => new WorkerMachine
|
Workers = model.MachineWorker.Select(x => new WorkerMachine
|
||||||
{
|
{
|
||||||
@ -67,7 +62,6 @@ namespace DatabaseImplement.Models
|
|||||||
Title = Title,
|
Title = Title,
|
||||||
Country = Country,
|
Country = Country,
|
||||||
UserId = UserId,
|
UserId = UserId,
|
||||||
ProductId = ProductId,
|
|
||||||
WorkerMachines = WorkerMachines
|
WorkerMachines = WorkerMachines
|
||||||
};
|
};
|
||||||
public void UpdateWorkers(FactoryGoWorkDatabase context, MachineBindingModel model)
|
public void UpdateWorkers(FactoryGoWorkDatabase context, MachineBindingModel model)
|
||||||
@ -79,7 +73,6 @@ namespace DatabaseImplement.Models
|
|||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
foreach (var upWorker in machineWorkers)
|
foreach (var upWorker in machineWorkers)
|
||||||
{
|
{
|
||||||
upWorker.Count = model.MachineWorker[upWorker.WorkerId].Item2;
|
|
||||||
model.MachineWorker.Remove(upWorker.WorkerId);
|
model.MachineWorker.Remove(upWorker.WorkerId);
|
||||||
}
|
}
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
@ -90,8 +83,7 @@ namespace DatabaseImplement.Models
|
|||||||
context.WorkerMachines.Add(new WorkerMachine
|
context.WorkerMachines.Add(new WorkerMachine
|
||||||
{
|
{
|
||||||
Machine = machine,
|
Machine = machine,
|
||||||
Worker = context.Workers.First(x => x.Id == dp.Key),
|
Worker = context.Workers.First(x => x.Id == dp.Key)
|
||||||
Count = dp.Value.Item2
|
|
||||||
});
|
});
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,6 @@ namespace DatabaseImplement.Models
|
|||||||
public int WorkerId { get; set; }
|
public int WorkerId { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public int MachineId { get; set; }
|
public int MachineId { get; set; }
|
||||||
[Required]
|
|
||||||
public int Count { get; set; }
|
|
||||||
public virtual Worker Worker { get; set; } = new();
|
public virtual Worker Worker { get; set; } = new();
|
||||||
public virtual Machine Machine { get; set; } = new();
|
public virtual Machine Machine { get; set; } = new();
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,6 @@ namespace DatabaseImplement.Models
|
|||||||
public int WorkerId { get; set; }
|
public int WorkerId { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public int WorkshopId { get; set; }
|
public int WorkshopId { get; set; }
|
||||||
[Required]
|
|
||||||
public int Count { get; set; }
|
|
||||||
public virtual Worker Worker { get; set; } = new();
|
public virtual Worker Worker { get; set; } = new();
|
||||||
public virtual Workshop Workshop { get; set; } = new();
|
public virtual Workshop Workshop { get; set; } = new();
|
||||||
}
|
}
|
||||||
|
@ -18,17 +18,17 @@ namespace DatabaseImplement.Models
|
|||||||
[Required]
|
[Required]
|
||||||
public int UserId { get; set; }
|
public int UserId { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public int ProductionId { get; set; }
|
public int? ProductionId { get; set; }
|
||||||
public virtual Production Production { get; set; }
|
public virtual Production? Production { get; set; }
|
||||||
private Dictionary<int, (IWorkerModel, int)>? _workerWorkshops = null;
|
private Dictionary<int, IWorkerModel>? _workerWorkshops = null;
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public Dictionary<int, (IWorkerModel, int)>? WorkerWorkshops
|
public Dictionary<int, IWorkerModel>? WorkerWorkshops
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if(_workerWorkshops == null)
|
if(_workerWorkshops == null)
|
||||||
{
|
{
|
||||||
_workerWorkshops = Workers.ToDictionary(recDP => recDP.WorkerId, recDp => (recDp.Worker as IWorkerModel, recDp.Count));
|
_workerWorkshops = Workers.ToDictionary(recDP => recDP.WorkerId, recDp => (recDp.Worker as IWorkerModel));
|
||||||
}
|
}
|
||||||
return _workerWorkshops;
|
return _workerWorkshops;
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@ namespace DatabaseImplement.Models
|
|||||||
[ForeignKey("WorkshopId")]
|
[ForeignKey("WorkshopId")]
|
||||||
public List<WorkerWorkshop> Workers { get; set; } = new();
|
public List<WorkerWorkshop> Workers { get; set; } = new();
|
||||||
public virtual Guarantor Guarantor { get; set; }
|
public virtual Guarantor Guarantor { get; set; }
|
||||||
public static Workshop Create(FactoryGoWorkDatabase context, WorkshopBindingModel model)
|
public static Workshop? Create(FactoryGoWorkDatabase context, WorkshopBindingModel model)
|
||||||
{
|
{
|
||||||
return new Workshop()
|
return new Workshop()
|
||||||
{
|
{
|
||||||
@ -45,7 +45,7 @@ namespace DatabaseImplement.Models
|
|||||||
Address = model.Address,
|
Address = model.Address,
|
||||||
Director = model.Director,
|
Director = model.Director,
|
||||||
ProductionId = model.ProductionId,
|
ProductionId = model.ProductionId,
|
||||||
Production = context.Productions.FirstOrDefault(x => x.Id == model.ProductionId)!,
|
Production = model.ProductionId.HasValue ? context.Productions.FirstOrDefault(x => x.Id == model.ProductionId) : null,
|
||||||
UserId = model.UserId,
|
UserId = model.UserId,
|
||||||
Workers = model.WorkshopWorker.Select(x => new WorkerWorkshop
|
Workers = model.WorkshopWorker.Select(x => new WorkerWorkshop
|
||||||
{
|
{
|
||||||
@ -78,7 +78,6 @@ namespace DatabaseImplement.Models
|
|||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
foreach (var upWorker in workshopWorkers)
|
foreach (var upWorker in workshopWorkers)
|
||||||
{
|
{
|
||||||
upWorker.Count = model.WorkshopWorker[upWorker.WorkerId].Item2;
|
|
||||||
model.WorkshopWorker.Remove(upWorker.WorkerId);
|
model.WorkshopWorker.Remove(upWorker.WorkerId);
|
||||||
}
|
}
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
@ -89,8 +88,7 @@ namespace DatabaseImplement.Models
|
|||||||
context.WorkerWorkshops.Add(new WorkerWorkshop
|
context.WorkerWorkshops.Add(new WorkerWorkshop
|
||||||
{
|
{
|
||||||
Workshop = workshop,
|
Workshop = workshop,
|
||||||
Worker = context.Workers.First(x => x.Id == dp.Key),
|
Worker = context.Workers.First(x => x.Id == dp.Key)
|
||||||
Count = dp.Value.Item2
|
|
||||||
});
|
});
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user