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