#478 basic service class and interface and a basic view model
This commit is contained in:
parent
232b5eae5c
commit
28fd9343e8
15
RMuseum/Models/Generic/ViewModels/GroupedByDateViewModel.cs
Normal file
15
RMuseum/Models/Generic/ViewModels/GroupedByDateViewModel.cs
Normal file
@ -0,0 +1,15 @@
|
||||
namespace RMuseum.Models.Generic.ViewModels
|
||||
{
|
||||
public class GroupedByDateViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// date (day date or month or ...)
|
||||
/// </summary>
|
||||
public string Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// number of clicks
|
||||
/// </summary>
|
||||
public int Number { get; set; }
|
||||
}
|
||||
}
|
||||
@ -4484,6 +4484,18 @@
|
||||
<member name="M:RMuseum.Migrations.CatSugs.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:RMuseum.Migrations.CatCorrectionPlusPageId">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:RMuseum.Migrations.CatCorrectionPlusPageId.Up(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:RMuseum.Migrations.CatCorrectionPlusPageId.Down(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:RMuseum.Migrations.CatCorrectionPlusPageId.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Accounting.DonationExpenditure">
|
||||
<summary>
|
||||
donation expenditures
|
||||
@ -13350,6 +13362,16 @@
|
||||
rejected
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Generic.ViewModels.GroupedByDateViewModel.Date">
|
||||
<summary>
|
||||
date (day date or month or ...)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Generic.ViewModels.GroupedByDateViewModel.Number">
|
||||
<summary>
|
||||
number of clicks
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.ImportJob.ImportJob">
|
||||
<summary>
|
||||
Import Job
|
||||
@ -15775,6 +15797,19 @@
|
||||
<param name="jpegStream"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.IContributionStatsService">
|
||||
<summary>
|
||||
contributions stats service
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IContributionStatsService.GetApprovedEditsGroupedByDateAsync(RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.Guid})">
|
||||
<summary>
|
||||
get approved edits daily
|
||||
</summary>
|
||||
<param name="paging"></param>
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.IDonationService">
|
||||
<summary>
|
||||
donation service
|
||||
@ -18676,6 +18711,30 @@
|
||||
<param name="format"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.Implementation.ContributionStatsService">
|
||||
<summary>
|
||||
contributions stats service implementation
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.ContributionStatsService.GetApprovedEditsGroupedByDateAsync(RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.Guid})">
|
||||
<summary>
|
||||
get approved edits daily
|
||||
</summary>
|
||||
<param name="paging"></param>
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:RMuseum.Services.Implementation.ContributionStatsService._context">
|
||||
<summary>
|
||||
Database Context
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.ContributionStatsService.#ctor(RMuseum.DbContext.RMuseumDbContext)">
|
||||
<summary>
|
||||
constructor
|
||||
</summary>
|
||||
<param name="context"></param>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.Implementation.CorrectionReviewResultConvertor">
|
||||
<summary>
|
||||
تبدیلگر CorrectionReviewResult
|
||||
|
||||
21
RMuseum/Services/IContributionStatsService.cs
Normal file
21
RMuseum/Services/IContributionStatsService.cs
Normal file
@ -0,0 +1,21 @@
|
||||
using RMuseum.Models.Generic.ViewModels;
|
||||
using RSecurityBackend.Models.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System;
|
||||
|
||||
namespace RMuseum.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// contributions stats service
|
||||
/// </summary>
|
||||
public interface IContributionStatsService
|
||||
{
|
||||
/// <summary>
|
||||
/// get 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);
|
||||
}
|
||||
}
|
||||
63
RMuseum/Services/Implementation/ContributionStatsService.cs
Normal file
63
RMuseum/Services/Implementation/ContributionStatsService.cs
Normal file
@ -0,0 +1,63 @@
|
||||
using RMuseum.DbContext;
|
||||
using RMuseum.Models.Generic.ViewModels;
|
||||
using RSecurityBackend.Models.Generic;
|
||||
using RSecurityBackend.Services.Implementation;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RMuseum.Services.Implementation
|
||||
{
|
||||
/// <summary>
|
||||
/// contributions stats service implementation
|
||||
/// </summary>
|
||||
public class ContributionStatsService : IContributionStatsService
|
||||
{
|
||||
/// <summary>
|
||||
/// get approved edits daily
|
||||
/// </summary>
|
||||
/// <param name="paging"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>> GetApprovedEditsGroupedByDateAsync(PagingParameterModel paging, Guid? userId)
|
||||
{
|
||||
try
|
||||
{
|
||||
return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>(
|
||||
await QueryablePaginator<GroupedByDateViewModel>.Paginate(
|
||||
_context.GanjoorPoemCorrections
|
||||
.Where(c =>
|
||||
c.AffectedThePoem == true
|
||||
&&
|
||||
(userId == null || c.UserId == userId)
|
||||
)
|
||||
.GroupBy(a => a.Date.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>
|
||||
/// Database Context
|
||||
/// </summary>
|
||||
protected readonly RMuseumDbContext _context;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// constructor
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
public ContributionStatsService(RMuseumDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -317,6 +317,9 @@ namespace RMuseum
|
||||
//Queued FTP Upload Service
|
||||
services.AddTransient<IQueuedFTPUploadService, QueuedFTPUploadService>();
|
||||
|
||||
//Contributions stats service
|
||||
services.AddTransient<IContributionStatsService, ContributionStatsService>();
|
||||
|
||||
//upload limit for IIS
|
||||
services.Configure<IISServerOptions>(options =>
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user