Пример #1
0
 /// <summary>
 /// Populates the <see cref="MappingRows"/>
 /// </summary>
 /// <param name="datatypeDefinitions"></param>
 private void PopulateRows(IEnumerable <DatatypeDefinition> datatypeDefinitions)
 {
     foreach (var datatypeDefinition in datatypeDefinitions)
     {
         var row = new DatatypeDefinitionMappingRowViewModel(datatypeDefinition, this.ParameterTypes);
         this.MappingRows.Add(row);
     }
 }
Пример #2
0
 /// <summary>
 /// Sets the Mapped Thing on enum values of the provided row
 /// </summary>
 /// <param name="dataTypeDefinitionMap"></param>
 /// <param name="row"></param>
 private void PopulateEnumRow(DatatypeDefinitionMap dataTypeDefinitionMap, DatatypeDefinitionMappingRowViewModel row)
 {
     foreach (var enumRow in row.EnumValue)
     {
         if (dataTypeDefinitionMap.EnumValueMap.TryGetValue(enumRow.Identifiable, out var enumValueDef))
         {
             enumRow.MappedThing = enumRow.PossibleThings.Single(x => x.Iid == enumValueDef.Iid);
         }
     }
 }
Пример #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ParameterTypeMappingDialogViewModel"/> class.
        /// </summary>
        public ParameterTypeMappingDialogViewModel(string lang, IEnumerable <DatatypeDefinition> datatypeDefinitions, IDictionary <DatatypeDefinition, DatatypeDefinitionMap> map, Iteration iteration, ISession session, IThingDialogNavigationService thingDialogNavigationService)
            : base(iteration, session, thingDialogNavigationService, lang)
        {
            this.NextCommand = ReactiveCommand.Create();
            this.NextCommand.Subscribe(_ => this.ExecuteNextCommand());

            this.CreateParameterTypeCommands = new ReactiveList <ContextMenuItemViewModel>();
            this.ParameterTypes = new ReactiveList <ParameterType>();
            this.PopulateParameterTypes();

            this.PopulateCreateParameterTypeCommands();
            this.PopulateCreateMeasurementScaleCommands();

            this.WhenAnyValue(x => x.SelectedRow).Subscribe(_ => this.PopulateCreateParameterTypeCommands());

            this.MappingRows = new ReactiveList <DatatypeDefinitionMappingRowViewModel>();
            foreach (var datatypeDefinition in datatypeDefinitions)
            {
                var row = new DatatypeDefinitionMappingRowViewModel(datatypeDefinition, this.ParameterTypes);
                this.MappingRows.Add(row);
            }

            // set current parameter type mapping if any
            if (map != null)
            {
                foreach (var pair in map)
                {
                    var row = this.MappingRows.Single(x => x.Identifiable == pair.Key);
                    row.MappedThing = pair.Value.ParameterType;

                    // set current enumvalue mapping
                    if (!(row.Identifiable is DatatypeDefinitionEnumeration))
                    {
                        continue;
                    }

                    foreach (var enumRow in row.EnumValue)
                    {
                        EnumerationValueDefinition enumValueDef;
                        if (pair.Value.EnumValueMap.TryGetValue(enumRow.Identifiable, out enumValueDef))
                        {
                            enumRow.MappedThing =
                                enumRow.PossibleThings.Single(x => x.Iid == enumValueDef.Iid);
                        }
                    }
                }
            }
        }
Пример #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EnumValueMappingRowViewModel"/> class
 /// </summary>
 /// <param name="enumValue">The <see cref="EnumValue"/> to map</param>
 /// <param name="parentRow">The parent <see cref="DatatypeDefinitionMappingRowViewModel"/> row </param>
 public EnumValueMappingRowViewModel(EnumValue enumValue, DatatypeDefinitionMappingRowViewModel parentRow) : base(enumValue)
 {
     this.parentRow      = parentRow;
     this.PossibleThings = new ReactiveList <EnumerationValueDefinition>();
     this.WhenAnyValue(x => x.MappedThing).Subscribe(_ => this.parentRow.UpdateMappingStatus());
 }