Exemplo n.º 1
0
        public async Task Update(CongregacaoUpdateDTO congregacao)
        {
            Congregacao congregacaoUpdate = new Congregacao();

            congregacaoUpdate.Nome       = congregacao.Nome;
            congregacaoUpdate.NomeResp   = congregacao.NomeResp;
            congregacaoUpdate.DtFundacao = congregacao.DtFundacao;
            congregacaoUpdate.Endereco   = congregacao.Endereco;
            congregacaoUpdate.Observacao = congregacao.Observacao;

            await repository.Add(congregacaoUpdate);
        }
Exemplo n.º 2
0
        public async Task Add(CongregacaoInsertDTO congregacao)
        {
            Congregacao congregacaoInsert = new Congregacao();

            congregacaoInsert.Nome       = congregacao.Nome;
            congregacaoInsert.NomeResp   = congregacao.NomeResp;
            congregacaoInsert.DtFundacao = congregacao.DtFundacao;
            congregacaoInsert.Endereco   = congregacao.Endereco;
            congregacaoInsert.Observacao = congregacao.Observacao;

            await repository.Add(congregacaoInsert);
        }
Exemplo n.º 3
0
        private bool InsereDetalheQuadro(ref IUnitOfWork unitOfWork, DateTime dataControle, Congregacao item, int codigoQuadro, TipoLista itemTipoLista)
        {
            var           cont           = 0;
            ControleLista proximoLista   = null;
            bool          liberouproximo = false;
            QuadroDetalhe quadrodetalhe  = null;
            DataEvento    evento         = _repositoryDataEvento.ListByDate(ref unitOfWork, item.Codigo, dataControle);
            var           ultimaReuniao  = _repositoryQuadroDetalhe.ObterUltimaReuniaoValida(ref unitOfWork, item.Codigo, dataControle);
            var           proximaReuniao = _repositoryQuadroDetalhe.ObterProximaReuniaoValida(ref unitOfWork, item.Codigo, dataControle);

            if (evento == null || (evento.VisitaSuperintendente && itemTipoLista.Codigo != Core.Domain.enums.eTipoLista.LeitorELC &&
                                   itemTipoLista.Codigo != Core.Domain.enums.eTipoLista.LeitorJW))
            {
                if (item.FolgaParticipacao && itemTipoLista.Codigo != Core.Domain.enums.eTipoLista.OracaoFinal &&
                    itemTipoLista.Codigo != Core.Domain.enums.eTipoLista.OracaoInicial &&
                    (itemTipoLista.Codigo != Core.Domain.enums.eTipoLista.AudioVideo))
                {
                    if (itemTipoLista.Codigo == Core.Domain.enums.eTipoLista.Indicador)
                    {
                        cont = 16;
                    }

                    while (proximoLista == null)
                    {
                        if (cont <= 15)
                        {
                            proximoLista = _repositoryControleLista.ObterProximoListaSemRepetirComFolga(ref unitOfWork,
                                                                                                        (int)itemTipoLista.Codigo, (ultimaReuniao == null) ? dataControle.AddDays(-1) : ultimaReuniao.Data, dataControle,
                                                                                                        (proximaReuniao == null) ? dataControle.AddDays(1) : proximaReuniao.Data, item.Codigo);
                        }
                        else if (cont > 15 && cont <= 30)
                        {
                            proximoLista = _repositoryControleLista.ObterProximoListaSemRepetirSemFolgaParaAudioSonoro(ref unitOfWork,
                                                                                                                       (int)itemTipoLista.Codigo, (ultimaReuniao == null) ? dataControle.AddDays(-1) : ultimaReuniao.Data, dataControle,
                                                                                                                       (proximaReuniao == null) ? dataControle.AddDays(1) : proximaReuniao.Data, item.Codigo);
                        }
                        else if (cont > 30 && cont <= 50)
                        {
                            proximoLista = _repositoryControleLista.ObterProximoListaSemRepetirSemFolga(ref unitOfWork,
                                                                                                        (int)itemTipoLista.Codigo, dataControle, (ultimaReuniao == null) ? dataControle.AddDays(-1) : ultimaReuniao.Data,
                                                                                                        (proximaReuniao == null) ? dataControle.AddDays(1) : proximaReuniao.Data, item.Codigo);
                        }
                        else
                        {
                            throw new Exception("Não foi possivel obter um irmão da lista ");
                        }


                        if (proximoLista == null)
                        {
                            _repositoryControleLista.LiberaProximoLista(ref unitOfWork, (int)itemTipoLista.Codigo, item.Codigo);
                            liberouproximo = true;
                        }
                        cont++;
                        Task.Delay(10).Wait();
                    }
                }
                else if (itemTipoLista.Codigo != Core.Domain.enums.eTipoLista.OracaoFinal && itemTipoLista.Codigo != Core.Domain.enums.eTipoLista.OracaoInicial &&
                         ((itemTipoLista.Codigo == Core.Domain.enums.eTipoLista.AudioVideo) || (!item.FolgaParticipacao)))
                {
                    while (proximoLista == null)
                    {
                        if (cont <= 25)
                        {
                            proximoLista = _repositoryControleLista.ObterProximoListaSemRepetirSemFolga(ref unitOfWork,
                                                                                                        (int)itemTipoLista.Codigo, dataControle, (ultimaReuniao == null) ? dataControle.AddDays(-1) : ultimaReuniao.Data,
                                                                                                        (proximaReuniao == null) ? dataControle.AddDays(1) : proximaReuniao.Data, item.Codigo);
                        }
                        else
                        {
                            proximoLista = _repositoryControleLista.ObterProximoListaSemRepetirSemFolgaParaAudioSonoro(ref unitOfWork,
                                                                                                                       (int)itemTipoLista.Codigo, (ultimaReuniao == null) ? dataControle.AddDays(-1) : ultimaReuniao.Data, dataControle,
                                                                                                                       (proximaReuniao == null) ? dataControle.AddDays(1) : proximaReuniao.Data, item.Codigo);
                        }

                        if (proximoLista == null)
                        {
                            _repositoryControleLista.LiberaProximoLista(ref unitOfWork, (int)itemTipoLista.Codigo, item.Codigo);
                            liberouproximo = true;
                        }

                        if (cont > 50)
                        {
                            throw new Exception("Não foi possivel obter um irmão da lista de audio e video");
                        }

                        cont++;
                    }
                }
                else
                {
                    while (proximoLista == null)
                    {
                        proximoLista = _repositoryControleLista.ObterProximoListaPodeRepetir(ref unitOfWork,
                                                                                             (int)itemTipoLista.Codigo, item.Codigo, dataControle);

                        if (proximoLista == null)
                        {
                            _repositoryControleLista.LiberaProximoLista(ref unitOfWork, (int)itemTipoLista.Codigo, item.Codigo);
                            liberouproximo = true;
                        }
                    }
                }

                quadrodetalhe = new QuadroDetalhe()
                {
                    Data = dataControle, IrmaoId = proximoLista.IrmaoId, QuadroId = codigoQuadro
                };
                _repositoryControleLista.AtualizaPartipacaoIrmaoLista(ref unitOfWork, (int)itemTipoLista.Codigo, proximoLista.IrmaoId, liberouproximo);
            }
            else
            {
                quadrodetalhe = new QuadroDetalhe()
                {
                    Data = dataControle, QuadroId = codigoQuadro, EventoId = evento.Codigo
                }
            };

            _repositoryQuadroDetalhe.InsereDataQuadro(ref unitOfWork, quadrodetalhe);

            return((evento != null && evento.Assembleia) ? true : false);
        }
    }
