add storages
This commit is contained in:
parent
e9774d6b48
commit
3e9619c7c4
@ -54,7 +54,7 @@ namespace CarShowroomDatabaseStorage.Entities
|
||||
ModelId = car.ModelId;
|
||||
}
|
||||
|
||||
public CarView GetCarView()
|
||||
public CarView GetView()
|
||||
{
|
||||
CarView car = new CarView(this);
|
||||
car.ModelPrice = Model?.Price ?? 0;
|
||||
|
@ -52,7 +52,7 @@ namespace CarShowroomDatabaseStorage.Entities
|
||||
PhoneNumber = client.PhoneNumber;
|
||||
}
|
||||
|
||||
public ClientView GetClientView()
|
||||
public ClientView GetView()
|
||||
{
|
||||
return new ClientView(this);
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ namespace CarShowroomDatabaseStorage.Entities
|
||||
Password = employee.Password;
|
||||
}
|
||||
|
||||
public EmployeeView GetEmployeeView()
|
||||
public EmployeeView GetView()
|
||||
{
|
||||
return new EmployeeView(this);
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ namespace CarShowroomDatabaseStorage.Entities
|
||||
MakeId = model.MakeId;
|
||||
}
|
||||
|
||||
public ModelView GetModelView()
|
||||
public ModelView GetView()
|
||||
{
|
||||
ModelView model = new ModelView(this);
|
||||
model.MakeName = Make?.Name ?? string.Empty;
|
||||
|
@ -78,13 +78,13 @@ namespace CarShowroomDatabaseStorage.Entities
|
||||
EmployeeId = sale.EmployeeId;
|
||||
}
|
||||
|
||||
public SaleView GetSaleView()
|
||||
public SaleView GetView()
|
||||
{
|
||||
SaleView sale = new SaleView(this);
|
||||
sale.ClientName = Client?.Name ?? string.Empty;
|
||||
sale.EmployeeName = Employee?.Name ?? string.Empty;
|
||||
sale.Services = SaleServices.Select(s => s.Service.GetServiceView()).ToList();
|
||||
sale.Cars = SaleCars.Select(c => c.Car.GetCarView()).ToList();
|
||||
sale.Services = SaleServices.Select(s => s.Service.GetView()).ToList();
|
||||
sale.Cars = SaleCars.Select(c => c.Car.GetView()).ToList();
|
||||
return sale;
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ namespace CarShowroomDatabaseStorage.Entities
|
||||
Cost = service.Cost;
|
||||
}
|
||||
|
||||
public ServiceView GetServiceView()
|
||||
public ServiceView GetView()
|
||||
{
|
||||
return new ServiceView(this);
|
||||
}
|
||||
|
@ -0,0 +1,88 @@
|
||||
using CarShowroomContracts.StorageContracts;
|
||||
using CarShowroomDatabaseStorage.Entities;
|
||||
using CarShowroomDataModels.Dtos;
|
||||
using CarShowroomDataModels.SearchModel;
|
||||
using CarShowroomDataModels.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarShowroomDatabaseStorage.Storages
|
||||
{
|
||||
public class CarStorage : ICarStorage
|
||||
{
|
||||
public List<CarView> GetFullList()
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Cars
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<CarView> GetFilteredList(CarSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return new();
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Cars
|
||||
.Where(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public CarView? GetElement(CarSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Cars
|
||||
.FirstOrDefault(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
?.GetView();
|
||||
}
|
||||
|
||||
public CarView? Insert(CarDto model)
|
||||
{
|
||||
var newCar = Car.Create(model);
|
||||
if (newCar == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
context.Cars.Add(newCar);
|
||||
context.SaveChanges();
|
||||
return newCar.GetView();
|
||||
}
|
||||
|
||||
public CarView? Update(CarDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var car = context.Cars.FirstOrDefault(x => x.Id == model.Id);
|
||||
if (car == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
car.Update(model);
|
||||
context.SaveChanges();
|
||||
return car.GetView();
|
||||
}
|
||||
|
||||
public CarView? Delete(CarDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var element = context.Cars.FirstOrDefault(rec => rec.Id == model.Id);
|
||||
if (element != null)
|
||||
{
|
||||
context.Cars.Remove(element);
|
||||
context.SaveChanges();
|
||||
return element.GetView();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
using CarShowroomContracts.StorageContracts;
|
||||
using CarShowroomDatabaseStorage.Entities;
|
||||
using CarShowroomDataModels.Dtos;
|
||||
using CarShowroomDataModels.SearchModel;
|
||||
using CarShowroomDataModels.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarShowroomDatabaseStorage.Storages
|
||||
{
|
||||
public class ClientStorage : IClientStorage
|
||||
{
|
||||
public List<ClientView> GetFullList()
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Clients
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<ClientView> GetFilteredList(ClientSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return new();
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Clients
|
||||
.Where(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public ClientView? GetElement(ClientSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Clients
|
||||
.FirstOrDefault(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
?.GetView();
|
||||
}
|
||||
|
||||
public ClientView? Insert(ClientDto model)
|
||||
{
|
||||
var newClient = Client.Create(model);
|
||||
if (newClient == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
context.Clients.Add(newClient);
|
||||
context.SaveChanges();
|
||||
return newClient.GetView();
|
||||
}
|
||||
|
||||
public ClientView? Update(ClientDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var client = context.Clients.FirstOrDefault(x => x.Id == model.Id);
|
||||
if (client == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
client.Update(model);
|
||||
context.SaveChanges();
|
||||
return client.GetView();
|
||||
}
|
||||
|
||||
public ClientView? Delete(ClientDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var element = context.Clients.FirstOrDefault(rec => rec.Id == model.Id);
|
||||
if (element != null)
|
||||
{
|
||||
context.Clients.Remove(element);
|
||||
context.SaveChanges();
|
||||
return element.GetView();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
using CarShowroomContracts.StorageContracts;
|
||||
using CarShowroomDatabaseStorage.Entities;
|
||||
using CarShowroomDataModels.Dtos;
|
||||
using CarShowroomDataModels.SearchModel;
|
||||
using CarShowroomDataModels.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarShowroomDatabaseStorage.Storages
|
||||
{
|
||||
public class EmployeeStorage : IEmployeeStorage
|
||||
{
|
||||
public List<EmployeeView> GetFullList()
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Employees
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<EmployeeView> GetFilteredList(EmployeeSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue &&
|
||||
string.IsNullOrEmpty(model.Password) &&
|
||||
string.IsNullOrEmpty(model.Email))
|
||||
{
|
||||
return new();
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Employees
|
||||
.Where(x =>
|
||||
!model.Id.HasValue || x.Id == model.Id &&
|
||||
(string.IsNullOrEmpty(model.Password) || x.Password == model.Password) &&
|
||||
(string.IsNullOrEmpty(model.Email) || x.Password == model.Email))
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public EmployeeView? GetElement(EmployeeSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue &&
|
||||
string.IsNullOrEmpty(model.Password) &&
|
||||
string.IsNullOrEmpty(model.Email))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Employees
|
||||
.FirstOrDefault(x =>
|
||||
!model.Id.HasValue || x.Id == model.Id &&
|
||||
(string.IsNullOrEmpty(model.Password) || x.Password == model.Password) &&
|
||||
(string.IsNullOrEmpty(model.Email) || x.Password == model.Email))
|
||||
?.GetView();
|
||||
}
|
||||
|
||||
public EmployeeView? Insert(EmployeeDto model)
|
||||
{
|
||||
var newEmployee = Employee.Create(model);
|
||||
if (newEmployee == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
context.Employees.Add(newEmployee);
|
||||
context.SaveChanges();
|
||||
return newEmployee.GetView();
|
||||
}
|
||||
|
||||
public EmployeeView? Update(EmployeeDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var employee = context.Employees.FirstOrDefault(x => x.Id == model.Id);
|
||||
if (employee == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
employee.Update(model);
|
||||
context.SaveChanges();
|
||||
return employee.GetView();
|
||||
}
|
||||
|
||||
public EmployeeView? Delete(EmployeeDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var element = context.Employees.FirstOrDefault(rec => rec.Id == model.Id);
|
||||
if (element != null)
|
||||
{
|
||||
context.Employees.Remove(element);
|
||||
context.SaveChanges();
|
||||
return element.GetView();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
using CarShowroomContracts.StorageContracts;
|
||||
using CarShowroomDatabaseStorage.Entities;
|
||||
using CarShowroomDataModels.Dtos;
|
||||
using CarShowroomDataModels.SearchModel;
|
||||
using CarShowroomDataModels.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarShowroomDatabaseStorage.Storages
|
||||
{
|
||||
public class ServiceStorage : IServiceStorage
|
||||
{
|
||||
public List<ServiceView> GetFullList()
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Services
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<ServiceView> GetFilteredList(ServiceSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return new();
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Services
|
||||
.Where(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public ServiceView? GetElement(ServiceSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Services
|
||||
.FirstOrDefault(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
?.GetView();
|
||||
}
|
||||
|
||||
public ServiceView? Insert(ServiceDto model)
|
||||
{
|
||||
var newService = Service.Create(model);
|
||||
if (newService == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
context.Services.Add(newService);
|
||||
context.SaveChanges();
|
||||
return newService.GetView();
|
||||
}
|
||||
|
||||
public ServiceView? Update(ServiceDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var service = context.Services.FirstOrDefault(x => x.Id == model.Id);
|
||||
if (service == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
service.Update(model);
|
||||
context.SaveChanges();
|
||||
return service.GetView();
|
||||
}
|
||||
|
||||
public ServiceView? Delete(ServiceDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var element = context.Services.FirstOrDefault(rec => rec.Id == model.Id);
|
||||
if (element != null)
|
||||
{
|
||||
context.Services.Remove(element);
|
||||
context.SaveChanges();
|
||||
return element.GetView();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
using CarShowroomContracts.StorageContracts;
|
||||
using CarShowroomDatabaseStorage.Entities;
|
||||
using CarShowroomDataModels.Dtos;
|
||||
using CarShowroomDataModels.SearchModel;
|
||||
using CarShowroomDataModels.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarShowroomDatabaseStorage.Storages
|
||||
{
|
||||
public class MakeStorage : IMakeStorage
|
||||
{
|
||||
public List<MakeView> GetFullList()
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Makes
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<MakeView> GetFilteredList(MakeSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return new();
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Makes
|
||||
.Where(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public MakeView? GetElement(MakeSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Makes
|
||||
.FirstOrDefault(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
?.GetView();
|
||||
}
|
||||
|
||||
public MakeView? Insert(MakeDto model)
|
||||
{
|
||||
var newMake = Make.Create(model);
|
||||
if (newMake == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
context.Makes.Add(newMake);
|
||||
context.SaveChanges();
|
||||
return newMake.GetView();
|
||||
}
|
||||
|
||||
public MakeView? Update(MakeDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var make = context.Makes.FirstOrDefault(x => x.Id == model.Id);
|
||||
if (make == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
make.Update(model);
|
||||
context.SaveChanges();
|
||||
return make.GetView();
|
||||
}
|
||||
|
||||
public MakeView? Delete(MakeDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var element = context.Makes.FirstOrDefault(rec => rec.Id == model.Id);
|
||||
if (element != null)
|
||||
{
|
||||
context.Makes.Remove(element);
|
||||
context.SaveChanges();
|
||||
return element.GetView();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
using CarShowroomContracts.StorageContracts;
|
||||
using CarShowroomDatabaseStorage.Entities;
|
||||
using CarShowroomDataModels.Dtos;
|
||||
using CarShowroomDataModels.SearchModel;
|
||||
using CarShowroomDataModels.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarShowroomDatabaseStorage.Storages
|
||||
{
|
||||
public class ModelStorage : IModelStorage
|
||||
{
|
||||
public List<ModelView> GetFullList()
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Models
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<ModelView> GetFilteredList(ModelSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return new();
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Models
|
||||
.Where(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public ModelView? GetElement(ModelSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Models
|
||||
.FirstOrDefault(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
?.GetView();
|
||||
}
|
||||
|
||||
public ModelView? Insert(ModelDto model)
|
||||
{
|
||||
var newModel = Model.Create(model);
|
||||
if (newModel == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
context.Models.Add(newModel);
|
||||
context.SaveChanges();
|
||||
return newModel.GetView();
|
||||
}
|
||||
|
||||
public ModelView? Update(ModelDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var model = context.Models.FirstOrDefault(x => x.Id == model.Id);
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
model.Update(model);
|
||||
context.SaveChanges();
|
||||
return model.GetView();
|
||||
}
|
||||
|
||||
public ModelView? Delete(ModelDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var element = context.Models.FirstOrDefault(rec => rec.Id == model.Id);
|
||||
if (element != null)
|
||||
{
|
||||
context.Models.Remove(element);
|
||||
context.SaveChanges();
|
||||
return element.GetView();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
145
CarShowroom/CarShowroomDatabaseStorage/Storages/SaleStorage.cs
Normal file
145
CarShowroom/CarShowroomDatabaseStorage/Storages/SaleStorage.cs
Normal file
@ -0,0 +1,145 @@
|
||||
using CarShowroomContracts.StorageContracts;
|
||||
using CarShowroomDatabaseStorage.Entities;
|
||||
using CarShowroomDataModels.Dtos;
|
||||
using CarShowroomDataModels.SearchModel;
|
||||
using CarShowroomDataModels.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarShowroomDatabaseStorage.Storages
|
||||
{
|
||||
public class SaleStorage : ISaleStorage
|
||||
{
|
||||
public List<SaleView> GetFullList()
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Sales
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<SaleView> GetFilteredList(SaleSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return new();
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Sales
|
||||
.Where(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
.Select(x => x.GetView())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public SaleView? GetElement(SaleSearch model)
|
||||
{
|
||||
if (!model.Id.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
return context.Sales
|
||||
.FirstOrDefault(x => !model.Id.HasValue || x.Id == model.Id)
|
||||
?.GetView();
|
||||
}
|
||||
|
||||
public SaleView? Insert(SaleDto model)
|
||||
{
|
||||
var newSale = Sale.Create(model);
|
||||
if (newSale == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
using var context = new CarShowroomDatabase();
|
||||
context.Sales.Add(newSale);
|
||||
context.SaveChanges();
|
||||
return newSale.GetView();
|
||||
}
|
||||
|
||||
public SaleView? Update(SaleDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
using var transaction = context.Database.BeginTransaction();
|
||||
try
|
||||
{
|
||||
var sale = context.Sales
|
||||
.FirstOrDefault(rec => rec.Id == model.Id);
|
||||
if (sale == null)
|
||||
return null;
|
||||
sale.Update(model);
|
||||
context.SaveChanges();
|
||||
UpdateCarsAndServices(context, model, sale);
|
||||
transaction.Commit();
|
||||
return sale.GetView();
|
||||
}
|
||||
catch
|
||||
{
|
||||
transaction.Rollback();
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public SaleView? Delete(SaleDto model)
|
||||
{
|
||||
using var context = new CarShowroomDatabase();
|
||||
var element = context.Sales
|
||||
.FirstOrDefault(rec => rec.Id == model.Id);
|
||||
if (element != null)
|
||||
{
|
||||
context.Sales.Remove(element);
|
||||
context.SaveChanges();
|
||||
return element.GetView();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void UpdateCarsAndServices(CarShowroomDatabase context,
|
||||
SaleDto model, Sale entity)
|
||||
{
|
||||
var sale = context.Sales.First(x => x.Id == entity.Id);
|
||||
var saleCars = context.SaleCars
|
||||
.Where(rec => rec.SaleId == model.Id)
|
||||
.ToList();
|
||||
if (saleCars != null && sale.SaleCars.Count > 0)
|
||||
{
|
||||
context.SaleCars
|
||||
.RemoveRange(saleCars
|
||||
.Where(rec => !model.CarIds
|
||||
.Contains(rec.CarId)));
|
||||
context.SaveChanges();
|
||||
}
|
||||
foreach (var sc in model.CarIds)
|
||||
{
|
||||
context.SaleCars.Add(new SaleCar
|
||||
{
|
||||
Sale = sale,
|
||||
Car = context.Cars.First(x => x.Id == sc)
|
||||
});
|
||||
context.SaveChanges();
|
||||
}
|
||||
var saleServices = context.SaleServices
|
||||
.Where(rec => rec.SaleId == model.Id)
|
||||
.ToList();
|
||||
if (saleServices != null && sale.SaleServices.Count > 0)
|
||||
{
|
||||
context.SaleServices
|
||||
.RemoveRange(saleServices
|
||||
.Where(rec => !model.ServiceIds
|
||||
.Contains(rec.ServiceId)));
|
||||
context.SaveChanges();
|
||||
}
|
||||
foreach (var sc in model.ServiceIds)
|
||||
{
|
||||
context.SaleServices.Add(new SaleService
|
||||
{
|
||||
Sale = sale,
|
||||
Service = context.Services.First(x => x.Id == sc)
|
||||
});
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user