예제 #1
0
        /// <summary>
        /// Serialize the <see cref="ArrayParameterType"/>
        /// </summary>
        /// <param name="arrayParameterType">The <see cref="ArrayParameterType"/> to serialize</param>
        /// <returns>The <see cref="JObject"/></returns>
        private JObject Serialize(ArrayParameterType arrayParameterType)
        {
            var jsonObject = new JObject();

            jsonObject.Add("alias", this.PropertySerializerMap["alias"](arrayParameterType.Alias.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("category", this.PropertySerializerMap["category"](arrayParameterType.Category.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("classKind", this.PropertySerializerMap["classKind"](Enum.GetName(typeof(CDP4Common.CommonData.ClassKind), arrayParameterType.ClassKind)));
            jsonObject.Add("component", this.PropertySerializerMap["component"](arrayParameterType.Component.OrderBy(x => x, this.orderedItemComparer)));
            jsonObject.Add("definition", this.PropertySerializerMap["definition"](arrayParameterType.Definition.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("dimension", this.PropertySerializerMap["dimension"](arrayParameterType.Dimension.OrderBy(x => x, this.orderedItemComparer)));
            jsonObject.Add("excludedDomain", this.PropertySerializerMap["excludedDomain"](arrayParameterType.ExcludedDomain.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("excludedPerson", this.PropertySerializerMap["excludedPerson"](arrayParameterType.ExcludedPerson.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("hyperLink", this.PropertySerializerMap["hyperLink"](arrayParameterType.HyperLink.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("iid", this.PropertySerializerMap["iid"](arrayParameterType.Iid));
            jsonObject.Add("isDeprecated", this.PropertySerializerMap["isDeprecated"](arrayParameterType.IsDeprecated));
            jsonObject.Add("isFinalized", this.PropertySerializerMap["isFinalized"](arrayParameterType.IsFinalized));
            jsonObject.Add("isTensor", this.PropertySerializerMap["isTensor"](arrayParameterType.IsTensor));
            jsonObject.Add("modifiedOn", this.PropertySerializerMap["modifiedOn"](arrayParameterType.ModifiedOn));
            jsonObject.Add("name", this.PropertySerializerMap["name"](arrayParameterType.Name));
            jsonObject.Add("revisionNumber", this.PropertySerializerMap["revisionNumber"](arrayParameterType.RevisionNumber));
            jsonObject.Add("shortName", this.PropertySerializerMap["shortName"](arrayParameterType.ShortName));
            jsonObject.Add("symbol", this.PropertySerializerMap["symbol"](arrayParameterType.Symbol));
            jsonObject.Add("thingPreference", this.PropertySerializerMap["thingPreference"](arrayParameterType.ThingPreference));
            return(jsonObject);
        }
예제 #2
0
        public void Setup()
        {
            RxApp.MainThreadScheduler = Scheduler.CurrentThread;
            this.permissionService    = new Mock <IPermissionService>();
            this.cache = new ConcurrentDictionary <CacheKey, Lazy <Thing> >();

            this.session = new Mock <ISession>();
            var person = new Person(Guid.NewGuid(), null, null)
            {
                Container = this.siteDir
            };

            this.session.Setup(x => x.ActivePerson).Returns(person);

            this.siteDir = new SiteDirectory(Guid.NewGuid(), this.cache, null);
            this.siteDir.Person.Add(person);
            this.srdl = new SiteReferenceDataLibrary(Guid.NewGuid(), this.cache, null)
            {
                Name = "testRDL", ShortName = "test"
            };
            this.arrayPt = new ArrayParameterType {
                Name = "parameterType", ShortName = "cat"
            };
            this.cat = new Category(Guid.NewGuid(), this.cache, null)
            {
                Name = "category1", ShortName = "cat1"
            };
            this.cat.PermissibleClass.Add(ClassKind.ArrayParameterType);
            this.srdl.DefinedCategory.Add(cat);
            this.siteDir.SiteReferenceDataLibrary.Add(this.srdl);
            this.session.Setup(x => x.RetrieveSiteDirectory()).Returns(this.siteDir);
            this.session.Setup(x => x.OpenReferenceDataLibraries).Returns(new HashSet <ReferenceDataLibrary>(this.siteDir.SiteReferenceDataLibrary));
            this.bpt = new BooleanParameterType(Guid.NewGuid(), this.cache, null);
            this.cpt = new CompoundParameterType(Guid.NewGuid(), this.cache, null);

            this.srdl.ParameterType.Add(this.bpt);
            this.srdl.ParameterType.Add(this.cpt);
            this.qt = new SimpleQuantityKind(Guid.NewGuid(), this.cache, null);
            this.srdl.ParameterType.Add(this.qt);

            this.scale = new OrdinalScale(Guid.NewGuid(), this.cache, null);
            this.srdl.Scale.Add(this.scale);
            this.qt.PossibleScale.Add(this.scale);

            this.cache.TryAdd(new CacheKey(this.srdl.Iid, null), new Lazy <Thing>(() => this.srdl));
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <ClassKind>(), It.IsAny <Thing>())).Returns(true);
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <Thing>())).Returns(true);
            this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object);

            var dal = new Mock <IDal>();

            this.session.Setup(x => x.DalVersion).Returns(new Version(1, 1, 0));
            this.session.Setup(x => x.Dal).Returns(dal.Object);
            dal.Setup(x => x.MetaDataProvider).Returns(new MetaDataProvider());
        }
        public void VerifyThatOperationIsCorrectlyComputedFromArrayParameterTypeUpdateGuid()
        {
            var array1 = new ArrayParameterType(Guid.NewGuid(), 1);
            var array2 = new ArrayParameterType(Guid.NewGuid(), 1);

            var guid1 = Guid.NewGuid();
            var guid2 = Guid.NewGuid();
            var guid3 = Guid.NewGuid();

            array1.Dimension.Add(new OrderedItem {
                K = 123, V = guid1
            });
            array1.Dimension.Add(new OrderedItem {
                K = 456, V = guid2
            });
            array1.Dimension.Add(new OrderedItem {
                K = 789, V = guid3
            });

            array2.Dimension.Add(new OrderedItem {
                K = 1234, V = guid1
            });
            array2.Dimension.Add(new OrderedItem {
                K = 4567, V = guid2
            });
            array2.Dimension.Add(new OrderedItem {
                K = 7890, V = guid3
            });

            var operation = new Operation(array1, array2, OperationKind.Update);

            this.wspPostOperation.ConstructFromOperation(operation);
            var updatedClasslessdto = this.wspPostOperation.Update.SingleOrDefault();

            Assert.IsNotNull(updatedClasslessdto);

            object outValue;

            Assert.IsTrue(updatedClasslessdto.TryGetValue("Dimension", out outValue));
            var orderedItems    = (IEnumerable)outValue;
            var orderedItemList = orderedItems.Cast <OrderedItem>().ToList();

            Assert.AreEqual(123, orderedItemList[0].K);
            Assert.AreEqual(456, orderedItemList[1].K);
            Assert.AreEqual(789, orderedItemList[2].K);

            Assert.AreEqual(1234, orderedItemList[0].M);
            Assert.AreEqual(4567, orderedItemList[1].M);
            Assert.AreEqual(7890, orderedItemList[2].M);

            Assert.AreEqual(guid1, orderedItemList[0].V);
            Assert.AreEqual(guid2, orderedItemList[1].V);
            Assert.AreEqual(guid3, orderedItemList[2].V);
        }
예제 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ArrayParameterTypeDialogViewModel"/> class
 /// </summary>
 /// <param name="arrayParameterType">
 /// The <see cref="ArrayParameterType"/> that is the subject of the current view-model. This is the object
 /// that will be either created, or edited.
 /// </param>
 /// <param name="transaction">
 /// The <see cref="ThingTransaction"/> that contains the log of recorded changes.
 /// </param>
 /// <param name="session">
 /// The <see cref="ISession"/> in which the current <see cref="Thing"/> is to be added or updated
 /// </param>
 /// <param name="isRoot">
 /// Assert if this <see cref="DialogViewModelBase{T}"/> is the root of all <see cref="DialogViewModelBase{T}"/>
 /// </param>
 /// <param name="dialogKind">
 /// The kind of operation this <see cref="DialogViewModelBase{T}"/> performs
 /// </param>
 /// <param name="thingDialogNavigationService">
 /// The <see cref="IThingDialogNavigationService"/> that is used to navigate to a dialog of a specific <see cref="Thing"/>.
 /// </param>
 /// <param name="container">
 /// The <see cref="Thing"/> that contains the created <see cref="Thing"/> in this Dialog
 /// </param>
 /// <param name="chainOfContainers">
 /// The optional chain of containers that contains the <paramref name="container"/> argument
 /// </param>
 public ArrayParameterTypeDialogViewModel(ArrayParameterType arrayParameterType, IThingTransaction transaction, ISession session, bool isRoot, ThingDialogKind dialogKind, IThingDialogNavigationService thingDialogNavigationService, Thing container, IEnumerable <Thing> chainOfContainers) : base(arrayParameterType, transaction, session, isRoot, dialogKind, thingDialogNavigationService, container, chainOfContainers)
 {
     if (container != null)
     {
         var containerThing = container as ReferenceDataLibrary;
         if (containerThing == null)
         {
             var errorMessage =
                 string.Format(
                     "The container parameter is of type {0}, it shall be of type ReferenceDataLibrary",
                     container.GetType());
             throw new ArgumentException(errorMessage);
         }
     }
 }
예제 #5
0
        /// <summary>
        /// Gets data for serialization.
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        private SqlStatement(SerializationInfo info, StreamingContext context)
        {
            if (info == null)
            {
                throw new ArgumentNullException("info");
            }

            // get...
            Type dialectType = (Type)info.GetValue("_dialectType", typeof(Type));

            if (dialectType != null)
            {
                _dialect = (SqlDialect)Activator.CreateInstance(dialectType);
            }

            // get...
            _databaseName           = info.GetString("_databaseName");
            _parameters             = (SqlStatementParameterCollection)info.GetValue("_parameters", typeof(SqlStatementParameterCollection));
            _commandText            = info.GetString("_commandText");
            _commandType            = (CommandType)info.GetValue("_commandType", typeof(CommandType));
            _selectMap              = (SelectMap)info.GetValue("_selectMap", typeof(SelectMap));
            this.Tag                = (string)info.GetValue("Tag", typeof(string));
            this.ArrayParameterType = (ArrayParameterType)info.GetValue("ArrayParameterType", typeof(ArrayParameterType));
        }
        public void SetUp()
        {
            this.permissionService            = new Mock <IPermissionService>();
            this.thingDialognavigationService = new Mock <IThingDialogNavigationService>();
            this.thingCreator       = new Mock <IThingCreator>();
            this.obfuscationService = new Mock <IObfuscationService>();
            this.cache = new ConcurrentDictionary <CacheKey, Lazy <Thing> >();

            this.serviceLocator = new Mock <IServiceLocator>();

            ServiceLocator.SetLocatorProvider(() => this.serviceLocator.Object);
            this.serviceLocator.Setup(x => x.GetInstance <IThingCreator>())
            .Returns(this.thingCreator.Object);

            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> >());
        }
예제 #7
0
        public void SetUp()
        {
            this.assembler = new Assembler(this.uri);

            this.permissionService = new Mock <IPermissionService>();
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <ClassKind>(), It.IsAny <Thing>())).Returns(true);
            this.thingDialognavigationService = new Mock <IThingDialogNavigationService>();
            this.session = new Mock <ISession>();
            this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object);
            this.option1 = new Option(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "option1"
            };
            this.option2 = new Option(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "option2"
            };

            this.stateList = new ActualFiniteStateList(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.state1    = new PossibleFiniteState(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "state1"
            };
            this.state2 = new PossibleFiniteState(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "state2"
            };

            this.posStateList = new PossibleFiniteStateList(Guid.NewGuid(), this.assembler.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.assembler.Cache, this.uri)
            {
                PossibleState = new List <PossibleFiniteState> {
                    this.state1
                },
                Kind = ActualFiniteStateKind.MANDATORY
            });

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

            this.stateList.PossibleFiniteStateList.Add(this.posStateList);

            this.activeDomain = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "active", ShortName = "active"
            };
            this.someotherDomain = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "other", ShortName = "other"
            };

            this.qqParamType = new SimpleQuantityKind(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name      = "PTName",
                ShortName = "PTShortName"
            };

            this.boolPt = new BooleanParameterType(Guid.NewGuid(), this.assembler.Cache, this.uri);

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

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

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

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

            this.cptType.Component.Add(new ParameterTypeComponent(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Iid           = Guid.NewGuid(),
                ParameterType = this.qqParamType,
                ShortName     = "c1"
            });

            this.cptType.Component.Add(new ParameterTypeComponent(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Iid           = Guid.NewGuid(),
                ParameterType = this.qqParamType,
                ShortName     = "c2"
            });

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

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

            this.iteration.Element.Add(this.elementDefinition);

            this.iteration.Option.Add(this.option1);
            this.iteration.Option.Add(this.option2);
            var engineeringModel = new EngineeringModel(Guid.NewGuid(), null, null);

            this.iteration.Container = engineeringModel;

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

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

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

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

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

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

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

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

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

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

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

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

            this.elementDefinition.Parameter.Add(this.parameter1);
            this.elementDefinition.Parameter.Add(this.parameterCompound);
            this.elementDefinition.Parameter.Add(this.parameter5ForSubscription);

            this.person = new Person(Guid.NewGuid(), null, null)
            {
                GivenName = "test", Surname = "test"
            };
            this.participant = new Participant(Guid.NewGuid(), null, null)
            {
                Person = this.person, SelectedDomain = this.activeDomain
            };
            this.session.Setup(x => x.ActivePerson).Returns(this.person);
            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >());
            var modelSetup = new EngineeringModelSetup(Guid.NewGuid(), null, null);

            modelSetup.Participant.Add(this.participant);
            engineeringModel.EngineeringModelSetup = modelSetup;
        }
