public string AdicionarDist(Distribuicao dist) { DistribuicaoDAO funcionario = new DistribuicaoDAO(); string mensagem = funcionario.Adicionar(dist); return(mensagem); }
public List <ListaPromoter> GetListasPromoter(int eventoId, string usuarioId, int casaId) { List <ListaPromoter> listas = new List <ListaPromoter>(); List <UsuarioLista> listasPromoter = _uow.UsuarioListaRepository.GetListasIncl(usuarioId, eventoId); foreach (var uLista in listasPromoter) { Distribuicao distribuicao = _uow.DistribuicaoRepository.GetDist(usuarioId, uLista.ListaId); int nomesM = _uow.NomeListaRepository.CountNomesLista(uLista.ListaId, usuarioId, true); int nomesF = _uow.NomeListaRepository.CountNomesLista(uLista.ListaId, usuarioId, false); listas.Add(new ListaPromoter { Id = uLista.ListaId, NomeLista = uLista.Lista.NomeLista, NomesInserF = nomesF, QtdNomesF = distribuicao.qtdNomesF, ListaM = uLista.Lista.ListaM, ListaF = uLista.Lista.ListaF, NomesInserM = nomesM, QtdNomesM = distribuicao.qtdNomesM, PrecoF = uLista.Lista.PrecoM, PrecoM = uLista.Lista.PrecoF, ValorConsumaM = uLista.Lista.ValorConsumaM, ValorConsumaF = uLista.Lista.ValorConsumaF }); } return(listas); }
private void button1_Click(object sender, EventArgs e) { Distribuicao dist = new Distribuicao(textBox1.Text, maskedTextBox1.Text, textBox3.Text, maskedTextBox2.Text); ControleDistribuicao cd = new ControleDistribuicao(); string mensagem = cd.AdicionarDist(dist); MessageBox.Show(mensagem); PreencherListView(); }
public IActionResult GetQtdNomes(int listaId) { string usuarioId = Util.GetIdUsuario(User); Distribuicao dist = _distService.GetDistribuicao(listaId, usuarioId); return(Ok(new { qtdNomesM = dist.qtdNomesM, qtdNomesF = dist.qtdNomesF })); }
public Distribuicao GetDistribuicao(int listaId, string usuarioId) { Distribuicao dist = _uow.DistribuicaoRepository.GetDistribuicao(listaId, usuarioId); if (dist == null) { throw new RegraException("Tentando acessar distribuicao de lista que não tem acesso" + "listaId:" + listaId + " usuarioId:" + usuarioId); } return(dist); }
public void SalvaEvento(Evento evento, int casaId, int perfilListaId) { evento.CasaId = casaId; _uow.EventoRepository.Insert(evento); if (perfilListaId > 0) { PerfilLista perfilLista = _uow.PerfilListaRepository.GetPerfilIncl(perfilListaId, casaId); if (perfilLista == null) { throw new RegraException("Usuario tentando criar evento com perfil lista que não pertence a casa. " + "perfilListaId: " + perfilLista.Id + " casaId:" + casaId); } //cria listas e agendamentos de acordo com o perfil lista foreach (var layLista in perfilLista.LayoutListas) { //insere nova lista Lista lista = new Lista { NomeLista = layLista.NomeLista, AgendarTarefas = layLista.AgendarTarefas, EventoId = evento.Id, ListaF = layLista.ListaF, PrecoF = layLista.PrecoF, ListaM = layLista.ListaM, PrecoM = layLista.PrecoM, ValorConsumaF = layLista.ValorConsumaF, ValorConsumaM = layLista.ValorConsumaM, FechadaM = false, FechadaF = false, ExigirCelular = layLista.ExigirCelular, ExigirRg = layLista.ExigirRg }; _uow.ListaRepository.Insert(lista); foreach (var layAgend in layLista.LayoutAgendamentos) { //agenda tarefas da lista Agendamento agend = new Agendamento { TipoAgendamento = layAgend.TipoAgendamento, Executado = false, FecharListaF = layAgend.FecharListaF, FecharListaM = layAgend.FecharListaM, ListaId = lista.Id, NovoValorF = layAgend.NovoValorF, NovoValorM = layAgend.NovoValorM, trocarValorF = layAgend.trocarValorF, trocarValorM = layAgend.trocarValorM }; DateTime horaAcao = evento.DtaInicio; if (layAgend.DepoisEvento) { if (layAgend.qtdHoras > 0) { agend.HoraAcao = horaAcao.AddHours(layAgend.qtdHoras); } if (layAgend.qtdMinutos > 0) { agend.HoraAcao = horaAcao.AddMinutes(layAgend.qtdMinutos); } } else { if (layAgend.qtdHoras > 0) { agend.HoraAcao = horaAcao.AddHours(-layAgend.qtdHoras); } if (layAgend.qtdMinutos > 0) { agend.HoraAcao = horaAcao.AddMinutes(-layAgend.qtdMinutos); } } _uow.AgendamentoRepository.Insert(agend); } if (layLista.PerfilDistribuicaoId != null) { //distribui convidados para as listas PerfilDistribuicao perfilDist = _uow.PerfilDistribuicaoRepository.GetPerfilDistribuicao((int)layLista.PerfilDistribuicaoId, casaId); foreach (var layDist in perfilDist.LayoutsDistribuicao) { Distribuicao dist = new Distribuicao { ListaId = lista.Id, UsuarioId = layDist.UsuarioId, qtdNomesF = layDist.qtdNomesF, qtdNomesM = layDist.qtdNomesM, }; _uow.DistribuicaoRepository.Insert(dist); //add acesso do usuário para aquela lista _uow.UsuarioListaRepository.AddAcesso(evento.Id, dist.UsuarioId, lista.Id); } } } } _uow.Save(); }
public List <string> AddNomes(List <NomeLista> nomes, int listaId, int casaId, string usuarioId) { Lista lista = _uow.ListaRepository.GetLista(listaId, casaId); if (lista == null) { throw new RegraException("Tentando adicionar nomes em lista que não pertence a Casa." + "casaId:" + casaId + " usuarioId:" + usuarioId + " listaId:" + listaId); } Distribuicao dist = _uow.DistribuicaoRepository.GetDistribuicao(listaId, usuarioId); List <NomeLista> nomesAntigos = _uow.NomeListaRepository.GetNomesPromoter(listaId, usuarioId); //pega nomes que não estão mais na lista do promoter List <NomeLista> nomesRetirados = nomesAntigos.Where(p => !nomes.Any(n => n.Nome.Trim() == p.Nome)).ToList(); //qtd real de nomes já inseridos int qtdM = nomesAntigos.Count(p => p.Masculino) - nomesRetirados.Count(p => p.Masculino); int qtdF = nomesAntigos.Count(p => !p.Masculino) - nomesRetirados.Count(p => !p.Masculino); List <string> erros = new List <string>(); //remove nomes retirados da lista foreach (var nome in nomesRetirados) { if (nome.PresencaConf) { erros.Add("O Convidado " + nome.Nome + " não foi retirado da lista pois sua presença já foi confirmada"); if (nome.Masculino) { qtdM++; } else { qtdF++; } } else { _uow.NomeListaRepository.Delete(nome); } } foreach (var nome in nomes) { NomeLista nomeAux; //se nome já foi adicionado anteriormente if ((nomeAux = nomesAntigos.FirstOrDefault(p => p.Nome == nome.Nome.Trim())) != null) { if (VerificaMudancaDeGenero(nome, nomeAux, lista, usuarioId, erros, qtdM, qtdF, dist)) { continue; } nomeAux.numCelular = nome.numCelular; nomeAux.numRg = nome.numRg; _uow.NomeListaRepository.Update(nomeAux); } else { nome.Nome = nome.Nome.Trim(); //verifica se pode colocar nome do gênero selecionado if (lista.ListaM && nome.Masculino || lista.ListaF && !nome.Masculino) { //verifica se não excede quantidade de nomes distribuida para promoter if (nome.Masculino && (dist.qtdNomesM > qtdM) || !nome.Masculino && (dist.qtdNomesF > qtdF)) { PreencheNome(nome, lista, usuarioId); if (nome.Masculino) { qtdM++; } else { qtdF++; } _uow.NomeListaRepository.Insert(nome); } else { if (nome.Masculino && (dist.qtdNomesM == 0) || !nome.Masculino && (dist.qtdNomesF == 0)) { erros.Add("O Nome " + nome.Nome + " não foi adicionado pois não foram distribuídos convidados da Lista " + (nome.Masculino ? "Masc." : "Fem.") + " para seu usuário"); } erros.Add("O Nome " + nome.Nome + " não foi adicionado pois sua lista " + (nome.Masculino ? "Masc." : "Fem.") + " está cheia"); } } else { erros.Add("O Nome " + nome.Nome + " não foi adicionado pois nessa lista não são permitidos " + "nomes " + (nome.Masculino ? "Masc." : "Fem.")); } } } _uow.Save(); return(erros); }
private bool VerificaMudancaDeGenero(NomeLista nome, NomeLista nomeAux, Lista lista, string usuarioId, List <string> erros, int qtdM, int qtdF, Distribuicao dist) { //verifica se é o mesmo nome mas mudou o gênero if ((nomeAux.Masculino && !nome.Masculino) || (!nomeAux.Masculino && nome.Masculino)) { //deve mudar o nome para o gênero escolhido //se a presença já foi confirmada não pode ser alterado if (nomeAux.PresencaConf) { erros.Add("As informações do Convidado " + nomeAux.Nome + " não foram alteradas pois sua presença já foi confirmada"); return(true); } //deleta nome antigo _uow.NomeListaRepository.Delete(nomeAux); //se o gênero for mudado para Masculino if (lista.ListaM && nome.Masculino) { qtdF--; if (dist.qtdNomesM > qtdM) { //adiciona nome com gênero alterado qtdM++; PreencheNome(nome, lista, usuarioId); _uow.NomeListaRepository.Insert(nome); } else { erros.Add("O nome " + nome.Nome + " não foi adicionado pois excede o número de convidados Masc. distribuidos para seu usuário"); } } else if (lista.ListaF && !nome.Masculino) { qtdM--; if (dist.qtdNomesF > qtdF) { //adiciona nome com gênero alterado qtdF++; PreencheNome(nome, lista, usuarioId); _uow.NomeListaRepository.Insert(nome); } else { erros.Add("O nome " + nome.Nome + " não foi adicionado pois excede o número de convidados Fem. distribuidos para seu usuário"); } } else { erros.Add("O Nome " + nome.Nome + " não foi adicionado pois nessa lista não são permitidos " + "nomes " + (nome.Masculino ? "Masc." : "Fem.")); } return(true); } return(false); }