using Pilz.Net.CloudProviders.Nextcloud; using Pilz.Net.CloudProviders.Nextcloud.Client; using Pilz.Net.CloudProviders.Nextcloud.Client.Apps.FileRetention.Model; namespace Pilz.Net.CloudProviders.Nextcloud.Client.Apps.FileRetention; public class FilesRetentionClient : ClientBase { public FilesRetentionClient(NextcloudClient client) : base(client) { } public bool CreateRetentionRule(RetentionRuleInfo rule) { var entry = rule.ToOcsData(); return Client.Ocs.GetApi().CreateRetentionRule(entry); } public bool DeleteRetentionRule(int ruleID) { return Client.Ocs.GetApi().DeleteRetentionRule(ruleID); } public RetentionRule[]? GetRetentionRules() { var api = Client.Ocs.GetApi(); var response = api.GetRetentionRules(); if (response?.Data is not null) { var rules = new List(); foreach (var entry in response.Data) rules.Add(new RetentionRule(entry)); return rules.ToArray(); } return null; } }