コード例 #1
0
        private bool RecadoInicialDentroDoPrazoDeCarenciaDoAtendimentoEmMeses(IRecado recado)
        {
            var resultado = RecadoFinal.DataCriacao.Date.AddMonths(_carenciaEmMeses)
                            > recado.DataCriacao.Date;

            return(resultado);
        }
コード例 #2
0
        private bool DeParaIgualAoDoRecadoInicial(IRecado recado)
        {
            var resultado = recado.De.ToLowerInvariant().Equals(RecadoInicial.De.ToLowerInvariant()) ||
                            recado.Para.ToLowerInvariant().Equals(RecadoInicial.De.ToLowerInvariant());

            return(resultado);
        }
コード例 #3
0
        public bool RecadoPertenceAoAgrupamantoEdicao(IRecado recado)
        {
            var resultado = RecadoInicial != null && DeParaIgualAoDoRecadoInicial(recado) &&
                            RecadoInicialDentroDoPrazoDeCarenciaDoAtendimentoEmMesesEdicao(recado) &&
                            RefereseAoMesmoAssuntoDoRecadoInicialEdicao(recado);

            return(resultado);
        }
コード例 #4
0
        private bool RefereseAoMesmoAssuntoDoRecadoInicial(IRecado recado)
        {
            var assunto   = string.Copy(recado.Assunto).Trim().ToLowerInvariant();
            var resultado = _partesIgnoradasDoAssunto.Any(x =>
                                                          (assunto.StartsWith(x.ToLowerInvariant()) && assunto.Replace(x.ToLowerInvariant(), "")
                                                           .Trim()
                                                           .Equals(RecadoInicial.Assunto.Trim().ToLowerInvariant())) ||
                                                          (assunto.Equals(RecadoInicial.Assunto.Trim().ToLowerInvariant())));

            return(resultado);
        }
コード例 #5
0
        public void EditarRecado(IRecado recado)
        {
            var agrupamentos = _mapeador.ObtenhaTodos();
            var agrupamento  = agrupamentos.First(x => x.RecadosResposta.Any(y => y.IdUnico == recado.IdUnico));

            if (agrupamento.RecadoPertenceAoAgrupamantoEdicao(recado))
            {
                var recadoJahAgrupado = agrupamento.RecadosResposta.First(x => x.IdUnico == recado.IdUnico);

                recadoJahAgrupado.DataAlteracao = DateTime.Today;
                recadoJahAgrupado.Assunto       = recado.Assunto;
                recadoJahAgrupado.De            = recado.De;
                recadoJahAgrupado.Para          = recado.Para;
                recadoJahAgrupado.Mensagem      = recado.Mensagem;

                _mapeador.Atualizar(agrupamento);
            }
            else
            {
                //Removo do agrupamento onde estava
                if (agrupamento.RecadosResposta.Count > 1)
                {
                    var recadosResponsta = agrupamento.RecadosResposta.ToList();
                    recadosResponsta.RemoveAll(x => x.IdUnico == recado.IdUnico);
                    agrupamento.RecadosResposta = recadosResponsta;
                    _mapeador.Atualizar(agrupamento);
                }
                //Removo o argupamento
                else if (agrupamento.RecadosResposta.Count == 1)
                {
                    _mapeador.Excluir(agrupamento.IdUnico);
                }

                var possivelProximoAgrupamento = agrupamentos.FirstOrDefault(x => x.RecadoPertenceAoAgrupamantoEdicao(recado));

                if (possivelProximoAgrupamento != null)
                {
                    possivelProximoAgrupamento.AdicioneRecado(recado);
                    _mapeador.Atualizar(possivelProximoAgrupamento);
                }
                else
                {
                    possivelProximoAgrupamento = new Agrupamento();
                    possivelProximoAgrupamento.AdicioneRecado(recado);
                    agrupamentos.Add(possivelProximoAgrupamento);
                    _mapeador.Salvar(possivelProximoAgrupamento);
                }
            }
        }
コード例 #6
0
        public void SalvarRecado(IRecado recado)
        {
            var agrupamentos = _mapeador.ObtenhaTodos();
            var agrupamento  = agrupamentos.FirstOrDefault(x => x.RecadoPertenceAoAgrupamanto(recado));

            if (agrupamento != null)
            {
                agrupamento.AdicioneRecado(recado);
                _mapeador.Atualizar(agrupamento);
            }
            else
            {
                agrupamento = new Agrupamento();
                agrupamento.AdicioneRecado(recado);
                agrupamentos.Add(agrupamento);
                _mapeador.Salvar(agrupamento);
            }
        }
コード例 #7
0
        private bool RefereseAoMesmoAssuntoDoRecadoInicialEdicao(IRecado recado)
        {
            var assunto = string.Copy(recado.Assunto).Trim().ToLowerInvariant();

            foreach (var ignorado in _partesIgnoradasDoAssunto)
            {
                if (assunto.StartsWith(ignorado))
                {
                    assunto = assunto.Replace(ignorado, "");
                    break;
                }
            }

            var resultado = _partesIgnoradasDoAssunto.Any(x => RecadoInicial.Assunto.ToLowerInvariant().Replace(x, "").Trim()
                                                          .Equals(assunto.Trim()));

            return(resultado);
        }
コード例 #8
0
 public void AdicioneRecado(IRecado recado)
 {
     RecadosResposta.Add((Recado)recado);
 }