Esempio n. 1
0
        private async void SaveOrderAsync()
        {
            if (SelectedClient == null)
            {
                ErrorMessage = "Не выбран клиент!";
                return;
            }
            if (OrderedBooks.IsNullOrEmpty())
            {
                ErrorMessage = "Необходимо добавить хотя бы одну книгу.";
                return;
            }
            using (StartOperation())
            {
                var saveOrderModel = new SaveOrderModel
                {
                    OrderedBooks = OrderedBooks,
                    BranchId     = _currentEmployee.BranchId,
                    ClientId     = SelectedClient.Id,
                    EmployeeId   = _currentEmployee.Id,
                    OrderDate    = DateTime.Now
                };

                await SaveOrderOperation.ExecuteAsync(saveOrderModel);
                await Close(true);
            }
        }
Esempio n. 2
0
        private async void SaveOrderAsync()
        {
            if (SelectedClient == null)
            {
                ErrorMessage = "Выберите клиента";
                return;
            }

            if (OrderedBooks.IsNullOrEmpty())
            {
                ErrorMessage = "Выберите книги";
                return;
            }

            using (StartOperation())
            {
                var saveOrderModel = new SaveOrderModel
                {
                    BranchId     = _currentEmployee.BranchId,
                    ClientId     = SelectedClient.Id,
                    EmployeeId   = _currentEmployee.Id,
                    OrderDate    = DateTime.Now,
                    OrderedBooks = OrderedBooks
                };

                await SaveOrderOperation.ExecuteAsync(saveOrderModel);
                await Close(true);
            }
        }
Esempio n. 3
0
        public async Task <bool> ExecuteAsync(SaveOrderModel orderModel)
        {
            try
            {
                return(await PostAsync <bool>("orders", orderModel));
            }
            catch (Exception exc)
            {
                Debug.WriteLine(exc);
            }

            return(false);
        }
Esempio n. 4
0
        public async Task <bool> ExecuteAsync(SaveOrderModel model)
        {
            try
            {
                var result = await PostAsync <bool>("orders", model);

                return(result);
            }
            catch (Exception exc)
            {
                Debug.WriteLine(exc);
            }

            return(false);
        }
        public async Task <bool> ExecuteAsync(SaveOrderModel orderModel)
        {
            using (var db = new BookStoreDbContext())
            {
                var order = new Order
                {
                    ClientId   = orderModel.ClientId,
                    EmployeeId = orderModel.EmployeeId,
                    OrderDate  = orderModel.OrderDate,
                    TotalConst = orderModel.TotalCost
                };
                db.Orders.Add(order);

                foreach (var bookModel in orderModel.OrderedBooks)
                {
                    db.OrderedBooks.Add(
                        new OrderedBook
                    {
                        Amount = bookModel.Amount,
                        BookId = bookModel.BookId,
                        Order  = order,
                        Price  = bookModel.Price
                    });
                }

                var bookIds = orderModel.OrderedBooks.Select(ob => ob.BookId).ToArray();

                var bookAmounts = await db.BookAmounts
                                  .Where(ba => ba.BranchId == orderModel.BranchId)
                                  .Where(ba => bookIds.Contains(ba.BookId))
                                  .ToListAsync();

                foreach (var bookAmount in bookAmounts)
                {
                    var orderAmount = orderModel.OrderedBooks
                                      .First(ob => ob.BookId == bookAmount.BookId)
                                      .Amount;
                    bookAmount.Amount -= orderAmount;
                }

                await db.SaveChangesAsync();

                return(true);
            }
        }
        public async Task <bool> ExecuteAsync(SaveOrderModel orderModel)
        {
            using (var db = new BookStoreDbContext())
            {
                var order = new Order
                {
                    ClientId   = orderModel.ClientId,
                    EmployeeId = orderModel.EmployeeId,
                    OrdeDate   = orderModel.OrderDate,
                    TotalConst = orderModel.TotalCost,
                };
                db.Orders.Add(order);

                foreach (var saveOrderedBookModel in orderModel.OrderedBooks)
                {
                    db.OrderedBooks.Add(new OrderedBook
                    {
                        Amount = saveOrderedBookModel.Amount,
                        BookId = saveOrderedBookModel.BookId,
                        Price  = saveOrderedBookModel.Price,
                        Order  = order
                    });
                }

                var books = orderModel.OrderedBooks
                            .ToDictionary(ob => ob.BookId, ob => ob.Amount);

                var bookAmounts = await db.BookAmounts
                                  .Where(ba => ba.BranchId == orderModel.BranchId)
                                  .Where(ba => books.Keys.Contains(ba.BookId))
                                  .ToListAsync();

                foreach (var bookAmount in bookAmounts)
                {
                    bookAmount.Amount -= books[bookAmount.BookId];
                }

                await db.SaveChangesAsync();

                return(true);
            }
        }
Esempio n. 7
0
 public async Task <IActionResult> SaveOrder(SaveOrderModel model)
 {
Esempio n. 8
0
 public async Task <bool> PostOrderAsync(SaveOrderModel model)
 {
     return(await SaveOrderOperation.ExecuteAsync(model));
 }