public Cadastro_CadastroDeUsuariosController(IClienteAcessoRepository clienteAcessoRepo, ClienteAcessoModel clienteAcessoModel, ILojaRepository lojaRepo) { this.clienteAcessoRepo = clienteAcessoRepo; this.clienteAcessoModel = clienteAcessoModel; this.lojaRepo = lojaRepo; Mapper = AutoMapperConfig.MapperConfiguration.CreateMapper(); }
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)); }
private void CriacaoDeUsuarioNovo(ClienteAcessoModel model) { model.IdCliente = AppUserManager.Usuario.IdCliente; model.Senha = "123456"; model.UsuarioMaster = true; model.FlagStatus = true; model.PrimeiroAcesso = false; }
public async Task <ActionResult> Create() { var model = new ClienteAcessoModel(); model.PaginaAcesso = new List <PaginaAcessoModel>(); await CheckBoxPaginasAcesso(model); await DropDownLojasAcesso(); CriacaoDeUsuarioNovo(model); return(View(model)); }
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 }); }); } }
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)); }
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)); }
public ClienteAcessoController(IClienteAcessoRepository clienteAcessoRepo, ClienteAcessoModel clienteAcessoModel, ILojaRepository lojaRepo) { this.clienteAcessoRepo = clienteAcessoRepo; this.clienteAcessoModel = clienteAcessoModel; this.lojaRepo = lojaRepo; }