Exemplo n.º 4
0
        private void GeraListas(ref IUnitOfWork unitOfWork, ref IEnumerable <TipoLista> tipolistas, ref Congregacao congregacao, DateTime dataInicioLista, int quadro, DateTime datalimite,
                                bool regerarlista, bool recuperabackup)
        {
            int codQuadro = 0;

            foreach (var itemTipoLista in tipolistas)
            {
                DateTime dataControle = dataInicioLista;

                if (recuperabackup)
                {
                    _repositoryControleLista.RecuperaBackupListaAtual(ref unitOfWork, (int)itemTipoLista.Codigo, congregacao.Codigo);
                }

                // Se estiver for o primeiro ciclo de geração da lista
                if (regerarlista)
                {
                    codQuadro = _repositoryQuadro.InserirNovoQuadro(ref unitOfWork, congregacao.Codigo, quadro, (int)itemTipoLista.Codigo);
                }
                else
                {
                    codQuadro = _repositoryQuadro.ObterQuadroTipoLista(ref unitOfWork, quadro, (int)itemTipoLista.Codigo);
                }

                int i = 0;
                while (i < itemTipoLista.QuantidadeDatas)
                {
                    bool assembleia = false;
                    switch (itemTipoLista.Codigo)
                    {
                    case Core.Domain.enums.eTipoLista.Indicador:

                        if (dataControle.DayOfWeek == congregacao.DiaReuniaoSentinela || dataControle.DayOfWeek == congregacao.DiaReuniaoServico)
                        {
                            for (int iIndicador = 0; iIndicador < congregacao.QuantidadeIndicadores; iIndicador++)
                            {
                                if (!assembleia)
                                {
                                    assembleia = InsereDetalheQuadro(ref unitOfWork, dataControle, congregacao, codQuadro, itemTipoLista);
                                }
                            }
                            i++;
                        }
                        break;

                    case Core.Domain.enums.eTipoLista.AudioVideo:
                        if (dataControle.DayOfWeek == congregacao.DiaReuniaoSentinela || dataControle.DayOfWeek == congregacao.DiaReuniaoServico)
                        {
                            for (int iSistemaSonoro = 0; iSistemaSonoro < congregacao.QuantidadeSistemaSonoro; iSistemaSonoro++)
                            {
                                if (!assembleia)
                                {
                                    assembleia = InsereDetalheQuadro(ref unitOfWork, dataControle, congregacao, codQuadro, itemTipoLista);
                                }
                            }
                            i++;
                        }
                        break;

                    case Core.Domain.enums.eTipoLista.Microfonista:
                        if (dataControle.DayOfWeek == congregacao.DiaReuniaoSentinela || dataControle.DayOfWeek == congregacao.DiaReuniaoServico)
                        {
                            for (int iMicrofonistas = 0; iMicrofonistas < congregacao.QuantidadeMicrofonistas; iMicrofonistas++)
                            {
                                if (!assembleia)
                                {
                                    assembleia = InsereDetalheQuadro(ref unitOfWork, dataControle, congregacao, codQuadro, itemTipoLista);
                                }
                            }
                            i++;
                        }
                        break;

                    case Core.Domain.enums.eTipoLista.OracaoFinal:
                    case Core.Domain.enums.eTipoLista.OracaoInicial:
                        if (dataControle.DayOfWeek == congregacao.DiaReuniaoSentinela || dataControle.DayOfWeek == congregacao.DiaReuniaoServico)
                        {
                            InsereDetalheQuadro(ref unitOfWork, dataControle, congregacao, codQuadro, itemTipoLista);
                            i++;
                        }
                        break;

                    case Core.Domain.enums.eTipoLista.LeitorJW:
                        if (dataControle.DayOfWeek == congregacao.DiaReuniaoSentinela)
                        {
                            InsereDetalheQuadro(ref unitOfWork, dataControle, congregacao, codQuadro, itemTipoLista);
                            i = i + 2;
                        }
                        break;

                    case Core.Domain.enums.eTipoLista.LeitorELC:
                        if (dataControle.DayOfWeek == congregacao.DiaReuniaoServico)
                        {
                            if (dataControle.Date <= datalimite.Date)
                            {
                                InsereDetalheQuadro(ref unitOfWork, dataControle, congregacao, codQuadro, itemTipoLista);
                            }
                            i = i + 2;
                        }
                        break;

                    default:
                        break;
                    }
                    dataControle = dataControle.AddDays(1);
                    // Para a atualização
                    if (dataControle.Date > datalimite.Date)
                    {
                        i = itemTipoLista.QuantidadeDatas;
                    }
                }
            }
        }