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

@@ -77,7 +77,7 @@ namespace DataAccess.DTOs.Converters
versionProcessorConvertStrategy.ReferenceDictionary = ReferenceDictionary;
versionProcessorConvertStrategy.TraceLogger = TraceLogger;
IVersionProcessor versionProcessor = versionProcessorConvertStrategy.Convert(source);
TraceLogger?.AddMessage("Version processor converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Version processor converting has been finished successfully", TraceLogStatuses.Service);
return versionProcessor;
}
@@ -89,7 +89,7 @@ namespace DataAccess.DTOs.Converters
convertCrossSectionNdmAnalysisStrategy.TraceLogger = TraceLogger;
var convertLogic = new DictionaryConvertStrategy<ICrossSectionNdmAnalysis, ICrossSectionNdmAnalysis>(this, convertCrossSectionNdmAnalysisStrategy);
ICrossSectionNdmAnalysis crossSectionNdmAnalysis = convertLogic.Convert(source);
TraceLogger?.AddMessage("Cross-Section Ndm Analysis converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Cross-Section Ndm Analysis converting has been finished successfully", TraceLogStatuses.Service);
return crossSectionNdmAnalysis;
}

View File

@@ -28,7 +28,7 @@ namespace DataAccess.DTOs
TraceLogger?.AddMessage("Concrete library material converting is started", TraceLogStatuses.Service);
ConcreteLibMaterial newItem = new(source.Id);
updateStrategy.Update(newItem, source);
TraceLogger?.AddMessage("Concrete library material converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Concrete library material converting has been finished successfully", TraceLogStatuses.Service);
return newItem;
}
}

View File

@@ -49,7 +49,7 @@ namespace DataAccess.DTOs
convertStrategy.ReferenceDictionary = ReferenceDictionary;
convertStrategy.TraceLogger = TraceLogger;
newItem.SectionRepository = GetNewCrossSectionRepository(source.SectionRepository);
TraceLogger?.AddMessage("Cross-Section converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Cross-Section converting has been finished successfully", TraceLogStatuses.Service);
return newItem;
}

View File

@@ -51,7 +51,7 @@ namespace DataAccess.DTOs.Converters
TraceLogger?.AddMessage("Cross-section sonverting is started");
CrossSectionNdmAnalysis newItem = new(source.Id);
updateStrategy.Update(newItem, source);
TraceLogger?.AddMessage("Cross-section analysis was obtained succesfully");
TraceLogger?.AddMessage("Cross-section analysis was obtained successfully");
return newItem;
}

View File

@@ -68,7 +68,7 @@ namespace DataAccess.DTOs.Converters
};
TraceLogger?.AddMessage("Convert version processor is started", TraceLogStatuses.Service);
newItem.VersionProcessor = convertLogic.Convert(source.VersionProcessor);
TraceLogger?.AddMessage("Cross-section ndm analysis has been converted succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Cross-section ndm analysis has been converted successfully", TraceLogStatuses.Service);
return newItem;
}

View File

@@ -20,7 +20,7 @@ namespace DataAccess.DTOs
public class CrossSectionRepositoryFromDTOConvertStrategy : ConvertStrategy<ICrossSectionRepository, ICrossSectionRepository>
{
private const string convertStarted = " converting is started";
private const string convertFinished = " converting has been finished succesfully";
private const string convertFinished = " converting has been finished successfully";
private CrossSectionRepository newRepository;
private IHasPrimitivesProcessLogic primitivesProcessLogic = new HasPrimitivesProcessLogic();

View File

@@ -28,7 +28,7 @@ namespace DataAccess.DTOs
TraceLogger?.AddMessage("Elastic material converting is started", TraceLogStatuses.Service);
ElasticMaterial newItem = new(source.Id);
updateStrategy.Update(newItem, source);
TraceLogger?.AddMessage("Elastic material converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Elastic material converting has been finished successfully", TraceLogStatuses.Service);
return newItem;
}
}

View File

@@ -28,7 +28,7 @@ namespace DataAccess.DTOs
TraceLogger?.AddMessage("Fiber reinforcement material converting is started", TraceLogStatuses.Service);
FRMaterial newItem = new(source.MaterialType, source.Id);
updateStrategy.Update(newItem, source);
TraceLogger?.AddMessage("FiberReinforcement material converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("FiberReinforcement material converting has been finished successfully", TraceLogStatuses.Service);
return newItem;
}
}

View File

