コード例 #1
0
        public Task <bool> Handle(UpdateExpedidorCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var expedidor       = new Expedidor(Guid.NewGuid(), message.CompanhiaNome, message.Telefone);
            var expedidorExiste = _expedidorRepository.GetByNomeCompanhia(expedidor.CompanhiaNome);

            if (expedidorExiste != null && expedidorExiste.Id != expedidor.Id)
            {
                if (!expedidorExiste.Equals(expedidor))
                {
                    Bus.RaiseEvent(new DomainNotification(message.MessageType, "O expedidoro já foi recebido"));
                }
                return(Task.FromResult(false));
            }

            _expedidorRepository.Update(expedidor);
            if (Commit())
            {
                Bus.RaiseEvent(new ExpedidorUpdatedEvent(expedidor.Id, expedidor.CompanhiaNome, expedidor.Telefone));
            }
            return(Task.FromResult(true));
        }
コード例 #2
0
        public Task <bool> Handle(RegisterNewExpedidorCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var expedidor = new Expedidor(Guid.NewGuid(), message.CompanhiaNome, message.Telefone);

            if (_expedidorRepository.GetByNomeCompanhia(expedidor.CompanhiaNome) != null)
            {
                Bus.RaiseEvent(new DomainNotification(message.MessageType, "O nome deste expedidro já exixte"));
                return(Task.FromResult(false));
            }
            _expedidorRepository.Add(expedidor);

            if (Commit())
            {
                Bus.RaiseEvent(new ExpedidorRegisteredEvent(expedidor.Id, expedidor.CompanhiaNome, expedidor.Telefone));
            }
            return(Task.FromResult(true));
        }