Files
StructureHelper/DataAccess/Infrastructures/CheckRootObjectLogic.cs
2024-11-09 21:52:05 +05:00

76 lines
2.4 KiB
C#

using DataAccess.DTOs;
using StructureHelperCommon.Infrastructures.Interfaces;
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 CheckRootObjectLogic : ICheckEntityLogic<IRootObjectDTO>
{
public IRootObjectDTO Entity { get; set; }
public string CheckResult { get; private set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public CheckRootObjectLogic(IShiftTraceLogger? traceLogger)
{
TraceLogger = traceLogger;
}
public bool Check()
{
bool result = true;
string checkResult = string.Empty;
var checkRootResult = CheckRootObject();
if (checkRootResult.checkResult = false)
{
checkResult += checkRootResult.errorString;
result = false;
}
CheckResult = checkResult;
return result;
}
private (bool checkResult, string errorString) CheckRootObject()
{
bool checkRootResult = true;
string errorString = string.Empty;
if (Entity.FileVersion is null)
{
checkRootResult = false;
errorString += "Section of file version is damaged";
TraceLogger?.AddMessage(errorString, TraceLogStatuses.Error);
return (checkRootResult, errorString);
}
var fileVersion = Entity.FileVersion;
var checkLogic = new CheckFileVersionLogic()
{
FileVersion = fileVersion,
TraceLogger = TraceLogger
};
var checkResult = checkLogic.Check();
if (checkResult == false)
{
checkRootResult = false;
errorString += checkLogic.CheckResult;
return (checkRootResult, errorString);
}
if (Entity.Project is null)
{
checkRootResult = false;
errorString += "Section of project is damaged";
TraceLogger?.AddMessage(errorString, TraceLogStatuses.Error);
return (checkRootResult, errorString);
}
return (checkRootResult, errorString);
}
}
}