@@ -57,7 +57,7 @@ namespace DataAccess.DTOs
TraceLogger?.AddMessage($"Mx = {newDesignTuple.ForceTuple.Mx}, My = {newDesignTuple.ForceTuple.My}, Nz = {newDesignTuple.ForceTuple.Nz}");
newItem.DesignForces.Add(newDesignTuple);
}
TraceLogger?.AddMessage($"Force combination list name = {newItem.Name} has been finished succesfully");
TraceLogger?.AddMessage($"Force combination list name = {newItem.Name} has been finished successfully");
return newItem;
}
}

View File

@@ -12,7 +12,7 @@ namespace DataAccess.DTOs
public class HasForceActionsProcessLogic : IHasForceActionsProcessLogic
{
private const string convertStarted = " converting is started";
private const string convertFinished = " converting has been finished succesfully";
private const string convertFinished = " converting has been finished successfully";
public IShiftTraceLogger TraceLogger { get; set; }
public Dictionary<(Guid id, Type type), ISaveable> ReferenceDictionary { get; set; }

View File

@@ -12,7 +12,7 @@ namespace DataAccess.DTOs.Converters
public class HasPrimitivesProcessLogic : IHasPrimitivesProcessLogic
{
private const string convertStarted = " converting is started";
private const string convertFinished = " converting has been finished succesfully";
private const string convertFinished = " converting has been finished successfully";
public IHasPrimitives Source { get; set; }
public IHasPrimitives Target { get; set; }

View File

@@ -40,7 +40,7 @@ namespace DataAccess.DTOs
IHelperMaterial helperMaterial = GetHelperMaterial(source.HelperMaterial);
newItem.HelperMaterial = helperMaterial;
//GlobalRepository
TraceLogger?.AddMessage($"Head material Name = {newItem.Name} converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"Head material Name = {newItem.Name} converting has been finished successfully", TraceLogStatuses.Service);
return newItem;
}

View File

@@ -91,7 +91,7 @@ namespace DataAccess.DTOs
rebarConvertStrategy.ReferenceDictionary = ReferenceDictionary;
rebarConvertStrategy.TraceLogger = TraceLogger;
RebarNdmPrimitive newItem = rebarConvertStrategy.Convert(rebar);
TraceLogger?.AddMessage($"Primtive has been obtained succesfully, Name = {newItem.Name}");
TraceLogger?.AddMessage($"Primtive has been obtained successfully, Name = {newItem.Name}");
newItem.HostPrimitive = GetHostPrimitive(rebar);
return newItem;
}
@@ -115,7 +115,7 @@ namespace DataAccess.DTOs
pointConvertStrategy.ReferenceDictionary = ReferenceDictionary;
pointConvertStrategy.TraceLogger = TraceLogger;
PointNdmPrimitive newItem = pointConvertStrategy.Convert(point);
TraceLogger?.AddMessage($"Primtive has been obtained succesfully, Name = {newItem.Name}");
TraceLogger?.AddMessage($"Primtive has been obtained successfully, Name = {newItem.Name}");
return newItem;
}
@@ -125,7 +125,7 @@ namespace DataAccess.DTOs
ellipseConvertStrategy.ReferenceDictionary = ReferenceDictionary;
ellipseConvertStrategy.TraceLogger = TraceLogger;
EllipseNdmPrimitive newItem = ellipseConvertStrategy.Convert(ellipse);
TraceLogger?.AddMessage($"Primtive has been obtained succesfully, Name = {newItem.Name}");
TraceLogger?.AddMessage($"Primtive has been obtained successfully, Name = {newItem.Name}");
return newItem;
}
@@ -135,7 +135,7 @@ namespace DataAccess.DTOs
rectangleConvertStrategy.ReferenceDictionary = ReferenceDictionary;
rectangleConvertStrategy.TraceLogger = TraceLogger;
RectangleNdmPrimitive newItem = rectangleConvertStrategy.Convert(rectangle);
TraceLogger?.AddMessage($"Primtive has been obtained succesfully, Name = {newItem.Name}");
TraceLogger?.AddMessage($"Primtive has been obtained successfully, Name = {newItem.Name}");
return newItem;
}
}

View File