예제 #8
0
        public void SetUp()
        {
            this.excelRows = new List <IExcelRow <Thing> >();

            this.owner = new DomainOfExpertise(Guid.NewGuid(), null, null)
            {
                Name = "system", ShortName = "SYS"
            };

            // 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.ValueSwitch = ParameterSwitchKind.MANUAL;
            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 processedValueSets = new Dictionary <Guid, ProcessedValueSet>();

            var assembler = new ParameterSheetRowAssembler(this.iteration, this.owner);

            assembler.Assemble(processedValueSets);
            this.excelRows.AddRange(assembler.ExcelRows);
        }
예제 #9
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);
        }
예제 #10
0
 private void Initialize()
 {
     this.ArrayParameterType = Database.ArrayParameterType;
 }
예제 #11
0
 public static void AddValueList(this ISqlStatementArrayBuilder sql, StringBuilder builder, IEnumerable values, DbType dbType, ArrayParameterType type)
 {
     if (type == ArrayParameterType.Array)
     {
         sql.AddValueListTableType(builder, values, dbType);
     }
     else if (type == ArrayParameterType.BunchOfParameters)
     {
         sql.AddValueListLegacy(builder, values, dbType);
     }
     else if (type == ArrayParameterType.Xml)
     {
         sql.AddValueListXml(builder, values, dbType);
     }
     else
     {
         throw new NotSupportedException(string.Format("Cannot handle '{0}'.", sql.ArrayParameterType));
     }
 }
