}//GetSearchProperties() public static void RunC3FilteredSearch(ICswResources CswResources, CswNbtC3SearchReturn Return, CswC3SearchParams CswC3SearchParams) { JObject Ret = new JObject(); CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; CswNbtC3ClientManager CswNbtC3ClientManager = new CswNbtC3ClientManager(_CswNbtResources, CswC3SearchParams); SearchClient C3SearchClient = CswNbtC3ClientManager.initializeC3Client(); if (null != C3SearchClient) { CswRetObjSearchResults SearchResults; try { SearchResults = C3SearchClient.searchFiltered(CswC3SearchParams); } catch (Exception exception) { throw (new CswDniException(CswEnumErrorType.Error, "There was an error searching ChemCatCentral", exception.Message, exception)); } ExternalImageRet ImageRet = new ExternalImageRet(); /* * We have to create our own Acd Search params and set Product Id to Int32.MinVal because C3 is serializing ProductId to "0" instead of MinVal. */ ACDSearchParams acdSearchParams = new ACDSearchParams(); acdSearchParams.ProductId = Int32.MinValue; acdSearchParams.Cdbregno = CswC3SearchParams.ACDSearchParams.Cdbregno; getExternalImage(CswResources, ImageRet, acdSearchParams); string imageStrBase64 = "data:image/png;base64," + Convert.ToBase64String(ImageRet.Data); CswNbtWebServiceTable wsTable = new CswNbtWebServiceTable(_CswNbtResources, null, Int32.MinValue); Ret["table"] = wsTable.getTable(SearchResults, CswC3SearchParams.Field, CswNbtC3ClientManager.DataService, true); Ret["filters"] = ""; Ret["searchterm"] = CswC3SearchParams.Query; Ret["field"] = CswC3SearchParams.Field; Ret["filtersapplied"] = ""; Ret["sessiondataid"] = ""; Ret["searchtarget"] = "chemcatcentral"; Ret["c3dataservice"] = CswNbtC3ClientManager.DataService; Ret["filtered"] = true; Ret["staticbase64imagestr"] = imageStrBase64; if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.C3ACD)) { Ret["prefsuppliers"] = CswC3SearchParams.ACDSearchParams.CompanyIds; } Return.Data.SearchResults = Ret.ToString(); } }//RunC3FilteredSearch()
private JObject _finishUniversalSearch(CswNbtSearch Search, Int32 Page = 0, Int32 PageLimit = 0, bool IncludeInRecent = true) { ICswNbtTree Tree = Search.Results(); CswNbtWebServiceTable wsTable = new CswNbtWebServiceTable(_CswNbtResources, _CswNbtStatisticsEvents, Int32.MinValue); Search.SaveToCache(IncludeInRecent); JObject ret = Search.ToJObject(); ret["table"] = wsTable.makeTableFromTree(Tree, Search.getFilteredPropIds(), Page, PageLimit); ret["filters"] = Search.FilterOptions(Tree); ret["searchtarget"] = "universal"; ret["searchtype"] = Search.SearchType.ToString(); ret["alternateoption"] = _CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.C3); return(ret); }
public static void RunChemCatCentralSearch(ICswResources CswResources, CswNbtC3SearchReturn Return, CswC3SearchParams CswC3SearchParams) { JObject Ret = new JObject(); CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; CswNbtC3ClientManager CswNbtC3ClientManager = new CswNbtC3ClientManager(_CswNbtResources, CswC3SearchParams); SearchClient C3SearchClient = CswNbtC3ClientManager.initializeC3Client(); if (null != C3SearchClient) { CswRetObjSearchResults SearchResults; try { SearchResults = C3SearchClient.search(CswC3SearchParams); } catch (TimeoutException TimeoutException) { const string WarningMessage = "The search has timed out. Please use more specific search terms."; throw (new CswDniException(CswEnumErrorType.Warning, WarningMessage, WarningMessage, TimeoutException)); } CswNbtWebServiceTable wsTable = new CswNbtWebServiceTable(_CswNbtResources, null, Int32.MinValue); Ret["table"] = wsTable.getTable(SearchResults, CswC3SearchParams.Field, CswNbtC3ClientManager.DataService); Ret["filters"] = ""; Ret["searchterm"] = CswC3SearchParams.Query; Ret["field"] = CswC3SearchParams.Field; Ret["filtersapplied"] = ""; Ret["sessiondataid"] = ""; Ret["searchtarget"] = "chemcatcentral"; Ret["c3dataservice"] = CswNbtC3ClientManager.DataService; Ret["filtered"] = "C3" == CswNbtC3ClientManager.DataService; if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.C3ACD)) { Ret["prefsuppliers"] = CswC3SearchParams.ACDSearchParams.CompanyIds; } Return.Data.SearchResults = Ret.ToString(); } }