@@ -1,82 +1,69 @@
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Models;
using StructureHelperCommon.Models.Analyses;
using StructureHelperCommon.Models.Loggers;
using StructureHelperCommon.Models.Projects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataAccess.DTOs
{
public class ProjectFromDTOConvertStrategy : IConvertStrategy<Project, ProjectDTO>
public class ProjectFromDTOConvertStrategy : ConvertStrategy<Project, ProjectDTO>
{
private IUpdateStrategy<IProject> updateStrategy;
private IConvertStrategy<IVisualAnalysis, IVisualAnalysis> visualAnalysisConvertStrategy = new VisualAnaysisFromDTOConvertStrategy();
private IUpdateStrategy<IProject> _updateStrategy;
private IConvertStrategy<IVisualAnalysis, IVisualAnalysis> _convertLogic;
public ProjectFromDTOConvertStrategy(IUpdateStrategy<IProject> updateStrategy)
public ProjectFromDTOConvertStrategy(IUpdateStrategy<IProject> updateStrategy,
IConvertStrategy<IVisualAnalysis, IVisualAnalysis> convertLogic,
Dictionary<(Guid id, Type type), ISaveable> refDictinary,
IShiftTraceLogger? traceLogger)
{
this.updateStrategy = updateStrategy;
_updateStrategy = updateStrategy;
_convertLogic = convertLogic;
ReferenceDictionary = refDictinary;
TraceLogger = traceLogger;
}
public ProjectFromDTOConvertStrategy() : this (new ProjectUpdateStrategy())
{
}
public ProjectFromDTOConvertStrategy(
Dictionary<(Guid id, Type type), ISaveable> refDictinary,
IShiftTraceLogger? traceLogger)
: this(
new ProjectUpdateStrategy(),
new DictionaryConvertStrategy<IVisualAnalysis, IVisualAnalysis>(
refDictinary,
new VisualAnaysisFromDTOConvertStrategy(refDictinary, traceLogger),
traceLogger),
refDictinary,
traceLogger)
{ }
public Dictionary<(Guid id, Type type), ISaveable> ReferenceDictionary { get; set; }
public IShiftTraceLogger TraceLogger { get; set; }
public Project Convert(ProjectDTO source)
{
Check();
TraceLogger?.AddMessage("Converting project is started", TraceLogStatuses.Info);
try
{
Project newItem = GetProject(source);
return newItem;
}
catch (Exception ex)
{
TraceLogger?.AddMessage(LoggerStrings.LogicType(this), TraceLogStatuses.Error);
TraceLogger?.AddMessage(ex.Message, TraceLogStatuses.Error);
throw;
}
}
private Project GetProject(ProjectDTO source)
{
TraceLogger?.AddMessage("Converting of project is started", TraceLogStatuses.Service);
Project newItem = new();
updateStrategy.Update(newItem, source);
visualAnalysisConvertStrategy.ReferenceDictionary = ReferenceDictionary;
visualAnalysisConvertStrategy.TraceLogger = TraceLogger;
var convertLogic = new DictionaryConvertStrategy<IVisualAnalysis, IVisualAnalysis>(this, visualAnalysisConvertStrategy);
public override Project GetNewItem(ProjectDTO source)
{
TraceLogger?.AddMessage("Converting of project is started");
Project newItem = new(source.Id);
List<IVisualAnalysis> analyses = GetAnalyses(source, newItem);
newItem.VisualAnalyses.Clear();
TraceLogger?.AddMessage($"Source project has {source.VisualAnalyses.Count()} analyses", TraceLogStatuses.Service);
foreach (var item in source.VisualAnalyses)
{
var visualAnalysis = convertLogic.Convert(item);
newItem.VisualAnalyses.Add(visualAnalysis);
}
newItem.VisualAnalyses.AddRange(analyses);
if (newItem.VisualAnalyses.Any())
{
TraceLogger?.AddMessage($"Totaly {newItem.VisualAnalyses.Count()} were(was) obtained", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"Totaly {newItem.VisualAnalyses.Count} were(was) obtained");
}
else
{
TraceLogger?.AddMessage($"Project does not have any analyses", TraceLogStatuses.Warning);
TraceLogger?.AddMessage($"Project does not have any analyses, it is possible to work with project", TraceLogStatuses.Warning);
}
TraceLogger?.AddMessage("Converting of project has completed succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Converting of project has been finished successfully");
return newItem;
}
private void Check()
public List<IVisualAnalysis> GetAnalyses(ProjectDTO source, Project newItem)
{
var checkLogic = new CheckConvertLogic<Project, ProjectDTO>(this);
checkLogic.Check();
_updateStrategy.Update(newItem, source);
TraceLogger?.AddMessage($"Source project has {source.VisualAnalyses.Count} analyses");
List<IVisualAnalysis> analyses = new();
foreach (var item in source.VisualAnalyses)
{
var visualAnalysis = _convertLogic.Convert(item);
analyses.Add(visualAnalysis);
}
return analyses;
}
}
}

View File

@@ -28,7 +28,7 @@ namespace DataAccess.DTOs
TraceLogger?.AddMessage("Reinforcement library material converting is started", TraceLogStatuses.Service);
ReinforcementLibMaterial newItem = new(source.Id);
updateStrategy.Update(newItem, source);
TraceLogger?.AddMessage("Reinforcement library material converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Reinforcement library material converting has been finished successfully", TraceLogStatuses.Service);
return newItem;
}
}

