/// <summary>
        /// Execute the <see cref="CreateIndependentParameterTypeCommand"/>
        /// </summary>
        private void ExecuteCreateIndependentParameterType()
        {
            var assignment = new IndependentParameterTypeAssignment();

            var row = new IndependentParameterTypeAssignmentRowViewModel(assignment, string.Empty, this.Session, this);

            this.IndependentParameterTypes.Add(row);
        }
        /// <summary>
        /// Populate the parameter type assignments
        /// </summary>
        protected void PopulateParameterTypeAssignments()
        {
            this.IndependentParameterTypes.Clear();

            foreach (IndependentParameterTypeAssignment thing in this.Thing.IndependentParameterType)
            {
                var rowIndex = this.Thing.IndependentParameterType.IndexOf(thing);

                var interpolation = string.Empty;

                try
                {
                    interpolation = this.Thing.InterpolationPeriod[rowIndex];
                }
                catch (Exception ex)
                {
                    logger.Warn($"Interpolation period at index {rowIndex} value array is incorrect.");
                }

                var row = new IndependentParameterTypeAssignmentRowViewModel(thing, interpolation ?? string.Empty, this.Session, this);

                row.Index = rowIndex;
                this.IndependentParameterTypes.Add(row);
            }

            this.DependentParameterTypes.Clear();

            foreach (DependentParameterTypeAssignment thing in this.Thing.DependentParameterType)
            {
                var rowIndex = this.Thing.DependentParameterType.IndexOf(thing);

                var row = new DependentParameterTypeAssignmentRowViewModel(thing, this.Session, this);

                row.Index = rowIndex;
                this.DependentParameterTypes.Add(row);
            }
        }