public async Task <IActionResult> List(string name = null, DateTime?creationDateFrom = null, DateTime?creationDateTo = null, int?idEmpresa = null) { try { var filters = new UsuarioFilterDTO(name, creationDateFrom, creationDateTo, idEmpresa); var entities = await _usuarioService.List(this.Usuario, this.IsSuperUser, filters); return(Ok(entities)); } catch (Exception e) { return(StatusCode(500, e)); } }
public async Task <IEnumerable <UsuarioDTO> > List(UsuarioDTO userLogged, bool isSuperUser, UsuarioFilterDTO filter = null) { IEnumerable <Usuario> entities; if (isSuperUser) { entities = await _userRepository.ListBy(usuario => ((!filter.IdEmpresa.HasValue || usuario.IdEmpresa == filter.IdEmpresa.Value) && (!filter.CreationDateFrom.HasValue || usuario.CreationDate >= filter.CreationDateFrom.Value) && (!filter.CreationDateTo.HasValue || usuario.CreationDate <= filter.CreationDateTo.Value) && (filter.Nombre.IsNullOrEmpty() || usuario.Nombre.ToLower().Contains(filter.Nombre) || usuario.Apellido.ToLower().Contains(filter.Nombre) || usuario.Email.ToLower().Contains(filter.Nombre))) && usuario.Active == true, s => s.Rol, includeProperties => includeProperties.Empresa); //using (var ctx = new InfoRapContext()) //{ // entities = await ctx.Usuario.Where(s => s.Active) // .Include(s => s.Rol) // .Include(s => s.Empresa) // .ToListAsync(); //} } else { entities = await _userRepository.ListBy(usuario => usuario.IdEmpresa == userLogged.IdEmpresa && ((!filter.CreationDateFrom.HasValue || usuario.CreationDate >= filter.CreationDateFrom.Value) && (!filter.CreationDateTo.HasValue || usuario.CreationDate <= filter.CreationDateTo.Value) && (filter.Nombre.IsNullOrEmpty() || usuario.Nombre.ToLower().Contains(filter.Nombre) || usuario.Apellido.ToLower().Contains(filter.Nombre) || usuario.Email.ToLower().Contains(filter.Nombre))) && usuario.Active == true, includeProperties => includeProperties.Rol, includeProperties => includeProperties.Empresa); } var dtos = _mapper.Map <IEnumerable <UsuarioDTO> >(entities); return(dtos); }