API_SequentMicrosystems-RPI/Services/PointsService.cs

96 lines
2.1 KiB
C#
Raw Normal View History

2023-11-25 08:24:04 +00:00
using API_SequentMicrosystems.Models;
using Newtonsoft.Json;
namespace API_SequentMicrosystems.Services
{
public class PointsService
{
private RTDDAService _RTDDAService;
public PointsService(RTDDAService _RTDDAS)
{
if (!Directory.Exists("Points"))
Directory.CreateDirectory("Points");
_RTDDAService = _RTDDAS;
_points = LoadPoints();
}
private List<PointsModel> _points;
/// <summary>
/// Load points from File
/// </summary>
/// <returns></returns>
private List<PointsModel> LoadPoints()
{
try
{
#pragma warning disable CS8603 // Může jít o vrácený odkaz null.
return JsonConvert.DeserializeObject<List<PointsModel>>(File.ReadAllText("Points/SavedData.json"));
#pragma warning restore CS8603 // Může jít o vrácený odkaz null.
}
catch
{
return new();
}
}
/// <summary>
/// Save points to File
/// </summary>
private void SavePoints()
{
File.WriteAllText("Points/SavedData.json", JsonConvert.SerializeObject(_points));
}
/// <summary>
/// Get saved Points
/// </summary>
/// <returns></returns>
public List<PointsModel> GetPoints()
{
return _points;
}
/// <summary>
/// Delete Points
/// </summary>
public void DeletePoints()
{
_points = new();
SavePoints();
}
/// <summary>
/// Save data/status point
/// </summary>
public void SavePoint()
{
PointsModel pm = new PointsModel(); //initialize point object
pm.Time = DateTime.Now; //set time of point created
pm.RTDDA = _RTDDAService.ReadAllCard(); //save RTD data to point
_points.Add(pm); //add point to list
SavePoints(); //Save updated points
}
}
}