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(); }
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(); }