вроде все классы готовы, теперь нужно доработать формы и приступить к документам...
This commit is contained in:
parent
f1422b3632
commit
e5dd7184ed
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user