Exemple #1
0
        public PerfilDistribuicao GetPerfilTodosUsuarios(int perfilDistId, int casaId)
        {
            PerfilDistribuicao perfil = _uow.PerfilDistribuicaoRepository.GetPerfilDistribuicao(perfilDistId, casaId);

            if (perfil == null)
            {
                throw new RegraException("Usuário tentando editar perfil que não é de sua casa");
            }

            List <Usuario> usuarios = _uow.UsuarioManager.FindUsuariosDist(casaId);

            foreach (var usuario in usuarios)
            {
                if (!perfil.LayoutsDistribuicao.Any(p => p.UsuarioId.Equals(usuario.Id)))
                {
                    perfil.LayoutsDistribuicao.Add(new LayoutDistribuicao
                    {
                        UsuarioId = usuario.Id,
                        qtdNomesF = 0,
                        qtdNomesM = 0
                    });
                }
            }
            return(perfil);
        }
Exemple #2
0
        public void EditaPerfil(PerfilDistribuicao perfilDist, int casaId)
        {
            List <LayoutDistribuicao> remover = new List <LayoutDistribuicao>();

            if (!_uow.PerfilDistribuicaoRepository.Any(perfilDist.Id, casaId))
            {
                throw new RegraException("Edição de perfil de distribuição que não pertence a casa. perfil dist: " +
                                         perfilDist.Id + " casaId: " + casaId);
            }

            foreach (LayoutDistribuicao layout in perfilDist.LayoutsDistribuicao)
            {
                if (layout.qtdNomesF == 0 && layout.qtdNomesM == 0)
                {
                    remover.Add(layout);
                }
                layout.PerfilDistribuicaoId = perfilDist.Id;
            }
            foreach (var layout in remover)
            {
                perfilDist.LayoutsDistribuicao.Remove(layout);
                if (layout.Id > 0)
                {
                    _uow.LayoutDistribuicaoRepository.Delete(layout);
                }
            }

            _uow.PerfilDistribuicaoRepository.Update(perfilDist);
            _uow.LayoutDistribuicaoRepository.AddOrUpdate(perfilDist.LayoutsDistribuicao);

            _uow.Save();
        }
Exemple #3
0
        public void ExcluiPerfil(int perfilId, int casaId)
        {
            PerfilDistribuicao perfil = _uow.PerfilDistribuicaoRepository.GetPerfilDistribuicao(perfilId, casaId);

            if (perfil == null)
            {
                throw new RegraException("Perfil para exclusão não encontrado");
            }

            _uow.PerfilDistribuicaoRepository.Delete(perfil);
            _uow.Save();
        }
Exemple #4
0
        public void CriaLista(Lista lista, int casaId, int perfilDistId)
        {
            Evento evento = _uow.EventoRepository.GetEvento(lista.EventoId);

            if (!evento.CasaId.Equals(casaId))
            {
                throw new RegraException("Tentando adicionar Lista a evento que não pertence a casa" +
                                         "casaId:" + casaId + " nomeLista:" + lista.NomeLista);
            }


            //adiciona lista
            lista.FechadaM = false;
            lista.FechadaF = false;
            _uow.ListaRepository.Insert(lista);


            //verifica se existe perfil de distribuicao
            if (perfilDistId > 0)
            {
                PerfilDistribuicao perfilDist = _uow.PerfilDistribuicaoRepository.GetPerfilDistribuicao(perfilDistId, casaId);

                if (perfilDist == null)
                {
                    throw new RegraException("Tentando criar lista com perfil de distribuição que não pertence a casa"
                                             + "casaId:" + casaId + " perfilDistId:" + perfilDistId);
                }

                //adiciona distribuicoes
                foreach (var dist in perfilDist.LayoutsDistribuicao)
                {
                    //adiciona acesso do usuario a essa lista
                    _uow.UsuarioListaRepository.Insert(new UsuarioLista
                    {
                        ListaId   = lista.Id,
                        UsuarioId = dist.UsuarioId,
                        EventoId  = lista.EventoId,
                        TemAcesso = true
                    });

                    //adiciona a distribuicao do usuario a lista
                    _uow.DistribuicaoRepository.Insert(new Distribuicao
                    {
                        qtdNomesF = dist.qtdNomesF,
                        qtdNomesM = dist.qtdNomesM,
                        ListaId   = lista.Id,
                        UsuarioId = dist.UsuarioId
                    });
                }
            }

            _uow.Save();
        }