예제 #12
0
 public static void AddValueList <T>(this ISqlStatementArrayBuilder sql, StringBuilder builder, IEnumerable <T> values, ArrayParameterType type)
 {
     sql.AddValueList(builder, values, ConversionHelper.GetDBTypeForClrType(typeof(T)), type);
 }
예제 #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ArrayParameterTypeDialogViewModel"/> class.
 /// </summary>
 /// <param name="arrayParameterType">The <see cref="ArrayParameterType"/></param>
 /// <param name="transaction">The <see cref="ThingTransaction"/> that contains the log of recorded changes</param>
 /// <param name="session">The <see cref="ISession"/> in which the current <see cref="Thing"/> is to be added or updated</param>
 /// <param name="isRoot">Assert if this <see cref="BooleanParameterTypeDialogViewModel"/> is the root of all <see cref="IThingDialogViewModel"/></param>
 /// <param name="dialogKind">The kind of operation this <see cref="BooleanParameterTypeDialogViewModel"/> performs</param>
 /// <param name="thingDialogNavigationService">The <see cref="IThingDialogNavigationService"/> that is used to navigate to a dialog of a specific <see cref="Thing"/></param>
 /// <param name="container">The <see cref="Thing"/> that contains the created <see cref="Thing"/> in this Dialog</param>
 /// <param name="chainOfContainers">The optional chain of containers that contains the <paramref name="container"/> argument</param>
 /// <exception cref="ArgumentException">
 /// The container must be of type <see cref="ReferenceDataLibrary"/>.
 /// </exception>
 public ArrayParameterTypeDialogViewModel(ArrayParameterType arrayParameterType, IThingTransaction transaction, ISession session, bool isRoot, ThingDialogKind dialogKind, IThingDialogNavigationService thingDialogNavigationService, Thing container = null, IEnumerable <Thing> chainOfContainers = null)
     : base(arrayParameterType, transaction, session, isRoot, dialogKind, thingDialogNavigationService, container, chainOfContainers)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ArrayParameterTypeRowViewModel"/> class
 /// </summary>
 /// <param name="arrayParameterType">The <see cref="ArrayParameterType"/> associated with this row</param>
 /// <param name="session">The session</param>
 /// <param name="containerViewModel">The <see cref="IViewModelBase{Thing}"/> that is the container of this <see cref="IRowViewModelBase{Thing}"/></param>
 public ArrayParameterTypeRowViewModel(ArrayParameterType arrayParameterType, ISession session, IViewModelBase <Thing> containerViewModel) : base(arrayParameterType, session, containerViewModel)
 {
     this.UpdateProperties();
 }
