Add VisualAnalysisDTO
This commit is contained in:
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Analyses
|
||||
{
|
||||
public class Version : IVersion
|
||||
public class DateVersion : IDateVersion
|
||||
{
|
||||
public DateTime DateTime { get; set; }
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Analyses
|
||||
{
|
||||
public class DateVersionUpdateStrategy : IUpdateStrategy<IDateVersion>
|
||||
{
|
||||
public void Update(IDateVersion targetObject, IDateVersion sourceObject)
|
||||
{
|
||||
CheckObject.IsNull(sourceObject, ErrorStrings.SourceObject);
|
||||
CheckObject.IsNull(targetObject, ErrorStrings.TargetObject);
|
||||
if (ReferenceEquals(targetObject, sourceObject)) { return; };
|
||||
targetObject.DateTime = sourceObject.DateTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Analyses
|
||||
{
|
||||
public interface IAnalysis : ISaveable
|
||||
public interface IAnalysis : ISaveable, ICloneable
|
||||
{
|
||||
string Name { get; set; }
|
||||
string Tags { get; set; }
|
||||
|
||||
@@ -7,9 +7,9 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Analyses
|
||||
{
|
||||
public interface IVersion
|
||||
public interface IDateVersion
|
||||
{
|
||||
DateTime DateTime { get; }
|
||||
DateTime DateTime { get; set; }
|
||||
ISaveable Item { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ namespace StructureHelperCommon.Models.Analyses
|
||||
public interface IVersionProcessor : ISaveable
|
||||
{
|
||||
void AddVersion(ISaveable newItem);
|
||||
List<IVersion> Versions { get; }
|
||||
IVersion GetCurrentVersion();
|
||||
List<IDateVersion> Versions { get; }
|
||||
IDateVersion GetCurrentVersion();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Analyses
|
||||
{
|
||||
public interface IVisualAnalysis : ISaveable
|
||||
public interface IVisualAnalysis : ISaveable, ICloneable
|
||||
{
|
||||
IAnalysis Analysis {get;set;}
|
||||
void Run();
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace StructureHelperCommon.Models.Analyses
|
||||
{
|
||||
public class VersionProcessor : IVersionProcessor
|
||||
{
|
||||
public List<IVersion> Versions { get; }
|
||||
public List<IDateVersion> Versions { get; }
|
||||
|
||||
public Guid Id { get; }
|
||||
|
||||
@@ -24,14 +24,14 @@ namespace StructureHelperCommon.Models.Analyses
|
||||
|
||||
}
|
||||
|
||||
private void AddVersion(IVersion version)
|
||||
private void AddVersion(IDateVersion version)
|
||||
{
|
||||
Versions.Add(version);
|
||||
}
|
||||
|
||||
public void AddVersion(ISaveable newItem)
|
||||
{
|
||||
var version = new Version()
|
||||
var version = new DateVersion()
|
||||
{
|
||||
DateTime = DateTime.Now,
|
||||
Item = newItem
|
||||
@@ -40,7 +40,7 @@ namespace StructureHelperCommon.Models.Analyses
|
||||
}
|
||||
|
||||
|
||||
public IVersion GetCurrentVersion()
|
||||
public IDateVersion GetCurrentVersion()
|
||||
{
|
||||
return Versions[^1];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Models.Analyses;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Analyses
|
||||
{
|
||||
public class VisualAnalysisUpdateStrategy : IUpdateStrategy<IVisualAnalysis>
|
||||
{
|
||||
public void Update(IVisualAnalysis targetObject, IVisualAnalysis sourceObject)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,8 @@ namespace StructureHelperCommon.Models.Projects
|
||||
{
|
||||
public void Update(IFileVersion targetObject, IFileVersion sourceObject)
|
||||
{
|
||||
CheckObject.IsNull(targetObject, sourceObject);
|
||||
CheckObject.IsNull(targetObject);
|
||||
CheckObject.IsNull(sourceObject);
|
||||
if (ReferenceEquals(targetObject, sourceObject)) { return; };
|
||||
targetObject.VersionNumber = sourceObject.VersionNumber;
|
||||
targetObject.SubVersionNumber = sourceObject.SubVersionNumber;
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Models.Analyses;
|
||||
using StructureHelperCommon.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Projects
|
||||
{
|
||||
public class ProjectUpdateStrategy : IUpdateStrategy<IProject>
|
||||
{
|
||||
private IUpdateStrategy<IVisualAnalysis> updateStrategy;
|
||||
|
||||
public ProjectUpdateStrategy(IUpdateStrategy<IVisualAnalysis> updateStrategy)
|
||||
{
|
||||
this.updateStrategy = updateStrategy;
|
||||
}
|
||||
|
||||
public ProjectUpdateStrategy() : this(new VisualAnalysisUpdateStrategy())
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Update(IProject targetObject, IProject sourceObject)
|
||||
{
|
||||
CheckObject.IsNull(sourceObject, ErrorStrings.SourceObject);
|
||||
CheckObject.IsNull(targetObject, ErrorStrings.TargetObject);
|
||||
if (ReferenceEquals(targetObject, sourceObject)) { return; }
|
||||
targetObject.VisualAnalyses.Clear();
|
||||
foreach (var item in sourceObject.VisualAnalyses)
|
||||
{
|
||||
targetObject.VisualAnalyses.Add(item.Clone() as IVisualAnalysis);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -17,6 +19,8 @@ namespace StructureHelperCommon.Models.Shapes
|
||||
/// <inheritdoc />
|
||||
public void Update(IPoint2D targetObject, IPoint2D sourceObject)
|
||||
{
|
||||
CheckObject.IsNull(sourceObject, ErrorStrings.SourceObject);
|
||||
CheckObject.IsNull(targetObject, ErrorStrings.TargetObject);
|
||||
if (ReferenceEquals(targetObject, sourceObject)) { return; }
|
||||
targetObject.X = sourceObject.X;
|
||||
targetObject.Y = sourceObject.Y;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -11,6 +12,8 @@ namespace StructureHelperCommon.Models.Shapes
|
||||
{
|
||||
public void Update(IRectangleShape targetObject, IRectangleShape sourceObject)
|
||||
{
|
||||
CheckObject.IsNull(sourceObject);
|
||||
CheckObject.IsNull(targetObject);
|
||||
if (ReferenceEquals(targetObject, sourceObject)) { return; }
|
||||
targetObject.Width = sourceObject.Width;
|
||||
targetObject.Height = sourceObject.Height;
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Shapes.Logics
|
||||
{
|
||||
public class ShapeUpdateStrategy : IUpdateStrategy<IShape>
|
||||
{
|
||||
public void Update(IShape targetObject, IShape sourceObject)
|
||||
{
|
||||
CheckObject.IsNull(targetObject);
|
||||
CheckObject.IsNull(sourceObject);
|
||||
if (ReferenceEquals(targetObject, sourceObject)) { return; }
|
||||
if (sourceObject is IRectangleShape sourceRectangle)
|
||||
{
|
||||
ProcessRectangles(targetObject, sourceRectangle);
|
||||
}
|
||||
else if (sourceObject is ICircleShape sourceCircle)
|
||||
{
|
||||
ProcessCircles(targetObject, sourceCircle);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown);
|
||||
}
|
||||
}
|
||||
|
||||
private static void ProcessCircles(IShape targetObject, ICircleShape sourceCircle)
|
||||
{
|
||||
if (targetObject is ICircleShape targetCircle)
|
||||
{
|
||||
var updateLogic = new CircleShapeUpdateStrategy();
|
||||
updateLogic.Update(targetCircle, sourceCircle);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StructureHelperException(ErrorStrings.DataIsInCorrect + ": target object is not circle");
|
||||
}
|
||||
}
|
||||
|
||||
private static void ProcessRectangles(IShape targetObject, IRectangleShape sourceRectangle)
|
||||
{
|
||||
if (targetObject is IRectangleShape targetRectangle)
|
||||
{
|
||||
var updateLogic = new RectangleShapeUpdateStrategy();
|
||||
updateLogic.Update(targetRectangle, sourceRectangle);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StructureHelperException(ErrorStrings.DataIsInCorrect + ": target object is not rectangle");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user