コード例 #1
0
        public void Handle(UpdateAirplaneCommand message)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return;
            }

            var airplane = _airplaneRepository.Get(message.Id);

            if (airplane == null)
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Aeronave não encontrada"));
                return;
            }

            if (_airplaneRepository.Find(a => a.Code == message.Code && a.Id != message.Id).Any())
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Código já cadastrado"));
                return;
            }

            airplane.SetCode(message.Code);
            airplane.SetModel(message.Model);
            airplane.SetNumberOfPassengers(message.NumberOfPassengers);

            _airplaneRepository.Update(airplane);

            Commit();
        }
コード例 #2
0
        public void Handle(AirplaneUpdateCommand message)
        {
            if (!AirplaneExists(message.Airplane.Id, message.MessageType))
            {
                return;
            }

            // Validação de negocio
            // Nome Igual X

            Airplane airplane = message.Airplane;

            if (!AirplaneValid(airplane))
            {
                return;
            }

            airplane.SetDateUpdate();
            _airplaneRepository.Update(airplane);

            if (Commit())
            {
                // _bus.RaiseEvent(new AirplaneUpdateEvent(message.Airplane));
            }
        }
コード例 #3
0
        public async Task <ISingleResult <Airplane> > Execute(Airplane entity)
        {
            try
            {
                var result = await _validator.ValidarEdicao(entity);

                if (!result.Sucesso)
                {
                    return(result);
                }

                var obj = result.Data;

                HydrateValues(obj, entity);

                _repository.Update(obj);

                var sucesso = await Commit();
            }
            catch (Exception ex)
            {
                return(new SingleResult <Airplane>(ex));
            }

            return(new EdicaoResult <Airplane>());
        }
コード例 #4
0
        public async Task Update(Airplane entity)
        {
            if (!ExecuteValidation(new AirplaneValidation(), entity))
            {
                return;
            }

            await _repository.Update(entity);
        }
コード例 #5
0
        public void Update(AirplaneDto airplane)
        {
            var ap = _repository.GetById(airplane.Id);

            if (ap == null)
            {
                throw new Exception(ExceptionConstants.AIRPLANE_NOT_FOUND);
            }

            _repository.Update(ap);
        }
コード例 #6
0
        public async Task Salvar(Airplane aviao)
        {
            if (aviao.Id == 0)
            {
                await _repository.Create(aviao);
            }
            else
            {
                await _repository.Update(aviao);
            }

            await _repository.SaveChanges();
        }
コード例 #7
0
        public Task <Unit> Handle(NewAirplaneCommand command)
        {
            if (!command.IsValid())
            {
                command.ValidationResult.Errors.ToList().ForEach(error => _domainNotificationHandler.Handle(new DomainNotification(command.GetType().ToString(), error.ErrorMessage)));
                return(Unit.Task);
            }

            Airplane airplane = new Airplane(command.Airplane.id, command.Airplane.CodigoAviao, command.Airplane.Modelo, command.Airplane.QtdPassageiros);

            _airplaneRepository.Update(airplane);

            return(Unit.Task);
        }
コード例 #8
0
        public void Editar(AirplaneModel airplaneModel)
        {
            if (!ValidarAirPlane(airplaneModel))
            {
                return;
            }

            var atual = _airplaneRepo.GetById(airplaneModel.Id);

            airplaneModel.DataCriacao = atual.DataCriacao; //Todo: Alterar essa forma de fazer

            _airplaneRepo.Update(airplaneModel);

            Commit();
        }