public long Entrada(EstacionamentoEntradaRequest request)
        {
            Func <IEnumerable <string> > metodoParaValidarViewModel = (() => EstacionamentoRegras.ValidarParaEntrar(request, ObterTodos()));
            EstacionamentoViewModel      viewModel = request.TransformarEntradaRequestEmView();

            return(base.Salvar(viewModel, metodoParaValidarViewModel, EstacionamentoExtension.TransformarViewEmModel));
        }
Пример #2
0
 public static EstacionamentoViewModel TransformarEntradaRequestEmView(this EstacionamentoEntradaRequest request)
 {
     if (request == null)
     {
         throw new ArgumentNullException(nameof(request));
     }
     return(new EstacionamentoViewModel
     {
         Placa = request.Placa,
         HorarioChegada = request.HorarioChegada
     });
 }
        public static IEnumerable <string> ValidarParaEntrar(EstacionamentoEntradaRequest request, IQueryable <Estacionamento> estacionamento)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (string.IsNullOrWhiteSpace(request.Placa))
            {
                yield return(Mensagem.ParametroObrigatorio.Formatar(Termo.Placa));
            }
            else if (PossuiEntradaSemSaidadeDeVeiculo(estacionamento, request.Placa))
            {
                yield return(Mensagem.EntidadeDuplicada.Formatar(Termo.Placa));
            }

            if (string.IsNullOrWhiteSpace(request.HorarioChegada))
            {
                yield return(Mensagem.ParametroObrigatorio.Formatar(Termo.HorarioChegada));
            }
            else if (!DateTime.TryParse(request.HorarioChegada, out _))
            {
                yield return(Mensagem.ParametroInvalido.Formatar(Termo.HorarioChegada));
            }
        }
 public IActionResult Entrada([FromBody] EstacionamentoEntradaRequest viewModel)
 {
     return(Ok(new ValorResponse <long>(_estacionamentoServico.Entrada(viewModel))));
 }