This commit is contained in:
Hamid Reza Mohammadi 2025-03-29 11:37:22 +03:30
parent 881ddd7c45
commit eeb9f69783
4 changed files with 66 additions and 2 deletions

View File

@ -57,7 +57,8 @@ namespace RMuseum.Controllers
/// pinterestlinks
/// poetspeclines
/// poetpix
/// usernotes
/// usernotes,
/// users
/// </param>
/// <param name="paging"></param>
/// <param name="userId"></param>
@ -169,6 +170,19 @@ namespace RMuseum.Controllers
pagedResult = res.Result;
}
break;
case "users":
{
if(userId != null)
{
return BadRequest($"useriId parameter is not supported for this dataType");
}
var res = await _service.GetUsersGroupedByDateAsync(paging);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
pagedResult = res.Result;
}
break;
default:
return BadRequest($"Invalid value for the paramater: dataType = {dataType}");
}

View File

@ -785,7 +785,8 @@
pinterestlinks
poetspeclines
poetpix
usernotes
usernotes,
users
</param>
<param name="paging"></param>
<param name="userId"></param>
@ -16055,6 +16056,13 @@
<param name="userId"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IContributionStatsService.GetUsersGroupedByDateAsync(RSecurityBackend.Models.Generic.PagingParameterModel)">
<summary>
users grouped by signup date
</summary>
<param name="paging"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IContributionStatsService.GetApprovedEditsGroupedByDateAsync(RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.Guid})">
<summary>
approved edits daily
@ -19244,6 +19252,13 @@
<param name="userId"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.Implementation.ContributionStatsService.GetUsersGroupedByDateAsync(RSecurityBackend.Models.Generic.PagingParameterModel)">
<summary>
users grouped by signup date
</summary>
<param name="paging"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.Implementation.ContributionStatsService.GetApprovedEditsGroupedByDateAsync(RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.Guid})">
<summary>
approved edits daily

View File

@ -18,6 +18,14 @@ namespace RMuseum.Services
/// <returns></returns>
Task<RServiceResult<UserContributionsViewModel>> GetUserContributionsAsync(Guid userId);
/// <summary>
/// users grouped by signup date
/// </summary>
/// <param name="paging"></param>
/// <returns></returns>
Task<RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>> GetUsersGroupedByDateAsync(PagingParameterModel paging);
/// <summary>
/// approved edits daily
/// </summary>

View File

@ -52,6 +52,33 @@ namespace RMuseum.Services.Implementation
}
}
/// <summary>
/// users grouped by signup date
/// </summary>
/// <param name="paging"></param>
/// <returns></returns>
public async Task<RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>> GetUsersGroupedByDateAsync(PagingParameterModel paging)
{
try
{
return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>(
await QueryablePaginator<GroupedByDateViewModel>.Paginate(
_context.Users
.GroupBy(a => a.CreateDate.Date)
.Select(a => new GroupedByDateViewModel()
{
Date = a.Key.Date.ToString(),
Number = a.Count(),
}).OrderByDescending(s => s.Date)
, paging));
}
catch (Exception e)
{
return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>((null, null), e.ToString());
}
}
/// <summary>
/// approved edits daily
/// </summary>