diff --git a/Expedience.Api/Controllers/ExpedienceController.cs b/Expedience.Api/Controllers/ExpedienceController.cs index dcd3837..2e7eacc 100644 --- a/Expedience.Api/Controllers/ExpedienceController.cs +++ b/Expedience.Api/Controllers/ExpedienceController.cs @@ -56,9 +56,9 @@ namespace Expedience.Api.Controllers try { using var scope = _serviceScopeFactory.CreateScope(); - using var repository = scope.ServiceProvider.GetService(); + using var repository = scope.ServiceProvider.GetService(); - var results = repository.GetDutyCompletionRecords(expac, CancellationToken.None); + var results = await repository.GetDutyCompletionRecords(expac, cancellationToken); return Ok(results); } catch (Exception ex) @@ -66,7 +66,7 @@ namespace Expedience.Api.Controllers _logger.LogError(ex, "Error getting Duty Completion Records for {expac}: {errorMessage}", expac, ex.Message); } - return Ok(); + return StatusCode(500); } [HttpGet("UserName/{worldId}/{userHash}")] diff --git a/Expedience.Api/Program.cs b/Expedience.Api/Program.cs index f2991ac..bcf7e19 100644 --- a/Expedience.Api/Program.cs +++ b/Expedience.Api/Program.cs @@ -35,7 +35,7 @@ builder.Services.AddMassTransit(opt => }); builder.Services.AddEnyimMemcached(); -builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); diff --git a/Expedience.Infrastructure/ExpedienceRepository.cs b/Expedience.Infrastructure/ExpedienceRepository.cs index d14f56a..ebc9064 100644 --- a/Expedience.Infrastructure/ExpedienceRepository.cs +++ b/Expedience.Infrastructure/ExpedienceRepository.cs @@ -1,17 +1,17 @@ using System; -using System.Collections.Generic; + using Enyim.Caching; using Expedience.Infrastructure.Models; using Microsoft.EntityFrameworkCore; namespace Expedience.Infrastructure { - public interface IRepository : IDisposable + public interface IExpedienceRepository : IDisposable { Task> GetDutyCompletionRecords(string expac, CancellationToken cancellationToken); } - public class ExpedienceRepository : IRepository + public class ExpedienceRepository : IExpedienceRepository { private readonly ExpedienceContext _dbContext; private readonly IMemcachedClient _memcachedClient; @@ -31,18 +31,17 @@ namespace Expedience.Infrastructure } else { - var records = await _dbContext.DutyCompletionRecords.FromSqlInterpolated($"CALL get_dutycompletionrecords {expac}") + var records = await _dbContext.DutyCompletionRecords.FromSqlInterpolated($"SELECT * FROM public.get_dutycompletionrecords({expac})") .ToListAsync(); - await _memcachedClient.AddAsync(cacheKey, records, TimeSpan.FromMinutes(10)); - + return records; } } public void Dispose() { - _dbContext.Dispose(); + _memcachedClient.Dispose(); } } } diff --git a/Expedience.Infrastructure/Models/DutyCompletionRecord.cs b/Expedience.Infrastructure/Models/DutyCompletionRecord.cs index f90b25a..0d0ab3e 100644 --- a/Expedience.Infrastructure/Models/DutyCompletionRecord.cs +++ b/Expedience.Infrastructure/Models/DutyCompletionRecord.cs @@ -11,8 +11,15 @@ namespace Expedience.Infrastructure.Models public int TerritoryId { get; set; } public string ContentName { get; set; } public string ContentType { get; set; } + public string Expac { get; set; } public int Level { get; set; } - public TimeSpan? MinTime { get; set; } - public TimeSpan? AverageTime { get; set; } + public int ContentSortKey { get; set; } + public int ExpacSortKey { get; set; } + public TimeSpan? MinNormal { get; set; } + public TimeSpan? AvgNormal { get; set; } + public TimeSpan? MinSolo { get; set; } + public TimeSpan? AvgSolo { get; set; } + public TimeSpan? MinMine { get; set; } + public TimeSpan? AvgMine { get; set; } } }