示例#1
0
        }//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()
示例#2
0
        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);
        }
示例#3
0
        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();
            }
        }