Beispiel #1
0
        public double CalcularPreco(Guid id, DateTime dataSaida)
        {
            if (dataSaida == DateTime.MinValue)
            {
                Notificar("A data de saída deve ser preenchida");
                return(0);
            }

            var precos = _precoRepository.ObterTodos().Result.Where(x => x.NomeTipoPreco == "Avulso");

            var avulso = _avulsoRepository.ObterPorID(id).Result;

            var tempoEstacionamento = dataSaida - avulso.HrEntrada;

            double precoFinal = 0;

            if (tempoEstacionamento.Days > 0)
            {
                precoFinal = precos.FirstOrDefault(x => x.Descricao.Contains("Diária")).Valor *tempoEstacionamento.Days;
            }

            //1 hr
            if (tempoEstacionamento.Hours <= 1 && tempoEstacionamento.Days == 0)
            {
                precoFinal = precos.FirstOrDefault(x => x.Descricao.Contains("1")).Valor;
            }

            if (tempoEstacionamento.Hours > 1)
            {
                var demaisHrs = tempoEstacionamento.Hours - 1;
                precoFinal = precoFinal + (precos.FirstOrDefault(x => x.Descricao.Contains("Demais")).Valor *demaisHrs) + precos.FirstOrDefault(x => x.Descricao.Contains("1")).Valor;
            }

            return(precoFinal);
        }
        private void CalcularPrecoMensal(Mensal mensal)
        {
            var precos = _precoRepository.ObterTodos().Result.Where(x => x.NomeTipoPreco == "Mensal");

            var duracaoContrato = mensal.ValidadeContrato - DateTime.Now;

            if (duracaoContrato.TotalDays < 90)
            {
                mensal.ValorPrecoMensal = precos.FirstOrDefault(x => x.Descricao == "Trimestral").Valor;
            }
            else
            {
                mensal.ValorPrecoMensal = precos.FirstOrDefault(x => x.Descricao == "Semestral").Valor;
            }
        }
 public async Task <List <Preco> > ObterTodos()
 {
     return(await _precoRepository.ObterTodos());
 }