/// <summary>
        /// Creates the container meta information with value prepared search.
        /// </summary>
        /// <param name="searchValue">The search value.</param>
        /// <param name="preparedSearch">The prepared search.</param>
        /// <returns></returns>
        public override UPContainerMetaInfo CreateContainerMetaInfoWithValuePreparedSearch(string searchValue, UPSearchPageModelControllerPreparedSearch preparedSearch)
        {
            List <UPConfigFilter> configFilter = null;

            if (this.usedFilters.ContainsKey(preparedSearch.SearchConfiguration.UnitName))
            {
                UPMFilter vFilter = this.usedFilters[preparedSearch.SearchConfiguration.UnitName];
                configFilter = UPMFilter.ActiveFiltersForFilters(new List <UPMFilter> {
                    vFilter
                });
            }

            UPContainerMetaInfo container = preparedSearch.CrmQueryForValue(searchValue, configFilter, false);

            return(container);
        }
Esempio n. 2
0
        /// <inheritdoc/>
        public override UPContainerMetaInfo CreateContainerMetaInfoWithValuePreparedSearch(string searchValue, UPSearchPageModelControllerPreparedSearch preparedSearch)
        {
            var firstFilter = this.SearchPage.AvailableFilters[0] as UPMDistanceFilter;
            var vFilter     = this.usedFilters.ValueOrDefault(preparedSearch.SearchConfiguration.UnitName) as UPMDistanceFilter;
            List <UPConfigFilter> configFilter = null;

            if (vFilter != null)
            {
                vFilter.Active = true;
                vFilter.Radius = firstFilter.Radius;
                vFilter.LocationResult(this.currentUserLocation);
                configFilter = UPMFilter.ActiveFiltersForFilters(new List <UPMFilter> {
                    vFilter
                });
            }

            UPContainerMetaInfo container = preparedSearch.CrmQueryForValue(searchValue, configFilter, false);

            return(container);
        }
Esempio n. 3
0
        private void Search(object _docPage)
        {
            UPMDocumentPage docPage = (UPMDocumentPage)_docPage;

            this.currentSearchOperation?.Cancel();
            if (this.preparedSearch == null)
            {
                this.preparedSearch = new UPSearchPageModelControllerPreparedSearch(this.InfoAreaId, this.ConfigName, this.filterName);
            }

            if (this.preparedSearch.CombinedControl == null)
            {
                this.SearchOperationDidFinishWithResult(null, null);
                return;     // dont crash but do nothing if no list exists
            }

            IConfigurationUnitStore configStore   = ConfigurationUnitStore.DefaultStore;
            FieldControl            searchControl = configStore.FieldControlByNameFromGroup("Search", this.preparedSearch.SearchConfiguration.FieldGroupName);

            if (searchControl != null)
            {
                string searchLabel = string.Empty;
                int    count       = searchControl.NumberOfFields;
                for (int i = 0; i < count; i++)
                {
                    searchLabel = i == 0 ? searchControl.FieldAtIndex(i).Label : $"{searchLabel} | {searchControl.FieldAtIndex(i).Label}";
                }

                docPage.SearchPlaceholder = searchLabel;
            }

            if (string.IsNullOrEmpty(docPage.SearchText))
            {
                int range = this.ViewReference.ContextValueForKey("SearchOptions")?.IndexOf("NoEmptySearch") ?? 0;
                if (range >= 0)
                {
                    this.SearchOperationDidFinishWithResult(null, null);
                    return;
                }
            }

            List <UPConfigFilter> configFilters     = UPMFilter.ActiveFiltersForFilters(docPage.AvailableFilters);
            UPContainerMetaInfo   containerMetaInfo = this.preparedSearch.CrmQueryForValue(docPage.SearchText, configFilters, this.fullTextSearch);

            if (this.recordIdentification.IsRecordIdentification())
            {
                containerMetaInfo.SetLinkRecordIdentification(this.recordIdentification, 126, 127);
            }

            if (docPage.SearchType == SearchPageSearchType.OfflineSearch)
            {
                this.currentSearchOperation = containerMetaInfo.Find(UPRequestOption.Offline, this);
            }
            else if (docPage.SearchType == SearchPageSearchType.OnlineSearch)
            {
                this.currentSearchOperation = containerMetaInfo.Find(this);
            }
            else
            {
                SimpleIoc.Default.GetInstance <ILogger>().LogError($"Unknown search type: {docPage.SearchType}");
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Retrieves active filters for given search page
 /// </summary>
 /// <param name="searchPage">Search page</param>
 /// <returns><see cref="List{UPConfigFilter}"/></returns>
 protected virtual List <UPConfigFilter> ActiveFiltersForSearchPage(UPMSearchPage searchPage)
 {
     return(UPMFilter.ActiveFiltersForFilters(searchPage.AvailableFilters));
 }