예제 #1
0
        private async Task <Order> AddDessertToNewOrderAsync(string userId, string dessertId, int quantity, decimal dessertPrice, Order order)
        {
            var clientAddress = await this.usersService.GetUserAddressByIdAsync(userId);

            order = new Order()
            {
                ClientId        = userId,
                DeliveryAddress = clientAddress,
            };

            var dessertOrder = new DessertOrder()
            {
                DessertId = dessertId,
                OrderId   = order.Id,
                Quantity  = quantity,
            };

            order.DessertOrders.Add(dessertOrder);
            order.TotalPrice += dessertPrice * quantity;
            order.ReviewsCount++;

            await this.ordersRepository.AddAsync(order);

            return(order);
        }
예제 #2
0
        private async Task <Order> AddDessertToAlreadyExistingOrderAsync(string userId, string dessertId, int quantity, decimal dessertPrice, Order order)
        {
            order = await this.ordersRepository
                    .All()
                    .FirstOrDefaultAsync(o => o.ClientId == userId && o.OrderStatus == OrderStatus.NotFinish);

            var dessertOrder = new DessertOrder()
            {
                DessertId = dessertId,
                OrderId   = order.Id,
                Quantity  = quantity,
            };

            order.DessertOrders.Add(dessertOrder);
            order.TotalPrice += dessertPrice * quantity;
            order.ReviewsCount++;

            this.ordersRepository.Update(order);

            return(order);
        }
예제 #3
0
 public async Task DeleteAsync(DessertOrder dessertOrder)
 {
     this.dessertOrdersRepository.Delete(dessertOrder);
     await this.dessertOrdersRepository.SaveChangesAsync();
 }