/// <summary>
        /// Write parameter row.
        /// </summary>
        /// <param name="csvFileWriter">
        /// The CSV file writer.
        /// </param>
        /// <param name="this.headers">
        /// The this.headers.
        /// </param>
        /// <param name="engineeringModelShortName">
        /// The engineering model short name.
        /// </param>
        /// <param name="parameterValueSet">
        /// The parameter value set.
        /// </param>
        private void WriteParameterRow(CsvFileWriter csvFileWriter, string engineeringModelShortName, ParameterValueSet parameterValueSet)
        {
            var elementDefinition  = parameterValueSet.GetContainerOfType <ElementDefinition>();
            var containerParameter = parameterValueSet.GetContainerOfType <Parameter>();
            var fields             = new string[this.headers.Count];

            fields[this.headers.IndexOf(nameof(EngineeringModel))]  = engineeringModelShortName;
            fields[this.headers.IndexOf(nameof(ElementDefinition))] = elementDefinition.Name;
            fields[this.headers.IndexOf($"{nameof(ElementDefinition)}.{nameof(ElementDefinition.ShortName)}")] = elementDefinition.ShortName;
            fields[this.headers.IndexOf(nameof(DomainOfExpertise))] = parameterValueSet.Owner.ShortName;
            fields[this.headers.IndexOf($"{nameof(ParameterSubscription)}.{nameof(ParameterSubscription.Owner)}")] = "";
            fields[this.headers.IndexOf(nameof(Category))]                        = string.Join(", ", elementDefinition.Category.Select(cat => cat.ShortName).OrderBy(sn => sn));
            fields[this.headers.IndexOf(nameof(ParameterGroup))]                  = parameterValueSet.GetContainerOfType <ParameterGroup>()?.UserFriendlyShortName;
            fields[this.headers.IndexOf(nameof(ReferenceDataLibrary))]            = string.Join(", ", containerParameter.ParameterType.RequiredRdls.Select(x => x.ShortName));
            fields[this.headers.IndexOf(nameof(Parameter))]                       = containerParameter.ParameterType.UserFriendlyShortName;
            fields[this.headers.IndexOf(nameof(Parameter.UserFriendlyShortName))] = containerParameter.ParameterType.ShortName;
            fields[this.headers.IndexOf(nameof(ActualFiniteState.ShortName))]     = parameterValueSet.ActualState?.ShortName ?? "";
            fields[this.headers.IndexOf(nameof(Option.ShortName))]                = parameterValueSet.ActualOption?.ShortName ?? "";
            fields[this.headers.IndexOf(nameof(ParameterValueSet.ActualValue))]   = parameterValueSet.ActualValue?.FirstOrDefault() ?? "";
            fields[this.headers.IndexOf(nameof(ParameterValueSet.Published))]     = parameterValueSet.Published?.FirstOrDefault() ?? "";
            fields[this.headers.IndexOf(nameof(MeasurementScale))]                = containerParameter.Scale?.ShortName ?? "";
            fields[this.headers.IndexOf(nameof(ParameterSwitchKind))]             = parameterValueSet.ValueSwitch.ToString();
            fields[this.headers.IndexOf(nameof(ParameterSwitchKind.COMPUTED))]    = string.Join("|", parameterValueSet.Computed.Select(x => x ?? ""));
            fields[this.headers.IndexOf(nameof(ParameterSwitchKind.MANUAL))]      = string.Join("|", parameterValueSet.Manual.Select(x => x ?? ""));
            fields[this.headers.IndexOf(nameof(ParameterSwitchKind.REFERENCE))]   = string.Join("|", parameterValueSet.Reference.Select(x => x ?? ""));
            fields[this.headers.IndexOf(nameof(ParameterValueSet.Formula))]       = string.Join("|", parameterValueSet.Formula.Select(s => $"\"{s}\""));
            csvFileWriter.WriteRow(fields);
        }