コード例 #1
0
        public void TestaPositivoValidacaoSexoMasculinoPorPeriodo()
        {
            var agendamento = new AgendamentoEntitie {
                Data = DateTime.Now
            };
            var doadorMaculino = new DoadorEntitie {
                Sexo = Entities.Enumeradores.SexoPessoaEnum.M
            };
            bool result = true;

            result = ValidaDoadorBusiness.IsDoacaoValidaNoPeriodo(agendamento, doadorMaculino);

            doadorMaculino.Doacoes = new System.Collections.Generic.List <ConfirmacaoDoacaoEntitie>();
            doadorMaculino.Doacoes.Add(new ConfirmacaoDoacaoEntitie {
                DataConfirmacaoDoacao = DateTime.Now.AddMonths(-8)
            });
            doadorMaculino.Doacoes.Add(new ConfirmacaoDoacaoEntitie {
                DataConfirmacaoDoacao = DateTime.Now.AddMonths(-6)
            });
            doadorMaculino.Doacoes.Add(new ConfirmacaoDoacaoEntitie {
                DataConfirmacaoDoacao = DateTime.Now.AddMonths(-4)
            });
            doadorMaculino.Doacoes.Add(new ConfirmacaoDoacaoEntitie {
                DataConfirmacaoDoacao = DateTime.Now.AddMonths(-2)
            });

            result = result && ValidaDoadorBusiness.IsDoacaoValidaNoPeriodo(agendamento, doadorMaculino);

            Assert.AreEqual(result, true, "Sucesso");
        }
コード例 #2
0
        public void TestaNegativoValidacaoPorIdadeMaxima()
        {
            var doador = new DoadorEntitie {
                DataNascimento = DateTime.Now.AddYears(-66)
            };

            var result = ValidaDoadorBusiness.IsDoadorIdadeMaximaValido(doador);

            Assert.AreEqual(!result, true, "Sucesso");
        }
コード例 #3
0
        public static bool IsDoadorPesoMinimoValido(DoadorEntitie doador)
        {
            var retorno = true;

            if (doador.Peso < 50) // Peso mínimo 50 Kg
            {
                retorno = false;
            }

            return(retorno);
        }
コード例 #4
0
        public static bool IsDoadorValidoPermanentemente(DoadorEntitie doador)
        {
            var retorno = true;

            if (!IsDoadorIdadeMaximaValido(doador))
            {
                retorno = false;
            }

            return(retorno);
        }
コード例 #5
0
        public IList <DoadorEntitie> RecuperaPossiveisDoadores()
        {
            DoadorEntitie doadorAlias = null;

            var criteria = GetSession().QueryOver <DoadorEntitie>(() => doadorAlias)
                           .Where(x => x.AptoParaDoacaoPermanente == true && x.AptoParaDoacaoTemporariamente == true)
                           .Inner.JoinQueryOver(() => doadorAlias.Enderecos)
                           .Left.JoinQueryOver(() => doadorAlias.Doacoes);

            return(criteria.List <DoadorEntitie>());
        }
コード例 #6
0
        public static bool IsDoadorIdadeMaximaValido(DoadorEntitie doador)
        {
            var retorno = true;

            if (!doador.DataNascimento.HasValue ||
                doador.DataNascimento.Value.AddYears(65).CompareTo(DateTime.Now) < 1) //Máximo de 65 anos de idade
            {
                retorno = false;
            }

            return(retorno);
        }
コード例 #7
0
        public static bool IsDoacaoValidaNoPeriodo(AgendamentoEntitie agendamento, DoadorEntitie doador)
        {
            bool retorno = true;

            DateTime periodoFinal   = agendamento.Data;
            DateTime periodoInicial = agendamento.Data.AddYears(-1);

            doador.QuantidadeDoacoes = doador.Doacoes == null ? 0 : doador.Doacoes.Count;

            if (doador.QuantidadeDoacoes >= 3)
            {
                doador.QuantidadeDoacoes = doador.Doacoes.ToList().Count(x =>
                                                                         x.DataConfirmacaoDoacao >= periodoInicial &&
                                                                         x.DataConfirmacaoDoacao <= periodoFinal);

                if ((doador.Sexo == Entities.Enumeradores.SexoPessoaEnum.F && doador.QuantidadeDoacoes > 3) ||
                    (doador.Sexo == Entities.Enumeradores.SexoPessoaEnum.M && doador.QuantidadeDoacoes > 4))
                {
                    retorno = false;
                }
            }

            return(retorno);
        }
コード例 #8
0
        public static bool IsDoadorValidoTemporariamente(AgendamentoEntitie agendamento, DoadorEntitie doador)
        {
            var retorno = true;

            if (!IsDoadorPesoMinimoValido(doador) || !IsDoadorIdadeMinimaValido(doador) || !IsDoacaoValidaNoPeriodo(agendamento, doador))
            {
                retorno = false;
            }

            return(retorno);
        }
コード例 #9
0
 private NotificacaoDoacaoEntitie GetInstaciaObjetoNotificacao(AgendamentoEntitie agendamento, DoadorEntitie doadorSelecionado)
 {
     return(new NotificacaoDoacaoEntitie
     {
         Confirmado = false,
         DataNotificacao = DateTime.Now,
         Doador = doadorSelecionado,
         Agendamento = agendamento,
         ChaveAutenticacao = Guid.NewGuid().ToString()
     });
 }