private static ObservableList <HTMLReportConfigFieldToSelect> EnchancingLoadedFieldsWithDataAndValidatingPerLevel(HTMLReportConfiguration.FieldsToSelectListsNames fieldsToSelectListName, Type reportType, HTMLReportConfiguration HTMLReportConfiguration) { ObservableList <HTMLReportConfigFieldToSelect> savedFieldSelections = (ObservableList <HTMLReportConfigFieldToSelect>)HTMLReportConfiguration.GetType().GetField(fieldsToSelectListName.ToString()).GetValue(HTMLReportConfiguration); ObservableList <HTMLReportConfigFieldToSelect> referenceFieldSelections = GetReportLevelMembers(reportType); // swap should be done between two below lists. Previose saved selection should be performed on the referenceFieldSelections foreach (var reference_item in referenceFieldSelections) { foreach (var saved_item in savedFieldSelections) { if (reference_item.FieldKey == saved_item.FieldKey) { if (!reference_item.IsNotMandatory) // if field is mandatory { // select it anyway saved_item.IsSelected = true; } saved_item.FieldName = reference_item.FieldName; saved_item.FieldType = reference_item.FieldType; saved_item.IsSelected = reference_item.IsSelected; saved_item.IsNotMandatory = reference_item.IsNotMandatory; } } } return(savedFieldSelections); }
public static ObservableList <HTMLReportConfigFieldToSelect> EnchancingLoadedFieldsWithDataAndValidatingPerLevel(HTMLReportConfiguration.FieldsToSelectListsNames fieldsToSelectListName, Type reportType, HTMLReportConfiguration HTMLReportConfiguration) { ObservableList <HTMLReportConfigFieldToSelect> savedFieldSelections = (ObservableList <HTMLReportConfigFieldToSelect>)HTMLReportConfiguration.GetType().GetField(fieldsToSelectListName.ToString()).GetValue(HTMLReportConfiguration); ObservableList <HTMLReportConfigFieldToSelect> referenceFieldSelections = GetReportLevelMembers(reportType); // swap should be done between two below lists. Previose saved selection should be performed on the referenceFieldSelections foreach (var saved_item in savedFieldSelections) { var savedref_item = referenceFieldSelections.Where(x => x.FieldKey == saved_item.FieldKey).FirstOrDefault(); if (savedref_item != null) { if (!savedref_item.IsNotMandatory) // if field is mandatory { // select it anyway saved_item.IsSelected = true; } saved_item.FieldName = savedref_item.FieldName; saved_item.FieldType = savedref_item.FieldType; saved_item.IsNotMandatory = savedref_item.IsNotMandatory; } } //adding missing fields foreach (var reference_item in referenceFieldSelections) { var savedref_item = savedFieldSelections.Where(x => x.FieldKey == reference_item.FieldKey).FirstOrDefault(); if (savedref_item == null) { savedFieldSelections.Add(reference_item); } } return(savedFieldSelections); }