예제 #1
0
        public async Task <UsuarioPerfilDTO> AuthenticateAsync(string username, string password)
        {
            IdentityUser Iuser = await userManager.FindByNameAsync(username);

            if (Iuser != null)
            {
                await signInManager.SignOutAsync();

                if ((await signInManager.PasswordSignInAsync(Iuser, password, false, false)).Succeeded)
                {
                    UsuarioPerfilDTO UserDTO = ServiceUsuarioPerfil.GetUsuarioPerfil(Guid.Parse(Iuser.Id));

                    //Add Webtoken after Login sucsessfully
                    var tokenHandler    = new JwtSecurityTokenHandler();
                    var key             = Encoding.ASCII.GetBytes(_appSettings.Secret);
                    var tokenDescriptor = new SecurityTokenDescriptor
                    {
                        Subject = new ClaimsIdentity(new Claim[]
                        {
                            new Claim(ClaimTypes.Name, UserDTO.UsuperId.ToString())
                        }),
                        Expires            = DateTime.UtcNow.AddDays(7),
                        SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key),
                                                                    SecurityAlgorithms.HmacSha256Signature)
                    };
                    var token = tokenHandler.CreateToken(tokenDescriptor);
                    UserDTO.Token = tokenHandler.WriteToken(token);
                    return(UserDTO);
                }
            }
            return(null);
        }
예제 #2
0
        public List <UsuarioPerfilDTO> GetUsuarioPerfilUsuario(int id_usuario)
        {
            try
            {
                dbCommand = db.GetStoredProcCommand("GetUsuarioPerfilUsuario");
                db.AddInParameter(dbCommand, "id_usuario", DbType.Int32, id_usuario);

                using (IDataReader DR = (Transaction == null ? db.ExecuteReader(dbCommand) : db.ExecuteReader(dbCommand, Transaction)))
                {
                    List <UsuarioPerfilDTO> List = new List <UsuarioPerfilDTO>();
                    while (DR.Read())
                    {
                        UsuarioPerfilDTO tab = new UsuarioPerfilDTO();
                        tab.Id         = int.Parse(DR["id"].ToString());
                        tab.Id_Usuario = int.Parse(DR["id_usuario"].ToString());
                        tab.Id_Perfil  = int.Parse(DR["id_perfil"].ToString());
                        List.Add(tab);
                    }
                    return(List);
                }
            }
            catch
            {
                throw;
            }
        }
 public IActionResult Put(Guid UsuarioPerfilId,
                          [FromBody] UsuarioPerfilDTO usuarioPerfil)
 {
     usuarioPerfil.UsuperId = UsuarioPerfilId;
     Service.Update(usuarioPerfil);
     return(Ok(true));
 }
예제 #4
0
        public void Update(UsuarioPerfilDTO entityDTO)
        {
            var entity = Builders.
                         GenericBuilder.builderDTOEntity <TUsuarioperfil, UsuarioPerfilDTO>
                             (entityDTO);

            repository.Save(entity);
        }
예제 #5
0
        public void Insert(UsuarioPerfilDTO entityDTO)
        {
            TUsuarioperfil entity = Builders.
                                    GenericBuilder.builderDTOEntity <TUsuarioperfil, UsuarioPerfilDTO>
                                        (entityDTO);

            repository.Save(entity);
        }
 public async Task InsertWithID(UsuarioPerfilDTO entityDTO)
 {
     TUsuarioperfil entity = Builders.
                             GenericBuilder.
                             builderDTOEntity <TUsuarioperfil, UsuarioPerfilDTO>
                                 (entityDTO);
     await repository.SaveWithId(entity);
 }
예제 #7
0
 public IActionResult Post([FromBody] UsuarioPerfilDTO usuario)
 {
     if (!ModelState.IsValid)
     {
         throw new Exception("Model is not Valid");
     }
     Service.Insert(usuario);
     return(Ok(true));
 }
예제 #8
0
        public async Task AddUserAsync(AddUserDTO dto)
        {
            IdentityUser userExist = await userManager.FindByNameAsync(dto.UserName);

            if (userExist == null)
            {
                Guid NewId = Guid.NewGuid();
                userExist    = new IdentityUser(dto.UserName);
                userExist.Id = NewId.ToString();
                IdentityResult result = await userManager.CreateAsync(userExist, dto.Password);

                StringBuilder Stringerror = new StringBuilder();
                foreach (var error in result.Errors)
                {
                    Stringerror.Append(error.Description);
                    Stringerror.Append("\n");
                }
                if (result.Errors.Count() > 0)
                {
                    throw new Exception(Stringerror.ToString());
                }
                else
                {
                    UsuarioPerfilDTO usuartioPerfilDTO = new UsuarioPerfilDTO()
                    {
                        UsuperId   = NewId,
                        UsuperDesc = dto.Descripcion,
                        UsuperGit  = dto.Git,
                        UsuperBlog = dto.Blog,
                        UsuperWeb  = dto.Web
                    };
                    await ServiceUsuarioPerfil.InsertWithID(usuartioPerfilDTO);
                }
            }
            else
            {
                throw new Exception($"The username({dto.UserName}) is being used");
            }
        }
 public IActionResult Post([FromBody] UsuarioPerfilDTO usuarioPerfil)
 {
     Service.Insert(usuarioPerfil);
     return(Ok(true));
 }
