Skip to content

Commit 18964da

Browse files
author
Smiechowski Nathanael
authored
Merge pull request #74 from RHEAGROUP/development
1.4.0
2 parents 539a663 + 1f1247d commit 18964da

13 files changed

Lines changed: 338 additions & 120 deletions

DEHPMatlab.Tests/NetChange/HubNetChangePreviewViewModelTestFixture.cs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ namespace DEHPMatlab.Tests.NetChange
3636
using CDP4Common.Types;
3737

3838
using CDP4Dal;
39-
using CDP4Dal.Events;
4039
using CDP4Dal.Permission;
4140

4241
using DEHPCommon.Events;
@@ -132,6 +131,14 @@ public void Setup()
132131
Container = this.iteration
133132
};
134133

134+
var parameterGroup1 = new ParameterGroup(Guid.NewGuid(), null, null);
135+
var parameterGroup2 = new ParameterGroup(Guid.NewGuid(), null, null);
136+
parameterGroup2.ContainingGroup = parameterGroup1;
137+
parameterGroup1.Container = this.elementDefinition0;
138+
this.elementDefinition0.ParameterGroup.Add(parameterGroup1);
139+
this.elementDefinition0.ParameterGroup.Add(parameterGroup2);
140+
this.elementDefinition0.Parameter.First().Group = parameterGroup2;
141+
135142
this.elementDefinition1 = new ElementDefinition(Guid.NewGuid(), null, null)
136143
{
137144
Parameter =
@@ -327,8 +334,8 @@ public void VerifyComputeValues()
327334
Assert.AreEqual(3, elements.Count);
328335
Assert.DoesNotThrow(() => this.viewModel.ComputeValuesWrapper());
329336

330-
var parameterRowViewModels = elements.First(x => x.Thing.Iid == this.elementDefinition0.Iid)
331-
.ContainedRows.OfType<ParameterRowViewModel>();
337+
var parameterRowViewModels = elements.First(x => x.Thing.Iid == this.elementDefinition0.Iid).ContainedRows.First().ContainedRows.First()
338+
.ContainedRows.OfType<ParameterOrOverrideBaseRowViewModel>();
332339

333340
Assert.AreEqual("2", parameterRowViewModels.First().Value);
334341

@@ -404,7 +411,7 @@ public void VerifyWhenItemSelectedChanges()
404411
this.parameterVariable[this.parameter] = new MatlabWorkspaceRowViewModel("a", 45);
405412
Assert.DoesNotThrow(() => this.viewModel.WhenItemSelectedChanges(elementDefinitionRow));
406413

407-
var parameterRow = elementDefinitionRow.ContainedRows.OfType<ParameterRowViewModel>().First();
414+
var parameterRow = elementDefinitionRow.ContainedRows.First().ContainedRows.First().ContainedRows.OfType<ParameterRowViewModel>().First();
408415
Assert.DoesNotThrow(() => this.viewModel.WhenItemSelectedChanges(parameterRow));
409416

410417
var elementDefinitionRow2 = elements.First(x => x.Thing.Iid == this.elementDefinition2.Iid);
@@ -414,9 +421,6 @@ public void VerifyWhenItemSelectedChanges()
414421
this.parameterVariable[this.parameterOverride] = new MatlabWorkspaceRowViewModel("a", 45);
415422
Assert.DoesNotThrow(() => this.viewModel.WhenItemSelectedChanges(elementUsageRow));
416423

417-
var parameterOverrideRow = elementUsageRow.ContainedRows.OfType<ParameterOverrideRowViewModel>().First();
418-
Assert.DoesNotThrow(() => this.viewModel.WhenItemSelectedChanges(parameterOverrideRow));
419-
420424
this.dstMapResult.Clear();
421425
}
422426

DEHPMatlab.Tests/ViewModel/Dialogs/DstMappingConfigurationDialogViewModelTestFixture.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,11 @@ public void VerifyAvailableOptions()
356356
{
357357
this.iteration.Option.Add(new Option());
358358
Assert.DoesNotThrow(() => this.viewModel.UpdateAvailableOptions());
359-
Assert.AreEqual(1, this.viewModel.AvailableOptions.Count);
359+
Assert.AreEqual(0, this.viewModel.AvailableOptions.Count);
360+
this.viewModel.SelectedThing = new MatlabWorkspaceRowViewModel("a", 45);
361+
this.viewModel.SelectedThing.SelectedParameter = new Parameter(){IsOptionDependent = true};
362+
Assert.DoesNotThrow(() => this.viewModel.UpdateAvailableOptions());
363+
Assert.AreEqual(2, this.viewModel.AvailableOptions.Count);
360364
}
361365

