public static IEnumerable <string> ValidarParaSair(EstacionamentoSaidaRequest request, IQueryable <Estacionamento> estacionamento)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (request.Id == 0)
            {
                yield return(Mensagem.ParametroObrigatorio.Formatar(Termo.Id));
            }

            if (string.IsNullOrWhiteSpace(request.HorarioSaida))
            {
                yield return(Mensagem.ParametroObrigatorio.Formatar(Termo.HorarioSaida));
            }
            else if (!DateTime.TryParse(request.HorarioSaida, out _))
            {
                yield return(Mensagem.ParametroInvalido.Formatar(Termo.HorarioSaida));
            }

            Estacionamento model = estacionamento.FirstOrDefault(e => e.Id == request.Id);

            if (model == null)
            {
                yield return(Mensagem.EntidadeNaoEncontrada.Formatar(Termo.Placa));
            }
            else if (DateTime.Compare(model.HorarioChegada, DateTime.Now) > 0)
            {
                yield return(Mensagem.HorarioChegadaMaiorQueHorarioSaida.Formatar(Termo.HorarioChegada, Termo.HorarioSaida));
            }
        }
        public long Saida(EstacionamentoSaidaRequest request)
        {
            Func <IEnumerable <string> > metodoParaValidarViewModel = (() => EstacionamentoRegras.ValidarParaSair(request, ObterTodos()));
            EstacionamentoViewModel      viewModel = request.TransformarSaidaRequestEmView();

            viewModel = ObterValorAPagar(viewModel);
            return(base.Salvar(viewModel, metodoParaValidarViewModel, EstacionamentoExtension.TransformarViewEmModel));
        }
示例#3
0
 public static EstacionamentoViewModel TransformarSaidaRequestEmView(this EstacionamentoSaidaRequest request)
 {
     if (request == null)
     {
         throw new ArgumentNullException(nameof(request));
     }
     return(new EstacionamentoViewModel
     {
         Id = request.Id,
         HorarioSaida = request.HorarioSaida
     });
 }
 public IActionResult Saida([FromBody] EstacionamentoSaidaRequest viewModel)
 {
     return(Ok(new ValorResponse <long>(_estacionamentoServico.Saida(viewModel))));
 }