From b18d0bf2ec5a34b36cd08d013a5f93bfdfecbc9a Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Fri, 20 Apr 2018 15:26:14 +0200 Subject: [PATCH] Usage --- .../Statistics/Models/CallsUsageDto.cs | 8 ++++++++ .../Statistics/Models/StorageUsageDto.cs | 6 ++++++ .../Statistics/UsagesController.cs | 19 +++++++++---------- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDto.cs b/src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDto.cs index e5d2f38fb..dac742013 100644 --- a/src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDto.cs +++ b/src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDto.cs @@ -6,6 +6,7 @@ // ========================================================================== using System; +using Squidex.Infrastructure.UsageTracking; namespace Squidex.Areas.Api.Controllers.Statistics.Models { @@ -25,5 +26,12 @@ namespace Squidex.Areas.Api.Controllers.Statistics.Models /// The average duration in milliseconds. /// public long AverageMs { get; set; } + + public static CallsUsageDto FromUsage(StoredUsage usage) + { + var averageMs = usage.TotalCount == 0 ? 0 : usage.TotalElapsedMs / usage.TotalCount; + + return new CallsUsageDto { Date = usage.Date, Count = usage.TotalCount, AverageMs = averageMs }; + } } } diff --git a/src/Squidex/Areas/Api/Controllers/Statistics/Models/StorageUsageDto.cs b/src/Squidex/Areas/Api/Controllers/Statistics/Models/StorageUsageDto.cs index f16578c5f..dac9e6f35 100644 --- a/src/Squidex/Areas/Api/Controllers/Statistics/Models/StorageUsageDto.cs +++ b/src/Squidex/Areas/Api/Controllers/Statistics/Models/StorageUsageDto.cs @@ -6,6 +6,7 @@ // ========================================================================== using System; +using Squidex.Domain.Apps.Entities.Assets; namespace Squidex.Areas.Api.Controllers.Statistics.Models { @@ -25,5 +26,10 @@ namespace Squidex.Areas.Api.Controllers.Statistics.Models /// The size in bytes. /// public long Size { get; set; } + + public static StorageUsageDto FromStats(IAssetStatsEntity stats) + { + return new StorageUsageDto { Date = stats.Date, Count = stats.TotalCount, Size = stats.TotalSize }; + } } } diff --git a/src/Squidex/Areas/Api/Controllers/Statistics/UsagesController.cs b/src/Squidex/Areas/Api/Controllers/Statistics/UsagesController.cs index 06d8736da..95368f0b9 100644 --- a/src/Squidex/Areas/Api/Controllers/Statistics/UsagesController.cs +++ b/src/Squidex/Areas/Api/Controllers/Statistics/UsagesController.cs @@ -64,7 +64,9 @@ namespace Squidex.Areas.Api.Controllers.Statistics var plan = appPlanProvider.GetPlanForApp(App); - return Ok(new CurrentCallsDto { Count = count, MaxAllowed = plan.MaxApiCalls }); + var response = new CurrentCallsDto { Count = count, MaxAllowed = plan.MaxApiCalls }; + + return Ok(response); } /// @@ -91,14 +93,9 @@ namespace Squidex.Areas.Api.Controllers.Statistics var entities = await usageTracker.QueryAsync(App.Id.ToString(), fromDate.Date, toDate.Date); - var models = entities.Select(x => - { - var averageMs = x.TotalCount == 0 ? 0 : x.TotalElapsedMs / x.TotalCount; - - return new CallsUsageDto { Date = x.Date, Count = x.TotalCount, AverageMs = averageMs }; - }).ToList(); + var response = entities.Select(CallsUsageDto.FromUsage); - return Ok(models); + return Ok(response); } /// @@ -119,7 +116,9 @@ namespace Squidex.Areas.Api.Controllers.Statistics var plan = appPlanProvider.GetPlanForApp(App); - return Ok(new CurrentStorageDto { Size = size, MaxAllowed = plan.MaxAssetSize }); + var response = new CurrentStorageDto { Size = size, MaxAllowed = plan.MaxAssetSize }; + + return Ok(response); } /// @@ -146,7 +145,7 @@ namespace Squidex.Areas.Api.Controllers.Statistics var entities = await assetStatsRepository.QueryAsync(App.Id, fromDate.Date, toDate.Date); - var models = entities.Select(x => new StorageUsageDto { Date = x.Date, Count = x.TotalCount, Size = x.TotalSize }).ToList(); + var models = entities.Select(StorageUsageDto.FromStats).ToList(); return Ok(models); }