View File

@@ -64,7 +64,7 @@ namespace DataAccess.DTOs
crossSectionConvertStrategy.TraceLogger = TraceLogger;
var convertLogic = new DictionaryConvertStrategy<ICrossSection, ICrossSection>(this, crossSectionConvertStrategy);
ICrossSection newItem = convertLogic.Convert(source);
TraceLogger?.AddMessage("Cross-Section converting has been finished succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Cross-Section converting has been finished successfully", TraceLogStatuses.Service);
return newItem;
}

View File

@@ -59,7 +59,7 @@ namespace DataAccess.DTOs
newItem.Versions.Add(dateVersion);
}
TraceLogger?.AddMessage($"Totaly {newItem.Versions.Count} version(s) was(were) obtained", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Version processor has been converted succesfully", TraceLogStatuses.Service);
TraceLogger?.AddMessage("Version processor has been converted successfully", TraceLogStatuses.Service);
return newItem;
}

View File

@@ -12,42 +12,37 @@ using System.Threading.Tasks;
namespace DataAccess.DTOs
{
public class VisualAnaysisFromDTOConvertStrategy : IConvertStrategy<IVisualAnalysis, IVisualAnalysis>
public class VisualAnaysisFromDTOConvertStrategy : ConvertStrategy<IVisualAnalysis, IVisualAnalysis>
{
private IConvertStrategy<IAnalysis, IAnalysis> analysisConvertStrategy = new AnalysisFromDTOConvertStrategy();
public Dictionary<(Guid id, Type type), ISaveable> ReferenceDictionary { get; set; }
public IShiftTraceLogger TraceLogger { get; set; }
private IConvertStrategy<IAnalysis, IAnalysis> analysisConvertStrategy;
public IVisualAnalysis Convert(IVisualAnalysis source)
public VisualAnaysisFromDTOConvertStrategy(IConvertStrategy<IAnalysis, IAnalysis> analysisConvertStrategy,
Dictionary<(Guid id, Type type), ISaveable> refDictinary,
IShiftTraceLogger? traceLogger)
{
Check();
try
{
VisualAnalysis newItem = GetAnalysis(source);
return newItem;
}
catch (Exception ex)
{
TraceLogger?.AddMessage(LoggerStrings.LogicType(this), TraceLogStatuses.Error);
TraceLogger?.AddMessage(ex.Message, TraceLogStatuses.Error);
throw;
}
this.analysisConvertStrategy = analysisConvertStrategy;
ReferenceDictionary = refDictinary;
TraceLogger = traceLogger;
}
private VisualAnalysis GetAnalysis(IVisualAnalysis source)
public VisualAnaysisFromDTOConvertStrategy(
Dictionary<(Guid id, Type type), ISaveable> refDictinary,
IShiftTraceLogger? traceLogger)
: this(
new AnalysisFromDTOConvertStrategy(),
refDictinary,
traceLogger)
{ }
public override VisualAnalysis GetNewItem(IVisualAnalysis source)
{
TraceLogger?.AddMessage($"Visual Analysis Name = {source.Analysis.Name} converting is started");
analysisConvertStrategy.ReferenceDictionary = ReferenceDictionary;
analysisConvertStrategy.TraceLogger = TraceLogger;
IAnalysis analysis = analysisConvertStrategy.Convert(source.Analysis);
VisualAnalysis newItem = new(source.Id, analysis);
TraceLogger?.AddMessage($"Visual Analysis was obtained succesfully", TraceLogStatuses.Debug);
TraceLogger?.AddMessage($"Visual Analysis Name = {newItem.Analysis.Name} was obtained successfully");
return newItem;
}
private void Check()
{
var checkLogic = new CheckConvertLogic<IVisualAnalysis, IVisualAnalysis>(this);
checkLogic.Check();
}
}
}

View File

@@ -20,7 +20,7 @@ namespace DataAccess.DTOs
public bool IsActual { get; set; }
[JsonProperty("VisualAnalyses")]
public List<IVisualAnalysis> VisualAnalyses { get; private set; } = new();
public List<IVisualAnalysis> VisualAnalyses { get; set; } = new();
[JsonIgnore]
public string FileName { get; set; }