Files
Pilz/Pilz.Net.CloudProviders.Nextcloud/Extensions.cs
2024-08-16 06:59:39 +02:00

42 lines
1.3 KiB
C#

using Pilz.Net.CloudProviders.Nextcloud.OCS;
using System.Text;
namespace Pilz.Net.CloudProviders.Nextcloud;
public static class Extensions
{
public static string ToBasicAuth(this OcsApiAuthCredentials? credentials)
{
if (credentials != null)
{
var creds = $"{credentials?.LoginName}:{credentials?.AppPassword}";
var bytes = Encoding.UTF8.GetBytes(creds);
return "Basic " + Convert.ToBase64String(bytes);
}
return string.Empty;
}
public static OcsApiAuthCredentials? ToOcsApiAuthCredentials(this NextcloudLogin? login)
{
if (!string.IsNullOrEmpty(login?.LoginName) && !string.IsNullOrEmpty(login?.AppPassword))
return new OcsApiAuthCredentials(login.LoginName, login.AppPassword);
return null;
}
public static OcsApiUrlPath FillParameters(this OcsApiUrlPath path, params object?[] @params)
{
return (OcsApiUrlPath)string.Format(path, @params);
}
public static DateTime UnixTimeMillisecondsToDateTime(this long? value)
{
return DateTimeOffset.FromUnixTimeMilliseconds(value ?? 0).DateTime;
}
public static long ToUnixTimeMilliseconds(this DateTime value)
{
return new DateTimeOffset(value).ToUnixTimeMilliseconds();
}
}