protected override List <T> GetList <T>() { using (var context = new SecureShopDatabase()) { return(context.Set <T>().ToList()); } }
public void Delete(KomlectConcreteBindingModel model) { using (var context = new SecureShopDatabase()) { using (var transaction = context.Database.BeginTransaction()) { try { // удаяем записи по компонентам при удалении изделия context.KomlectComponents.RemoveRange(context.KomlectComponents.Where(rec => rec.KomlectId == model.Id)); Komlect element = context.Komlects.FirstOrDefault(rec => rec.Id == model.Id); if (element != null) { context.Komlects.Remove(element); context.SaveChanges(); } else { throw new Exception("Элемент не найден"); } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } }
public List <OrderViewModel> Read(OrderBindingModel model) { using (var source = new SecureShopDatabase()) { return(source.Orders.Where( rec => model == null || (model.ImplementerId.HasValue && rec.ImplementerId == model.ImplementerId && rec.Status == OrderStatus.Выполняется) || (rec.Id == model.Id && model.Id.HasValue) || (model.FreeOrders.HasValue && model.FreeOrders.Value && !rec.ImplementerId.HasValue) || (model.DateFrom.HasValue && model.DateTo.HasValue && rec.DateCreate >= model.DateFrom && rec.DateCreate <= model.DateTo) || (model.ClientId.HasValue && rec.ClientId == model.ClientId)).Include(rec => rec.Komlect) .Include(rec => rec.Komlect) .Include(rec => rec.Client) .Include(rec => rec.Implementer) .Select(rec => new OrderViewModel { Id = rec.Id, KomlectId = rec.KomlectId, ImplementerId = rec.ImplementerId, ClientId = rec.ClientId, DateCreate = rec.DateCreate, DateImplement = rec.DateImplement, Status = rec.Status, Count = rec.Count, Sum = rec.Sum, ClientFIO = rec.Client.ClientFIO, KomlectName = rec.Komlect.KomlectName, ImplementerFIO = rec.ImplementerId.HasValue ? rec.Implementer.ImplementerFIO : string.Empty }) .ToList()); } }
public void CreateOrUpdate(ComponentBindingModel model) { using (var context = new SecureShopDatabase()) { Component element = context.Components.FirstOrDefault(rec => rec.ComponentName == model.ComponentName && rec.Id != model.Id); if (element != null) { throw new Exception("Уже есть компонент с таким названием"); } if (model.Id.HasValue) { element = context.Components.FirstOrDefault(rec => rec.Id == model.Id); if (element == null) { throw new Exception("Элемент не найден"); } } else { element = new Component(); context.Components.Add(element); } element.ComponentName = model.ComponentName; context.SaveChanges(); } }
public void CreateOrUpdate(OrderBindingModel model) { using (var context = new SecureShopDatabase()) { Order element; if (model.Id.HasValue) { element = context.Orders.FirstOrDefault(rec => rec.Id == model.Id); if (element == null) { throw new Exception("Элемент не найден"); } } else { element = new Order(); context.Orders.Add(element); } element.KomlectId = model.KomlectId == 0 ? element.KomlectId : model.KomlectId; element.ClientId = model.ClientId == null ? element.ClientId : (int)model.ClientId; element.ImplementerId = model.ImplementerId; element.Count = model.Count; element.Sum = model.Sum; element.Status = model.Status; element.DateCreate = model.DateCreate; element.DateImplement = model.DateImplement; context.SaveChanges(); } }
public void CreateOrUpdate(ClientBindingModel model) { using (var context = new SecureShopDatabase()) { Client element = context.Clients.FirstOrDefault(rec => rec.Email == model.Email && rec.Id != model.Id); if (element != null) { throw new Exception("Уже есть клиент с таким логином"); } if (model.Id.HasValue) { element = context.Clients.FirstOrDefault(rec => rec.Id == model.Id); if (element == null) { throw new Exception("Элемент не найден"); } } else { element = new Client(); context.Clients.Add(element); } element.Email = model.Email; element.ClientFIO = model.ClientFIO; element.Password = model.Password; context.SaveChanges(); } }
protected override List <PropertyInfo> GetFullList() { using (var context = new SecureShopDatabase()) { Type type = context.GetType(); return(type.GetProperties().Where(x => x.PropertyType.FullName.StartsWith("Microsoft.EntityFrameworkCore.DbSet")).ToList()); } }
public List <ComponentViewModel> Read(ComponentBindingModel model) { using (var context = new SecureShopDatabase()) { return(context.Components .Where(rec => model == null || rec.Id == model.Id) .Select(rec => new ComponentViewModel { Id = rec.Id, ComponentName = rec.ComponentName }) .ToList()); } }
public List <MessageInfoViewModel> Read(MessageInfoBindingModel model) { using (var context = new SecureShopDatabase()) { return(context.MessageInfoes .Where(rec => model == null || rec.ClientId == model.ClientId) .Select(rec => new MessageInfoViewModel { MessageId = rec.MessageId, SenderName = rec.SenderName, DateDelivery = rec.DateDelivery, Subject = rec.Subject, Body = rec.Body }) .ToList()); } }
public void Delete(ComponentBindingModel model) { using (var context = new SecureShopDatabase()) { Component element = context.Components.FirstOrDefault(rec => rec.Id == model.Id); if (element != null) { context.Components.Remove(element); context.SaveChanges(); } else { throw new Exception("Элемент не найден"); } } }
public List <KomlectViewModel> Read(KomlectConcreteBindingModel model) { using (var context = new SecureShopDatabase()) { return(context.Komlects .Where(rec => model == null || rec.Id == model.Id) .ToList() .Select(rec => new KomlectViewModel { Id = rec.Id, KomlectName = rec.KomlectName, Price = rec.Price, KomlectComponents = context.KomlectComponents .Include(recPC => recPC.Component) .Where(recPC => recPC.KomlectId == rec.Id) .ToDictionary(recPC => recPC.ComponentId, recPC => (recPC.Component?.ComponentName, recPC.Count)) })
public List <ImplementerViewModel> Read(ImplementerBindingModel model) { using (var context = new SecureShopDatabase()) { return(context.Implementers .Where( rec => model == null || rec.Id == model.Id ) .Select(rec => new ImplementerViewModel { Id = rec.Id, ImplementerFIO = rec.ImplementerFIO, WorkingTime = rec.WorkingTime, PauseTime = rec.PauseTime }) .ToList()); } }
public void CreateOrUpdate(ImplementerBindingModel model) { using (var context = new SecureShopDatabase()) { Implementer element = context.Implementers.FirstOrDefault(rec => rec.Id == model.Id); if (element == null) { element = new Implementer(); context.Implementers.Add(element); } element.ImplementerFIO = model.ImplementerFIO; element.WorkingTime = model.WorkingTime; element.PauseTime = model.PauseTime; context.SaveChanges(); } }
public List <ClientViewModel> Read(ClientBindingModel model) { using (var context = new SecureShopDatabase()) { return(context.Clients .Where( rec => model == null || rec.Id == model.Id || rec.Email == model.Email && rec.Password == model.Password ) .Select(rec => new ClientViewModel { Id = rec.Id, ClientFIO = rec.ClientFIO, Email = rec.Email, Password = rec.Password }) .ToList()); } }
public void Create(MessageInfoBindingModel model) { using (var context = new SecureShopDatabase()) { MessageInfo element = context.MessageInfoes.FirstOrDefault(rec => rec.MessageId == model.MessageId); if (element != null) { throw new Exception("Уже есть письмо с таким идентификатором"); } int?clientId = context.Clients.FirstOrDefault(rec => rec.Email == model.FromMailAddress)?.Id; context.MessageInfoes.Add(new MessageInfo { MessageId = model.MessageId, ClientId = clientId, SenderName = model.FromMailAddress, DateDelivery = model.DateDelivery, Subject = model.Subject, Body = model.Body }); context.SaveChanges(); } }
public void CreateOrUpdate(KomlectConcreteBindingModel model) { using (var context = new SecureShopDatabase()) { using (var transaction = context.Database.BeginTransaction()) { try { Komlect element = context.Komlects.FirstOrDefault(rec => rec.KomlectName == model.KomlectName && rec.Id != model.Id); if (element != null) { throw new Exception("Уже есть изделие с таким названием"); } if (model.Id.HasValue) { element = context.Komlects.FirstOrDefault(rec => rec.Id == model.Id); if (element == null) { throw new Exception("Элемент не найден"); } } else { element = new Komlect(); context.Komlects.Add(element); } element.KomlectName = model.KomlectName; element.Price = model.Price; context.SaveChanges(); if (model.Id.HasValue) { var KomlectComponents = context.KomlectComponents.Where(rec => rec.KomlectId == model.Id.Value).ToList(); // удалили те, которых нет в модели context.KomlectComponents.RemoveRange(KomlectComponents.Where(rec => !model.KomlectComponents.ContainsKey(rec.ComponentId)).ToList()); context.SaveChanges(); // обновили количество у существующих записей foreach (var updateComponent in KomlectComponents) { updateComponent.Count = model.KomlectComponents[updateComponent.ComponentId].Item2; model.KomlectComponents.Remove(updateComponent.ComponentId); } context.SaveChanges(); } // добавили новые foreach (var pc in model.KomlectComponents) { context.KomlectComponents.Add(new KomlectComponent { KomlectId = element.Id, ComponentId = pc.Key, Count = pc.Value.Item2 }); context.SaveChanges(); } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } }