PIAPS_CW/DatabaseImplement/Implements/SellStorage.cs

80 lines
2.1 KiB
C#
Raw Normal View History

2024-06-23 00:33:26 +04:00
using Contracts.BindingModels;
2024-06-23 20:39:28 +04:00
using Contracts.Converters;
2024-06-23 00:33:26 +04:00
using Contracts.SearchModels;
using Contracts.StorageContracts;
2024-06-23 20:39:28 +04:00
using Contracts.ViewModels;
using DatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;
2024-06-23 00:33:26 +04:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatabaseImplement.Implements
{
public class SellStorage : ISellStorage
{
2024-06-23 20:39:28 +04:00
public SellViewModel? Delete(SellSearchModel model)
2024-06-23 00:33:26 +04:00
{
throw new NotImplementedException();
}
2024-06-23 00:33:26 +04:00
2024-06-23 20:39:28 +04:00
public SellViewModel? GetElement(SellSearchModel model)
2024-06-23 00:33:26 +04:00
{
throw new NotImplementedException();
}
2024-06-23 20:39:28 +04:00
public IEnumerable<SellViewModel> GetFilteredList(SellSearchModel? model)
{
throw new NotImplementedException();
}
public IEnumerable<SellViewModel> GetFullList(SellSearchModel? model)
2024-06-23 00:33:26 +04:00
{
2024-06-23 20:39:28 +04:00
using var context = new Database();
return context.Sells
.Include(x => x.SupplyDoc)
.ToList()
.Select((Sell sell, int index) => sell.GetViewModel())
.ToList();
}
2024-06-23 00:33:26 +04:00
2024-06-23 20:39:28 +04:00
public SellViewModel? Insert(SellBindingModel model)
2024-06-23 00:33:26 +04:00
{
2024-06-23 20:39:28 +04:00
using var context = new Database();
var sell = Sell.Create(context, model);
if (sell == null)
{
return null;
}
context.Sells.Add(sell);
context.SaveChanges();
return sell.GetViewModel();
2024-06-23 00:33:26 +04:00
}
2024-06-23 20:39:28 +04:00
public SellViewModel? Update(SellBindingModel model)
2024-06-23 00:33:26 +04:00
{
2024-06-23 20:39:28 +04:00
using var context = new Database();
using var transaction = context.Database.BeginTransaction();
try
{
var sell = context.Sells.FirstOrDefault(rec => rec.Id == model.Id);
if (sell == null)
{
return null;
}
sell.Update(model);
context.SaveChanges();
transaction.Commit();
return sell.GetViewModel();
}
catch
{
transaction.Rollback();
throw;
}
}
2024-06-23 00:33:26 +04:00
}
}