Esempio n. 1
0
 public Cadastro_CadastroDeUsuariosController(IClienteAcessoRepository clienteAcessoRepo, ClienteAcessoModel clienteAcessoModel, ILojaRepository lojaRepo)
 {
     this.clienteAcessoRepo  = clienteAcessoRepo;
     this.clienteAcessoModel = clienteAcessoModel;
     this.lojaRepo           = lojaRepo;
     Mapper = AutoMapperConfig.MapperConfiguration.CreateMapper();
 }
Esempio n. 2
0
        public async Task <ActionResult> Edit(int id)
        {
            var model = new ClienteAcessoModel();

            model.PaginaAcesso = new List <PaginaAcessoModel>();

            await DropDownLojasAcesso();
            await CheckBoxPaginasAcesso(model);


            var usuarioDB = await clienteAcessoRepo.GetByIdAsync(id);

            if (usuarioDB != null)
            {
                model = Mapper.Map(usuarioDB, model); //model.MapperDBToModel(usuarioDB, model);


                //paginas que o usuario temn acesso
                var idsPagina = await clienteAcessoRepo.PaginasAcessoListAsync(model.Id);

                if (idsPagina.Any())
                {
                    model.IdsClienteAcessoPerfil = idsPagina.Select(x => x.Id).ToArray();
                }

                var idsLoja = await clienteAcessoRepo.ClienteAcessoLojaListAsync(model.Id);

                if (idsLoja.Any())
                {
                    model.IdsClienteAcessoLoja = idsLoja.Select(x => x.IdLoja).ToArray();
                }
            }

            return(View(model));
        }
Esempio n. 3
0
 private void CriacaoDeUsuarioNovo(ClienteAcessoModel model)
 {
     model.IdCliente      = AppUserManager.Usuario.IdCliente;
     model.Senha          = "123456";
     model.UsuarioMaster  = true;
     model.FlagStatus     = true;
     model.PrimeiroAcesso = false;
 }
Esempio n. 4
0
        public async Task <ActionResult> Create()
        {
            var model = new ClienteAcessoModel();

            model.PaginaAcesso = new List <PaginaAcessoModel>();

            await CheckBoxPaginasAcesso(model);

            await DropDownLojasAcesso();

            CriacaoDeUsuarioNovo(model);

            return(View(model));
        }
Esempio n. 5
0
        private async Task CheckBoxPaginasAcesso(ClienteAcessoModel model)
        {
            model.PaginaAcesso = new List <PaginaAcessoModel>();

            var paginas = await clienteAcessoRepo.PaginasAcessoListAsync();

            if (paginas.Any())
            {
                paginas.ToList().ForEach(x =>
                {
                    model.PaginaAcesso.Add(new PaginaAcessoModel {
                        Id = x.Id, Nome = x.Nome, Descricao = x.Descricao, Modulo = x.Modulo
                    });
                });
            }
        }
Esempio n. 6
0
        public async Task <ActionResult> Create(ClienteAcessoModel model)
        {
            await CheckBoxPaginasAcesso(model);
            await DropDownLojasAcesso();

            try
            {
                if (model.Email != null)
                {
                    var doubleCheckEmail = clienteAcessoRepo.GetAll().Where(x => x.IdCliente == AppUserManager.Usuario.IdCliente && x.Email.ToLower() == model.Email.ToLower() && x.FlagStatus);
                    if (doubleCheckEmail.Any())
                    {
                        ModelState.AddModelError("Email", "Já existe este e-mail cadastrado com outro usuário.");
                        return(View(model));
                    }
                }

                if (!model.UsuarioMaster)
                {
                    if (model.IdsClienteAcessoPerfil == null)
                    {
                        ModelState.AddModelError("IdsClienteAcessoPerfil", "Você precisa selecionar pelo menos uma página de acesso para o usuário.");
                        return(View(model));
                    }
                }
                else
                {
                    //se não selecionado é um usuário master e term acesso full.
                    model.IdsClienteAcessoPerfil = model.PaginaAcesso.Select(x => x.Id).ToArray();
                }

                if (ModelState.IsValid)
                {
                    var novoUsuario = clienteAcessoRepo.Add(new ClienteAcesso
                    {
                        IdCliente      = model.IdCliente,
                        Nome           = model.Nome,
                        Email          = model.Email,
                        Senha          = model.Senha,
                        Departamento   = model.Departamento,
                        DtUltimoAcesso = model.DtUltimoAcesso,
                        FlagStatus     = model.FlagStatus,
                        PrimeiroAcesso = model.PrimeiroAcesso,
                        UsuarioMaster  = model.UsuarioMaster
                    });

                    //ClienteAcessoLoja
                    if (novoUsuario.Id > 0)
                    {
                        await clienteAcessoRepo.RemoverClienteAcessoLoja(model.Id);

                        //restringe usuário para lojas especificas
                        if (model.IdsClienteAcessoLoja != null && model.IdsClienteAcessoLoja.Any())
                        {
                            await clienteAcessoRepo.AdicionarClienteAcessoLoja(novoUsuario.Id, model.IdsClienteAcessoLoja);
                        }
                        else
                        {
                            //se nulo, então tem acesso a todas as lojas e é necessário adicionar.
                            var idsLojas = await lojaRepo.FindAllAsync(x => x.IdCliente == 1);

                            if (idsLojas.Any())
                            {
                                await clienteAcessoRepo.AdicionarClienteAcessoLoja(novoUsuario.Id, idsLojas.Select(x => x.Id).ToArray());
                            }
                        }
                    }

                    //paginas de acesso
                    //ClienteAcessoPerfil
                    await clienteAcessoRepo.AdicionarClienteAcessoPerfilPaginas(model.IdsClienteAcessoPerfil.Distinct().ToArray(), novoUsuario.Id);

                    //paginas de acesso
                    return(RedirectToAction("Index"));
                }
            }
            catch
            {
                return(View(model));
            }

            return(View(model));
        }
