Beispiel #1
0
        public async Task <ResponseTarifa> GetTarifas(RequestTarifa requestTarifa)
        {
            try
            {
                Tarifa tarifa = await tarifaRepository.GetTarifas(requestTarifa.Origem, requestTarifa.Destino);

                if (tarifa == null)
                {
                    return new ResponseTarifa()
                           {
                               Destino = requestTarifa.Destino,
                               Origem  = requestTarifa.Origem,
                               Plano   = requestTarifa.Plano,
                               Tempo   = requestTarifa.Tempo
                           }
                }
                ;

                ResponseTarifa response = tarifa.ToDTO(requestTarifa);

                response.SemFaleMais = CalculadoraTarifa.CalculoSemPlano(response);
                response.ComFaleMais = CalculadoraTarifa.CalculoComPlano(response);

                return(response);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public static double CalculoComPlano(ResponseTarifa response)
 {
     if (response.Plano == Enums.Planos.FaleMais30 && response.Tempo > 30)
     {
         return(CalcPlano(response.Tempo, 30, response.PrecoMinuto));
     }
     if (response.Plano == Enums.Planos.FaleMais60 && response.Tempo > 60)
     {
         return(CalcPlano(response.Tempo, 60, response.PrecoMinuto));
     }
     if (response.Plano == Enums.Planos.FaleMais120 && response.Tempo > 120)
     {
         return(CalcPlano(response.Tempo, 120, response.PrecoMinuto));
     }
     return(0);
 }
 public static double CalculoSemPlano(ResponseTarifa response)
 {
     return(response.PrecoMinuto * response.Tempo);
 }