#478 GetApprovedEditsGroupedByDateAndUserAsync
This commit is contained in:
parent
28fd9343e8
commit
01f3569c20
@ -0,0 +1,30 @@
|
||||
using System;
|
||||
|
||||
namespace RMuseum.Models.Generic.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// grouped by date / user
|
||||
/// </summary>
|
||||
public class GroupedByDateUserViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// date (day date or month or ...)
|
||||
/// </summary>
|
||||
public string Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// number of clicks
|
||||
/// </summary>
|
||||
public int Number { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// user id
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// user name
|
||||
/// </summary>
|
||||
public string UserName { get; set; }
|
||||
}
|
||||
}
|
||||
@ -13362,6 +13362,31 @@
|
||||
rejected
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Generic.ViewModels.GroupedByDateUserViewModel">
|
||||
<summary>
|
||||
grouped by date / user
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Generic.ViewModels.GroupedByDateUserViewModel.Date">
|
||||
<summary>
|
||||
date (day date or month or ...)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Generic.ViewModels.GroupedByDateUserViewModel.Number">
|
||||
<summary>
|
||||
number of clicks
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Generic.ViewModels.GroupedByDateUserViewModel.UserId">
|
||||
<summary>
|
||||
user id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Generic.ViewModels.GroupedByDateUserViewModel.UserName">
|
||||
<summary>
|
||||
user name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Generic.ViewModels.GroupedByDateViewModel.Date">
|
||||
<summary>
|
||||
date (day date or month or ...)
|
||||
@ -15804,12 +15829,19 @@
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IContributionStatsService.GetApprovedEditsGroupedByDateAsync(RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.Guid})">
|
||||
<summary>
|
||||
get approved edits daily
|
||||
approved edits daily
|
||||
</summary>
|
||||
<param name="paging"></param>
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IContributionStatsService.GetApprovedEditsGroupedByDateAndUserAsync(RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
approved edits grouped by user / daily
|
||||
</summary>
|
||||
<param name="paging"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.IDonationService">
|
||||
<summary>
|
||||
donation service
|
||||
@ -18724,6 +18756,13 @@
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.ContributionStatsService.GetApprovedEditsGroupedByDateAndUserAsync(RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
get approved edits grouped by user / daily
|
||||
</summary>
|
||||
<param name="paging"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:RMuseum.Services.Implementation.ContributionStatsService._context">
|
||||
<summary>
|
||||
Database Context
|
||||
|
||||
@ -11,11 +11,19 @@ namespace RMuseum.Services
|
||||
public interface IContributionStatsService
|
||||
{
|
||||
/// <summary>
|
||||
/// get approved edits daily
|
||||
/// approved edits daily
|
||||
/// </summary>
|
||||
/// <param name="paging"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>> GetApprovedEditsGroupedByDateAsync(PagingParameterModel paging, Guid? userId);
|
||||
|
||||
/// <summary>
|
||||
/// approved edits grouped by user / daily
|
||||
/// </summary>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateUserViewModel[] Tracks)>> GetApprovedEditsGroupedByDateAndUserAsync(PagingParameterModel paging);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,6 +45,50 @@ namespace RMuseum.Services.Implementation
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get approved edits grouped by user / daily
|
||||
/// </summary>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateUserViewModel[] Tracks)>> GetApprovedEditsGroupedByDateAndUserAsync(PagingParameterModel paging)
|
||||
{
|
||||
try
|
||||
{
|
||||
return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateUserViewModel[] Tracks)>(
|
||||
await QueryablePaginator<GroupedByDateUserViewModel>.Paginate(
|
||||
_context.GanjoorPoemCorrections
|
||||
.Join
|
||||
(
|
||||
_context.Users,
|
||||
correction => correction.UserId,
|
||||
user => user.Id,
|
||||
(correction, user) => new
|
||||
{
|
||||
correction.Id,
|
||||
UserId = user.Id,
|
||||
UserName = user.NickName,
|
||||
DateTime = correction.Date,
|
||||
correction.AffectedThePoem,
|
||||
}
|
||||
)
|
||||
.Where(f => f.AffectedThePoem)
|
||||
.GroupBy(a => new { a.DateTime.Date, a.UserId, a.UserName })
|
||||
.Select(a => new GroupedByDateUserViewModel()
|
||||
{
|
||||
Date = a.Key.Date.ToString(),
|
||||
UserId = a.Key.UserId,
|
||||
UserName = a.Key.UserName,
|
||||
Number = a.Count(),
|
||||
}).OrderByDescending(s => s.Date).ThenBy(s => s.Number)
|
||||
, paging));
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateUserViewModel[] Tracks)>((null, null), e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database Context
|
||||
/// </summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user