예제 #10
0
        public List <UsuarioPerfilDTO> ListarPeloUsuarioModulo(UsuarioFuncionalidadeFiltro filtro, out int totalRegistros)
        {
            List <UsuarioFuncionalidade> listaFuncionalidadeAux;
            List <UsuarioFuncionalidade> listaFuncionalidade = new List <UsuarioFuncionalidade>();
            List <UsuarioPerfil>         listaPerfilAux;
            List <UsuarioPerfil>         listaPerfil  = new List <UsuarioPerfil>();
            List <UsuarioPerfilDTO>      listaRetorno = new List <UsuarioPerfilDTO>();
            UsuarioPerfilDTO             objRetorno   = new UsuarioPerfilDTO();

            var listaUsuario = usuarioRepository.ListarTodos(l => l.ListaUsuarioFuncionalidade.Select(i => i.Modulo),
                                                             l => l.ListaUsuarioPerfil.Select(i => i.Modulo),
                                                             l => l.ListaUsuarioPerfil.Select(i => i.Perfil)).ToList <Usuario>();

            foreach (Usuario usuario in listaUsuario)
            {
                if (filtro.ModuloId != null)
                {
                    listaFuncionalidadeAux = usuario.ListaUsuarioFuncionalidade.Where(i => i.ModuloId == filtro.ModuloId).ToList <UsuarioFuncionalidade>();
                    listaPerfilAux         = usuario.ListaUsuarioPerfil.Where(i => i.ModuloId == filtro.ModuloId).ToList <UsuarioPerfil>();
                }
                else
                {
                    listaFuncionalidadeAux = usuario.ListaUsuarioFuncionalidade.ToList <UsuarioFuncionalidade>();
                    listaPerfilAux         = usuario.ListaUsuarioPerfil.ToList <UsuarioPerfil>();
                }


                if (filtro.UsuarioId != null)
                {
                    if (filtro.UsuarioId == usuario.Id)
                    {
                        listaFuncionalidade.AddRange(listaFuncionalidadeAux);
                        listaPerfil.AddRange(listaPerfilAux);

                        break;
                    }
                }
                else
                {
                    listaFuncionalidade.AddRange(listaFuncionalidadeAux);
                    listaPerfil.AddRange(listaPerfilAux);
                }
            }

            string chave;
            var    vetRepeticao = new System.Collections.Hashtable();

            foreach (var item in listaPerfil)
            {
                chave = item.UsuarioId + "|" + item.ModuloId;

                if (vetRepeticao.ContainsKey(chave) == true)
                {
                    continue;
                }

                objRetorno           = null;
                objRetorno           = new UsuarioPerfilDTO();
                objRetorno.Modulo    = item.Modulo.To <ModuloDTO>();
                objRetorno.ModuloId  = objRetorno.Modulo.Id.Value;
                objRetorno.Usuario   = item.Usuario.To <UsuarioDTO>();
                objRetorno.UsuarioId = objRetorno.Usuario.Id.Value;
                objRetorno.Perfil    = item.Perfil.To <PerfilDTO>();
                objRetorno.PerfilId  = objRetorno.Perfil.Id.Value;
                listaRetorno.Add(objRetorno);
                vetRepeticao.Add(chave, chave);
            }

            foreach (var item in listaFuncionalidade)
            {
                chave = item.UsuarioId + "|" + item.ModuloId;

                if (vetRepeticao.ContainsKey(chave) == true)
                {
                    continue;
                }

                objRetorno           = null;
                objRetorno           = new UsuarioPerfilDTO();
                objRetorno.Modulo    = item.Modulo.To <ModuloDTO>();
                objRetorno.ModuloId  = objRetorno.Modulo.Id.Value;
                objRetorno.Usuario   = item.Usuario.To <UsuarioDTO>();
                objRetorno.UsuarioId = objRetorno.Usuario.Id.Value;
                objRetorno.Perfil    = new PerfilDTO();
                listaRetorno.Add(objRetorno);
                vetRepeticao.Add(chave, chave);
            }

            int pageCount = filtro.PaginationParameters.PageSize;
            int pageIndex = filtro.PaginationParameters.PageIndex;


            if (string.IsNullOrEmpty(filtro.PaginationParameters.OrderBy))
            {
                listaRetorno = listaRetorno.OrderBy(l => l.Usuario.Login).ThenBy(i => i.Modulo.NomeCompleto).ToList <UsuarioPerfilDTO>();
            }

            switch (filtro.PaginationParameters.OrderBy)
            {
            case "usuario":
                if (filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderBy(l => l.Usuario.Login).ToList <UsuarioPerfilDTO>();
                }
                if (!filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderByDescending(l => l.Usuario.Login).ToList <UsuarioPerfilDTO>();
                }
                break;

            case "modulo":
                if (filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderBy(l => l.Modulo.NomeCompleto).ToList <UsuarioPerfilDTO>();
                }
                if (!filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderByDescending(l => l.Modulo.NomeCompleto).ToList <UsuarioPerfilDTO>();
                }
                break;

            case "perfil":
                if (filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderBy(l => l.Perfil.Descricao).ToList <UsuarioPerfilDTO>();
                }
                if (!filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderByDescending(l => l.Perfil.Descricao).ToList <UsuarioPerfilDTO>();
                }
                break;

            case "id":
            default:
                break;
            }

            totalRegistros = listaRetorno.Count();

            return(listaRetorno.Skip(pageCount * pageIndex).Take(pageCount).To <List <UsuarioPerfilDTO> >());
        }