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);
        }
 private static ObservableList <HTMLReportConfigFieldToSelect> EnchancingLoadedFieldsWithDataAndValidatingPerLevel(HTMLReportConfiguration.FieldsToSelectListsNames fieldsToSelectListName, Type reportType, HTMLReportConfiguration HTMLReportConfiguration)
 {
     return(HTMLReportConfiguration.EnchancingLoadedFieldsWithDataAndValidatingPerLevel(fieldsToSelectListName, reportType, HTMLReportConfiguration));
 }
示例#3
0
        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);
        }