OneDrive Backup

OneDrive Backup
This commit is contained in:
2023-07-28 22:36:06 +07:00
parent e1c6e91a0a
commit d70d81ebdf
244 changed files with 75229 additions and 0 deletions
@@ -0,0 +1,47 @@
using Newtonsoft.Json;
using onedrive_backup.Contracts;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace hassio_onedrive_backup.Hass
{
internal class HassOnedriveFreeSpaceEntityState : INotifyPropertyChanged
{
private const string OneDrive_FreeSpace_Entity_ID = "sensor.onedrivefreespace";
private IHassioClient? _hassioClient;
public HassOnedriveFreeSpaceEntityState(IHassioClient hassioClient)
{
_hassioClient = hassioClient;
}
public double? FreeSpaceGB { get; private set; }
public double? TotalSpaceGB { get; private set; }
public event PropertyChangedEventHandler? PropertyChanged;
public async Task UpdateOneDriveFreespaceSensorInHass(OneDriveFreeSpaceData freeSpaceData)
{
FreeSpaceGB = freeSpaceData.FreeSpace;
TotalSpaceGB = freeSpaceData.TotalSpace;
var payload = new
{
state = FreeSpaceGB == null ? "-" : FreeSpaceGB.Value.ToString("0.00"),
attributes = new Dictionary<string, string>
{
{ "unit_of_measurement", "GB" }
}
};
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(null));
string payloadStr = JsonConvert.SerializeObject(payload);
await _hassioClient.UpdateHassEntityStateAsync(OneDrive_FreeSpace_Entity_ID, payloadStr);
}
}
}