Beispiel #1
0
        public IActionResult SalvaLista([FromBody] PerfilListaVM perfilListaVM)
        {
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            List <string> erros = new List <string>();

            int casaId = Util.GetCasaUsuario(User);

            PerfilLista perfilLista = Mapper.Map <PerfilLista>(perfilListaVM);

            perfilLista.CasaId = casaId;

            if (perfilLista.Id > 0)
            {
                erros = _perfilListaService.EditaPerfil(perfilLista, casaId);
            }
            else
            {
                erros = _perfilListaService.SalvaPerfil(perfilLista);
            }

            if (erros.Count > 0)
            {
                erros.ForEach(p => ModelState.AddModelError("", p));
                return(new BadRequestObjectResult(ModelState));
            }

            return(Ok());
        }
Beispiel #2
0
        public IActionResult GetPerfilLista(int id)
        {
            int casaId = Util.GetCasaUsuario(User);

            PerfilLista perfilLista = _perfilListaService.GetPerfilIncl(id, casaId);

            PerfilListaVM perfilListaVM = Mapper.Map <PerfilListaVM>(perfilLista);

            return(Ok(perfilListaVM));
        }
Beispiel #3
0
        public List <string> SalvaPerfil(PerfilLista perfilLista)
        {
            List <string> erros = new List <string>();

            if (perfilLista.LayoutListas == null || perfilLista.LayoutListas.Count == 0)
            {
                erros.Add("Adicione listas no perfil");
                return(erros);
            }

            List <LayoutLista> layListas = perfilLista.LayoutListas.ToList();

            perfilLista.LayoutListas = null;

            _uow.PerfilListaRepository.Insert(perfilLista);

            layListas.ForEach(p =>
            {
                p.PerfilListaId = perfilLista.Id;
                if (p.PerfilDistribuicaoId == 0)
                {
                    p.PerfilDistribuicaoId = null;
                }

                if (p.ListaF == false && p.ListaM == false)
                {
                    erros.Add("Na lista " + p.NomeLista + " não é permitido nenhum convidado, selecione Masc. e/ou Fem.");
                }
            });

            foreach (var layout in layListas)
            {
                List <LayoutAgendamento> layAgend = layout.LayoutAgendamentos.ToList();

                layout.LayoutAgendamentos = null;

                _uow.LayoutListaRepository.Insert(layout);

                layAgend.ForEach(p => p.LayoutListaId = layout.Id);

                foreach (var agend in layAgend)
                {
                    _uow.LayoutAgendamentoRepository.Insert(agend);
                }
            }

            if (erros.Count == 0)
            {
                _uow.Save();
            }
            return(erros);
        }
Beispiel #4
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();
        }
Beispiel #5
0
        public List <string> EditaPerfil(PerfilLista perfilLista, int casaId)
        {
            List <string> erros = new List <string>();

            if (!_uow.PerfilListaRepository.Any(perfilLista.Id, casaId))
            {
                throw new RegraException("Usuario tentando editar perfil lista que não pertence a casa. " +
                                         "perfilListaId: " + perfilLista.Id + " casaId:" + casaId);
            }

            if (perfilLista.LayoutListas == null || perfilLista.LayoutListas.Count == 0)
            {
                erros.Add("Adicione listas no perfil");
                return(erros);
            }

            List <LayoutLista> layListas = perfilLista.LayoutListas.ToList();

            perfilLista.LayoutListas = null;

            _uow.PerfilListaRepository.Update(perfilLista);

            layListas.ForEach(p =>
            {
                p.PerfilListaId = perfilLista.Id;

                if (p.PerfilDistribuicaoId == 0)
                {
                    p.PerfilDistribuicaoId = null;
                }

                if (p.ListaF == false && p.ListaM == false)
                {
                    erros.Add("Na lista " + p.NomeLista + " não é permitido nenhum convidado, selecione Masc. e/ou Fem.");
                }
            });

            //remove listas excluidas na ediçao
            _uow.PerfilListaRepository.RemoveExcluidos(layListas);

            foreach (var layout in layListas)
            {
                List <LayoutAgendamento> layAgend = layout.LayoutAgendamentos.ToList();

                layout.LayoutAgendamentos = null;

                _uow.LayoutListaRepository.AddOrUpdate(layout);

                layAgend.ForEach(p => p.LayoutListaId = layout.Id);

                //remove layouts agendamentos excluidos da lista
                if (layAgend.Any())
                {
                    _uow.LayoutAgendamentoRepository.RemoveExcluidos(layAgend);
                }

                foreach (var agend in layAgend)
                {
                    _uow.LayoutAgendamentoRepository.AddOrUpdate(agend);
                }
            }

            if (erros.Count == 0)
            {
                _uow.Save();
            }
            return(erros);
        }