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)); }
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)))); }