Exemple #5
0
        public IActionResult EditaPerfilDist([FromBody] PerfilDistVM perfilDistVM)
        {
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }
            int casaId = Util.GetCasaUsuario(HttpContext.User);

            PerfilDistribuicao perfilDist = Mapper.Map <PerfilDistribuicao>(perfilDistVM);

            perfilDist.CasaId = casaId;

            _perfilDistService.EditaPerfil(perfilDist, casaId);

            return(Ok());
        }
Exemple #6
0
        public IActionResult GetEditarDist(int perfilId)
        {
            int casaId = Util.GetCasaUsuario(HttpContext.User);
            PerfilDistribuicao perfilDist = _perfilDistService.GetPerfilTodosUsuarios(perfilId, casaId);

            PerfilDistVM perfilDistVM = Mapper.Map <PerfilDistVM>(perfilDist);

            List <Usuario> usuarios = _casaService.GetUsuariosDistCasa(casaId);

            foreach (var usuario in usuarios)
            {
                perfilDistVM.LayoutsDistribuicao.First(p => p.UsuarioId.Equals(usuario.Id)).nome = usuario.Nome;
            }

            return(Json(perfilDistVM));
        }
Exemple #7
0
        public void CriaPerfil(PerfilDistribuicao perfilDist)
        {
            List <LayoutDistribuicao> remover = new List <LayoutDistribuicao>();

            foreach (LayoutDistribuicao layout in perfilDist.LayoutsDistribuicao)
            {
                if (layout.qtdNomesF == 0 && layout.qtdNomesM == 0)
                {
                    remover.Add(layout);
                }
            }
            foreach (var layout in remover)
            {
                perfilDist.LayoutsDistribuicao.Remove(layout);
            }

            _uow.PerfilDistribuicaoRepository.Insert(perfilDist);
            _uow.Save();
        }
Exemple #8
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();
        }
