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); }
/// <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); } } }
/// <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"))); }