Example #1
0
        public void SetUp()
        {
            this.permissionService            = new Mock <IPermissionService>();
            this.thingDialognavigationService = new Mock <IThingDialogNavigationService>();
            this.thingCreator = new Mock <IThingCreator>();
            this.cache        = new ConcurrentDictionary <CacheKey, Lazy <Thing> >();

            this.sitedir        = new SiteDirectory(Guid.NewGuid(), this.cache, this.uri);
            this.modelsetup     = new EngineeringModelSetup(Guid.NewGuid(), this.cache, this.uri);
            this.iterationsetup = new IterationSetup(Guid.NewGuid(), this.cache, this.uri);
            this.srdl           = new SiteReferenceDataLibrary(Guid.NewGuid(), this.cache, this.uri);
            this.mrdl           = new ModelReferenceDataLibrary(Guid.NewGuid(), this.cache, this.uri)
            {
                RequiredRdl = this.srdl
            };

            this.modelsetup.RequiredRdl.Add(this.mrdl);
            this.modelsetup.IterationSetup.Add(this.iterationsetup);
            this.sitedir.Model.Add(this.modelsetup);
            this.sitedir.SiteReferenceDataLibrary.Add(this.srdl);

            this.option1 = new Option(Guid.NewGuid(), this.cache, this.uri);
            this.option2 = new Option(Guid.NewGuid(), this.cache, this.uri);

            this.stateList = new ActualFiniteStateList(Guid.NewGuid(), this.cache, this.uri);
            this.state1    = new PossibleFiniteState(Guid.NewGuid(), this.cache, this.uri);
            this.state2    = new PossibleFiniteState(Guid.NewGuid(), this.cache, this.uri);

            this.posStateList = new PossibleFiniteStateList(Guid.NewGuid(), this.cache, this.uri);
            this.posStateList.PossibleState.Add(this.state1);
            this.posStateList.PossibleState.Add(this.state2);
            this.posStateList.DefaultState = this.state1;

            this.stateList.ActualState.Add(new ActualFiniteState(Guid.NewGuid(), this.cache, this.uri)
            {
                PossibleState = new List <PossibleFiniteState> {
                    this.state1
                },
                Kind = ActualFiniteStateKind.MANDATORY
            });

            this.stateList.ActualState.Add(new ActualFiniteState(Guid.NewGuid(), this.cache, this.uri)
            {
                PossibleState = new List <PossibleFiniteState> {
                    this.state2
                },
                Kind = ActualFiniteStateKind.FORBIDDEN
            });

            this.activeDomain    = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri);
            this.someotherDomain = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri);
            this.session         = new Mock <ISession>();
            this.qqParamType     = new SimpleQuantityKind(Guid.NewGuid(), this.cache, this.uri)
            {
                Name      = "PTName",
                ShortName = "PTShortName"
            };

            // Array parameter type with components
            this.apType = new ArrayParameterType(Guid.NewGuid(), this.cache, this.uri)
            {
                Name      = "APTName",
                ShortName = "APTShortName"
            };

            this.apType.Component.Add(new ParameterTypeComponent(Guid.NewGuid(), this.cache, this.uri)
            {
                Iid           = Guid.NewGuid(),
                ParameterType = this.qqParamType
            });

            this.apType.Component.Add(new ParameterTypeComponent(Guid.NewGuid(), this.cache, this.uri)
            {
                Iid           = Guid.NewGuid(),
                ParameterType = this.qqParamType
            });

            // compound parameter type with components
            this.cptType = new CompoundParameterType(Guid.NewGuid(), this.cache, this.uri)
            {
                Name      = "APTName",
                ShortName = "APTShortName"
            };

            this.cptType.Component.Add(new ParameterTypeComponent(Guid.NewGuid(), this.cache, this.uri)
            {
                Iid           = Guid.NewGuid(),
                ParameterType = this.qqParamType
            });

            this.cptType.Component.Add(new ParameterTypeComponent(Guid.NewGuid(), this.cache, this.uri)
            {
                Iid           = Guid.NewGuid(),
                ParameterType = this.qqParamType
            });

            this.elementDefinition = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.activeDomain
            };

            this.model = new EngineeringModel(Guid.NewGuid(), this.cache, this.uri)
            {
                EngineeringModelSetup = this.modelsetup
            };
            this.iteration = new Iteration(Guid.NewGuid(), this.cache, this.uri)
            {
                IterationSetup = this.iterationsetup
            };
            var person = new Person(Guid.NewGuid(), null, null)
            {
                GivenName = "test", Surname = "test"
            };
            var participant = new Participant(Guid.NewGuid(), null, null)
            {
                Person = person, SelectedDomain = this.activeDomain
            };

            this.session.Setup(x => x.ActivePerson).Returns(person);
            this.modelsetup.Participant.Add(participant);
            this.model.Iteration.Add(this.iteration);
            this.iteration.Element.Add(this.elementDefinition);

            this.iteration.Option.Add(this.option1);
            this.iteration.Option.Add(this.option2);

            this.elementDefinitionForUsage1 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.someotherDomain
            };

            this.elementDefinitionForUsage2 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.someotherDomain
            };

            this.elementUsage1 = new ElementUsage(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.someotherDomain
            };

            this.elementUsage2 = new ElementUsage(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.someotherDomain
            };

            this.elementUsage1.ElementDefinition = this.elementDefinitionForUsage1;
            this.elementUsage2.ElementDefinition = this.elementDefinitionForUsage2;

            this.parameterGroup1 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri);
            this.parameterGroup2 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri);
            this.parameterGroup3 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri);

            this.parameterGroup1ForUsage1 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri);
            this.parameterGroup2ForUsage2 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri);
            this.parameterGroup3ForUsage1 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri);

            this.parameter1 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.qqParamType,
                Owner         = this.activeDomain
            };

            this.parameter2 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.qqParamType,
                Owner         = this.activeDomain
            };

            this.parameter3 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.qqParamType,
                Owner         = this.someotherDomain
            };

            this.parameter4 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.qqParamType,
                Owner         = this.someotherDomain
            };

            this.parameterForStates = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType   = this.qqParamType,
                Owner           = this.someotherDomain,
                StateDependence = this.stateList
            };

            this.parameter5ForSubscription = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.qqParamType,
                Owner         = this.someotherDomain
            };

            this.parameter6ForOverride = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.qqParamType,
                Owner         = this.activeDomain
            };

            this.parameter6Override = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri)
            {
                Parameter = this.parameter6ForOverride,
                Owner     = this.activeDomain
            };

            this.parameterArray = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.apType,
                Owner         = this.someotherDomain
            };

            this.parameterCompound = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.cptType,
                Owner         = this.someotherDomain
            };

            this.parameterCompoundForSubscription = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.cptType,
                Owner         = this.someotherDomain
            };

            this.parameterSubscriptionCompound = new ParameterSubscription(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.activeDomain
            };

            this.parameterCompoundForSubscription.ParameterSubscription.Add(this.parameterSubscriptionCompound);

            this.parameterForOptions = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType     = this.cptType,
                Owner             = this.someotherDomain,
                IsOptionDependent = true
            };

            this.elementDefinition.ParameterGroup.Add(this.parameterGroup1);
            this.elementDefinition.ParameterGroup.Add(this.parameterGroup2);
            this.elementDefinition.ParameterGroup.Add(this.parameterGroup3);

            this.elementDefinitionForUsage1.ParameterGroup.Add(this.parameterGroup1ForUsage1);
            this.elementDefinitionForUsage2.ParameterGroup.Add(this.parameterGroup2ForUsage2);
            this.elementDefinitionForUsage1.ParameterGroup.Add(this.parameterGroup3ForUsage1);

            this.iteration.Element.Add(elementDefinitionForUsage1);
            this.iteration.Element.Add(elementDefinitionForUsage2);

            this.parameterGroup3.ContainingGroup          = this.parameterGroup1;
            this.parameterGroup3ForUsage1.ContainingGroup = this.parameterGroup1ForUsage1;

            this.parameter4.Group = this.parameterGroup3;
            this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object);
            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >());
        }