예제 #15
0
        public ParameterType From(Type type, Assembly clientAssembly, IList <string> ancestorStack = null)
        {
            if (parameterTypeCache.ContainsKey(type.FullName))
            {
                return(parameterTypeCache[type.FullName]);
            }

            if (type.FullName == typeof(string).FullName)
            {
                return(new StringParameterType(type, clientAssembly));
            }
            if (type.FullName == typeof(char).FullName)
            {
                return(new CharParameterType(type, clientAssembly));
            }
            if (type.FullName == typeof(bool).FullName)
            {
                return(new BooleanParameterType(type, clientAssembly));
            }
            if (integerTypeNames.Contains(type.FullName))
            {
                return(new IntegerParameterType(type, clientAssembly));
            }
            if (decimalTypeNames.Contains(type.FullName))
            {
                return(new DecimalParameterType(type, clientAssembly));
            }
            if (type.IsEnum)
            {
                return(new EnumParameterType(type, clientAssembly));
            }
            if (type.FullName == typeof(Guid).FullName)
            {
                return(new GuidParameterType(type, clientAssembly));
            }
            if (type.FullName == typeof(DateTime).FullName)
            {
                return(new DateTimeParameterType(type, clientAssembly));
            }
            if (type.FullName == typeof(TimeSpan).FullName)
            {
                return(new TimeSpanParameterType(type, clientAssembly));
            }
            if (type.FullName == typeof(Uri).FullName)
            {
                return(new UriParameterType(type, clientAssembly));
            }
            if (type.IsArray)
            {
                // array
                var arrayParameterType = new ArrayParameterType(type, clientAssembly);
                var arrayItemType      = FromPreventStackOverflow(arrayParameterType.Type.GetElementType(), clientAssembly, type, ancestorStack);
                arrayParameterType.Members.Add(new Parameter("[0]", arrayItemType));
                return(arrayParameterType);
            }
            if (type.IsGenericType)
            {
                var genericTypeDefinition = type.GetGenericTypeDefinition();
                if (genericTypeDefinition == typeof(Nullable <>))
                {
                    // nullable
                    var nullableParameterType = new NullableParameterType(type, clientAssembly);
                    var innerType             = FromPreventStackOverflow(nullableParameterType.Type.GetGenericArguments()[0], clientAssembly, type, ancestorStack);
                    nullableParameterType.Members.Add(new Parameter("Value", innerType));
                    return(nullableParameterType);
                }
                if (genericTypeDefinition == typeof(Dictionary <,>))
                {
                    // dictionary
                    var    dictionaryParameterType = new DictionaryParameterType(type, clientAssembly);
                    Type[] genericArguments        = dictionaryParameterType.Type.GetGenericArguments();
                    var    parameterType           = FromPreventStackOverflow(typeof(KeyValuePair <,>).MakeGenericType(genericArguments[0], genericArguments[1]), clientAssembly, type, ancestorStack);
                    dictionaryParameterType.Members.Add(new Parameter("[0]", parameterType));
                    return(dictionaryParameterType);
                }
                if (genericTypeDefinition == typeof(KeyValuePair <,>))
                {
                    // kvp
                    var keyValuePairParameterType = new KeyValuePairParameterType(type, clientAssembly);
                    var genericArguments          = keyValuePairParameterType.Type.GetGenericArguments();
                    var keyType   = FromPreventStackOverflow(genericArguments[0], clientAssembly, type, ancestorStack);
                    var valueType = FromPreventStackOverflow(genericArguments[1], clientAssembly, type, ancestorStack);
                    keyValuePairParameterType.Members.Add(new Parameter("Key", keyType));
                    keyValuePairParameterType.Members.Add(new Parameter("Value", valueType));
                    return(keyValuePairParameterType);
                }
            }

            var compoundParameterType = new CompoundParameterType(type, clientAssembly);

            AddMembers(compoundParameterType, clientAssembly, ancestorStack);

            return(compoundParameterType);
        }
예제 #16
0
 public void Setup()
 {
     this.arrayParameterType = new ArrayParameterType(Guid.NewGuid(), null, null);
 }
        public void SetUp()
        {
            this.permissionService  = new Mock <IPermissionService>();
            this.obfuscationService = new Mock <IObfuscationService>();
            this.session            = new Mock <ISession>();
            this.assembler          = new Assembler(this.uri);
            this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object);
            this.option1 = new Option(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                ShortName = "1"
            };
            this.option2 = new Option(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                ShortName = "2"
            };

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

            this.posStateList = new PossibleFiniteStateList(Guid.NewGuid(), this.assembler.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.assembler.Cache, this.uri)
            {
                PossibleState = new List <PossibleFiniteState> {
                    this.state1
                },
                Kind = ActualFiniteStateKind.MANDATORY
            });

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

            this.activeDomain    = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri);
            this.someotherDomain = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri);

            this.qqParamType = new SimpleQuantityKind(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name      = "PTName",
                ShortName = "PTShortName"
            };

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

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

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

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

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

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

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

            var engModel   = new EngineeringModel(Guid.NewGuid(), null, null);
            var modelSetup = new EngineeringModelSetup(Guid.NewGuid(), null, null);
            var person     = new Person(Guid.NewGuid(), null, null)
            {
                GivenName = "test", Surname = "test"
            };
            var participant = new Participant(Guid.NewGuid(), null, null)
            {
                Person = person
            };

            modelSetup.Participant.Add(participant);
            engModel.EngineeringModelSetup = modelSetup;
            this.session.Setup(x => x.ActivePerson).Returns(person);
            this.session.Setup(x => x.Assembler).Returns(this.assembler);
            this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >());

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

            this.iteration.Element.Add(this.elementDefinition);
            this.iteration.Option.Add(this.option1);
            this.iteration.Option.Add(this.option2);
            engModel.Iteration.Add(this.iteration);
            this.elementDefinitionForUsage1 = new ElementDefinition(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Owner = this.someotherDomain
            };

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            this.parameterForOptions = new Parameter(Guid.NewGuid(), this.assembler.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.elementDefinitionForUsage2.ParameterGroup.Add(this.parameterGroup2ForUsage2);


            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;
        }
        public void SetUp()
        {
            this.concurentDictionary = new ConcurrentDictionary <CacheKey, Lazy <Thing> >();

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

            this.SystemEngineering = new DomainOfExpertise(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                Name      = "System Engineering",
                ShortName = "SYS"
            };

            this.PowerEngineering = new DomainOfExpertise(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                Name      = "Power Engineering",
                ShortName = "PWR"
            };

            this.optionA = new Option(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "A",
                Name      = "Option A"
            };
            this.optionB = new Option(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "B",
                Name      = "Option B"
            };
            this.iteration.Option.Add(this.optionA);
            this.iteration.Option.Add(this.optionB);

            this.cellCategory = new Category(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "CELLS",
                Name      = "Cells"
            };


            this.satelliteDefinition = new ElementDefinition(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "SAT",
                Name      = "Satellite",
                Owner     = this.SystemEngineering
            };
            this.iteration.Element.Add(this.satelliteDefinition);
            this.iteration.TopElement = this.satelliteDefinition;

            this.solarArrayDefinition = new ElementDefinition(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "SA",
                Name      = "Solar Array",
                Owner     = this.PowerEngineering
            };
            this.iteration.Element.Add(this.solarArrayDefinition);

            this.arrayWingDefinition = new ElementDefinition(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "WING",
                Name      = "Wing",
                Owner     = this.PowerEngineering
            };
            this.iteration.Element.Add(this.arrayWingDefinition);

            this.solarCellDefinition = new ElementDefinition(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "CELL",
                Name      = "Cell",
                Owner     = this.PowerEngineering,
            };
            this.solarCellDefinition.Category.Add(this.cellCategory);

            this.iteration.Element.Add(this.solarCellDefinition);

            var solarArrayUsage = new ElementUsage(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName         = "SA",
                Name              = "The Solar Array",
                ElementDefinition = this.solarArrayDefinition,
                Owner             = this.PowerEngineering
            };

            this.satelliteDefinition.ContainedElement.Add(solarArrayUsage);

            this.wingLeftUsage = new ElementUsage(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName         = "LW",
                Name              = "Left Wing",
                ElementDefinition = this.arrayWingDefinition,
                Owner             = this.PowerEngineering
            };
            var wingRightUsage = new ElementUsage(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName         = "LW",
                Name              = "Left Wing",
                ElementDefinition = this.arrayWingDefinition,
                Owner             = this.PowerEngineering
            };

            this.solarArrayDefinition.ContainedElement.Add(this.wingLeftUsage);
            this.solarArrayDefinition.ContainedElement.Add(wingRightUsage);

            var aSolarCellUsage = new ElementUsage(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName         = "A",
                Name              = "Cell A",
                ElementDefinition = solarCellDefinition,
                Owner             = this.PowerEngineering
            };
            var bSolarCellUsage = new ElementUsage(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName         = "B",
                Name              = "Cell B",
                ElementDefinition = solarCellDefinition,
                Owner             = this.PowerEngineering
            };
            var cSolarCellUsage = new ElementUsage(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName         = "C",
                Name              = "Cell C",
                ElementDefinition = solarCellDefinition,
                Owner             = this.PowerEngineering
            };
            var dSolarCellUsage = new ElementUsage(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName         = "D",
                Name              = "Cell D",
                ElementDefinition = solarCellDefinition,
                Owner             = this.PowerEngineering
            };

            this.arrayWingDefinition.ContainedElement.Add(aSolarCellUsage);
            this.arrayWingDefinition.ContainedElement.Add(bSolarCellUsage);
            this.arrayWingDefinition.ContainedElement.Add(cSolarCellUsage);
            this.arrayWingDefinition.ContainedElement.Add(dSolarCellUsage);

            // Create ParameterTypes and Parameters
            this.mass = new SimpleQuantityKind(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "m",
                Name      = "mass"
            };

            var length = new SimpleQuantityKind(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "l",
                Name      = "length"
            };

            this.cartesianCoordinates = new ArrayParameterType(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName = "coord",
                Name      = "coordinate"
            };

            var xcoordinate = new ParameterTypeComponent(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName     = "x",
                ParameterType = length
            };
            var ycoordinate = new ParameterTypeComponent(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName     = "y",
                ParameterType = length
            };
            var zcoordinate = new ParameterTypeComponent(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ShortName     = "z",
                ParameterType = length
            };

            this.cartesianCoordinates.Component.Add(xcoordinate);
            this.cartesianCoordinates.Component.Add(ycoordinate);
            this.cartesianCoordinates.Component.Add(zcoordinate);

            this.satelliteMass = new Parameter(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ParameterType = this.mass,
                Owner         = this.SystemEngineering
            };
            var satelliteMassValueset = new ParameterValueSet(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                Manual = new ValueArray <string>(new List <string> {
                    "-"
                }),
                Computed = new ValueArray <string>(new List <string> {
                    "-"
                }),
                Formula = new ValueArray <string>(new List <string> {
                    "-"
                }),
                ValueSwitch = ParameterSwitchKind.MANUAL
            };

            this.satelliteMass.ValueSet.Add(satelliteMassValueset);
            this.satelliteDefinition.Parameter.Add(this.satelliteMass);

            this.solarCellMass = new Parameter(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ParameterType = this.mass,
                Owner         = this.PowerEngineering
            };

            var solarCellMassValueset = new ParameterValueSet(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                Manual = new ValueArray <string>(new List <string> {
                    "-"
                }),
                Computed = new ValueArray <string>(new List <string> {
                    "-"
                }),
                Formula = new ValueArray <string>(new List <string> {
                    "-"
                }),
                ValueSwitch = ParameterSwitchKind.MANUAL
            };

            this.solarCellMass.ValueSet.Add(solarCellMassValueset);
            this.solarCellDefinition.Parameter.Add(this.solarCellMass);

            this.solarCellCoordinates = new Parameter(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                ParameterType = this.cartesianCoordinates,
                Owner         = this.PowerEngineering
            };
            var solarCellCoordinatesValueSet = new ParameterValueSet(Guid.NewGuid(), this.concurentDictionary, this.uri)
            {
                Manual = new ValueArray <string>(new List <string> {
                    "x-manual", "y-manual", "z-manual"
                }),
                Computed = new ValueArray <string>(new List <string> {
                    "x-computed", "y-computed", "z-computed"
                }),
                Formula = new ValueArray <string>(new List <string> {
                    "x-formula", "y-formula", "z-formula"
                }),
                ValueSwitch = ParameterSwitchKind.MANUAL
            };

            this.solarCellCoordinates.ValueSet.Add(solarCellCoordinatesValueSet);
            this.solarCellDefinition.Parameter.Add(this.solarCellCoordinates);
        }
