public static string GenerateTicket(Order order) { using (PartShopDbContext db = new PartShopDbContext()) { double sum = 0; var orderParts = from o in db.Orders join op in db.OrderedParts on o.OrderId equals op.OrderId join p in db.Parts on op.PartId equals p.PartId where o.OrderId == order.OrderId select new { Name = p.Name, Amount = op.Amount, Price = p.Price, Mark = p.Mark.MarkName }; StringBuilder body = new StringBuilder(); body.Append($"Чек заказа {order.OrderId} из магазина автозапастей AutoLight"); body.Append("\n" + order.OrderDate); body.Append("\n-----------------------------------"); foreach (var p in orderParts) { body.Append($"\nЗапчасть: {p.Name}, Количество: {p.Amount}, Цена: {p.Price}, Для авто: {p.Mark}"); sum += p.Price * p.Amount; } body.Append("\n-----------------------------------"); body.Append($"\nДоставка: {order.Delivery.Name}"); body.Append($"\nИтоговая сумма: {sum + order.Delivery.Price}"); body.Append("\n-----------------------------------"); body.Append("\nСпасибо за заказ в нашем магазине!"); return(body.ToString()); } }
public SearchViewModel() { using (PartShopDbContext db = new PartShopDbContext()) { Parts = new ObservableCollection <Part>(db.Parts); Categories = new ObservableCollection <Category>(db.Categories); Marks = new ObservableCollection <Mark>(db.Marks); } }
public void AddOrder(ObservableCollection <Part> parts) { using (PartShopDbContext db = new PartShopDbContext()) { try { if (Card.Balance < Summary) { throw new Exception("Недостаточно средств на счете"); } else if (selectedDelivery == null) { throw new Exception("Должна быть выбрана доставка"); } Order order = new Order(); order.OrderDate = DateTime.Now; order.OrderState = Resources.waiting; List <OrderedParts> details = new List <OrderedParts>(); foreach (Part i in Parts) { if (i.Amount > db.Parts.Where(x => x.PartId == i.PartId).FirstOrDefault().Quantity) { throw new Exception($"Товаров {i.Name} недостаточно на складе для заказа"); } details.Add(new OrderedParts() { OrderId = order.OrderId, PartId = i.PartId, Amount = i.Amount }); db.Parts.Where(x => x.PartId == i.PartId).FirstOrDefault().Quantity -= i.Amount; } order.Parts = details; order.UserId = Settings.Default.UserId; order.DeliveryId = selectedDelivery.DeliveryId; db.Orders.Add(order); Card.Balance -= Summary; Parts.Clear(); Summary = 0; db.SaveChanges(); ConfirmOrderViewModel.orderId = order.OrderId; Singleton.getInstance(null).MainViewModel.CurrentViewModel = new ConfirmOrderViewModel(); } catch (Exception e) { ErrorMessage = e.Message; } } }
public HomeViewModel() { using (PartShopDbContext db = new PartShopDbContext()) { try { Parts = new ObservableCollection <Part>(db.Parts); PartsForSearch = new ObservableCollection <Part>(db.Parts); categories = new ObservableCollection <Category>(db.Categories); Marks = new ObservableCollection <Mark>(db.Marks); } catch (Exception e) { MessageBox.Show(e.Message); } } }