private static Task <ValidateResult> ValidateEndDateErr(FormSeguroViagem state, object value)
        {
            if (value != null)
            {
                var result = new ValidateResult
                {
                    IsValid = true,
                    Value   = value
                };
                var  startDate = state.DataPartida;
                bool valid     = ValidateEndDateExcerpt(state.DataPartida, value);

                if (!valid)
                {
                    result.Feedback = "";
                    result.IsValid  = false;
                }
                else
                {
                    state.DataRetorno    = (DateTime)value;
                    state.TempVoltaValid = true;
                }

                return(Task.FromResult(result));
            }
            else
            {
                return(null);
            }
        }
        private static Task <ValidateResult> ValidateQtd(FormSeguroViagem state, object value)
        {
            var result = new ValidateResult
            {
                IsValid = true,
                Value   = value
            };
            int newValue;

            if ("nenhum".Equals(value.ToString(), StringComparison.CurrentCultureIgnoreCase))
            {
                value        = 0;
                result.Value = "0";
            }

            if (!int.TryParse(value.ToString(), out newValue))
            {
                result.Feedback = "Não entendi a sua resposta, digite uma quantidade válida ou SAIR para cancelar a cotação";
                result.IsValid  = false;
            }
            else
            {
                if (newValue < 0)
                {
                    result.Feedback = "Quantidade inválida, digite uma quantidade válida ou SAIR para cancelar a cotação";
                    result.IsValid  = false;
                }
            }

            return(Task.FromResult(result));
        }
        private static Task <ValidateResult> ValidateMotivoViagem(FormSeguroViagem state, object value)
        {
            var result = new ValidateResult
            {
                IsValid = true,
                Value   = value
            };

            return(Task.FromResult(result));
        }
 private static bool IsVoltaValid(FormSeguroViagem state)
 {
     if (state.TempVoltaValid || state.TempVolta == null)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
 private static bool IsDestinyValid(FormSeguroViagem state)
 {
     if (state.TempDestinoValid || state.TempDestino == null)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
 private static bool HasOrign(FormSeguroViagem state)
 {
     if (state.TempOrigem != null && state.TempOrigemValid)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 private static bool IsOrignValid(FormSeguroViagem state)
 {
     if (state.TempOrigemValid || state.TempOrigem == null)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
 private static bool HasDestiny(FormSeguroViagem state)
 {
     if (state.TempDestino != null && state.TempDestinoValid)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 private static bool ValidDataRetorno(FormSeguroViagem state)
 {
     if (state.TempVoltaValid)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 private static bool ValidDataPartida(FormSeguroViagem state)
 {
     if (state.TempIdaValid)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 private static bool ConfirmedDestiny(FormSeguroViagem state)
 {
     if (state.confirmaPais == SimNao.Não || !state.TempDestinoValid)
     {
         return(true);
     }
     else
     {
         state.Destino = state.TempDestino;
         return(false);
     }
 }
 private static bool ConfirmedOrign(FormSeguroViagem state)
 {
     if (state.confirmaEstado == SimNao.Não || !state.TempOrigemValid)
     {
         return(true);
     }
     else
     {
         state.Origem = state.TempOrigem;
         return(false);
     }
 }
        private static bool DestinoIsEurope(FormSeguroViagem state)
        {
            Pais p = GetPais(state.Destino);
            bool ret;

            if (p != null)
            {
                ret = p.CodigoContinente == 3 ? false : true;
                return(ret);
            }
            else
            {
                return(false);
            }
        }
 private static bool ConfirmedDataRetorno(FormSeguroViagem state)
 {
     if ((state.confirmaDataRetorno == SimNao.Não || !state.TempVoltaValid))
     {
         return(true);
     }
     else
     {
         DateTime parsedVolta;
         if (DateTime.TryParseExact(state.TempVolta, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedVolta))
         {
             state.DataRetorno = parsedVolta;
         }
         return(false);
     }
 }
        private static SeguroViagem PopulateContextWithData(FormSeguroViagem state)
        {
            SeguroViagem seguro = new SeguroViagem();

            seguro.UfOrigem           = GetEstado(state.Origem).Sigla;
            seguro.EstadoOrigem       = state.Origem;
            seguro.PaisDestino        = state.Destino;
            seguro.CodPaisDestino     = GetPais(state.Destino).CodigoPais;
            seguro.CodContinente      = GetPais(state.Destino).CodigoContinente;
            seguro.PaisEuropeuDestino = state.PaisEuropeu == SimNao.Sim ? true : false;
            seguro.DataPartida        = state.DataPartida;
            seguro.DataRetorno        = state.DataRetorno;
            seguro.Menor70            = int.Parse(state.Menor70);
            seguro.Maior70            = int.Parse(state.Maior70);
            seguro.Motivo             = state.MotivoDaViagem.ToString();
            seguro.CodMotivo          = GetCodMotivo(state.MotivoDaViagem.ToString());
            return(seguro);
        }
        private static Task <ValidateResult> ValidateEndDate(FormSeguroViagem state, object value)
        {
            var result = new ValidateResult
            {
                IsValid = true,
                Value   = value
            };
            var  startDate = state.DataPartida;
            bool valid     = ValidateEndDateExcerpt(state.DataPartida, value);

            if (!valid)
            {
                result.Feedback = "Data final inválida, digite uma data final válida ou SAIR para cancelar a cotação";
                result.IsValid  = false;
            }
            else
            {
                state.DataRetorno = (DateTime)value;
            }
            return(Task.FromResult(result));
        }
        private static Task <ValidateResult> ValidateUF(FormSeguroViagem state, object value)
        {
            var result = new ValidateResult
            {
                IsValid = true,
                Value   = value
            };

            Estado estado = GetEstado(value.ToString());

            if (estado == null)
            {
                result.Feedback = "Desculpe, esse não é um estado brasileiro válido, digite um estado ou SAIR para cancelar a cotação.";
                result.IsValid  = false;
            }
            else
            {
                result.Value         = estado.Descricao;
                state.Origem         = estado.Descricao;
                state.confirmaEstado = SimNao.Sim;
            }
            return(Task.FromResult(result));
        }
        private static Task <ValidateResult> ValidatePais(FormSeguroViagem state, object value)
        {
            var result = new ValidateResult
            {
                IsValid = true,
                Value   = value
            };

            Pais pais = GetPais(value.ToString());

            if (pais == null)
            {
                result.Feedback = "Desculpe, esse não é um país válido, digite um país ou SAIR para cancelar a cotação.";
                result.IsValid  = false;
            }
            else
            {
                result.Value       = pais.Descricao;
                state.Destino      = pais.Descricao;
                state.confirmaPais = SimNao.Sim;
            }

            return(Task.FromResult(result));
        }
        private static Task <ValidateResult> ValidateStartDate(FormSeguroViagem state, object value)
        {
            var result = new ValidateResult
            {
                IsValid = true,
                Value   = value
            };
            bool valid = ValidadeStartDateExcerpt(value);

            if (!valid)
            {
                result.Feedback = "Data inicial inválida, digite uma data inicial válida ou SAIR para cancelar a cotação";
                result.IsValid  = false;
            }
            else
            {
                state.DataPartida = (DateTime)value;
                if (state.TempVolta != null)
                {
                    state.TempVoltaValid = ValidateEndDateExcerpt(state.DataPartida, state.TempVolta);
                }
            }
            return(Task.FromResult(result));
        }
 private static bool alwaysFalse(FormSeguroViagem state)
 {
     return(false);
 }
 private static Boolean DestinoIsEurope(FormSeguroViagem state, object value)
 {
     return(false);
 }