From a4a2b658cba2894256fd848a611bbc208e51ee50 Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Sat, 29 Mar 2025 11:00:34 +0330 Subject: [PATCH] #478 caching for user contributions --- RMuseum/Controllers/ContributionStatsController.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/RMuseum/Controllers/ContributionStatsController.cs b/RMuseum/Controllers/ContributionStatsController.cs index 6f0d365c..6a8248b0 100644 --- a/RMuseum/Controllers/ContributionStatsController.cs +++ b/RMuseum/Controllers/ContributionStatsController.cs @@ -10,6 +10,7 @@ using RSecurityBackend.Models.Generic; using System; using System.Collections.Generic; using System.Net; +using System.Net.NetworkInformation; using System.Threading.Tasks; using System.Windows.Forms; @@ -30,10 +31,15 @@ namespace RMuseum.Controllers [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))] public async Task GetUserContributionsAsync(Guid userId) { - var res = await _service.GetUserContributionsAsync(userId); - if(!string.IsNullOrEmpty(res.ExceptionString)) - return BadRequest(res.ExceptionString); - return Ok(res.Result); + var cacheKey = $"user/contributions/{DateTime.Now.Date}/{userId}"; + if (!_memoryCache.TryGetValue(cacheKey, out UserContributionsViewModel userContributions)) + { + var res = await _service.GetUserContributionsAsync(userId); + if (!string.IsNullOrEmpty(res.ExceptionString)) + return BadRequest(res.ExceptionString); + userContributions = res.Result; + } + return Ok(userContributions); } ///