예제 #1
0
        public override Task Handle(Domain.Events.VeiculoDevolvido notification, CancellationToken cancellationToken)
        {
            var aluguel = _aluguelRepository.ObterPorId(notification.AluguelId);

            aluguel.SinalizarVeiculoDevolvido(notification.DataHoraDevolucao);
            _aluguelRepository.Update(aluguel);

            return(Task.CompletedTask);
        }
        public JsonResult AtualizarAluguel(AluguelAtualizaSolicitacaoViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Aluguel a = new Aluguel();

                    a.IdAluguel    = model.IdAluguel;
                    a.DataAlguel   = model.DataAluguel;
                    a.HoraInicio   = model.HorInicio;
                    a.HoraFim      = model.HoraFim;
                    a.Descricao    = model.DescricaoEvento;
                    a.IdEspaco     = model.IdEspaco;
                    a.IdUsuario    = model.IdUsuario;
                    a.ValorAluguel = 0;
                    a.FlCancelado  = 0;
                    a.FlVerificado = 0;

                    repository.Update(a);

                    return(Json("Aluguel atualizado com sucesso!"));
                }
                catch (Exception e)
                {
                    return(Json($"Ocorreu um erro:{e.Message}"));
                }
            }
            else
            {
                Hashtable erros = new Hashtable();

                foreach (var m in ModelState)
                {
                    if (m.Value.Errors.Count > 0)
                    {
                        erros[m.Key] = m.Value.Errors.Select(e => e.ErrorMessage);
                    }
                }

                return(Json(erros));
            }
        }
예제 #3
0
        public override async Task <CommandResult> Handle(FecharAluguelCommand request, CancellationToken cancellationToken)
        {
            var aluguel = _aluguelRepository.ObterPorId(request.AluguelId);

            if (aluguel.EstaEncerrado)
            {
                return(CommandResult.Error($"O Aluguel {aluguel.NumeroControle} já está fechado."));
            }

            aluguel.Encerrar();
            _aluguelRepository.Update(aluguel);
            await aluguel.RaiseEvents(_mediator);

            return(CommandResult.Ok());
        }