Esempio n. 7
0
        public async Task <ActionResult> Edit(ClienteAcessoModel model)
        {
            await CheckBoxPaginasAcesso(model);
            await DropDownLojasAcesso();

            try
            {
                if (model.Email != null)
                {
                    var doubleCheckEmail = clienteAcessoRepo.GetAll().Where(x =>
                                                                            x.IdCliente == AppUserManager.Usuario.IdCliente &&
                                                                            x.Email.ToLower() == model.Email.ToLower() &&
                                                                            x.Id != model.Id && x.FlagStatus);
                    if (doubleCheckEmail.Any())
                    {
                        ModelState.AddModelError("Email", "Já existe este e-mail cadastrado com outro usuário.");
                        return(View(model));
                    }
                }


                if (!model.UsuarioMaster)
                {
                    if (!model.IdsClienteAcessoPerfil.Any())
                    {
                        ModelState.AddModelError("IdsClienteAcessoPerfil", "Você precisa selecionar pelo menos um perfil de acesso.");
                        return(View(model));
                    }
                }
                else
                {
                    //se não selecionado é um usuário master e term acesso full.
                    model.IdsClienteAcessoPerfil = model.PaginaAcesso.Select(x => x.Id).ToArray();
                }

                if (ModelState.IsValid)
                {
                    var edicaoUsuario = await clienteAcessoRepo.GetByIdAsync(model.Id);

                    edicaoUsuario.IdCliente      = model.IdCliente;
                    edicaoUsuario.Nome           = model.Nome;
                    edicaoUsuario.Email          = model.Email;
                    edicaoUsuario.Departamento   = model.Departamento;
                    edicaoUsuario.DtUltimoAcesso = model.DtUltimoAcesso;
                    edicaoUsuario.FlagStatus     = model.FlagStatus;
                    edicaoUsuario.PrimeiroAcesso = model.PrimeiroAcesso;
                    edicaoUsuario.UsuarioMaster  = model.UsuarioMaster;
                    await clienteAcessoRepo.EditAsync(edicaoUsuario, model.Id);


                    //ClienteAcessoLoja
                    if (edicaoUsuario.Id > 0)
                    {
                        await clienteAcessoRepo.RemoverClienteAcessoLoja(model.Id);

                        //restringe usuário para lojas especificas
                        if (model.IdsClienteAcessoLoja != null && model.IdsClienteAcessoLoja.Any())
                        {
                            await clienteAcessoRepo.AdicionarClienteAcessoLoja(edicaoUsuario.Id, model.IdsClienteAcessoLoja);
                        }
                        //else
                        //{
                        //    //se nulo, então tem acesso a todas as lojas e é necessário adicionar.
                        //    var idsLojas = await lojaRepo.FindAllAsync(x => x.IdCliente == 1);
                        //    if (idsLojas.Any())
                        //    {
                        //        await clienteAcessoRepo.AdicionarClienteAcessoLoja(edicaoUsuario.Id, idsLojas.Select(x => x.Id).ToArray());
                        //    }
                        //}
                    }

                    //paginas de acesso
                    //ClienteAcessoPerfil
                    await clienteAcessoRepo.RemoverClienteAcessoPerfilPaginas(model.Id);

                    await clienteAcessoRepo.AdicionarClienteAcessoPerfilPaginas(model.IdsClienteAcessoPerfil.Distinct().ToArray(), edicaoUsuario.Id);

                    //paginas de acesso
                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                return(View(model));
            }

            return(View(model));
        }
Esempio n. 8
0
 public ClienteAcessoController(IClienteAcessoRepository clienteAcessoRepo, ClienteAcessoModel clienteAcessoModel, ILojaRepository lojaRepo)
 {
     this.clienteAcessoRepo  = clienteAcessoRepo;
     this.clienteAcessoModel = clienteAcessoModel;
     this.lojaRepo           = lojaRepo;
 }