// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschränkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System;
using Newtonsoft.Json;
using Squidex.Infrastructure.Json.Newtonsoft;
using Squidex.Infrastructure.UsageTracking;
namespace Squidex.Areas.Api.Controllers.Statistics.Models
{
public sealed class CallsUsagePerDateDto
{
///
/// The date when the usage was tracked.
///
[JsonConverter(typeof(DateConverter))]
public DateTime Date { get; set; }
///
/// The total number of API calls.
///
public long TotalCalls { get; set; }
///
/// The total number of bytes transferred.
///
public long TotalBytes { get; set; }
///
/// The average duration in milliseconds.
///
public double AverageElapsedMs { get; set; }
public static CallsUsagePerDateDto FromStats(ApiStats stats)
{
var result = new CallsUsagePerDateDto
{
Date = DateTime.SpecifyKind(stats.Date, DateTimeKind.Utc),
TotalBytes = stats.TotalBytes,
TotalCalls = stats.TotalCalls,
AverageElapsedMs = stats.AverageElapsedMs,
};
return result;
}
}
}