public string AdicionarDist(Distribuicao dist)
        {
            DistribuicaoDAO funcionario = new DistribuicaoDAO();
            string          mensagem    = funcionario.Adicionar(dist);

            return(mensagem);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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
            }));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }