/// <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); }
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); }
/// <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); } } }
/// <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> >()); }
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; }
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); }
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); }
private void Initialize() { this.ArrayParameterType = Database.ArrayParameterType; }
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)); } }
public static void AddValueList <T>(this ISqlStatementArrayBuilder sql, StringBuilder builder, IEnumerable <T> values, ArrayParameterType type) { sql.AddValueList(builder, values, ConversionHelper.GetDBTypeForClrType(typeof(T)), type); }
/// <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(); }
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); }
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); }
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)); }