public async Task <Unit> Handle(UpdateOrderCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { NotifyValidationErrors(message); return(await Unit.Task); } var order = new Order(Guid.NewGuid(), message.UserId, message.Address, message.OrderItens, message.Observation, message.OrderStatusId); var existingOrder = await _orderRepository.GetOpenOrderByUser(order.UserId); if (existingOrder != null && existingOrder.Id != order.Id) { if (!existingOrder.Equals(order)) { await Bus.RaiseEvent(new DomainNotification(message.MessageType, "Já existe um pedido em aberto para este usuário")); return(await Unit.Task); } } _orderRepository.Update(order); if (Commit()) { await Bus.RaiseEvent(new OrderUpdatedEvent(order.Id, order.Observation, order.OrderItens, order.UserId, order.Address, order.OrderStatusId)); } return(await Unit.Task); }
public Task <bool> Handle(UpdateOrderCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { NotifyValidationErrors(message); return(Task.FromResult(false)); } var order = new Order(message.Id, message.Pizza); var existingOrder = _orderRepository.GetById(order.Id); if (existingOrder != null && existingOrder.Id != order.Id) { if (!existingOrder.Equals(order)) { Bus.RaiseEvent(new DomainNotification(message.MessageType, "Already exists.")); return(Task.FromResult(false)); } } _orderRepository.Update(order); if (Commit()) { Bus.RaiseEvent(new OrderUpdatedEvent(order.Id, order.Pizza)); } return(Task.FromResult(true)); }
public Task <bool> Handle(UpdateOrderCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { NotifyValidationErrors(message); return(Task.FromResult(false)); } var order = new Order(message.Id, message.Price, message.StockId, message.Quantity, message.Commission); _orderRepository.Update(order); if (Commit()) { _bus.RaiseEvent(new OrderUpdatedEvent(order.Id, order.StockId, order.Price, order.Quantity, order.Commission)); } return(Task.FromResult(true)); }