Files
Disco/Disco.Models/Services/Plugins/Details/DetailsResult.cs
T
Gary Sharp 3e57af394d feature: custom details first-class
custom details (such as those from the UserDetails plugin) can now be more deeply integrated throughtout the system
2021-02-07 18:15:52 +11:00

43 lines
1.1 KiB
C#

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
namespace Disco.Models.Services.Plugins.Details
{
public class DetailsResult
{
public DateTime GatheredOn { get; private set; }
public DateTime ExpiresOn { get; private set; }
public Dictionary<string, string> Details { get; }
public bool SetExpiration(DateTime expireOn)
{
if (ExpiresOn > expireOn)
{
// only set the expiration if it is sooner
ExpiresOn = expireOn;
return true;
}
else
{
return false;
}
}
public DetailsResult()
{
GatheredOn = DateTime.Now;
ExpiresOn = DateTime.Now.AddDays(7);
Details = new Dictionary<string, string>();
}
[JsonConstructor]
public DetailsResult(DateTime gatheredOn, DateTime expiresOn, Dictionary<string, string> details)
{
GatheredOn = gatheredOn;
ExpiresOn = expiresOn;
Details = details ?? new Dictionary<string, string>();
}
}
}