Example #2
0
        public void VerifyThatPopulateParameterOrOverrideWorks()
        {
            var revisionProperty = typeof(ElementUsage).GetProperty("RevisionNumber");

            // TEST DATA
            var group1  = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri);
            var group11 = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri)
            {
                ContainingGroup = group1
            };

            this.elementDef.ParameterGroup.Add(group1);
            this.elementDef.ParameterGroup.Add(group11);

            this.elementUsage.ElementDefinition = this.elementDef;
            this.elementDef.ContainedElement.Clear();

            var type1 = new EnumerationParameterType(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "type1"
            };
            var parameter1 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = type1, Owner = this.domain
            };

            parameter1.ValueSet.Add(this.valueSet);
            var parameter2 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = type1, Owner = this.domain
            };

            parameter2.ValueSet.Add(this.valueSet);

            this.elementDef.Parameter.Add(parameter2);
            this.elementDef.Parameter.Add(parameter1);

            var override1 = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri)
            {
                Parameter = parameter1, Owner = this.domain
            };

            override1.ValueSet.Add(this.valueSetOverride);
            this.elementUsage.ParameterOverride.Add(override1);

            var vm = new ElementUsageRowViewModel(this.elementUsage, this.option, this.session.Object, null);

            // **************************************************************************************

            // check added parameter
            Assert.AreEqual(2, vm.ContainedRows.OfType <ParameterOrOverrideBaseRowViewModel>().Count());
            var param2row    = vm.ContainedRows.OfType <ParameterRowViewModel>().Single();
            var override1row = vm.ContainedRows.OfType <ParameterOverrideRowViewModel>().Single();

            Assert.AreSame(param2row.Thing, parameter2);
            Assert.AreSame(override1, override1row.Thing);

            // move parameter1, check update is correct
            parameter1.Group = group11;
            revisionProperty.SetValue(parameter1, 10);

            CDPMessageBus.Current.SendObjectChangeEvent(parameter1, EventKind.Updated);
            Assert.AreEqual(1, vm.ContainedRows.OfType <ParameterOrOverrideBaseRowViewModel>().Count());

            var group11row = vm.ContainedRows.OfType <ParameterGroupRowViewModel>().Single().ContainedRows.OfType <ParameterGroupRowViewModel>().Single();

            Assert.AreSame(override1, group11row.ContainedRows.OfType <ParameterOrOverrideBaseRowViewModel>().Single().Thing);

            // move parameter1 under group1, check update
            parameter1.Group = group1;
            revisionProperty.SetValue(parameter1, 20);

            CDPMessageBus.Current.SendObjectChangeEvent(parameter1, EventKind.Updated);
            Assert.AreEqual(1, vm.ContainedRows.OfType <ParameterOrOverrideBaseRowViewModel>().Count());

            var group1row = vm.ContainedRows.OfType <ParameterGroupRowViewModel>().Single();

            Assert.AreSame(override1, group1row.ContainedRows.OfType <ParameterOrOverrideBaseRowViewModel>().Single().Thing);

            // move parameter1 back to top, check update is correct
            parameter1.Group = null;
            revisionProperty.SetValue(parameter1, 30);

            CDPMessageBus.Current.SendObjectChangeEvent(parameter1, EventKind.Updated);
            Assert.AreEqual(2, vm.ContainedRows.OfType <ParameterOrOverrideBaseRowViewModel>().Count());
            Assert.AreEqual(0, group11row.ContainedRows.OfType <ParameterOrOverrideBaseRowViewModel>().Count());

            // remove override1
            this.elementUsage.ParameterOverride.Clear();
            revisionProperty.SetValue(this.elementUsage, 40);

            CDPMessageBus.Current.SendObjectChangeEvent(this.elementUsage, EventKind.Updated);
            Assert.AreEqual(2, vm.ContainedRows.OfType <ParameterOrOverrideBaseRowViewModel>().Count());
            var param1row = vm.ContainedRows.OfType <ParameterRowViewModel>().SingleOrDefault(x => x.Thing == parameter1);

            Assert.IsNotNull(param1row);
        }
        public void SetUp()
        {
            this.cache = new ConcurrentDictionary <CacheKey, Lazy <Thing> >();
            this.uri   = new Uri("http://www.rheagroup.com");

            this.textParameterType           = new TextParameterType(Guid.NewGuid(), this.cache, this.uri);
            this.textParameterType.Name      = "text";
            this.textParameterType.ShortName = "TXT";

            var satellite = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri);

            satellite.ShortName = "Sat";
            satellite.Name      = "Satellite";

            var battery = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri);

            battery.ShortName = "Bat";
            battery.Name      = "Battery";

            var elementUsage = new ElementUsage(Guid.NewGuid(), this.cache, this.uri);

            elementUsage.ElementDefinition = battery;

            satellite.ContainedElement.Add(elementUsage);

            this.parameter = new Parameter(Guid.NewGuid(), this.cache, this.uri);
            this.parameter.ParameterType = this.textParameterType;

            satellite.Parameter.Add(this.parameter);

            this.parameterOverride           = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri);
            this.parameterOverride.Parameter = this.parameter;

            var parameterValueSet = new ParameterValueSet(Guid.NewGuid(), this.cache, this.uri);

            parameterValueSet.Manual = new ValueArray <string>(new List <string> {
                "1"
            });
            parameterValueSet.Reference = new ValueArray <string>(new List <string> {
                "2"
            });
            parameterValueSet.Computed = new ValueArray <string>(new List <string> {
                "3"
            });
            parameterValueSet.Formula = new ValueArray <string>(new List <string> {
                "-"
            });
            parameterValueSet.Published = new ValueArray <string>(new List <string> {
                "-"
            });
            parameterValueSet.ValueSwitch = ParameterSwitchKind.MANUAL;
            this.parameter.ValueSet.Add(parameterValueSet);

            var parameterOverrideValueSet = new ParameterOverrideValueSet(Guid.NewGuid(), this.cache, this.uri);

            parameterOverrideValueSet.Manual = new ValueArray <string>(new List <string> {
                "1.1"
            });
            parameterOverrideValueSet.Reference = new ValueArray <string>(new List <string> {
                "2.1"
            });
            parameterOverrideValueSet.Computed = new ValueArray <string>(new List <string> {
                "3.1"
            });
            parameterOverrideValueSet.Formula = new ValueArray <string>(new List <string> {
                "-"
            });
            parameterOverrideValueSet.Published = new ValueArray <string>(new List <string> {
                "-"
            });
            parameterOverrideValueSet.ValueSwitch = ParameterSwitchKind.MANUAL;
            this.parameterOverride.ValueSet.Add(parameterOverrideValueSet);
            parameterOverrideValueSet.ParameterValueSet = parameterValueSet;

            elementUsage.ParameterOverride.Add(this.parameterOverride);

            var parameterSubscribtionValueSet = new ParameterSubscriptionValueSet(Guid.NewGuid(), this.cache, this.uri);

            parameterSubscribtionValueSet.Manual = new ValueArray <string>(new List <string> {
                "1.2"
            });
            parameterSubscribtionValueSet.ValueSwitch        = ParameterSwitchKind.MANUAL;
            parameterSubscribtionValueSet.SubscribedValueSet = parameterValueSet;

            var parameterSubscription = new ParameterSubscription(Guid.NewGuid(), this.cache, this.uri);

            this.parameter.ParameterSubscription.Add(parameterSubscription);
            parameterSubscription.ValueSet.Add(parameterSubscribtionValueSet);

            this.processedValueSets = new Dictionary <Guid, ProcessedValueSet>();

            var valueSetValue = new ValueSetValues(0, this.textParameterType, ParameterSwitchKind.COMPUTED, "a gazilion", "a gazilion", "a gazilion", "a gazilion");

            var parameterValueSetProcessedValueSet = new ProcessedValueSet(parameterValueSet, ValidationResultKind.Valid);

            parameterValueSetProcessedValueSet.UpdateClone(valueSetValue);

            var parameterOverrideValueSetProcessedValueSet = new ProcessedValueSet(parameterOverrideValueSet, ValidationResultKind.Valid);

            parameterOverrideValueSetProcessedValueSet.UpdateClone(valueSetValue);

            var parameterSubscribtionValueSetProcessedValueSet = new ProcessedValueSet(parameterSubscribtionValueSet, ValidationResultKind.Valid);

            parameterSubscribtionValueSetProcessedValueSet.UpdateClone(valueSetValue);

            this.processedValueSets.Add(parameterValueSetProcessedValueSet.OriginalThing.Iid, parameterValueSetProcessedValueSet);
            this.processedValueSets.Add(parameterOverrideValueSetProcessedValueSet.OriginalThing.Iid, parameterOverrideValueSetProcessedValueSet);
            this.processedValueSets.Add(parameterSubscribtionValueSetProcessedValueSet.OriginalThing.Iid, parameterSubscribtionValueSetProcessedValueSet);
        }
        /// <summary>
        /// 获取参数
        /// </summary>
        /// <returns></returns>
        public static ResolverOverride GetParameterOverride(string parameterName, object parameterValue)
        {
            ResolverOverride resolver = new ParameterOverride(parameterName, parameterValue);

            return(resolver);
        }
        public void SetUp()
        {
            this.nestedElementTreeGenerator = new NestedElementTreeGenerator();

            this.uri   = new Uri("http://www.rheagroup.com");
            this.cache = new ConcurrentDictionary <CDP4Common.Types.CacheKey, Lazy <Thing> >();

            this.domainOfExpertise = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri)
            {
                ShortName = "SYS",
                Name      = "System"
            };

            this.domainOfExpertise_2 = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri)
            {
                ShortName = "TEST",
                Name      = "Test"
            };

            this.iteration = new Iteration(Guid.NewGuid(), this.cache, this.uri);

            this.option_A = new Option(Guid.NewGuid(), this.cache, this.uri)
            {
                ShortName = "OPT_A",
                Name      = "Option A"
            };

            this.option_B = new Option(Guid.NewGuid(), this.cache, this.uri)
            {
                ShortName = "OPT_B",
                Name      = "Option B"
            };

            this.elementDefinition_1 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri)
            {
                ShortName = "Sat",
                Name      = "Satellite"
            };

            this.elementDefinition_2 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri)
            {
                ShortName = "Bat",
                Name      = "Battery"
            };

            this.elementUsage_1 = new ElementUsage(Guid.NewGuid(), this.cache, this.uri)
            {
                ElementDefinition = this.elementDefinition_2,
                ShortName         = "bat_a",
                Name = "battery a"
            };

            this.elementUsage_2 = new ElementUsage(Guid.NewGuid(), this.cache, this.uri)
            {
                ElementDefinition = this.elementDefinition_2,
                ShortName         = "bat_b",
                Name = "battery b"
            };

            var simpleQuantityKind = new SimpleQuantityKind(Guid.NewGuid(), null, null)
            {
                ShortName = "m"
            };

            var simpleQuantityKind2 = new SimpleQuantityKind(Guid.NewGuid(), null, null)
            {
                ShortName = "v"
            };

            var actualList = new ActualFiniteStateList(Guid.NewGuid(), null, null);

            actualList.Owner = this.domainOfExpertise;

            var possibleList1 = new PossibleFiniteStateList(Guid.NewGuid(), null, null);

            var possibleState1 = new PossibleFiniteState(Guid.NewGuid(), null, null)
            {
                Name = "possiblestate1", ShortName = "1"
            };
            var possibleState2 = new PossibleFiniteState(Guid.NewGuid(), null, null)
            {
                Name = "possiblestate2", ShortName = "2"
            };

            possibleList1.PossibleState.Add(possibleState1);
            possibleList1.PossibleState.Add(possibleState2);

            actualList.PossibleFiniteStateList.Add(possibleList1);

            this.actualState_3 = new ActualFiniteState(Guid.NewGuid(), this.cache, this.uri);

            this.actualState_3.PossibleState.Add(possibleState1);

            this.actualState_4 = new ActualFiniteState(Guid.NewGuid(), this.cache, this.uri);

            this.actualState_4.PossibleState.Add(possibleState2);

            this.parameter = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner             = this.domainOfExpertise,
                ParameterType     = simpleQuantityKind,
                IsOptionDependent = true
            };

            this.parameter2 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner           = this.domainOfExpertise_2,
                ParameterType   = simpleQuantityKind2,
                StateDependence = actualList
            };

            this.parameterOverride = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner     = this.domainOfExpertise,
                Parameter = this.parameter
            };

            var parameterValueset_1 = new ParameterValueSet()
            {
                ActualOption = this.option_B,
                Iid          = Guid.NewGuid()
            };

            var parameterValueset_2 = new ParameterValueSet()
            {
                ActualOption = this.option_A,
                Iid          = Guid.NewGuid()
            };

            var parameterValueset_3 = new ParameterValueSet()
            {
                ActualState = this.actualState_3,
                Iid         = Guid.NewGuid()
            };

            var parameterValueset_4 = new ParameterValueSet()
            {
                ActualState = this.actualState_4,
                Iid         = Guid.NewGuid()
            };

            var values_1 = new List <string> {
                "2"
            };
            var values_2 = new List <string> {
                "3"
            };
            var values_3 = new List <string> {
                "220"
            };
            var emptyValues = new List <string> {
                "-"
            };
            var publishedValues = new List <string> {
                "123"
            };

            var overrideValueset = new ParameterOverrideValueSet()
            {
                ParameterValueSet = parameterValueset_1,
                Iid = Guid.NewGuid()
            };

            this.iteration.Option.Add(this.option_A);
            this.iteration.Option.Add(this.option_B);
            this.iteration.DefaultOption = this.option_A;

            parameterValueset_1.Manual      = new CDP4Common.Types.ValueArray <string>(values_1);
            parameterValueset_1.Reference   = new CDP4Common.Types.ValueArray <string>(values_1);
            parameterValueset_1.Computed    = new CDP4Common.Types.ValueArray <string>(values_1);
            parameterValueset_1.Formula     = new CDP4Common.Types.ValueArray <string>(values_1);
            parameterValueset_1.Published   = new CDP4Common.Types.ValueArray <string>(publishedValues);
            parameterValueset_1.ValueSwitch = ParameterSwitchKind.MANUAL;

            parameterValueset_2.Manual      = new CDP4Common.Types.ValueArray <string>(values_2);
            parameterValueset_2.Reference   = new CDP4Common.Types.ValueArray <string>(values_2);
            parameterValueset_2.Computed    = new CDP4Common.Types.ValueArray <string>(values_2);
            parameterValueset_2.Formula     = new CDP4Common.Types.ValueArray <string>(values_2);
            parameterValueset_2.Published   = new CDP4Common.Types.ValueArray <string>(publishedValues);
            parameterValueset_2.ValueSwitch = ParameterSwitchKind.MANUAL;

            parameterValueset_3.Manual      = new CDP4Common.Types.ValueArray <string>(values_3);
            parameterValueset_3.Reference   = new CDP4Common.Types.ValueArray <string>(values_3);
            parameterValueset_3.Computed    = new CDP4Common.Types.ValueArray <string>(values_3);
            parameterValueset_3.Formula     = new CDP4Common.Types.ValueArray <string>(values_3);
            parameterValueset_3.Published   = new CDP4Common.Types.ValueArray <string>(emptyValues);
            parameterValueset_3.ValueSwitch = ParameterSwitchKind.MANUAL;

            parameterValueset_4.Manual      = new CDP4Common.Types.ValueArray <string>(emptyValues);
            parameterValueset_4.Reference   = new CDP4Common.Types.ValueArray <string>(emptyValues);
            parameterValueset_4.Computed    = new CDP4Common.Types.ValueArray <string>(emptyValues);
            parameterValueset_4.Formula     = new CDP4Common.Types.ValueArray <string>(emptyValues);
            parameterValueset_4.Published   = new CDP4Common.Types.ValueArray <string>(publishedValues);
            parameterValueset_4.ValueSwitch = ParameterSwitchKind.MANUAL;

            overrideValueset.Manual      = new CDP4Common.Types.ValueArray <string>(values_1);
            overrideValueset.Reference   = new CDP4Common.Types.ValueArray <string>(values_1);
            overrideValueset.Computed    = new CDP4Common.Types.ValueArray <string>(values_1);
            overrideValueset.Formula     = new CDP4Common.Types.ValueArray <string>(values_1);
            overrideValueset.Published   = new CDP4Common.Types.ValueArray <string>(publishedValues);
            overrideValueset.ValueSwitch = ParameterSwitchKind.MANUAL;

            this.parameter.ValueSet.Add(parameterValueset_1);
            this.parameter.ValueSet.Add(parameterValueset_2);

            this.parameterOverride.ValueSet.Add(overrideValueset);

            this.parameter2.ValueSet.Add(parameterValueset_3);
            this.parameter2.ValueSet.Add(parameterValueset_4);

            this.elementUsage_1.ExcludeOption.Add(this.option_A);
            this.elementUsage_1.ParameterOverride.Add(this.parameterOverride);

            this.elementDefinition_1.Parameter.Add(this.parameter);
            this.elementDefinition_1.ContainedElement.Add(this.elementUsage_1);
            this.elementDefinition_1.ContainedElement.Add(this.elementUsage_2);

            this.elementDefinition_2.Parameter.Add(this.parameter);
            this.elementDefinition_2.Parameter.Add(this.parameter2);

            this.iteration.Element.Add(this.elementDefinition_1);
            this.iteration.Element.Add(this.elementDefinition_2);
            this.iteration.TopElement = this.elementDefinition_1;

            this.iteration.ActualFiniteStateList.Add(actualList);
            this.iteration.PossibleFiniteStateList.Add(possibleList1);
            actualList.ActualState.Add(this.actualState_3);
            actualList.ActualState.Add(this.actualState_4);
        }
