Exemple #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();
        }
Exemple #2
0
        public async Task RateOrderAsync(int orderId, byte score)
        {
            var order = await _context.Orders.SingleAsync(o => o.Id == orderId);

            await _context.Ratings.AddAsync(new Rating
            {
                Username     = Context.User.GetSub(),
                CreatedAt    = DateTime.Now.Truncate(),
                Score        = score,
                RestaurantId = order.RestaurantId,
                OrderId      = orderId
            });

            await _context.SaveChangesAsync();

            _updateService.SendUserOrdersUpdated(new[] { orderId }, Context.User.GetSub()).Forget();
            _updateService.SendRestaurantsUpdated(new [] { order.RestaurantId }).Forget();
        }