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