예제 #19
0
        public void Setup()
        {
            this.npgsqlTransaction = null;
            this.securityContext   = new Mock <ISecurityContext>();

            // There is a chain aptA -> ptcA -> aptB -> ptcB -> bptD
            this.booleanParameterTypeD = new BooleanParameterType {
                Iid = Guid.NewGuid()
            };
            this.parameterTypeComponentD =
                new ParameterTypeComponent {
                Iid = Guid.NewGuid(), ParameterType = this.booleanParameterTypeD.Iid
            };
            this.parameterTypeComponentB =
                new ParameterTypeComponent {
                Iid = Guid.NewGuid(), ParameterType = this.booleanParameterTypeD.Iid
            };

            var parameterTypeComponentForB = new OrderedItem {
                K = 1, V = this.parameterTypeComponentB.Iid
            };
            var parameterTypeComponentsForB = new List <OrderedItem> {
                parameterTypeComponentForB
            };

            this.arrayParameterTypeB =
                new ArrayParameterType {
                Iid = Guid.NewGuid(), Component = parameterTypeComponentsForB
            };

            this.parameterTypeComponentA =
                new ParameterTypeComponent {
                Iid = Guid.NewGuid(), ParameterType = this.arrayParameterTypeB.Iid
            };

            var parameterTypeComponentForA = new OrderedItem {
                K = 1, V = this.parameterTypeComponentA.Iid
            };
            var parameterTypeComponentsForA = new List <OrderedItem> {
                parameterTypeComponentForA
            };

            this.arrayParameterTypeA =
                new ArrayParameterType {
                Iid = Guid.NewGuid(), Component = parameterTypeComponentsForA
            };

            this.parameterTypeComponentC =
                new ParameterTypeComponent {
                Iid = Guid.NewGuid(), ParameterType = this.arrayParameterTypeA.Iid
            };

            // There is a chain librayA -> LibraryB
            this.referenceDataLibraryB =
                new SiteReferenceDataLibrary
            {
                Iid           = Guid.NewGuid(),
                ParameterType =
                {
                    this.booleanParameterTypeD.Iid
                }
            };
            this.referenceDataLibraryA = new ModelReferenceDataLibrary
            {
                Iid           = Guid.NewGuid(),
                ParameterType =
                {
                    this.arrayParameterTypeA
                    .Iid,
                    this.arrayParameterTypeB
                    .Iid
                },
                RequiredRdl = this.referenceDataLibraryB.Iid
            };

            this.siteReferenceDataLibraryService = new Mock <ISiteReferenceDataLibraryService>();
            this.siteReferenceDataLibraryService
            .Setup(
                x => x.Get(
                    this.npgsqlTransaction,
                    It.IsAny <string>(),
                    null,
                    It.IsAny <ISecurityContext>()))
            .Returns(new List <ReferenceDataLibrary> {
                this.referenceDataLibraryB
            });

            this.arrayParameterTypeService = new Mock <IArrayParameterTypeService>();
            this.arrayParameterTypeService
            .Setup(
                x => x.Get(
                    this.npgsqlTransaction,
                    It.IsAny <string>(),
                    new List <Guid>
            {
                this.booleanParameterTypeD.Iid,
                this.arrayParameterTypeA.Iid,
                this.arrayParameterTypeB.Iid
            },
                    It.IsAny <ISecurityContext>())).Returns(
                new List <CompoundParameterType> {
                this.arrayParameterTypeA, this.arrayParameterTypeB
            });

            this.compoundParameterTypeService = new Mock <ICompoundParameterTypeService>();
            this.compoundParameterTypeService.Setup(
                x => x.Get(
                    this.npgsqlTransaction,
                    It.IsAny <string>(),
                    new List <Guid>
            {
                this.booleanParameterTypeD.Iid,
                this.arrayParameterTypeA.Iid,
                this.arrayParameterTypeB.Iid
            },
                    It.IsAny <ISecurityContext>())).Returns(new List <ArrayParameterType>());

            this.parameterTypeComponentService = new Mock <IParameterTypeComponentService>();
            this.parameterTypeComponentService
            .Setup(
                x => x.Get(
                    this.npgsqlTransaction,
                    It.IsAny <string>(),
                    new List <Guid> {
                this.parameterTypeComponentA.Iid
            },
                    It.IsAny <ISecurityContext>())).Returns(
                new List <ParameterTypeComponent> {
                this.parameterTypeComponentA
            });
            this.parameterTypeComponentService
            .Setup(
                x => x.Get(
                    this.npgsqlTransaction,
                    It.IsAny <string>(),
                    new List <Guid> {
                this.parameterTypeComponentB.Iid
            },
                    It.IsAny <ISecurityContext>())).Returns(
                new List <ParameterTypeComponent> {
                this.parameterTypeComponentB
            });
            this.parameterTypeComponentService
            .Setup(
                x => x.Get(
                    this.npgsqlTransaction,
                    It.IsAny <string>(),
                    new List <Guid> {
                this.parameterTypeComponentC.Iid
            },
                    It.IsAny <ISecurityContext>())).Returns(
                new List <ParameterTypeComponent> {
                this.parameterTypeComponentC
            });
            this.parameterTypeComponentService
            .Setup(
                x => x.Get(
                    this.npgsqlTransaction,
                    It.IsAny <string>(),
                    new List <Guid> {
                this.parameterTypeComponentD.Iid
            },
                    It.IsAny <ISecurityContext>())).Returns(
                new List <ParameterTypeComponent> {
                this.parameterTypeComponentD
            });

            this.sideEffect = new ArrayParameterTypeSideEffect()
            {
                CompoundParameterTypeService =
                    this.compoundParameterTypeService.Object,
                ArrayParameterTypeService =
                    this.arrayParameterTypeService.Object,
                ParameterTypeComponentService =
                    this.parameterTypeComponentService.Object,
                SiteReferenceDataLibraryService =
                    this.siteReferenceDataLibraryService.Object
            };
        }
        /// <summary>
        /// Persist the DTO composition to the ORM layer.
        /// </summary>
        /// <param name="transaction">
        /// The transaction object.
        /// </param>
        /// <param name="partition">
        /// The database partition (schema) where the requested resource will be stored.
        /// </param>
        /// <param name="arrayParameterType">
        /// The arrayParameterType instance to persist.
        /// </param>
        /// <returns>
        /// True if the persistence was successful.
        /// </returns>
        private bool CreateContainment(NpgsqlTransaction transaction, string partition, ArrayParameterType arrayParameterType)
        {
            var results = new List <bool>();

            foreach (var alias in this.ResolveFromRequestCache(arrayParameterType.Alias))
            {
                results.Add(this.AliasService.CreateConcept(transaction, partition, alias, arrayParameterType));
            }

            foreach (var definition in this.ResolveFromRequestCache(arrayParameterType.Definition))
            {
                results.Add(this.DefinitionService.CreateConcept(transaction, partition, definition, arrayParameterType));
            }

            foreach (var hyperLink in this.ResolveFromRequestCache(arrayParameterType.HyperLink))
            {
                results.Add(this.HyperLinkService.CreateConcept(transaction, partition, hyperLink, arrayParameterType));
            }

            foreach (var component in this.ResolveFromRequestCache(arrayParameterType.Component))
            {
                results.Add(this.ParameterTypeComponentService.CreateConcept(transaction, partition, (ParameterTypeComponent)component.V, arrayParameterType, component.K));
            }

            return(results.All(x => x));
        }