Browse Source

Usage

pull/282/head
Sebastian Stehle 8 years ago
parent
commit
b18d0bf2ec
  1. 8
      src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDto.cs
  2. 6
      src/Squidex/Areas/Api/Controllers/Statistics/Models/StorageUsageDto.cs
  3. 19
      src/Squidex/Areas/Api/Controllers/Statistics/UsagesController.cs

8
src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDto.cs

@ -6,6 +6,7 @@
// ========================================================================== // ==========================================================================
using System; using System;
using Squidex.Infrastructure.UsageTracking;
namespace Squidex.Areas.Api.Controllers.Statistics.Models namespace Squidex.Areas.Api.Controllers.Statistics.Models
{ {
@ -25,5 +26,12 @@ namespace Squidex.Areas.Api.Controllers.Statistics.Models
/// The average duration in milliseconds. /// The average duration in milliseconds.
/// </summary> /// </summary>
public long AverageMs { get; set; } 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 };
}
} }
} }

6
src/Squidex/Areas/Api/Controllers/Statistics/Models/StorageUsageDto.cs

@ -6,6 +6,7 @@
// ========================================================================== // ==========================================================================
using System; using System;
using Squidex.Domain.Apps.Entities.Assets;
namespace Squidex.Areas.Api.Controllers.Statistics.Models namespace Squidex.Areas.Api.Controllers.Statistics.Models
{ {
@ -25,5 +26,10 @@ namespace Squidex.Areas.Api.Controllers.Statistics.Models
/// The size in bytes. /// The size in bytes.
/// </summary> /// </summary>
public long Size { get; set; } public long Size { get; set; }
public static StorageUsageDto FromStats(IAssetStatsEntity stats)
{
return new StorageUsageDto { Date = stats.Date, Count = stats.TotalCount, Size = stats.TotalSize };
}
} }
} }

19
src/Squidex/Areas/Api/Controllers/Statistics/UsagesController.cs

@ -64,7 +64,9 @@ namespace Squidex.Areas.Api.Controllers.Statistics
var plan = appPlanProvider.GetPlanForApp(App); 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);
} }
/// <summary> /// <summary>
@ -91,14 +93,9 @@ namespace Squidex.Areas.Api.Controllers.Statistics
var entities = await usageTracker.QueryAsync(App.Id.ToString(), fromDate.Date, toDate.Date); var entities = await usageTracker.QueryAsync(App.Id.ToString(), fromDate.Date, toDate.Date);
var models = entities.Select(x => var response = entities.Select(CallsUsageDto.FromUsage);
{
var averageMs = x.TotalCount == 0 ? 0 : x.TotalElapsedMs / x.TotalCount;
return new CallsUsageDto { Date = x.Date, Count = x.TotalCount, AverageMs = averageMs };
}).ToList();
return Ok(models); return Ok(response);
} }
/// <summary> /// <summary>
@ -119,7 +116,9 @@ namespace Squidex.Areas.Api.Controllers.Statistics
var plan = appPlanProvider.GetPlanForApp(App); 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);
} }
/// <summary> /// <summary>
@ -146,7 +145,7 @@ namespace Squidex.Areas.Api.Controllers.Statistics
var entities = await assetStatsRepository.QueryAsync(App.Id, fromDate.Date, toDate.Date); 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); return Ok(models);
} }

Loading…
Cancel
Save