private static UPMFilter GetFilter(string filtername, UPConfigFilterParameters parameters)
        {
            UPMFilter filter     = null;
            var       parameter  = parameters.FirstParameter();
            var       fieldInfo  = parameter.CrmFieldInfo;
            var       type       = fieldInfo.FieldType;
            var       identifier = FieldIdentifier.IdentifierWithInfoAreaIdRecordIdFieldId(fieldInfo.InfoAreaId, filtername, fieldInfo.FieldId.ToString());

            if (type == CatalogFilterK || type == CatalogFilterX)
            {
                filter = GetCatalogFilter(parameter, identifier, fieldInfo);
            }
            else if (type == DateFilter)
            {
                filter = GetDateFilter(parameters, identifier, fieldInfo);
            }
            else if (parameters.AllParameterNames != null &&
                     (parameters.AllParameterNames.Contains("$parGPSXmin") || parameters.AllParameterNames.Contains("$parGPSXmax") ||
                      parameters.AllParameterNames.Contains("$parGPSYmin") || parameters.AllParameterNames.Contains("$parGPSYmax")))
            {
                filter = GetUPMDistanceFilter(identifier, fieldInfo);
            }
            else if (!string.IsNullOrEmpty(fieldInfo.RepType))
            {
                filter = GetRepFilter(identifier, fieldInfo);
            }
            else if (type == EditFieldF || type == EditFieldS || type == EditFieldL || type == EditFieldC || type == EditFieldB)
            {
                filter = GetEditFieldFilter(parameters, identifier, fieldInfo, type);
            }

            if (filter != null)
            {
                var fieldValueArray = parameter.Condition.FieldValues;
                if (fieldValueArray.Count > 1 && (string)fieldValueArray[0] == "$parValue")
                {
                    var defaultValueArray = new List <object>(fieldValueArray);
                    defaultValueArray.RemoveAt(0);
                    filter.SetDefaultRawValues(defaultValueArray);
                }
            }

            return(filter);
        }
        /// <summary>
        /// Filters for name.
        /// </summary>
        /// <param name="filtername">The filtername.</param>
        /// <param name="filterParameters">The filter parameters.</param>
        /// <returns>Filter</returns>
        public static UPMFilter FilterForName(string filtername, Dictionary <string, object> filterParameters = null)
        {
            var       configStore  = ConfigurationUnitStore.DefaultStore;
            var       configFilter = configStore.FilterByName(filtername);
            UPMFilter filter       = null;

            if (configFilter != null)
            {
                var selectCondition = configFilter.ConditionWith("Parameter:Select", true);
                if (selectCondition != null)
                {
                    return(FilterForConfigFilter(configFilter, selectCondition.ValueAtIndex(0), filterParameters, false));
                }

                selectCondition = configFilter.ConditionWith("Parameter:SingleSelect");
                if (selectCondition != null)
                {
                    return(FilterForConfigFilter(configFilter, selectCondition.ValueAtIndex(0), filterParameters, true));
                }

                var replacements = UPConditionValueReplacement.ReplacementsFromValueParameterDictionary(filterParameters, true);
                configFilter = configFilter.FilterByApplyingReplacements(replacements);
                var parameters = configFilter?.Parameters();
                if (parameters?.NumberOfParameters > 0)
                {
                    filter = GetFilter(filtername, parameters);
                }
                else
                {
                    var identifier = FieldIdentifier.IdentifierWithInfoAreaIdRecordIdFieldId(configFilter.InfoAreaId, filtername, string.Empty);
                    filter = new UPMNoParamFilter(identifier);
                }

                if (filter != null)
                {
                    filter.Name        = filtername;
                    filter.DisplayName = !string.IsNullOrEmpty(configFilter?.DisplayName) ? configFilter.DisplayName : filtername;
                }
            }

            return(filter);
        }
Exemple #3
0
        /// <summary>
        /// Adds the dropdown groups for result row.
        /// </summary>
        /// <param name="resultRow">The result row.</param>
        /// <param name="rowContext">The row context.</param>
        /// <param name="expand">The expand.</param>
        public override void AddDropdownGroupsForResultRow(UPMResultRow resultRow, UPCoreMappingResultRowContext rowContext, UPConfigExpand expand)
        {
            UPCoreMappingResultContext resultContext = rowContext.Context;

            if (resultContext.DropdownFields.Any())
            {
                int detailFieldCount = resultContext.DropdownFields.Count;
                if (detailFieldCount > 0)
                {
                    UPCRMResultRow row             = rowContext.Row;
                    string         recordId        = row.RecordIdentificationAtIndex(0);
                    var            detailGroupCol1 =
                        new UPMTimelineDetailsGroup(FieldIdentifier.IdentifierWithInfoAreaIdRecordIdFieldId(this.InfoAreaId, recordId, "DetailField_Left"))
                    {
                        Invalid       = true,
                        ResultContext = resultContext
                    };
                    resultRow.AddDetailGroup(detailGroupCol1);
                }
            }
        }
Exemple #4
0
 /// <summary>
 /// Instantiates the page.
 /// </summary>
 /// <returns></returns>
 public override Page InstantiatePage()
 {
     return(this.Page != null
         ? new UPMCharacteristicsPage(this.Page.Identifier)
         : new UPMCharacteristicsPage(FieldIdentifier.IdentifierWithInfoAreaIdRecordIdFieldId(this.InfoAreaId, this.recordId, "Page0")));
 }