public void CreateOrUpdate(OrderBindingModel model) { using (var context = new ElectronicsShopDatabase()) { Order tempOrder = model.Id.HasValue ? null : new Order(); if (model.Id.HasValue) { tempOrder = context.Orders.FirstOrDefault(rec => rec.Id == model.Id); } using (var transaction = context.Database.BeginTransaction()) { try { if (model.Id.HasValue) { if (tempOrder == null) { throw new Exception("Элемент не найден"); } CreateModel(model, tempOrder); context.SaveChanges(); } else { Order order = CreateModel(model, tempOrder); context.Orders.Add(order); context.SaveChanges(); var groupProducts = model.Products .GroupBy(rec => rec.ProductId) .Select(rec => new { ProductId = rec.Key, Count = rec.Sum(r => r.Count) }); foreach (var groupProduct in groupProducts) { context.OrderProducts.Add(new OrderProduct { OrderId = order.Id, ProductId = groupProduct.ProductId, Count = groupProduct.Count }); context.SaveChanges(); } } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } }
public void CreateOrUpdate(ProductBindingModel model) { using (var context = new ElectronicsShopDatabase()) { Product tempProduct = model.Id.HasValue ? null : new Product(); if (model.Id.HasValue) { tempProduct = context.Products.FirstOrDefault(rec => rec.Id == model.Id); } if (model.Id.HasValue) { if (tempProduct == null) { throw new Exception("Элемент не найден"); } CreateModel(model, tempProduct); } else { context.Products.Add(CreateModel(model, tempProduct)); } context.SaveChanges(); } }
protected override List <T> GetList <T>() { using (var context = new ElectronicsShopDatabase()) { return(context.Set <T>().ToList()); } }
protected override List <PropertyInfo> GetFullList() { using (var context = new ElectronicsShopDatabase()) { Type type = context.GetType(); return(type.GetProperties().Where(x => x.PropertyType.FullName.StartsWith("Microsoft.EntityFrameworkCore.DbSet")).ToList()); } }
private Product CreateModel(ProductBindingModel model, Product product) { using (var context = new ElectronicsShopDatabase()) { product.Name = model.Name; product.Desc = model.Desc; product.Price = model.Price; product.ProductCategory = model.ProductCategory; return(product); } }
private Client CreateModel(ClientBindingModel model, Client client) { using (var context = new ElectronicsShopDatabase()) { client.Login = model.Login; client.Password = model.Password; client.Email = model.Email; client.Phone = model.Phone; client.Blocked = model.Blocked; return(client); } }
private Payment CreateModel(PaymentBindingModel model, Payment payment) { using (var context = new ElectronicsShopDatabase()) { payment.OrderId = model.OrderId; payment.ClientId = model.ClientId; payment.Account = model.Account; payment.Date = model.Date; payment.Sum = model.Sum; return(payment); } }
private Order CreateModel(OrderBindingModel model, Order order) { using (var context = new ElectronicsShopDatabase()) { order.ClientId = model.ClientId; order.Date = model.Date.Value; order.Status = model.Status; order.Shipping = model.Shipping; order.Address = model.Address; order.Sum = model.Sum; return(order); } }
static private ProductViewModel CreateViewModel(Product product) { using (var context = new ElectronicsShopDatabase()) { return(new ProductViewModel { Id = product.Id, Name = product.Name, Desc = product.Desc, Price = product.Price, ProductCategory = product.ProductCategory }); } }
static private ClientViewModel CreateViewModel(Client client) { using (var context = new ElectronicsShopDatabase()) { return(new ClientViewModel { Id = client.Id, Login = client.Login, Password = client.Password, Email = client.Email, Phone = client.Phone, Blocked = client.Blocked }); } }
static private PaymentViewModel CreateViewModel(Payment payment) { using (var context = new ElectronicsShopDatabase()) { return(new PaymentViewModel { Id = payment.Id, OrderId = payment.OrderId, ClientId = payment.ClientId, ClientLogin = context.Clients.Where(rec => rec.Id == payment.ClientId).FirstOrDefault().Login, Account = payment.Account, Date = payment.Date, Sum = payment.Sum }); } }
public void Delete(ProductBindingModel model) { using (var context = new ElectronicsShopDatabase()) { Product element = context.Products.FirstOrDefault(rec => rec.Id == model.Id.Value); if (element != null) { context.Products.Remove(element); context.SaveChanges(); } else { throw new Exception("Элемент не найден"); } } }
public List <PaymentViewModel> Read(PaymentBindingModel model) { using (var context = new ElectronicsShopDatabase()) { List <PaymentViewModel> result = new List <PaymentViewModel>(); if (model != null) { result.AddRange(context.Payments .Where(rec => rec.Id == model.Id || rec.OrderId.Equals(model.OrderId)) .Select(rec => CreateViewModel(rec))); } else { result.AddRange(context.Payments.Select(rec => CreateViewModel(rec))); } return(result); } }
static private OrderViewModel CreateViewModel(Order order) { using (var context = new ElectronicsShopDatabase()) { var products = context.OrderProducts .Where(rec => rec.OrderId == order.Id) .Include(rec => rec.Product) .Select(rec => new OrderProductViewModel { Id = rec.Id, OrderId = rec.OrderId, ProductId = rec.ProductId, Count = rec.Count }).ToList(); foreach (var product in products) { var productData = context.Products.Where(rec => rec.Id == product.ProductId).FirstOrDefault(); if (productData != null) { product.Name = productData.Name; product.Desc = productData.Desc; product.Price = productData.Price; product.ProductCategory = productData.ProductCategory; } } return(new OrderViewModel { Id = order.Id, ClientId = order.ClientId, Date = order.Date, Status = order.Status, Shipping = order.Shipping, Address = order.Address, Sum = order.Sum, SumPaid = context.Payments.Where(rec => rec.OrderId == order.Id).Select(rec => rec.Sum).Sum(), Products = products }); } }
public List <ProductViewModel> Read(ProductBindingModel model) { using (var context = new ElectronicsShopDatabase()) { List <ProductViewModel> result = new List <ProductViewModel>(); if (model != null) { result.AddRange(context.Products .Where(rec => rec.Id == model.Id || rec.Name == model.Name || (model.Name == null && model.Id == null && rec.ProductCategory == model.ProductCategory)) .Select(rec => CreateViewModel(rec))); } else { result.AddRange(context.Products.Select(rec => CreateViewModel(rec))); } return(result); } }
public List <OrderViewModel> Read(OrderBindingModel model) { using (var context = new ElectronicsShopDatabase()) { List <OrderViewModel> result = new List <OrderViewModel>(); if (model != null) { result.AddRange(context.Orders .Where(rec => rec.Id == model.Id || rec.ClientId == model.ClientId && (model.Date == null && model.DateTo == null || rec.Date >= model.Date && rec.Date <= model.DateTo)) .Select(rec => CreateViewModel(rec))); } else { result.AddRange(context.Orders.Select(rec => CreateViewModel(rec))); } return(result); } }
public List <ClientViewModel> Read(ClientBindingModel model) { using (var context = new ElectronicsShopDatabase()) { List <ClientViewModel> result = new List <ClientViewModel>(); if (model != null) { result.AddRange(context.Clients .Where(rec => (rec.Id == model.Id) || ((rec.Login == model.Login || rec.Email == model.Email) && (model.Password == null || rec.Password == model.Password))) .Select(rec => CreateViewModel(rec))); } else { result.AddRange(context.Clients.Select(rec => CreateViewModel(rec))); } return(result); } }