Пример #1
0
        /// <summary>
        /// Validar se o IMEI já foi cadastrado por outro Portador
        /// </summary>
        /// <param name="numeroIMEI">Número do IMEI</param>
        /// <param name="documentoPortador">Número do Documento do Portador</param>
        /// <returns>Retorna TRUE caso a validação seja satisfeita</returns>
        public static bool ValidarIMEI_DocumentoPortador(int numeroIMEI, int documentoPortador)
        {
            //Neste caso criei um método SOMENTE para Validar o IMEI e Documento do Portador
            using (dadosEntities dados = new dadosEntities())
            {
                var Resultado = from Cotacao in dados.CotacaoSet
                                where Cotacao.PortadorDocumento != documentoPortador && Cotacao.NumeroMEI == numeroIMEI
                                select Cotacao;

                if (Resultado.Count() > 0)
                {
                    throw new Exception("Existe uma cotação para este IMEI associado a outro documento.");
                }
            }

            return(true);
        }
Пример #2
0
        /// <summary>
        /// Valida se a Cotação ainda é válida, mediante a data.
        /// </summary>
        /// <param name="cotacao">Cotação</param>
        /// <returns>Retorna TRUE caso a validação seja satisfeita</returns>
        public static bool ValidarDataCotacao(int id)
        {
            using (dadosEntities dados = new dadosEntities())
            {
                var Resultado = (from cota in dados.CotacaoSet
                                 where cota.Id == id
                                 select cota).ToArray();

                if (Resultado.Count() > 0)
                {
                    string valorParametro = System.Configuration.ConfigurationManager.AppSettings["DiasLimite"];
                    if (DateTime.Now > (Resultado.First().DataCotacao.AddDays(Convert.ToInt32(valorParametro))))
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }
Пример #3
0
        /// <summary>
        /// Validar Valor da Cotação analisando todas as cotações em ABERTO
        /// </summary>
        /// <param name="numeroIMEI">Número IMEI</param>
        /// <param name="novoValorCotacao">Valor da Cotação</param>
        /// <returns>Retorna TRUE caso a validação seja satisfeita</returns>
        public static bool ValidarValorCotacao(int numeroIMEI, double novoValorCotacao)
        {
            //Neste caso criei um método SOMENTE para Validar o Valor da Cotação mediante Cotação em ABERTO anteriormente
            using (dadosEntities dados = new dadosEntities())
            {
                var Resultado = (from cota in dados.CotacaoSet
                                 where cota.NumeroMEI == numeroIMEI && cota.ValorCotacao < novoValorCotacao
                                 select cota).ToArray();

                if (Resultado.Count() > 0)
                {
                    for (int i = 0; i < Resultado.Count(); i++)
                    {
                        var cot = Resultado.ElementAt(i);
                        if (ValidarDataCotacao(cot.Id) == false)
                        {
                            throw new Exception("Existe uma cotação em aberto para este IMEI com valor superior a nova cotação.");
                        }
                    }
                }
            }
            return(true);
        }
Пример #4
0
        /// <summary>
        /// Validar Nova Cotação, respeitando as validações de regra do Valor de Cotações Anteriores,
        /// assim como validar se o IMEI não está cadastrado em nome de um Portador diferente
        /// </summary>
        /// <param name="cotacao">Cotação Atual</param>
        /// <returns>Retorna TRUE caso a validação seja satisfeita</returns>
        public static bool ValidarNovaCotacao(Cotacao cotacao)
        {
            //Neste caso criei apenas UM METODO para ambas as regras de negócio que dependiam de informações oriundas da base de dados
            //Poupando assim instanciar a Entidade relativa a base de dados mais de uma vez, com isso mantendo a mesma conexão
            using (dadosEntities dados = new dadosEntities())
            {
                var result1 = from cota in dados.CotacaoSet
                              where cota.PortadorDocumento != cotacao.PortadorDocumento && cota.NumeroMEI == cotacao.NumeroMEI
                              select cota;

                if (result1.Count() > 0)
                {
                    throw new Exception("Existe uma cotação para este IMEI associado a outro documento.");
                }
                else
                {
                    var result2 = (from cota in dados.CotacaoSet
                                   where cota.NumeroMEI == cotacao.NumeroMEI && cota.ValorCotacao < cotacao.ValorCotacao
                                   select cota).ToArray();

                    if (result2.Count() > 0)
                    {
                        for (int i = 0; i < result2.Count(); i++)
                        {
                            var cot = result2.ElementAt(i);
                            if (DateTime.Now < (cot.DataCotacao.AddDays(15)))
                            {
                                throw new Exception("Existe uma cotação em aberto para este IMEI com valor superior a nova cotação.");
                            }
                        }
                    }
                }
            }

            return(true);
        }