Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }