Change open and save file logic

This commit is contained in:
Evgeny Redikultsev
2024-11-09 21:52:05 +05:00
parent a8d570713d
commit 0a2934a1ea
68 changed files with 1049 additions and 373 deletions

View File

@@ -0,0 +1,61 @@
using StructureHelperCommon.Models;
using StructureHelperCommon.Models.Projects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataAccess.Infrastructures
{
public class SaveProjectToFileLogic : ISaveProjectToFileLogic
{
private IGetRootObjectByProjectLogic getRootObjectLogic;
private IGetJsonDataByRootObjectLogic getJsonDataLogic;
public SaveProjectToFileLogic(
IGetRootObjectByProjectLogic getRootObjectLogic,
IGetJsonDataByRootObjectLogic getJsonDataLogic,
IShiftTraceLogger traceLogger)
{
this.getRootObjectLogic = getRootObjectLogic;
this.getJsonDataLogic = getJsonDataLogic;
TraceLogger = traceLogger;
}
public SaveProjectToFileLogic(IShiftTraceLogger traceLogger) : this (
new GetRootObjectByProjectLogic(traceLogger),
new GetJsonDataByRootObjectLogic(traceLogger),
traceLogger
)
{
}
public IProject Project { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public void SaveProject()
{
getRootObjectLogic.Project = Project;
var rootObject = getRootObjectLogic.GetRootObject();
getJsonDataLogic.RootObject = rootObject;
var jsonData = getJsonDataLogic.GetJsonData();
SaveStringToFile(jsonData);
}
private void SaveStringToFile(string jsonData)
{
try
{
File.Delete(Project.FullFileName);
File.WriteAllText(Project.FullFileName, jsonData);
TraceLogger?.AddMessage($"File {Project.FullFileName} was saved successfully", TraceLogStatuses.Service);
}
catch (Exception ex)
{
TraceLogger?.AddMessage(ex.Message, TraceLogStatuses.Error);
}
}
}
}