Exemple #9
0
        public async void EnsureSeedData()
        {
            Usuario teste;
            Grupo   grupoWoods;
            Casa    woods;
            Casa    ws;



            #region adiciona Client
            if (!_ctx.Clients.Any())
            {
                _ctx.Clients.Add(new Client
                {
                    Id     = "dux",
                    Active = true,
                    Name   = "Ducsa",
                    RefreshTokenLifeTime = 3600,
                    Secret = "dwajioda"
                });
            }
            #endregion


            #region adiciona Grupo
            if (!_ctx.Grupos.Any())
            {
                grupoWoods = new Grupo
                {
                    NomeGrupo = "Grupo Woods"
                };

                _ctx.Grupos.Add(grupoWoods);

                _ctx.SaveChanges();
            }
            #endregion

            #region adiciona Casa
            if (!_ctx.Casas.Any())
            {
                grupoWoods = _ctx.Grupos.First();

                ws = new Casa
                {
                    NomeCasa = "Woods Samba",
                    GrupoId  = grupoWoods.Id
                };

                woods = new Casa
                {
                    NomeCasa = "Woods",
                    GrupoId  = grupoWoods.Id
                };

                _ctx.Casas.Add(woods);
                _ctx.Casas.Add(ws);

                _ctx.SaveChanges();
            }

            #endregion

            #region adiciona Usuario e UsuarioCasa
            if (!_ctx.Users.Any())
            {
                teste = new Usuario {
                    Nome = "Teste1 da Silva", UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                };

                Usuario teste2 = new Usuario {
                    Nome = "Teste2 da Silva", UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                };

                Usuario teste3 = new Usuario {
                    Nome = "Teste3 da Silva", UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                };


                await _usr.CreateAsync(teste, "Wtf!99541");

                await _usr.CreateAsync(teste2, "Wtf!99541");

                await _usr.CreateAsync(teste3, "Wtf!99541");

                woods = _ctx.Casas.First(p => p.NomeCasa == "Woods");
                ws    = _ctx.Casas.First(p => p.NomeCasa == "Woods Samba");

                UsuarioCasa usuarioCasa = new UsuarioCasa {
                    UsuarioId = teste.Id, CasaId = woods.Id
                };
                UsuarioCasa usuarioCasa2 = new UsuarioCasa {
                    UsuarioId = teste.Id, CasaId = ws.Id
                };
                teste.CasasUsuario = new List <UsuarioCasa>();
                teste.CasasUsuario.Add(usuarioCasa);
                teste.CasasUsuario.Add(usuarioCasa2);

                UsuarioCasa uCasa3 = new UsuarioCasa {
                    UsuarioId = teste2.Id, CasaId = woods.Id
                };
                teste2.CasasUsuario = new List <UsuarioCasa>();
                teste2.CasasUsuario.Add(uCasa3);

                UsuarioCasa uCasa4 = new UsuarioCasa {
                    UsuarioId = teste3.Id, CasaId = woods.Id
                };
                teste3.CasasUsuario = new List <UsuarioCasa>();
                teste3.CasasUsuario.Add(uCasa4);

                _ctx.SaveChanges();
            }
            #endregion

            #region Adiciona Claim Master no usuario teste
            if (!_ctx.UserClaims.Any())
            {
                teste = await _usr.FindByEmailAsync("*****@*****.**");

                woods = _ctx.Casas.FirstOrDefault(p => p.NomeCasa == "Woods");

                _ctx.UserClaims.Add(new UsuarioClaims
                {
                    CasaId     = woods.Id,
                    ClaimType  = "Master",
                    ClaimValue = "1",
                    UserId     = teste.Id
                });

                _ctx.SaveChanges();
            }
            #endregion


            #region adiciona Perfil Distribuicao

            if (!_ctx.PerfilDistribuicao.Any())
            {
                woods = _ctx.Casas.FirstOrDefault(p => p.NomeCasa == "Woods");

                Usuario u1 = await _usr.FindByEmailAsync("*****@*****.**");

                Usuario u2 = await _usr.FindByEmailAsync("*****@*****.**");

                Usuario u3 = await _usr.FindByEmailAsync("*****@*****.**");


                PerfilDistribuicao perfilDist = new PerfilDistribuicao
                {
                    NomePerfil = "Perfil Teste",
                    CasaId     = woods.Id
                };

                List <LayoutDistribuicao> layDist = new List <LayoutDistribuicao>();
                layDist.Add(new LayoutDistribuicao
                {
                    qtdNomesF = 10,
                    qtdNomesM = 20,
                    UsuarioId = u1.Id
                });
                layDist.Add(new LayoutDistribuicao
                {
                    qtdNomesF = 1010,
                    qtdNomesM = 2020,
                    UsuarioId = u2.Id
                });
                layDist.Add(new LayoutDistribuicao
                {
                    qtdNomesF = 15,
                    qtdNomesM = 30,
                    UsuarioId = u3.Id
                });

                perfilDist.LayoutsDistribuicao = layDist;

                _ctx.PerfilDistribuicao.Add(perfilDist);

                _ctx.SaveChanges();
            }

            #endregion


            #region Acessos
            if (!_ctx.Acessos.Any())
            {
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "PerLis",
                    Descricao = "Perfil de Listas"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "PerDis",
                    Descricao = "Perfil de Distribuicao de Convidados"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "PerCas",
                    Descricao = "Perfil de Mapa da Casa"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "Evento",
                    Descricao = "Eventos"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "Lista",
                    Descricao = "Listas"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "Reserv",
                    Descricao = "Reservas"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "AgTar",
                    Descricao = "Agendar Tarefas para as Listas"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "Distr",
                    Descricao = "Distribuicao de Convidados"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "AddNm",
                    Descricao = "Adicionar nomes na Lista"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "RemNm",
                    Descricao = "Remover qualquer nome das Listas"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "VerList",
                    Descricao = "Visualizar Lista completa do Evento"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "ConfPres",
                    Descricao = "Confirmar presenca de Convidados"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "AceUsu",
                    Descricao = "Definir Acessos dos Usuários"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "AddUsu",
                    Descricao = "Adicionar Usuarios"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "BloqUsu",
                    Descricao = "Bloquear Usuarios"
                });
                _ctx.Acessos.Add(new Acessos
                {
                    TipoClaim = "PodeComis",
                    Descricao = "Pode adicionar Comissarios"
                });

                //_ctx.SaveChanges();
            }
            #endregion
        }