using LawFirmContracts.BindingModels; using LawFirmContracts.SearchModels; using LawFirmContracts.StorageContracts; using LawFirmContracts.ViewModels; using LawFirmDatabase.Models; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LawFirmDatabase.Implements { public class CaseServiceStorage : ICaseServiceStorage { public List GetFullList() { using var context = new LawFirmDBContext(); return context.CaseServices .Include(x => x.Case) .Select(x => x.GetViewModel) .ToList(); } public List GetFilteredList(CaseServiceSearchModel model) { using var context = new LawFirmDBContext(); return context.CaseServices .Where(x => x.Id == model.Id) .Include(x => x.Case) .Select(x => x.GetViewModel) .ToList(); } public CaseServiceViewModel? GetElement(CaseServiceSearchModel model) { if (model == null) { return null; } using var context = new LawFirmDBContext(); if (model.Id.HasValue) { return context.CaseServices .Include(x => x.Case) .FirstOrDefault(x => x.Id == model.Id)?.GetViewModel; } return null; } public CaseServiceViewModel? Insert(CaseServiceBindingModel model) { using var context = new LawFirmDBContext(); var newCaseService = CaseService.Create(context, model); if (newCaseService != null) { context.CaseServices.Add(newCaseService); context.SaveChanges(); return newCaseService.GetViewModel; } return null; } public CaseServiceViewModel? Update(CaseServiceBindingModel model) { using var context = new LawFirmDBContext(); var CaseService = context.CaseServices.FirstOrDefault(x => x.Id == model.Id); if (CaseService == null) { return null; } CaseService.Update(context, model); context.SaveChanges(); return CaseService.GetViewModel; } public CaseServiceViewModel? Delete(CaseServiceBindingModel model) { using var context = new LawFirmDBContext(); var CaseService = context.CaseServices.FirstOrDefault(x => x.Id == model.Id); if (CaseService == null) { return null; } context.CaseServices.Remove(CaseService); context.SaveChanges(); return CaseService.GetViewModel; } } }