Example #6
0
 public static T GetInstance <T>(ParameterOverride p)
 {
     return(Container.Resolve <T>(p));
 }
Example #7
0
        /// <summary>
        /// Creates <see cref="Option"/> dependent <see cref="ParameterOverrideValueSet"/>s that are contained by the <see cref="ParameterOverride"/>
        /// as well as <see cref="ParameterSubscriptionValueSet"/>s for the <see cref="ParameterSubscription"/>s that are contained
        /// by the <paramref name="container"/> <see cref="ParameterOverride"/>.
        /// </summary>
        /// <param name="transaction">
        /// The current transaction to the database.
        /// </param>
        /// <param name="partition">
        /// The database partition (schema) where the requested resource will be stored.
        /// </param>
        /// <param name="option">
        /// The <see cref="Option"/> that is uses as actual option for the new <see cref="ParameterOverrideValueSet"/>s
        /// </param>
        /// <param name="container">
        /// The <see cref="ParameterOverride"/> that is the container of the new <see cref="ParameterOverrideValueSet"/>s
        /// </param>
        /// <param name="securityContext">
        /// The security Context used for permission checking.
        /// </param>
        private void CreateParameterOverrideValueSetsAndParameterSubscriptionValueSets(NpgsqlTransaction transaction, string partition, Option option, ParameterOverride container, ISecurityContext securityContext)
        {
            Parameter parameter;

            if (!this.optionDependentParameterCache.TryGetValue(container.Parameter, out parameter))
            {
                throw new KeyNotFoundException(string.Format("The Parameter with iid {0} could not be found", container.Parameter));
            }

            var defaultValueArray = this.DefaultValueArrayFactory.CreateDefaultValueArray(container.Parameter);

            // get all the ParameterSubscriptions that are contained by the container ParameterOverride, for each of these subscriptions additional ParameterSubscriptionValueSets will be created as well
            var containerParameterSubscriptions = this.ParameterSubscriptionService.GetShallow(transaction, partition, container.ParameterSubscription, securityContext).Cast <ParameterSubscription>().ToList();

            if (parameter.StateDependence == null)
            {
                var parameterValueSet = this.QueryParameterValueSet(parameter.Iid, option.Iid, null);

                var parameterOverrideValueSet = this.ParameterOverrideValueSetFactory.CreateWithDefaultValueArray(parameterValueSet.Iid, defaultValueArray);

                this.ParameterOverrideValueSetService.CreateConcept(transaction, partition, parameterOverrideValueSet, container);

                this.CreateParameterSubscriptionValueSets(containerParameterSubscriptions, defaultValueArray, parameterOverrideValueSet.Iid, transaction, partition);

                return;
            }

            this.QueryAndCacheAllActualFiniteStateLists(transaction, partition, securityContext);

            var actualFiniteStateList = this.actualFiniteStateLists.Single(x => x.Iid == parameter.StateDependence);

            foreach (var actualStateIid in actualFiniteStateList.ActualState)
            {
                var parameterValueSet = this.QueryParameterValueSet(parameter.Iid, option.Iid, actualStateIid);

                var parameterOverrideValueSet = this.ParameterOverrideValueSetFactory.CreateWithDefaultValueArray(parameterValueSet.Iid, defaultValueArray);

                this.ParameterOverrideValueSetService.CreateConcept(transaction, partition, parameterOverrideValueSet, container);

                this.CreateParameterSubscriptionValueSets(containerParameterSubscriptions, defaultValueArray, parameterOverrideValueSet.Iid, transaction, partition);
            }
        }
Example #8
0
        public RegistroMapeadores()
        {
            this.Mapeadores = new ObservableCollection <Mapeador>();
            var empresa = "01";

            ParameterOverride[] parameters = new ParameterOverride[2];
            parameters[0] = new ParameterOverride("empresa", empresa);
            //INICIO MAPEADORES

            parameters[1] = new ParameterOverride("entidad", "PadronIIBB");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Padron IIBB", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorPadronIIBB), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Empresa");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Empresa", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorEmpresaFox), parameters), Seleccionado = true
            });

            #region Mapeador Locacion

            //parameters[1] = new ParameterOverride("entidad", "Calle");
            //this.Mapeadores.Add(new Mapeador() { Nombre = "Mapeador Calle", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorCallesFox), parameters), Seleccionado = true });

            //parameters[1] = new ParameterOverride("entidad", "Localidad");
            //this.Mapeadores.Add(new Mapeador() { Nombre = "Mapeador Localidad", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorLocalidadFox), parameters), Seleccionado = true });

            #endregion

            #region Mapeadores Simples (Codigo, Nombre)
            //parameters[1] = new ParameterOverride("entidad", "Zonas Geograficas");
            //this.Mapeadores.Add(new Mapeador() { Nombre = "Mapeador Zonas Geograficas", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorZonasGeograficasFox), parameters), Seleccionado = true });

            parameters[1] = new ParameterOverride("entidad", "Zonas Logisticas");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Zonas Logísticas", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorZonasLogisticasFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Deposito");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Deposito", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorDepositosFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "ListaDePreciosDeVenta");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Lista De Precios De Venta", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorListaDePreciosDeVentaFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Empaque");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Empaques", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorEmpaquesFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Caracteristica");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Caracteristicas", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorCaracteristicasFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Marca");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Marcas", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorMarcasFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Clase");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Clases", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorClasesFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Division");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Divisiones Articulo", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorDivisionesArticuloFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Banco");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Bancos", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorBancosFox), parameters), Seleccionado = true
            });

            //parameters[1] = new ParameterOverride("entidad", "DivisionComercial");
            //this.Mapeadores.Add(new Mapeador() { Nombre = "Mapeador DivicionComercial", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorDivisionesComerciales), parameters), Seleccionado = true });

            parameters[1] = new ParameterOverride("entidad", "Canal");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Canal", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorCanalesFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Ramo");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Ramo", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorRamosFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "ConceptosDeMovimiento");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Conceptos De Movimiento", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorConceptosDeMovimientoFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "TipoProveedor");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Tipo Proveedor", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorTipoProveedorFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Transportista");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Transportista", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorTransportistasFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "GrupoCliente");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Grupo Cliente", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorGrupoClienteFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Area");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Area", Objeto = FabricaNegocios.Instancia.Resolver(typeof(IMapeadorFox <Area>), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Sector");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Sector", Objeto = FabricaNegocios.Instancia.Resolver(typeof(IMapeadorFox <Sector>), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Subsector");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Subsector", Objeto = FabricaNegocios.Instancia.Resolver(typeof(IMapeadorFox <Subsector>), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Familia");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Familia", Objeto = FabricaNegocios.Instancia.Resolver(typeof(IMapeadorFox <Familia>), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Subfamilia");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Subfamilia", Objeto = FabricaNegocios.Instancia.Resolver(typeof(IMapeadorFox <Subfamilia>), parameters), Seleccionado = true
            });
            #endregion

            #region Mapeador entidad Preventa

            parameters[1] = new ParameterOverride("entidad", "GeoRegionDeVenta");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador GeoRegion de Venta", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorGeoRegionDeVentaFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "RegionDeVenta");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Region De Venta", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorRegionDeVentaFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Preventista");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Preventista", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorPreventistasFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Cobrador");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Cobradores", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorCobradoresFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Vendedor");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Vendedor", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorVendedoresFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Supervisor");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Supervisores", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorSupervisoresFox), parameters), Seleccionado = true
            });

            #endregion

            #region Mapeadores Complejos

            parameters[1] = new ParameterOverride("entidad", "TarjetaClienteMayorista");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador TarjetaClienteMayorista", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorTarjetasClienteMayoristaFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "HeredaTarjetaClienteMayorista");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador HeredaTarjetaClienteMayorista", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorHeredaTarjetasClienteMayoristaFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "CondicionDePagoCliente");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador CondicionDePagoCliente", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorCondicionesDePagoClienteFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Linea");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Linea", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorLineaFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Rubro");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Rubro", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorRubrosFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Cliente");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Cliente", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorClientesFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "RutaDeVenta");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador RutaDeVenta", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorRutaVentasFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Proveedor");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Proveedores", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorProveedoresFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "ReferenciaContable");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Referencia Contable", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorReferenciaContableFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Articulo");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Articulo", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorArticulosFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Articulo Compuesto");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Articulo Compuesto", Objeto = FabricaNegocios.Instancia.Resolver(typeof(MapeadorArticulosCompuestosFox), parameters), Seleccionado = true
            });

            parameters[1] = new ParameterOverride("entidad", "Envase");
            this.Mapeadores.Add(new Mapeador()
            {
                Nombre = "Mapeador Envase", Objeto = FabricaNegocios.Instancia.Resolver(typeof(IMapeadorFox <Envase>), parameters), Seleccionado = true
            });

            #endregion
        }
