Esempio n. 1
0
        public async Task CompleteOrderAsync(int orderId)
        {
            var order = await _context.Orders.SingleAsync(o => o.Id == orderId);

            if (order.CompletedAt != null)
            {
                throw new AlreadyCompletedOrderException(orderId);
            }

            order.CompletedAt = DateTime.Now.Truncate();
            await _context.SaveChangesAsync();

            _updateService.SendDispatchOrderCompleted(orderId).Forget();
            _updateService.SendRestaurantsUpdated(new[] { order.RestaurantId }).Forget();
            _updateService.SendUserOrdersUpdated(new[] { orderId }, order.Username).Forget();
        }