Add project ConvertFromStrategy

This commit is contained in:
Evgeny Redikultsev
2024-10-20 20:01:32 +05:00
parent d3a1992f4d
commit b0c24126da
28 changed files with 457 additions and 75 deletions

View File

@@ -10,7 +10,8 @@ namespace StructureHelperCommon.Models.Analyses
{
public interface IVisualAnalysis : ISaveable, ICloneable
{
IAnalysis Analysis {get;set;}
IAnalysis Analysis { get; set; }
Action ActionToRun { get; set; }
void Run();
}
}

View File

@@ -0,0 +1,38 @@
using StructureHelperCommon.Infrastructures.Exceptions;
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Models.Analyses;
using System;
namespace StructureHelperCommon.Models.Analyses
{
public class VisualAnalysis : IVisualAnalysis
{
private IUpdateStrategy<IVisualAnalysis> updateStrategy = new VisualAnalysisUpdateStrategy();
public Guid Id { get; }
public IAnalysis Analysis { get; set; }
public Action ActionToRun { get; set; }
public VisualAnalysis(Guid id, IAnalysis analysis)
{
Id = id;
Analysis = analysis;
}
public VisualAnalysis(IAnalysis analysis) : this (Guid.NewGuid(), analysis)
{
}
public void Run()
{
ActionToRun?.Invoke();
}
public object Clone()
{
var newAnalysis = Analysis.Clone() as IAnalysis;
VisualAnalysis newItem = new(newAnalysis);
return newItem;
}
}
}