362366
[Test]
@@ -436,9 +440,15 @@ public void VerifyElementUsage()
436440

437441
session.Setup(x => x.PermissionService).Returns(permissionService.Object);
438442
this.hubController.Setup(x => x.Session).Returns(session.Object);
439-
443+
444+
this.viewModel.AvailableElementDefinitions.Add(element0);
440445
this.viewModel.SelectedThing = variable;
441446
Assert.DoesNotThrow(() => this.viewModel.UpdateAvailableElementsUsages());
447+
Assert.IsNotEmpty(this.viewModel.AvailableElementUsages);
448+
Assert.AreEqual(3, this.viewModel.AvailableParameters.Count);
449+
this.viewModel.SelectedThing.SelectedElementUsages.Add(element0.ContainedElement.First());
450+
this.viewModel.ElementUsageSelectedIndex = 1;
451+
Assert.AreEqual(1, this.viewModel.AvailableParameters.Count);
442452
}
443453

444454
[Test]

DEHPMatlab.sln

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,53 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.32002.261
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.1.32328.378
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DEHPMatlab", "DEHPMatlab\DEHPMatlab.csproj", "{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}"
77
EndProject
8-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DEHPMatlab.Tests", "DEHPMatlab.Tests\DEHPMatlab.Tests.csproj", "{26EBE265-7335-44CA-BC13-BCD385732C9E}"
9-
EndProject
108
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{DD70E8DE-1843-490E-A0F1-9E2FC46A1937}"
119
ProjectSection(SolutionItems) = preProject
1210
DEHPMatlab.sln.DotSettings = DEHPMatlab.sln.DotSettings
1311
README.md = README.md
1412
switcher.json = switcher.json
1513
EndProjectSection
1614
EndProject
15+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DEHPMatlab.Tests", "DEHPMatlab.Tests\DEHPMatlab.Tests.csproj", "{4516F3DC-4BB1-41FB-B607-EA07F15A2012}"
16+
EndProject
1717
Global
1818
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1919
Debug|Any CPU = Debug|Any CPU
20+
Debug|x64 = Debug|x64
21+
Debug|x86 = Debug|x86
2022
Release|Any CPU = Release|Any CPU
23+
Release|x64 = Release|x64
24+
Release|x86 = Release|x86
2125
EndGlobalSection
2226
GlobalSection(ProjectConfigurationPlatforms) = postSolution
2327
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2428
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
29+
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Debug|x64.ActiveCfg = Debug|Any CPU
30+
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Debug|x64.Build.0 = Debug|Any CPU
31+
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Debug|x86.ActiveCfg = Debug|Any CPU
32+
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Debug|x86.Build.0 = Debug|Any CPU
2533
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
2634
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Release|Any CPU.Build.0 = Release|Any CPU
27-
{26EBE265-7335-44CA-BC13-BCD385732C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
28-
{26EBE265-7335-44CA-BC13-BCD385732C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
29-
{26EBE265-7335-44CA-BC13-BCD385732C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
30-
{26EBE265-7335-44CA-BC13-BCD385732C9E}.Release|Any CPU.Build.0 = Release|Any CPU
35+
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Release|x64.ActiveCfg = Release|Any CPU
36+
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Release|x64.Build.0 = Release|Any CPU
37+
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Release|x86.ActiveCfg = Release|Any CPU
38+
{62F11F20-61B8-4098-B6AC-7C28E3D5B3D6}.Release|x86.Build.0 = Release|Any CPU
39+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
40+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Debug|Any CPU.Build.0 = Debug|Any CPU
41+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Debug|x64.ActiveCfg = Debug|x64
42+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Debug|x64.Build.0 = Debug|x64
43+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Debug|x86.ActiveCfg = Debug|x86
44+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Debug|x86.Build.0 = Debug|x86
45+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Release|Any CPU.ActiveCfg = Release|Any CPU
46+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Release|Any CPU.Build.0 = Release|Any CPU
47+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Release|x64.ActiveCfg = Release|x64
48+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Release|x64.Build.0 = Release|x64
49+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Release|x86.ActiveCfg = Release|x86
50+
{4516F3DC-4BB1-41FB-B607-EA07F15A2012}.Release|x86.Build.0 = Release|x86
3151
EndGlobalSection
3252
GlobalSection(SolutionProperties) = preSolution
3353
HideSolutionNode = FALSE

DEHPMatlab/DEHPMatlab.csproj

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,32 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
32
<PropertyGroup>
4-
<OutputType>WinExe</OutputType>
5-
<TargetFramework>net472</TargetFramework>
6-
<RootNamespace>DEHPMatlab</RootNamespace>
7-
<UseWPF>true</UseWPF>
8-
<AssemblyTitle>DEHPMatlab</AssemblyTitle>
9-
<Company>RHEA System S.A.</Company>
10-
<Product>DEHPMatlab</Product>
11-
<Description>DEHPMatlab desktop application</Description>
12-
<Copyright>Copyright © RHEA System S.A.</Copyright>
13-
<AssemblyVersion>1.3.0</AssemblyVersion>
14-
<FileVersion>1.3.0</FileVersion>
15-
<LangVersion>latest</LangVersion>
16-
<StartupObject>DEHPMatlab.App</StartupObject>
17-
<ApplicationIcon>icon.ico</ApplicationIcon>
3+
<OutputType>WinExe</OutputType>
4+
<TargetFramework>net472</TargetFramework>
5+
<RootNamespace>DEHPMatlab</RootNamespace>
6+
<UseWPF>true</UseWPF>
7+
<AssemblyTitle>DEHPMatlab</AssemblyTitle>
8+
<Company>RHEA System S.A.</Company>
9+
<Product>DEHPMatlab</Product>
10+
<Description>DEHPMatlab desktop application</Description>
11+
<Copyright>Copyright © RHEA System S.A.</Copyright>
12+
<AssemblyVersion>1.4.0</AssemblyVersion>
13+
<FileVersion>1.4.0</FileVersion>
14+
<LangVersion>latest</LangVersion>
15+
<StartupObject>DEHPMatlab.App</StartupObject>
16+
<ApplicationIcon>icon.ico</ApplicationIcon>
1817
</PropertyGroup>
19-
2018
<ItemGroup>
2119
<None Remove="Resources\logo.png" />
2220
</ItemGroup>
23-
2421
<ItemGroup>
25-
<PackageReference Include="DEHPCommon" Version="1.0.236" />
22+
<PackageReference Include="DEHPCommon" Version="1.0.247" />
2623
<PackageReference Include="IndexRange" Version="1.0.0" />
2724
<PackageReference Include="NLog" Version="4.6.8" />
2825
<PackageReference Include="reactiveui" Version="6.5.0" />
2926
<PackageReference Include="Rx-Linq" Version="2.2.5" />
3027
<PackageReference Include="Rx-PlatformServices" Version="2.2.5" />
3128
<PackageReference Include="Splat" Version="1.6.2" />
3229
</ItemGroup>
33-
3430
<ItemGroup>
3531
<Reference Include="MatlabCodeParser">
3632
<HintPath>..\lib\MatlabCodeParser.dll</HintPath>
@@ -40,11 +36,9 @@
4036
</Reference>
4137
<Reference Include="System.Web" />
4238
</ItemGroup>
43-
4439
<ItemGroup>
4540
<Resource Include="Resources\logo.png" />
4641
</ItemGroup>
47-
4842
<ItemGroup>
4943
<None Update="icon.ico">
5044
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
@@ -53,5 +47,4 @@
5347
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
5448
</None>
5549
</ItemGroup>
56-
57-
</Project>
50+
</Project>

DEHPMatlab/DstController/DstController.cs

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -684,9 +684,8 @@ private void AddParameterOrOverrideToTransaction(Dictionary<Thing, List<Paramete
684684

685685
foreach (var parameter in elementBasesToUpdate[element])
686686
{
687-
var sourceThing = this.CreateOrUpdateTransaction(transaction, (Parameter) parameter, elementClone.Parameter);
688-
var targetThing = this.ParameterVariable[parameter].SelectedCoordinateSystem;
689-
this.CreateOrUpdateRelationShip(sourceThing, targetThing, iterationClone, transaction);
687+
var sourceThing = this.CreateOrUpdateTransaction(transaction, (Parameter)parameter, elementClone.Parameter);
688+
this.VerifyRelationShip(transaction, iterationClone, parameter, sourceThing);
690689
}
691690

692691
break;
@@ -698,9 +697,8 @@ private void AddParameterOrOverrideToTransaction(Dictionary<Thing, List<Paramete
698697

699698
foreach (var parameterOverride in elementBasesToUpdate[element])
700699
{
701-
var sourceThing = this.CreateOrUpdateTransaction(transaction, (ParameterOverride) parameterOverride, elementUsageClone.ParameterOverride);
702-
var targetThing = this.ParameterVariable[parameterOverride].SelectedCoordinateSystem;
703-
this.CreateOrUpdateRelationShip(sourceThing, targetThing, iterationClone, transaction);
700+
var sourceThing = this.CreateOrUpdateTransaction(transaction, (ParameterOverride)parameterOverride, elementUsageClone.ParameterOverride);
701+
this.VerifyRelationShip(transaction, iterationClone, parameterOverride, sourceThing);
704702
}
705703

706704
break;
@@ -709,6 +707,26 @@ private void AddParameterOrOverrideToTransaction(Dictionary<Thing, List<Paramete
709707
}
710708
}
711709

710+
/// <summary>
711+
/// Verifies if the given <see cref="ParameterOrOverrideBase" /> has a Coordinate System linked and create the
712+
/// <see cref="Relationship" /> if applicable
713+
/// </summary>
714+
/// <param name="transaction">The <see cref="IThingTransaction" /></param>
715+
/// <param name="iterationClone">The <see cref="Iteration" /></param>
716+
/// <param name="parameter">The <see cref="ParameterOrOverrideBase" /></param>
717+
/// <param name="sourceThing">The source of the <see cref="Relationship" /></param>
718+
private void VerifyRelationShip(IThingTransaction transaction, Iteration iterationClone,
719+
ParameterOrOverrideBase parameter, Thing sourceThing)
720+
{
721+
var key = this.ParameterVariable.Keys.FirstOrDefault(x => x.Iid == parameter.Iid);
722+
723+
if (key != null)
724+
{
725+
var targetThing = this.ParameterVariable[key].SelectedCoordinateSystem;
726+
this.CreateOrUpdateRelationShip(sourceThing, targetThing, iterationClone, transaction);
727+
}
728+
}
729+
712730
/// <summary>
713731
/// Transfer all values from the <see cref="IValueSet" /> of a <see cref="ParameterOrOverrideBase" /> of type
714732
/// <see cref="SampledFunctionParameterType" />
@@ -786,7 +804,7 @@ private TThing CreateOrUpdateTransaction<TThing>(IThingTransaction transaction,
786804
clone.Iid = Guid.NewGuid();
787805
thing.Iid = clone.Iid;
788806
transaction.Create(clone);
789-
containerClone.Add((TThing) clone);
807+
containerClone.Add((TThing)clone);
790808
this.exchangeHistory.Append(clone, ChangeKind.Create);
791809
}
792810
else
@@ -795,7 +813,7 @@ private TThing CreateOrUpdateTransaction<TThing>(IThingTransaction transaction,
795813
this.exchangeHistory.Append(clone, ChangeKind.Update);
796814
}
797815

798-
return (TThing) clone;
816+
return (TThing)clone;
799817
}
800818

801819
/// <summary>
@@ -1107,12 +1125,12 @@ private void UpdateVariable(IReactivePropertyChangedEventArgs<MatlabWorkspaceRow
11071125

11081126
try
11091127
{
1110-
((Array) parentRowViewModel.ArrayValue).SetValue(sender.ActualValue, rowIndex, columnIndex);
1128+
((Array)parentRowViewModel.ArrayValue).SetValue(sender.ActualValue, rowIndex, columnIndex);
11111129
}
11121130
catch (Exception)
11131131
{
11141132
this.statusBar.Append($"The type of the value '{sender.ActualValue}' is not compatible", StatusBarMessageSeverity.Warning);
1115-
sender.ActualValue = ((Array) parentRowViewModel.ArrayValue).GetValue(rowIndex, columnIndex);
1133+
sender.ActualValue = ((Array)parentRowViewModel.ArrayValue).GetValue(rowIndex, columnIndex);
11161134
}
11171135

11181136
this.matlabConnector.PutVariable(parentRowViewModel);

DEHPMatlab/Services/MappingConfiguration/MappingConfigurationService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,8 @@ private void LoadCorrespondences(MatlabWorkspaceRowViewModel element, IEnumerabl
302302
ElementDefinition elementDefinition => () => element.SelectedElementDefinition = elementDefinition.Clone(true),
303303
ElementUsage elementUsage => () => element.SelectedElementUsages.Add(elementUsage.Clone(true)),
304304
Parameter parameter => () => element.SelectedParameter = parameter.Clone(true),
305-
Option option => () => element.SelectedOption = option.Clone(false),
306-
ActualFiniteState state => () => element.SelectedActualFiniteState = state.Clone(false),
305+
Option option => () => element.SelectedOption = option,
306+
ActualFiniteState state => () => element.SelectedActualFiniteState = state,
307307
_ => null
308308
};
309309

0 commit comments

Comments
 (0)