вроде все классы готовы, теперь нужно доработать формы и приступить к документам...

This commit is contained in:
Елена Бакальская 2024-11-19 02:15:38 +04:00
parent f1422b3632
commit e5dd7184ed
2 changed files with 176 additions and 0 deletions

View File

@ -0,0 +1,90 @@
using ShopContracts.BindingModels;
using ShopContracts.SearchModels;
using ShopContracts.StorageContracts;
using ShopContracts.ViewModels;
using ShopDataBaseImplements.Models;
namespace ShopDataBaseImplements.Implements
{
public class OrderStatusStorage : IOrderStatusStorage
{
public OrderStatusViewModel? Delete(OrderStatusBindingModel model)
{
using var context = new DataBase();
var element = context.OrderStatuses.FirstOrDefault(x => x.Id == model.Id);
if (element == null)
{
return null;
}
context.OrderStatuses.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
public OrderStatusViewModel? GetElement(OrderStatusSearchModel model)
{
using var context = new DataBase();
if(model.Id == null)
{
return null;
}
return context.OrderStatuses.FirstOrDefault(x => x.Id != model.Id)?.GetViewModel;
}
public List<OrderStatusViewModel> GetFilteredList(OrderStatusSearchModel model)
{
var list = GetFullList();
if(list == null)
{
return null;
}
if (model.Id.HasValue)
{
list = list.Where(x => x.Id == model.Id).ToList();
}
return list;
}
public List<OrderStatusViewModel> GetFullList()
{
using var context = new DataBase();
return context.OrderStatuses.Select(x => x.GetViewModel).ToList();
}
public OrderStatusViewModel? Insert(OrderStatusBindingModel model)
{
using var context = new DataBase();
var element = OrderStatus.Create(model);
if(element == null)
{
return null;
}
context.OrderStatuses.Add(element);
context.SaveChanges();
return element.GetViewModel;
}
public OrderStatusViewModel? Update(OrderStatusBindingModel model)
{
using var context = new DataBase();
using var transaction = context.Database.BeginTransaction();
try
{
var element = context.OrderStatuses.FirstOrDefault(x => x.Id == model.Id);
if (element == null)
{
return null;
}
element.Update(model);
context.SaveChanges();
transaction.Commit();
return element.GetViewModel;
}
catch (Exception)
{
transaction.Rollback();
throw;
}
}
}
}

View File

@ -0,0 +1,86 @@
using ShopContracts.BindingModels;
using ShopContracts.SearchModels;
using ShopContracts.StorageContracts;
using ShopContracts.ViewModels;
using ShopDataBaseImplements.Models;
namespace ShopDataBaseImplements.Implements
{
public class OrderStorage : IOrderStorage
{
public OrderViewModel? Delete(OrderBindingModel model)
{
using var context = new DataBase();
var element = context.Orders.FirstOrDefault(x => x.Id == model.Id);
if(element == null)
{
return null;
}
context.Orders.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
public OrderViewModel? GetElement(OrderSearchModel model)
{
using var context = new DataBase();
if(!model.Id.HasValue)
{
return null;
}
return context.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
}
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
{
var list = GetFullList();
if (model.Id.HasValue)
{
list = list.Where(x => x.Id == model.Id).ToList();
}
return list;
}
public List<OrderViewModel> GetFullList()
{
using var context = new DataBase();
return context.Orders.Select(x => x.GetViewModel).ToList();
}
public OrderViewModel? Insert(OrderBindingModel model)
{
using var context = new DataBase();
var element = Order.Create(model);
if(element == null)
{
return null;
}
context.Orders.Add(element);
context.SaveChanges();
return element.GetViewModel;
}
public OrderViewModel? Update(OrderBindingModel model)
{
using var context = new DataBase();
using var transaction = context.Database.BeginTransaction();
try
{
var element = context.Orders.FirstOrDefault(x => x.Id == model.Id);
if(element == null)
{
return null;
}
element.Update(model);
context.SaveChanges();
transaction.Commit();
return element.GetViewModel;
}
catch (Exception)
{
transaction.Rollback();
throw;
}
}
}
}