Example #9
0
        public void Setup()
        {
            this.securityContext = new Mock <ISecurityContext>();
            this.actualFiniteStateListService         = new Mock <IActualFiniteStateListService>();
            this.actualFiniteStateService             = new Mock <IActualFiniteStateService>();
            this.possibleFiniteStateListslService     = new Mock <IPossibleFiniteStateListService>();
            this.parameterValueSetService             = new Mock <IParameterValueSetService>();
            this.parameterOverrideValueSetService     = new Mock <IParameterOverrideValueSetService>();
            this.parameterSubscriptionValueSetService = new Mock <IParameterSubscriptionValueSetService>();
            this.parameterService             = new Mock <IParameterService>();
            this.parameterOverrideService     = new Mock <IParameterOverrideService>();
            this.parameterSubscriptionService = new Mock <IParameterSubscriptionService>();
            this.iterationService             = new Mock <IIterationService>();
            this.compoundParameterTypeService = new Mock <ICompoundParameterTypeService>();
            this.defaultValueArrayFactory     = new Mock <IDefaultValueArrayFactory>();
            this.parameterUpdateService       = new StateDependentParameterUpdateService();

            this.sideEffect.StateDependentParameterUpdateService = this.parameterUpdateService;

            this.parameterUpdateService.ParameterValueSetService             = this.parameterValueSetService.Object;
            this.parameterUpdateService.ParameterService                     = this.parameterService.Object;
            this.parameterUpdateService.ParameterOverrideService             = this.parameterOverrideService.Object;
            this.parameterUpdateService.ParameterSubscriptionService         = this.parameterSubscriptionService.Object;
            this.parameterUpdateService.ParameterOverrideValueSetService     = this.parameterOverrideValueSetService.Object;
            this.parameterUpdateService.ParameterSubscriptionValueSetService = this.parameterSubscriptionValueSetService.Object;
            this.parameterUpdateService.CompoundParameterTypeService         = this.compoundParameterTypeService.Object;

            this.iteration = new Iteration(Guid.NewGuid(), 1);
            this.option1   = new Option(Guid.NewGuid(), 1);

            this.iteration.Option.Add(new OrderedItem {
                K = 1, V = this.option1.Iid.ToString()
            });

            this.psl1 = new PossibleFiniteStateList(Guid.NewGuid(), 1);
            this.psl2 = new PossibleFiniteStateList(Guid.NewGuid(), 1);

            this.ps11 = new PossibleFiniteState(Guid.NewGuid(), 1);
            this.ps12 = new PossibleFiniteState(Guid.NewGuid(), 1);

            this.ps21 = new PossibleFiniteState(Guid.NewGuid(), 1);
            this.ps22 = new PossibleFiniteState(Guid.NewGuid(), 1);

            this.asl1 = new ActualFiniteStateList(Guid.NewGuid(), 1);
            this.asl2 = new ActualFiniteStateList(Guid.NewGuid(), 1);

            this.iteration.PossibleFiniteStateList.Add(this.psl1.Iid);
            this.iteration.PossibleFiniteStateList.Add(this.psl2.Iid);

            this.iteration.ActualFiniteStateList.Add(this.asl1.Iid);
            this.iteration.ActualFiniteStateList.Add(this.asl2.Iid);

            this.psl1.PossibleState.Add(new OrderedItem {
                K = 1, V = this.ps11.Iid.ToString()
            });
            this.psl1.PossibleState.Add(new OrderedItem {
                K = 2, V = this.ps12.Iid.ToString()
            });
            this.psl2.PossibleState.Add(new OrderedItem {
                K = 1, V = this.ps21.Iid.ToString()
            });
            this.psl2.PossibleState.Add(new OrderedItem {
                K = 2, V = this.ps22.Iid.ToString()
            });

            this.asl1.PossibleFiniteStateList.Add(new OrderedItem {
                K = 1, V = this.psl1.Iid.ToString()
            });
            this.asl1.PossibleFiniteStateList.Add(new OrderedItem {
                K = 2, V = this.psl2.Iid.ToString()
            });

            // initializes actual states actual states
            this.as11 = new ActualFiniteState(Guid.NewGuid(), 1);
            this.as11.PossibleState.Add(this.ps11.Iid);
            this.as11.PossibleState.Add(this.ps21.Iid);

            this.as12 = new ActualFiniteState(Guid.NewGuid(), 1);
            this.as12.PossibleState.Add(this.ps11.Iid);
            this.as12.PossibleState.Add(this.ps22.Iid);

            this.asl1.ActualState.Add(this.as11.Iid);
            this.asl1.ActualState.Add(this.as12.Iid);

            this.asl2.PossibleFiniteStateList.Add(new OrderedItem {
                K = 1, V = this.psl2.Iid.ToString()
            });
            this.as21 = new ActualFiniteState(Guid.NewGuid(), 1);
            this.as21.PossibleState.Add(this.ps21.Iid);
            this.as22 = new ActualFiniteState(Guid.NewGuid(), 1);
            this.as22.PossibleState.Add(this.ps22.Iid);

            this.asl2.ActualState.Add(this.as21.Iid);
            this.asl2.ActualState.Add(this.as22.Iid);

            this.possibleFiniteStateListslService.Setup(
                x => x.GetShallow(this.transaction, this.partition, It.IsAny <IEnumerable <Guid> >(), this.securityContext.Object))
            .Returns(new List <Thing> {
                this.psl1, this.psl2
            });

            this.actualFiniteStateListService.Setup(
                x => x.GetShallow(this.transaction, this.partition, null, this.securityContext.Object))
            .Returns(new List <Thing> {
                this.asl1, this.asl2
            });

            this.actualFiniteStateService.Setup(
                x => x.GetShallow(this.transaction, this.partition, It.IsAny <IEnumerable <Guid> >(), this.securityContext.Object))
            .Returns(new List <Thing> {
                this.as11, this.as12
            });

            this.iterationService.Setup(x => x.GetShallow(this.transaction, this.partition, null, this.securityContext.Object))
            .Returns(new List <Thing> {
                this.iteration
            });

            this.parameter1 = new Parameter(Guid.NewGuid(), 1);
            this.parameter1.StateDependence = this.asl1.Iid;

            this.parameter2 = new Parameter(Guid.NewGuid(), 1);
            this.parameter2.StateDependence   = this.asl1.Iid;
            this.parameter2.IsOptionDependent = true;

            this.parameterOverride1           = new ParameterOverride(Guid.NewGuid(), 1);
            this.parameterOverride1.Parameter = this.parameter1.Iid;

            this.parameterOverride2           = new ParameterOverride(Guid.NewGuid(), 1);
            this.parameterOverride2.Parameter = this.parameter2.Iid;

            this.parameterSubscription1 = new ParameterSubscription(Guid.NewGuid(), 1);
            this.parameterSubscription2 = new ParameterSubscription(Guid.NewGuid(), 1);

            this.parameter1.ParameterSubscription.Add(this.parameterSubscription1.Iid);
            this.parameterOverride2.ParameterSubscription.Add(this.parameterSubscription2.Iid);

            this.pvs11 = new ParameterValueSet(Guid.NewGuid(), 1)
            {
                Manual      = new ValueArray <string>(this.initValue),
                Computed    = new ValueArray <string>(this.initValue),
                Reference   = new ValueArray <string>(this.initValue),
                Published   = new ValueArray <string>(this.initValue),
                Formula     = new ValueArray <string>(this.initValue),
                ValueSwitch = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
            };
            this.pvs12 = new ParameterValueSet(Guid.NewGuid(), 1)
            {
                Manual      = new ValueArray <string>(this.initValue),
                Computed    = new ValueArray <string>(this.initValue),
                Reference   = new ValueArray <string>(this.initValue),
                Published   = new ValueArray <string>(this.initValue),
                Formula     = new ValueArray <string>(this.initValue),
                ValueSwitch = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
            };
            this.pvs21 = new ParameterValueSet(Guid.NewGuid(), 1)
            {
                Manual      = new ValueArray <string>(this.initValue),
                Computed    = new ValueArray <string>(this.initValue),
                Reference   = new ValueArray <string>(this.initValue),
                Published   = new ValueArray <string>(this.initValue),
                Formula     = new ValueArray <string>(this.initValue),
                ValueSwitch = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
            };
            this.pvs22 = new ParameterValueSet(Guid.NewGuid(), 1)
            {
                Manual      = new ValueArray <string>(this.initValue),
                Computed    = new ValueArray <string>(this.initValue),
                Reference   = new ValueArray <string>(this.initValue),
                Published   = new ValueArray <string>(this.initValue),
                Formula     = new ValueArray <string>(this.initValue),
                ValueSwitch = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
            };

            this.povs11 = new ParameterOverrideValueSet(Guid.NewGuid(), 1)
            {
                Manual            = new ValueArray <string>(this.initValue),
                Computed          = new ValueArray <string>(this.initValue),
                Reference         = new ValueArray <string>(this.initValue),
                Published         = new ValueArray <string>(this.initValue),
                Formula           = new ValueArray <string>(this.initValue),
                ValueSwitch       = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
                ParameterValueSet = this.pvs11.Iid
            };

            this.povs12 = new ParameterOverrideValueSet(Guid.NewGuid(), 1)
            {
                Manual            = new ValueArray <string>(this.initValue),
                Computed          = new ValueArray <string>(this.initValue),
                Reference         = new ValueArray <string>(this.initValue),
                Published         = new ValueArray <string>(this.initValue),
                Formula           = new ValueArray <string>(this.initValue),
                ValueSwitch       = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
                ParameterValueSet = this.pvs11.Iid
            };
            this.povs21 = new ParameterOverrideValueSet(Guid.NewGuid(), 1)
            {
                Manual            = new ValueArray <string>(this.initValue),
                Computed          = new ValueArray <string>(this.initValue),
                Reference         = new ValueArray <string>(this.initValue),
                Published         = new ValueArray <string>(this.initValue),
                Formula           = new ValueArray <string>(this.initValue),
                ValueSwitch       = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
                ParameterValueSet = this.pvs11.Iid
            };
            this.povs22 = new ParameterOverrideValueSet(Guid.NewGuid(), 1)
            {
                Manual            = new ValueArray <string>(this.initValue),
                Computed          = new ValueArray <string>(this.initValue),
                Reference         = new ValueArray <string>(this.initValue),
                Published         = new ValueArray <string>(this.initValue),
                Formula           = new ValueArray <string>(this.initValue),
                ValueSwitch       = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
                ParameterValueSet = this.pvs11.Iid
            };

            this.psvs11 = new ParameterSubscriptionValueSet(Guid.NewGuid(), 1)
            {
                Manual             = new ValueArray <string>(this.initValue),
                ValueSwitch        = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
                SubscribedValueSet = this.pvs11.Iid
            };
            this.psvs12 = new ParameterSubscriptionValueSet(Guid.NewGuid(), 1)
            {
                Manual             = new ValueArray <string>(this.initValue),
                ValueSwitch        = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
                SubscribedValueSet = this.pvs12.Iid
            };
            this.psvs21 = new ParameterSubscriptionValueSet(Guid.NewGuid(), 1)
            {
                Manual             = new ValueArray <string>(this.initValue),
                ValueSwitch        = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
                SubscribedValueSet = this.povs21.Iid
            };
            this.psvs22 = new ParameterSubscriptionValueSet(Guid.NewGuid(), 1)
            {
                Manual             = new ValueArray <string>(this.initValue),
                ValueSwitch        = CDP4Common.EngineeringModelData.ParameterSwitchKind.REFERENCE,
                SubscribedValueSet = this.povs22.Iid
            };

            this.parameter1.ValueSet.Add(this.pvs11.Iid);
            this.parameter1.ValueSet.Add(this.pvs12.Iid);
            this.parameter2.ValueSet.Add(this.pvs21.Iid);
            this.parameter2.ValueSet.Add(this.pvs22.Iid);

            this.parameterOverride1.ValueSet.Add(this.povs11.Iid);
            this.parameterOverride1.ValueSet.Add(this.povs12.Iid);
            this.parameterOverride2.ValueSet.Add(this.povs21.Iid);
            this.parameterOverride2.ValueSet.Add(this.povs22.Iid);

            this.parameterSubscription1.ValueSet.Add(this.psvs11.Iid);
            this.parameterSubscription1.ValueSet.Add(this.psvs12.Iid);
            this.parameterSubscription2.ValueSet.Add(this.psvs21.Iid);
            this.parameterSubscription2.ValueSet.Add(this.psvs22.Iid);

            this.parameterValueSetService.Setup(
                x => x.GetShallow(this.transaction, this.partition, this.parameter1.ValueSet, this.securityContext.Object))
            .Returns(new List <Thing> {
                this.pvs11, this.pvs12
            });
            this.parameterValueSetService.Setup(
                x => x.GetShallow(this.transaction, this.partition, this.parameter2.ValueSet, this.securityContext.Object))
            .Returns(new List <Thing> {
                this.pvs21, this.pvs22
            });

            this.parameterOverrideValueSetService.Setup(
                x =>
                x.GetShallow(this.transaction, this.partition, this.parameterOverride1.ValueSet,
                             this.securityContext.Object))
            .Returns(new List <Thing> {
                this.povs11, this.povs12
            });
            this.parameterOverrideValueSetService.Setup(
                x =>
                x.GetShallow(this.transaction, this.partition, this.parameterOverride2.ValueSet,
                             this.securityContext.Object))
            .Returns(new List <Thing> {
                this.povs21, this.povs22
            });

            this.parameterSubscriptionValueSetService.Setup(
                x =>
                x.GetShallow(this.transaction, this.partition, this.parameterSubscription1.ValueSet,
                             this.securityContext.Object))
            .Returns(new List <Thing> {
                this.psvs11, this.psvs12
            });
            this.parameterSubscriptionValueSetService.Setup(
                x =>
                x.GetShallow(this.transaction, this.partition, this.parameterSubscription2.ValueSet,
                             this.securityContext.Object))
            .Returns(new List <Thing> {
                this.psvs21, this.psvs22
            });

            this.compoundParameterTypeService.Setup(
                x => x.GetShallow(this.transaction, this.partition, It.IsAny <IEnumerable <Guid> >(), this.securityContext.Object))
            .Returns(new List <Thing>());

            this.parameterService.Setup(x => x.GetShallow(this.transaction, this.partition, null, this.securityContext.Object))
            .Returns(new List <Thing> {
                this.parameter1, this.parameter2
            });

            this.parameterOverrideService.Setup(x => x.GetShallow(this.transaction, this.partition, null, this.securityContext.Object))
            .Returns(new List <Thing> {
                this.parameterOverride1, this.parameterOverride2
            });

            this.parameterSubscriptionService.Setup(x => x.GetShallow(this.transaction, this.partition, null, this.securityContext.Object))
            .Returns(new List <Thing> {
                this.parameterSubscription1, this.parameterSubscription2
            });

            this.defaultValueArrayFactory.Setup(x => x.CreateDefaultValueArray(It.IsAny <Guid>())).Returns(new ValueArray <string>(new[] { "-" }));
            this.parameterUpdateService.DefaultValueSetFactory = this.defaultValueArrayFactory.Object;
            this.parameterValueSetService.Setup(x => x.DeleteConcept(this.transaction, this.partition, It.IsAny <ParameterValueSet>(), It.IsAny <Parameter>())).Returns(true);
            this.parameterOverrideValueSetService.Setup(x => x.DeleteConcept(this.transaction, this.partition, It.IsAny <ParameterOverrideValueSet>(), It.IsAny <ParameterOverride>())).Returns(true);
            this.parameterSubscriptionValueSetService.Setup(x => x.DeleteConcept(this.transaction, this.partition, It.IsAny <ParameterSubscriptionValueSet>(), It.IsAny <ParameterSubscription>())).Returns(true);
        }
        private void BuildModelData()
        {
            this.model1     = new EngineeringModel(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.model2     = new EngineeringModel(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.iteration1 = new Iteration(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.iteration2 = new Iteration(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.rootDef    = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "rootdef"
            };
            this.def1 = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "def1"
            };
            this.def2 = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "def2"
            };
            this.usage1        = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.usage11       = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.usage2        = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.usage21       = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.usage22       = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.parameter1    = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.override1     = new ParameterOverride(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.subscription1 = new ParameterSubscription(Guid.NewGuid(), this.assembler.Cache, this.uri);


            this.model1.EngineeringModelSetup = this.modelsetup1;
            this.model2.EngineeringModelSetup = this.modelsetup2;

            this.iteration1.IterationSetup = this.iterationSetup1;
            this.iteration2.IterationSetup = this.iterationSetup2;

            this.rootDef.Owner             = this.domain1;
            this.def1.Owner                = this.domain1;
            this.def2.Owner                = this.domain2;
            this.usage1.Owner              = this.domain1;
            this.usage1.ElementDefinition  = this.def1;
            this.usage11.Owner             = this.domain1;
            this.usage11.ElementDefinition = this.def1;
            this.usage2.Owner              = this.domain1;
            this.usage2.ElementDefinition  = this.def2;
            this.usage22.Owner             = this.domain1;
            this.usage22.ElementDefinition = this.def2;
            this.usage21.Owner             = this.domain1;
            this.usage21.ElementDefinition = this.def2;

            this.parameter1.Owner         = this.domain2;
            this.parameter1.ParameterType = this.booleanPt;
            this.parameter1.AllowDifferentOwnerOfOverride = true;
            this.override1.Parameter = this.parameter1;
            this.override1.Owner     = this.domain2;
            this.subscription1.Owner = this.domain1;

            this.model1.Iteration.Add(this.iteration1);
            this.iteration1.Element.Add(this.def1);
            this.iteration1.Element.Add(this.def2);
            this.iteration1.Element.Add(this.rootDef);
            this.rootDef.ContainedElement.Add(this.usage1);
            this.rootDef.ContainedElement.Add(this.usage11);
            this.def1.ContainedElement.Add(this.usage2);
            this.def1.ContainedElement.Add(this.usage22);
            this.def1.ContainedElement.Add(this.usage21);
            this.def2.Parameter.Add(this.parameter1);
            this.usage1.ParameterOverride.Add(this.override1);
            this.parameter1.ParameterSubscription.Add(this.subscription1);

            this.model2.Iteration.Add(this.iteration2);

            this.option1 = new Option(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.option2 = new Option(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.psl1 = new PossibleFiniteStateList(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.ps1  = new PossibleFiniteState(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.asl1 = new ActualFiniteStateList(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.as1  = new ActualFiniteState(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.iteration1.Option.Add(this.option1);
            this.iteration1.Option.Add(this.option2);

            this.iteration1.PossibleFiniteStateList.Add(this.psl1);
            this.iteration1.ActualFiniteStateList.Add(this.asl1);

            this.psl1.PossibleState.Add(this.ps1);
            this.asl1.ActualState.Add(this.as1);

            this.iteration1.DefaultOption = this.option1;
            this.psl1.DefaultState        = this.ps1;

            this.asl1.PossibleFiniteStateList.Add(this.psl1);
            this.as1.PossibleState.Add(this.ps1);
        }
Example #11
0
        public void SetUp()
        {
            this.owner                = new DomainOfExpertise(Guid.NewGuid(), null, null);
            this.owner.ShortName      = "SYS";
            this.owner.Name           = "System";
            this.otherOwner           = new DomainOfExpertise(Guid.NewGuid(), null, null);
            this.otherOwner.ShortName = "THR";
            this.otherOwner.Name      = "Thermal";

            // Reference SitedirectoryData
            var lengthunit = new SimpleUnit(Guid.NewGuid(), null, null);

            lengthunit.ShortName = "m";
            lengthunit.Name      = "metre";

            var lengthscale = new RatioScale(Guid.NewGuid(), null, null);

            lengthscale.Unit      = lengthunit;
            lengthscale.ShortName = "m-scale";
            lengthscale.Name      = "metre scale";

            var xcoord = new SimpleQuantityKind(Guid.NewGuid(), null, null)
            {
                Name = "x", ShortName = "x"
            };

            xcoord.PossibleScale.Add(lengthscale);
            xcoord.DefaultScale = lengthscale;

            var ycoord = new SimpleQuantityKind(Guid.NewGuid(), null, null)
            {
                Name = "y", ShortName = "y"
            };

            ycoord.PossibleScale.Add(lengthscale);
            ycoord.DefaultScale = lengthscale;

            var zcoord = new SimpleQuantityKind(Guid.NewGuid(), null, null)
            {
                Name = "z", ShortName = "z"
            };

            zcoord.PossibleScale.Add(lengthscale);
            zcoord.DefaultScale = lengthscale;

            var vector = new ArrayParameterType(Guid.NewGuid(), null, null);

            vector.Name      = "coordinate";
            vector.ShortName = "coord";
            var xcomp = new ParameterTypeComponent(Guid.NewGuid(), null, null)
            {
                ParameterType = xcoord
            };
            var ycomp = new ParameterTypeComponent(Guid.NewGuid(), null, null)
            {
                ParameterType = ycoord
            };
            var zcomp = new ParameterTypeComponent(Guid.NewGuid(), null, null)
            {
                ParameterType = zcoord
            };

            vector.Component.Add(xcomp);
            vector.Component.Add(ycomp);
            vector.Component.Add(zcomp);

            // iteration data
            this.iteration = new Iteration(Guid.NewGuid(), null, null);

            var optionA = new Option(Guid.NewGuid(), null, null)
            {
                Name = "Option A", ShortName = "OptionA"
            };

            this.iteration.Option.Add(optionA);
            var optionB = new Option(Guid.NewGuid(), null, null)
            {
                Name = "Option B", ShortName = "OptionB"
            };

            this.iteration.Option.Add(optionB);

            var possibleFiniteStateList = new PossibleFiniteStateList(Guid.NewGuid(), null, null);
            var possibleFiniteState1    = new PossibleFiniteState(Guid.NewGuid(), null, null)
            {
                ShortName = "state1",
                Name      = "state 1"
            };

            possibleFiniteStateList.PossibleState.Add(possibleFiniteState1);
            var possibleFiniteState2 = new PossibleFiniteState(Guid.NewGuid(), null, null)
            {
                ShortName = "state2",
                Name      = "state 2"
            };

            possibleFiniteStateList.PossibleState.Add(possibleFiniteState2);
            possibleFiniteStateList.DefaultState = possibleFiniteState1;

            var actualFiniteStateList = new ActualFiniteStateList(Guid.NewGuid(), null, null);

            actualFiniteStateList.PossibleFiniteStateList.Add(possibleFiniteStateList);
            var actualFiniteState1 = new ActualFiniteState(Guid.NewGuid(), null, null);

            actualFiniteState1.PossibleState.Add(possibleFiniteState1);
            actualFiniteStateList.ActualState.Add(actualFiniteState1);
            var actualFiniteState2 = new ActualFiniteState(Guid.NewGuid(), null, null);

            actualFiniteState2.PossibleState.Add(possibleFiniteState2);
            actualFiniteStateList.ActualState.Add(actualFiniteState2);

            var elementDefinitionA = new ElementDefinition(Guid.NewGuid(), null, null)
            {
                Owner     = this.owner,
                ShortName = "elementdefinitionA",
                Name      = "element definition A"
            };

            this.iteration.Element.Add(elementDefinitionA);
            var parameterA1 = new Parameter(Guid.NewGuid(), null, null)
            {
                ParameterType = xcoord,
                Scale         = lengthscale,
                Owner         = this.owner
            };
            var parameterValueSetA1 = new ParameterValueSet(Guid.NewGuid(), null, null);
            var valueArrayA         = new ValueArray <string>(new List <string>()
            {
                "x"
            });

            parameterValueSetA1.Manual    = valueArrayA;
            parameterValueSetA1.Computed  = valueArrayA;
            parameterValueSetA1.Reference = valueArrayA;
            parameterValueSetA1.Formula   = valueArrayA;
            parameterA1.ValueSet.Add(parameterValueSetA1);
            elementDefinitionA.Parameter.Add(parameterA1);

            var parameterA2 = new Parameter(Guid.NewGuid(), null, null)
            {
                ParameterType = vector,
                Owner         = this.owner
            };

            elementDefinitionA.Parameter.Add(parameterA2);
            var parameterValueSetA2 = new ParameterValueSet(Guid.NewGuid(), null, null);

            parameterA2.ValueSet.Add(parameterValueSetA2);
            var valueArrayA2 = new ValueArray <string>(new List <string>()
            {
                "x", "y", "z"
            });

            parameterValueSetA2.ValueSwitch = ParameterSwitchKind.MANUAL;
            parameterValueSetA2.Manual      = valueArrayA2;
            parameterValueSetA2.Computed    = valueArrayA2;
            parameterValueSetA2.Reference   = valueArrayA2;
            parameterValueSetA2.Formula     = valueArrayA2;

            var parameterA3 = new Parameter(Guid.NewGuid(), null, null)
            {
                ParameterType     = xcoord,
                Scale             = lengthscale,
                Owner             = this.owner,
                IsOptionDependent = true,
            };

            elementDefinitionA.Parameter.Add(parameterA3);
            var parameterValueSetA3OptionA = new ParameterValueSet(Guid.NewGuid(), null, null)
            {
                ActualOption = optionA
            };
            var valueArrayA3OptionA = new ValueArray <string>(new List <string>()
            {
                "x"
            });

            parameterValueSetA3OptionA.Manual    = valueArrayA3OptionA;
            parameterValueSetA3OptionA.Reference = valueArrayA3OptionA;
            parameterValueSetA3OptionA.Computed  = valueArrayA3OptionA;
            parameterValueSetA3OptionA.Formula   = valueArrayA3OptionA;
            parameterA3.ValueSet.Add(parameterValueSetA3OptionA);
            var parameterValueSetA3OptionB = new ParameterValueSet(Guid.NewGuid(), null, null)
            {
                ActualOption = optionB
            };
            var valueArrayA3OptionB = new ValueArray <string>(new List <string>()
            {
                "x"
            });

            parameterValueSetA3OptionB.Manual    = valueArrayA3OptionB;
            parameterValueSetA3OptionB.Reference = valueArrayA3OptionB;
            parameterValueSetA3OptionB.Computed  = valueArrayA3OptionB;
            parameterValueSetA3OptionB.Formula   = valueArrayA3OptionB;
            parameterA3.ValueSet.Add(parameterValueSetA3OptionB);

            var elementDefinitionB = new ElementDefinition(Guid.NewGuid(), null, null)
            {
                Owner     = this.otherOwner,
                ShortName = "elementdefinitionB",
                Name      = "element definition B"
            };

            this.iteration.Element.Add(elementDefinitionB);
            var parameterB1 = new Parameter(Guid.NewGuid(), null, null)
            {
                ParameterType = xcoord, Owner = this.owner
            };

            elementDefinitionB.Parameter.Add(parameterB1);

            // element usage
            var elementUsageOfA1 = new ElementUsage(Guid.NewGuid(), null, null)
            {
                ShortName = "usageofA1", Name = "usage of A 2", Owner = this.owner
            };

            elementDefinitionB.ContainedElement.Add(elementUsageOfA1);
            elementUsageOfA1.ElementDefinition = elementDefinitionA;

            var elementUsageOfA2 = new ElementUsage(Guid.NewGuid(), null, null)
            {
                ShortName = "usageofA2", Name = "usage of A 2", Owner = this.owner
            };

            elementDefinitionB.ContainedElement.Add(elementUsageOfA2);
            elementUsageOfA2.ElementDefinition = elementDefinitionA;

            var parameterOverrideA1 = new ParameterOverride()
            {
                Parameter = parameterA1,
                Container = elementUsageOfA2,
                Owner     = this.owner
            };

            parameterOverrideA1.Iid = Guid.NewGuid();

            var parameterOverrideValueSetA1 = new ParameterOverrideValueSet();

            parameterOverrideValueSetA1.Iid = Guid.NewGuid();
            var overrideValueArrayA = new ValueArray <string>(new List <string>()
            {
                "x"
            });

            parameterOverrideValueSetA1.Manual    = overrideValueArrayA;
            parameterOverrideValueSetA1.Computed  = overrideValueArrayA;
            parameterOverrideValueSetA1.Reference = overrideValueArrayA;
            parameterOverrideValueSetA1.Formula   = overrideValueArrayA;
            parameterOverrideA1.ValueSet.Add(parameterOverrideValueSetA1);
            elementUsageOfA2.ParameterOverride.Add(parameterOverrideA1);

            var parameterOverrideA2 = new ParameterOverride()
            {
                Parameter = parameterA2,
                Container = elementUsageOfA2,
                Owner     = this.owner
            };

            parameterOverrideA2.Iid = Guid.NewGuid();

            var parameterOverrideValueSetA2 = new ParameterOverrideValueSet();

            parameterOverrideValueSetA2.Iid = Guid.NewGuid();
            var overrideValueArrayA2 = new ValueArray <string>(new List <string>()
            {
                "x", "y", "z"
            });

            parameterOverrideValueSetA2.Manual    = overrideValueArrayA2;
            parameterOverrideValueSetA2.Computed  = overrideValueArrayA2;
            parameterOverrideValueSetA2.Reference = overrideValueArrayA2;
            parameterOverrideValueSetA2.Formula   = overrideValueArrayA2;
            parameterOverrideA2.ValueSet.Add(parameterOverrideValueSetA2);
            elementUsageOfA2.ParameterOverride.Add(parameterOverrideA2);

            var parameterOverrideA3 = new ParameterOverride()
            {
                Parameter = parameterA3,
                Container = elementUsageOfA2,
                Owner     = this.owner
            };

            parameterOverrideA3.Iid = Guid.NewGuid();

            var parameterOverrideValueSetA3 = new ParameterOverrideValueSet();

            parameterOverrideValueSetA3.Iid = Guid.NewGuid();

            var parameterOverrideValueSetA3OptionA = new ParameterOverrideValueSet();

            parameterOverrideValueSetA3OptionA.Iid = Guid.NewGuid();
            parameterOverrideValueSetA3OptionA.ParameterValueSet = parameterValueSetA3OptionA;
            var overrideValueArrayA3OptionA = new ValueArray <string>(new List <string>()
            {
                "x"
            });

            parameterOverrideValueSetA3OptionA.Manual    = overrideValueArrayA3OptionA;
            parameterOverrideValueSetA3OptionA.Reference = overrideValueArrayA3OptionA;
            parameterOverrideValueSetA3OptionA.Computed  = overrideValueArrayA3OptionA;
            parameterOverrideValueSetA3OptionA.Formula   = overrideValueArrayA3OptionA;
            parameterOverrideA3.ValueSet.Add(parameterOverrideValueSetA3OptionA);
            var parameterOverrideValueSetA3OptionB = new ParameterOverrideValueSet();

            parameterOverrideValueSetA3OptionB.Iid = Guid.NewGuid();
            parameterOverrideValueSetA3OptionB.ParameterValueSet = parameterValueSetA3OptionB;
            var overrideValueArrayA3OptionB = new ValueArray <string>(new List <string>()
            {
                "x"
            });

            parameterOverrideValueSetA3OptionB.Manual    = overrideValueArrayA3OptionB;
            parameterOverrideValueSetA3OptionB.Reference = overrideValueArrayA3OptionB;
            parameterOverrideValueSetA3OptionB.Computed  = overrideValueArrayA3OptionB;
            parameterOverrideValueSetA3OptionB.Formula   = overrideValueArrayA3OptionB;
            parameterOverrideA3.ValueSet.Add(parameterOverrideValueSetA3OptionB);
            elementUsageOfA2.ParameterOverride.Add(parameterOverrideA3);
        }
        public void SetUp()
        {
            this.session  = new Mock <ISession>();
            this.asembler = new Assembler(this.uri);
            this.cache    = this.asembler.Cache;

            this.session.Setup(x => x.Assembler).Returns(this.asembler);

            this.model     = new EngineeringModel(Guid.NewGuid(), this.cache, this.uri);
            this.iteration = new Iteration(Guid.NewGuid(), this.cache, this.uri);

            this.elementDef1 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri);
            this.elementDef2 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri);

            this.parameter1 = new Parameter(Guid.NewGuid(), this.cache, this.uri);
            this.valueSet1  = new ParameterValueSet(Guid.NewGuid(), this.cache, this.uri);
            this.parameter2 = new Parameter(Guid.NewGuid(), this.cache, this.uri);
            this.valueSet2  = new ParameterValueSet(Guid.NewGuid(), this.cache, this.uri);
            this.usage      = new ElementUsage(Guid.NewGuid(), this.cache, this.uri);

            this.parameterOverride                  = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri);
            this.parameterOverride.Parameter        = this.parameter2;
            this.overrideValueset                   = new ParameterOverrideValueSet(Guid.NewGuid(), this.cache, this.uri);
            this.overrideValueset.ParameterValueSet = this.valueSet2;

            this.model.Iteration.Add(this.iteration);
            this.iteration.Element.Add(this.elementDef1);
            this.iteration.Element.Add(this.elementDef2);

            this.elementDef1.Parameter.Add(this.parameter1);
            this.parameter1.ValueSet.Add(this.valueSet1);

            this.usage.ElementDefinition = this.elementDef2;
            this.usage.ParameterOverride.Add(this.parameterOverride);
            this.parameterOverride.ValueSet.Add(this.overrideValueset);

            this.elementDef1.ContainedElement.Add(this.usage);

            this.sub1         = new ParameterSubscription(Guid.NewGuid(), this.cache, this.uri);
            this.sub2         = new ParameterSubscription(Guid.NewGuid(), this.cache, this.uri);
            this.subValueset1 = new ParameterSubscriptionValueSet(Guid.NewGuid(), this.cache, this.uri);
            this.subValueset1.SubscribedValueSet = this.valueSet1;
            this.subValueset2 = new ParameterSubscriptionValueSet(Guid.NewGuid(), this.cache, this.uri);
            this.subValueset2.SubscribedValueSet = this.overrideValueset;

            this.sub1.ValueSet.Add(this.subValueset1);
            this.sub2.ValueSet.Add(this.subValueset2);

            this.parameter1.ParameterSubscription.Add(this.sub1);
            this.parameterOverride.ParameterSubscription.Add(this.sub2);

            this.cache.TryAdd(new CacheKey(this.model.Iid, null), new Lazy <Thing>(() => this.model));
            this.cache.TryAdd(new CacheKey(this.iteration.Iid, null), new Lazy <Thing>(() => this.iteration));
            this.cache.TryAdd(new CacheKey(this.elementDef1.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.elementDef1));
            this.cache.TryAdd(new CacheKey(this.elementDef2.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.elementDef2));
            this.cache.TryAdd(new CacheKey(this.usage.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.usage));
            this.cache.TryAdd(new CacheKey(this.parameter1.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.parameter1));
            this.cache.TryAdd(new CacheKey(this.parameter2.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.parameter2));
            this.cache.TryAdd(new CacheKey(this.valueSet1.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.valueSet1));
            this.cache.TryAdd(new CacheKey(this.valueSet2.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.valueSet2));
            this.cache.TryAdd(new CacheKey(this.parameterOverride.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.parameterOverride));
            this.cache.TryAdd(new CacheKey(this.overrideValueset.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.overrideValueset));
            this.cache.TryAdd(new CacheKey(this.sub1.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.sub1));
            this.cache.TryAdd(new CacheKey(this.sub2.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.sub2));
            this.cache.TryAdd(new CacheKey(this.subValueset1.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.subValueset1));
            this.cache.TryAdd(new CacheKey(this.subValueset2.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.subValueset2));
        }
        /// <summary>
        /// Persist the <see cref="ParameterOverride"/> containment tree to the ORM layer. Update if it already exists.
        /// This is typically used during the import of existing data to the Database.
        /// </summary>
        /// <param name="transaction">
        /// The current <see cref="NpgsqlTransaction"/> to the database.
        /// </param>
        /// <param name="partition">
        /// The database partition (schema) where the requested resource will be stored.
        /// </param>
        /// <param name="parameterOverride">
        /// The <see cref="ParameterOverride"/> instance to persist.
        /// </param>
        /// <returns>
        /// True if the persistence was successful.
        /// </returns>
        private bool UpsertContainment(NpgsqlTransaction transaction, string partition, ParameterOverride parameterOverride)
        {
            var results = new List <bool>();

            foreach (var parameterSubscription in this.ResolveFromRequestCache(parameterOverride.ParameterSubscription))
            {
                results.Add(this.ParameterSubscriptionService.UpsertConcept(transaction, partition, parameterSubscription, parameterOverride));
            }

            foreach (var valueSet in this.ResolveFromRequestCache(parameterOverride.ValueSet))
            {
                results.Add(this.ValueSetService.UpsertConcept(transaction, partition, valueSet, parameterOverride));
            }

            return(results.All(x => x));
        }
Example #14
0
        public void VerifyThatContextMenuIsPopulated()
        {
            var group = new ParameterGroup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                ParameterType = this.pt
            };

            var def2       = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var parameter2 = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri);
            var usage      = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri);

            var paramOverride = new ParameterOverride(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Parameter = parameter2
            };

            parameter2.ParameterType = this.pt;

            var usage2 = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                ElementDefinition = def2
            };

            def2.Parameter.Add(parameter2);
            usage.ParameterOverride.Add(paramOverride);
            usage.ElementDefinition = def2;

            this.elementDef.Parameter.Add(parameter);
            this.elementDef.ParameterGroup.Add(group);
            this.elementDef.ContainedElement.Add(usage);
            this.elementDef.ContainedElement.Add(usage2);

            this.iteration.Element.Add(this.elementDef);
            this.iteration.Element.Add(def2);

            var vm = new ElementDefinitionsBrowserViewModel(this.iteration, this.session.Object, null, null, null, null);

            vm.PopulateContextMenu();

            Assert.AreEqual(2, vm.ContextMenu.Count);

            var defRow = vm.ElementDefinitionRowViewModels.Last();

            vm.SelectedThing = defRow;
            vm.PopulateContextMenu();
            Assert.AreEqual(14, vm.ContextMenu.Count);

            vm.SelectedThing = defRow.ContainedRows[0];
            vm.PopulateContextMenu();
            Assert.AreEqual(10, vm.ContextMenu.Count);

            vm.SelectedThing = defRow.ContainedRows[1];
            vm.PopulateContextMenu();
            Assert.AreEqual(9, vm.ContextMenu.Count);

            var usageRow  = defRow.ContainedRows[2];
            var usage2Row = defRow.ContainedRows[3];

            vm.SelectedThing = usageRow;
            vm.PopulateContextMenu();
            Assert.AreEqual(8, vm.ContextMenu.Count);

            vm.SelectedThing = usageRow.ContainedRows.Single();
            vm.PopulateContextMenu();
            Assert.AreEqual(10, vm.ContextMenu.Count);

            vm.SelectedThing = usage2Row.ContainedRows.Single();
            vm.PopulateContextMenu();
            Assert.AreEqual(10, vm.ContextMenu.Count);

            vm.Dispose();
        }
Example #15
0
        public void Setup()
        {
            this.session                      = new Mock <ISession>();
            this.assembler                    = new Assembler(this.uri);
            this.permissionService            = new Mock <IPermissionService>();
            this.thingDialogNavigationService = new Mock <IThingDialogNavigationService>();
            this.panelNavigationService       = new Mock <IPanelNavigationService>();
            this.cache = this.assembler.Cache;
            this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object);
            this.session.Setup(x => x.Assembler).Returns(this.assembler);

            this.sitedir    = new SiteDirectory(Guid.NewGuid(), this.cache, this.uri);
            this.modelsetup = new EngineeringModelSetup(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "model"
            };
            this.iterationsetup = new IterationSetup(Guid.NewGuid(), this.cache, this.uri);
            this.person         = new Person(Guid.NewGuid(), this.cache, this.uri);
            this.domain         = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "domain", ShortName = "DMN"
            };
            this.otherDomain = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "otherDomain", ShortName = "ODMN"
            };
            this.participant = new Participant(Guid.NewGuid(), this.cache, this.uri)
            {
                Person = this.person, SelectedDomain = this.domain
            };

            this.modelsetup.ActiveDomain = new List <DomainOfExpertise>()
            {
                this.domain, this.otherDomain
            };

            this.elementDefinition = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri);

            this.sitedir.Model.Add(this.modelsetup);
            this.sitedir.Person.Add(this.person);
            this.sitedir.Domain.Add(this.domain);
            this.sitedir.Domain.Add(this.otherDomain);
            this.modelsetup.IterationSetup.Add(this.iterationsetup);
            this.modelsetup.Participant.Add(this.participant);

            this.model = new EngineeringModel(Guid.NewGuid(), this.cache, this.uri)
            {
                EngineeringModelSetup = this.modelsetup
            };
            this.iteration = new Iteration(Guid.NewGuid(), this.cache, this.uri)
            {
                IterationSetup = this.iterationsetup
            };
            this.iteration.Element.Add(this.elementDefinition);
            this.publication = new Publication(Guid.NewGuid(), this.cache, this.uri);

            this.parameter1 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = new SimpleQuantityKind(Guid.NewGuid(), this.cache, this.uri)
                {
                    Name = "paramtype1", ShortName = "pat1"
                }, Owner = this.domain
            };
            this.parameter2 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = new SimpleQuantityKind(Guid.NewGuid(), this.cache, this.uri)
                {
                    Name = "paramtype2", ShortName = "pat2"
                }, Owner = this.domain
            };

            var parameterforoverride = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = new SimpleQuantityKind(Guid.NewGuid(), this.cache, this.uri)
                {
                    Name = "paramtype3", ShortName = "pat3"
                }
            };

            // Test input
            var valueSet = new ParameterValueSet(Guid.NewGuid(), this.cache, this.uri);

            this.SetScalarValueSet(valueSet);
            parameterforoverride.ValueSet.Add(valueSet);

            parameter1.ValueSet.Add(valueSet.Clone(false));

            this.parameterOverride1 = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri)
            {
                Parameter = parameterforoverride
            };

            this.elementDefinition.Parameter.Add(this.parameter1);
            this.elementDefinition.Parameter.Add(this.parameter2);
            this.elementDefinition.Parameter.Add(parameterforoverride);

            var elementusage = new ElementUsage(Guid.NewGuid(), this.cache, this.uri);

            this.elementDefinition.ContainedElement.Add(elementusage);
            elementusage.ParameterOverride.Add(this.parameterOverride1);

            this.publication.PublishedParameter.Add(this.parameter1);
            this.publication.PublishedParameter.Add(this.parameter2);
            this.publication.PublishedParameter.Add(this.parameterOverride1);

            this.publication.CreatedOn = DateTime.Now;
            this.publication.Domain.Add(this.domain);

            this.model.Iteration.Add(this.iteration);
            this.iteration.Publication.Add(this.publication);

            this.session.Setup(x => x.RetrieveSiteDirectory()).Returns(this.sitedir);
            this.session.Setup(x => x.ActivePerson).Returns(this.person);
            this.session.Setup(x => x.Write(It.IsAny <OperationContainer>())).Returns(Task.FromResult("some result"));
            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >());

            this.cache.TryAdd(new CacheKey(this.iteration.Iid, null), new Lazy <Thing>(() => this.iteration));
        }
