#179 api implemented
This commit is contained in:
parent
996f5ba902
commit
034f64ad8e
@ -169,14 +169,15 @@ namespace RSecurityBackend.Controllers
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// All Users Information (if user does not have user:view permission list only contains him/her information)
|
||||
/// Paginated Users Information (if user does not have user:view permission list only contains him/her information)
|
||||
/// </summary>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns>All Users Information</returns>
|
||||
[HttpGet]
|
||||
[Authorize]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<PublicRAppUser>))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
public async Task<IActionResult> Get()
|
||||
public async Task<IActionResult> Get([FromQuery] PagingParameterModel paging)
|
||||
{
|
||||
Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
|
||||
|
||||
@ -192,12 +193,16 @@ namespace RSecurityBackend.Controllers
|
||||
return BadRequest(canViewAllUsersInformation.ExceptionString);
|
||||
if (canViewAllUsersInformation.Result)
|
||||
{
|
||||
RServiceResult<PublicRAppUser[]> usersInfo = await _appUserService.GetAllUsersInformation();
|
||||
if (usersInfo.Result == null)
|
||||
RServiceResult<(PaginationMetadata PagingMeta, PublicRAppUser[] Items)> usersInfo
|
||||
= await _appUserService.GetAllUsersInformation(paging);
|
||||
if (!string.IsNullOrEmpty(usersInfo.ExceptionString))
|
||||
{
|
||||
return BadRequest(usersInfo.ExceptionString);
|
||||
}
|
||||
return Ok(usersInfo.Result);
|
||||
// Paging Header
|
||||
HttpContext.Response.Headers.Add("paging-headers", JsonConvert.SerializeObject(usersInfo.Result.PagingMeta));
|
||||
|
||||
return Ok(usersInfo.Result.Items);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -208,6 +213,16 @@ namespace RSecurityBackend.Controllers
|
||||
return NotFound();
|
||||
return BadRequest(userInfo.ExceptionString);
|
||||
}
|
||||
HttpContext.Response.Headers.Add("paging-headers", JsonConvert.SerializeObject(new PaginationMetadata()
|
||||
{
|
||||
currentPage = 1,
|
||||
hasNextPage = false,
|
||||
hasPreviousPage = false,
|
||||
pageSize = 1,
|
||||
totalCount = 1,
|
||||
totalPages = 1
|
||||
}));
|
||||
|
||||
return Ok(new PublicRAppUser[] { userInfo.Result });
|
||||
}
|
||||
}
|
||||
|
||||
@ -103,10 +103,11 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RSecurityBackend.Controllers.AppUserControllerBase.Get">
|
||||
<member name="M:RSecurityBackend.Controllers.AppUserControllerBase.Get(RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
All Users Information (if user does not have user:view permission list only contains him/her information)
|
||||
Paginated Users Information (if user does not have user:view permission list only contains him/her information)
|
||||
</summary>
|
||||
<param name="paging"></param>
|
||||
<returns>All Users Information</returns>
|
||||
</member>
|
||||
<member name="M:RSecurityBackend.Controllers.AppUserControllerBase.Get(System.Guid)">
|
||||
@ -2176,7 +2177,7 @@
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RSecurityBackend.Services.IAppUserService.GetAllUsersInformation">
|
||||
<member name="M:RSecurityBackend.Services.IAppUserService.GetAllUsersInformation(RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
all users informations
|
||||
</summary>
|
||||
@ -2570,7 +2571,7 @@
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RSecurityBackend.Services.Implementation.AppUserService.GetAllUsersInformation">
|
||||
<member name="M:RSecurityBackend.Services.Implementation.AppUserService.GetAllUsersInformation(RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
all users informations
|
||||
</summary>
|
||||
|
||||
@ -119,7 +119,7 @@ namespace RSecurityBackend.Services
|
||||
/// all users informations
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<PublicRAppUser[]>> GetAllUsersInformation();
|
||||
Task<RServiceResult<(PaginationMetadata PagingMeta, PublicRAppUser[] Items)>> GetAllUsersInformation(PagingParameterModel paging);
|
||||
|
||||
/// <summary>
|
||||
/// all users having a certain permission
|
||||
|
||||
@ -375,40 +375,33 @@ namespace RSecurityBackend.Services.Implementation
|
||||
/// all users informations
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public virtual async Task<RServiceResult<PublicRAppUser[]>> GetAllUsersInformation()
|
||||
public virtual async Task<RServiceResult<(PaginationMetadata PagingMeta, PublicRAppUser[] Items)>> GetAllUsersInformation(PagingParameterModel paging)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
RAppUser[] appUsers = await _userManager.Users.ToArrayAsync();
|
||||
List<PublicRAppUser> lstPublicUsersInfo = new List<PublicRAppUser>();
|
||||
|
||||
|
||||
foreach(RAppUser appUser in appUsers)
|
||||
var source = _userManager.Users.Select(appUser => new PublicRAppUser()
|
||||
{
|
||||
lstPublicUsersInfo.Add(
|
||||
new PublicRAppUser()
|
||||
{
|
||||
Id = appUser.Id,
|
||||
Username = appUser.UserName,
|
||||
Email = appUser.Email,
|
||||
FirstName = appUser.FirstName,
|
||||
SureName = appUser.SureName,
|
||||
PhoneNumber = appUser.PhoneNumber,
|
||||
RImageId = appUser.RImageId,
|
||||
Status = appUser.Status,
|
||||
NickName = appUser.NickName,
|
||||
Website = appUser.Website,
|
||||
Bio = appUser.Bio,
|
||||
EmailConfirmed = appUser.EmailConfirmed
|
||||
});
|
||||
}
|
||||
return new RServiceResult<PublicRAppUser[]>(lstPublicUsersInfo.ToArray());
|
||||
Id = appUser.Id,
|
||||
Username = appUser.UserName,
|
||||
Email = appUser.Email,
|
||||
FirstName = appUser.FirstName,
|
||||
SureName = appUser.SureName,
|
||||
PhoneNumber = appUser.PhoneNumber,
|
||||
RImageId = appUser.RImageId,
|
||||
Status = appUser.Status,
|
||||
NickName = appUser.NickName,
|
||||
Website = appUser.Website,
|
||||
Bio = appUser.Bio,
|
||||
EmailConfirmed = appUser.EmailConfirmed
|
||||
});
|
||||
|
||||
return new RServiceResult<(PaginationMetadata PagingMeta, PublicRAppUser[] Items)>(
|
||||
await QueryablePaginator<PublicRAppUser>.Paginate(source, paging));
|
||||
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<PublicRAppUser[]>(null, exp.ToString());
|
||||
return new RServiceResult<(PaginationMetadata PagingMeta, PublicRAppUser[] Items)>((PagingMeta: null, Items: null), exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user