using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Text;
using Tools.SingletonTool.Base;
using Learn_CSS.APP.Web.Models.Services;
namespace Learn_CSS.APP.Web.Models.Entities
{
public class StorageParams
{
public string Directory { set; get; }
public TaskSerializerService TaskSerializerService { set; get; }
}
public class Storage : ISignlethonWithParams<StorageParams>
{
StorageParams param;
public List<TaskEntity> data { private set; get; }
= new List<TaskEntity>();
public void SetParams(StorageParams param)
{
this.param = param;
}
public void Load()
{
DirectoryInfo dir = new DirectoryInfo(param.Directory);
if (!dir.Exists)
{
dir.Create();
return;
}
data.Clear();
var files = dir.GetFiles();
foreach (var elem in files)
{
data.Add(param.TaskSerializerService.Load(elem.FullName));
}
}
public void Save()
{
DirectoryInfo dir = new DirectoryInfo(param.Directory);
if (!dir.Exists)
{
dir.Delete(true);
}
dir.Create();
for (int i = 0; i< data.Count; i++)
{
var elem = data[i];
param.TaskSerializerService.Save(elem, Path.Combine(dir.FullName, "Task " + i + ".txt"));
}
}
}
}