74 lines
2.2 KiB
C#
74 lines
2.2 KiB
C#
using Pilz.Networking.CloudProviders.Nextcloud.OCS.Data.Apps.FileRetention;
|
|
using Pilz.Networking.CloudProviders.Nextcloud.OCS.Responses.Apps.FilesRetention;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Pilz.Networking.CloudProviders.Nextcloud.Model.Apps.FilesRetention
|
|
{
|
|
public class RetentionRule
|
|
{
|
|
/// <summary>
|
|
/// The ID for the retention rule.
|
|
/// </summary>
|
|
public int ID { get; init; }
|
|
|
|
/// <summary>
|
|
/// The ID for the tag that is used for this rule.
|
|
/// </summary>
|
|
public int TagID { get; init; }
|
|
|
|
/// <summary>
|
|
/// The unit used for the time.
|
|
/// </summary>
|
|
public RetentionTimeUnit TimeUnit { get; init; }
|
|
|
|
/// <summary>
|
|
/// Represents numer of days/weeks/months/years.
|
|
/// </summary>
|
|
public int TimeAmount { get; init; }
|
|
|
|
/// <summary>
|
|
/// The time used for the rule.
|
|
/// </summary>
|
|
public RetentionTimeAfter TimeAfter { get; init; }
|
|
|
|
/// <summary>
|
|
/// Defines if a background job has been generated
|
|
/// </summary>
|
|
public bool HasJob { get; init; }
|
|
|
|
public RetentionRule(int iD, int tagID, RetentionTimeUnit timeUnit, int timeAmount, RetentionTimeAfter timeAfter, bool hasJob)
|
|
{
|
|
ID = iD;
|
|
TagID = tagID;
|
|
TimeUnit = timeUnit;
|
|
TimeAmount = timeAmount;
|
|
TimeAfter = timeAfter;
|
|
HasJob = hasJob;
|
|
}
|
|
|
|
public RetentionRule(OcsResponseDataEntryRetention data)
|
|
{
|
|
ID = data.ID ?? -1;
|
|
TagID = data.TagID ?? -1;
|
|
TimeUnit = (RetentionTimeUnit)(data.TimeUnit ?? 0);
|
|
TimeAmount = data.TimeAmount ?? -1;
|
|
TimeAfter = (RetentionTimeAfter)(data.TimeAfter ?? 0);
|
|
}
|
|
|
|
public OcsDataRetentionRule ToOcsData()
|
|
{
|
|
return new OcsDataRetentionRule
|
|
{
|
|
TagID = TagID,
|
|
TimeUnit = (int)TimeUnit,
|
|
TimeAmount = TimeAmount,
|
|
TimeAfter = (int)TimeAfter
|
|
};
|
|
}
|
|
}
|
|
}
|