Example #16
0
        public void Setup()
        {
            this.cache = new List <Thing>();
            RxApp.MainThreadScheduler = Scheduler.CurrentThread;
            this.session   = new Mock <ISession>();
            this.uri       = new Uri("http://test.com");
            this.assembler = new Assembler(this.uri);
            this.panelNavigationService = new Mock <IPanelNavigationService>();

            this.sitedir = new SiteDirectory(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.pt      = new TextParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.person = new Person(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.sitedir.Person.Add(this.person);
            this.domain = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "TestDoE"
            };
            this.sitedir.Domain.Add(this.domain);

            this.session.Setup(x => x.ActivePerson).Returns(this.person);
            this.model     = new EngineeringModel(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.iteration = new Iteration(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.elementDef = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name      = "1",
                Owner     = this.domain,
                Container = this.iteration
            };

            this.participant = new Participant(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Person = this.person
            };
            this.participant.Domain.Add(this.domain);

            var parameter = new Parameter(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Container     = this.elementDef,
                ParameterType = this.pt,
                Owner         = this.elementDef.Owner
            };

            var parameterOverride = new ParameterOverride(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Owner = this.domain, Parameter = parameter
            };
            var elementUsage = new ElementUsage(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                ElementDefinition = this.elementDef
            };

            elementUsage.ParameterOverride.Add(parameterOverride);
            this.elementDef.ContainedElement.Add(elementUsage);

            this.model.Iteration.Add(this.iteration);

            var iterationSetup = new IterationSetup(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.iteration.IterationSetup = iterationSetup;

            this.engineeringModelSetup = new EngineeringModelSetup(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "ModelSetup"
            };
            this.engineeringModelSetup.IterationSetup.Add(iterationSetup);

            this.srdl = new SiteReferenceDataLibrary(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.sitedir.SiteReferenceDataLibrary.Add(this.srdl);
            this.srdl.ParameterType.Add(this.pt);

            this.mrdl = new ModelReferenceDataLibrary(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                RequiredRdl = this.srdl
            };

            this.engineeringModelSetup.RequiredRdl.Add(this.mrdl);

            this.model.EngineeringModelSetup = this.engineeringModelSetup;
            this.model.EngineeringModelSetup.Participant.Add(this.participant);
            this.permissionService = new Mock <IPermissionService>();

            this.permissionService.Setup(x => x.CanRead(It.IsAny <Thing>())).Returns(true);
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <Thing>())).Returns(true);
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <ClassKind>(), It.IsAny <Thing>())).Returns(true);
            this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object);
            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> > {
                { this.iteration, new Tuple <DomainOfExpertise, Participant>(this.domain, this.participant) }
            });

            this.assembler.Cache.TryAdd(new CacheKey(this.iteration.Iid, null), new Lazy <Thing>(() => this.iteration));
            this.assembler.Cache.TryAdd(new CacheKey(this.model.Iid, null), new Lazy <Thing>(() => this.model));

            this.session.Setup(x => x.Assembler).Returns(this.assembler);
            this.thingDialogNavigationService = new Mock <IThingDialogNavigationService>();
        }
Example #17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ParameterOverrideRowViewModel"/> class
 /// </summary>
 /// <param name="parameterOverride">The associated <see cref="ParameterOverride"/></param>
 /// <param name="option">The actual <see cref="Option"/></param>
 /// <param name="session">The current <see cref="ISession"/></param>
 /// <param name="containerViewModel">the container view-model that contains this row</param>
 public ParameterOverrideRowViewModel(ParameterOverride parameterOverride, Option option, ISession session, IViewModelBase <Thing> containerViewModel)
     : base(parameterOverride, option, session, containerViewModel)
 {
 }
Example #18
0
        public void ParameterOverrideMatchesWhenCurrentOperationIsResolvingMatchingParameter()
        {
            var context = new MockBuilderContext
            {
                CurrentOperation = new ConstructorArgumentResolveOperation(typeof(SimpleTestObject), "int x", "x")
            };

            var overrider = new ParameterOverride("x", 42);

            var resolver = overrider.GetResolver(context, typeof(int));

            Assert.NotNull(resolver);
            AssertExtensions.IsInstanceOfType(resolver, typeof(LiteralValueDependencyResolverPolicy));

            var result = (int)resolver.Resolve(context);
            Assert.Equal(42, result);
        }
        public void Setup()
        {
            this.session = new Mock <ISession>();
            this.domain  = new DomainOfExpertise(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "domain"
            };

            this.siteDir        = new SiteDirectory(Guid.NewGuid(), this.cache, this.uri);
            this.person         = new Person(Guid.NewGuid(), this.cache, this.uri);
            this.model          = new EngineeringModel(Guid.NewGuid(), this.cache, this.uri);
            this.modelSetup     = new EngineeringModelSetup(Guid.NewGuid(), this.cache, this.uri);
            this.iteration      = new Iteration(Guid.NewGuid(), this.cache, this.uri);
            this.iterationSetup = new IterationSetup(Guid.NewGuid(), this.cache, this.uri);
            this.participant    = new Participant(Guid.NewGuid(), this.cache, this.uri);
            this.option         = new Option(Guid.NewGuid(), this.cache, this.uri);
            this.elementDef     = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.domain
            };
            this.type1 = new EnumerationParameterType(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "a"
            };
            this.type2 = new EnumerationParameterType(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "p"
            };

            this.vs1 = new ParameterValueSet(Guid.NewGuid(), this.cache, this.uri)
            {
                Published = new ValueArray <string>(new List <string> {
                    "1"
                }),
                Manual = new ValueArray <string>(new List <string> {
                    "1"
                }),
                ValueSwitch = ParameterSwitchKind.MANUAL
            };
            this.vs2 = new ParameterValueSet(Guid.NewGuid(), this.cache, this.uri)
            {
                Published = new ValueArray <string>(new List <string> {
                    "1"
                }),
                Manual = new ValueArray <string>(new List <string> {
                    "1"
                }),
                ValueSwitch = ParameterSwitchKind.MANUAL
            };
            this.ovs1 = new ParameterOverrideValueSet(Guid.NewGuid(), this.cache, this.uri)
            {
                Published = new ValueArray <string>(new List <string> {
                    "1"
                }),
                Manual = new ValueArray <string>(new List <string> {
                    "1"
                }),
                ValueSwitch       = ParameterSwitchKind.MANUAL,
                ParameterValueSet = this.vs1
            };
            this.gr = new ParameterGroup(Guid.NewGuid(), this.cache, this.uri)
            {
                Name = "gr"
            };

            this.p1 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.type1
            };
            this.p2 = new Parameter(Guid.NewGuid(), this.cache, this.uri)
            {
                ParameterType = this.type2
            };
            this.po1 = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri)
            {
                Parameter = this.p1
            };
            this.p1.ValueSet.Add(this.vs1);
            this.p2.ValueSet.Add(this.vs2);
            this.po1.ValueSet.Add(this.ovs1);

            this.elementDef2 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri)
            {
                Owner = this.domain
            };
            this.elementUsage = new ElementUsage(Guid.NewGuid(), this.cache, this.uri)
            {
                ElementDefinition = this.elementDef2, Owner = this.domain
            };

            this.elementDef2.Parameter.Add(this.p1);
            this.elementDef2.Parameter.Add(this.p2);
            this.elementDef2.ParameterGroup.Add(this.gr);
            this.elementUsage.ParameterOverride.Add(this.po1);

            this.siteDir.Person.Add(this.person);
            this.siteDir.Model.Add(this.modelSetup);
            this.modelSetup.IterationSetup.Add(this.iterationSetup);
            this.modelSetup.Participant.Add(this.participant);
            this.participant.Person = this.person;

            this.model.Iteration.Add(this.iteration);
            this.model.EngineeringModelSetup = this.modelSetup;
            this.iteration.IterationSetup    = this.iterationSetup;
            this.iteration.Option.Add(this.option);
            this.iteration.TopElement = this.elementDef;
            this.iteration.Element.Add(this.elementDef);
            this.iteration.Element.Add(this.elementDef2);
            this.elementDef.ContainedElement.Add(this.elementUsage);


            this.session.Setup(x => x.ActivePerson).Returns(this.person);
            this.session.Setup(x => x.DataSourceUri).Returns(this.uri.ToString);
            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >());
        }