}//getImportBtnItems() /// <summary> /// Returns either C3 or ACD depending on which module is enabled. /// </summary> /// <param name="CswResources"></param> /// <param name="Return"></param> /// <param name="EmptyObject"></param> public static void GetC3DataService(ICswResources CswResources, CswNbtC3SearchReturn Return, object EmptyObject) { CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; CswC3SearchParams CswC3SearchParams = new CswC3SearchParams(); CswNbtC3ClientManager CswNbtC3ClientManager = new CswNbtC3ClientManager(_CswNbtResources, CswC3SearchParams); Return.Data.DataService = CswNbtC3ClientManager.DataService; }//getC3DataService()
}//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()
}//getC3DataService() public static void GetVendorOptions(ICswResources CswResources, CswNbtC3SearchReturn Return, CswC3Params CswC3Params) { CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; CswNbtC3ClientManager CswNbtC3ClientManager = new CswNbtC3ClientManager(_CswNbtResources, CswC3Params); if (CswNbtC3ClientManager.DataService == "C3") { Return.Data.VendorListOptions = _getAvailableDataSources(CswNbtC3ClientManager, CswC3Params); } else if (CswNbtC3ClientManager.DataService == "ACD") { Return.Data.VendorListOptions = _getPreferredSuppliers(_CswNbtResources); } }
}//UpdateACDPrefSuppliers() public static void GetSearchProperties(ICswResources CswResources, CswNbtC3SearchReturn Return, CswC3Params CswC3Params) { CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; List <string> SearchProperties = new List <string>() ; if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.C3ACD)) { SearchProperties = (from ACDSearchParams.SearchFieldType SearchType in Enum.GetValues(typeof(ACDSearchParams.SearchFieldType)) select SearchType.ToString()).ToList(); } if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.C3Products)) { SearchProperties = (from C3SearchParams.SearchFieldType SearchType in Enum.GetValues(typeof(C3SearchParams.SearchFieldType)) select SearchType.ToString()).ToList(); } Return.Data.SearchProperties = SearchProperties; }//GetSearchProperties()
}//GetACDSuppliers() public static void UpdateACDPrefSuppliers(ICswResources CswResources, CswNbtC3SearchReturn Return, string PrefSupplierIds) { CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; if (null == PrefSupplierIds) { PrefSupplierIds = ""; } CswNbtObjClassUser CurrentUser = _CswNbtResources.Nodes.GetNode(_CswNbtResources.CurrentNbtUser.UserId); if (null != CurrentUser) { CurrentUser.C3ACDPreferredSuppliers.Text = PrefSupplierIds; CurrentUser.C3ACDPreferredSuppliers.SyncGestalt(); CurrentUser.postChanges(false); } }//UpdateACDPrefSuppliers()
}//RunC3FilteredSearch() public static void GetC3ProductDetails(ICswResources CswResources, CswNbtC3SearchReturn Return, CswC3SearchParams CswC3SearchParams) { CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; CswNbtC3ClientManager CswNbtC3ClientManager = new CswNbtC3ClientManager(_CswNbtResources, CswC3SearchParams); SearchClient C3SearchClient = CswNbtC3ClientManager.initializeC3Client(); if (null != C3SearchClient) { // For now, the only option here is C3 CswC3SearchParams.DataService = CswNbtC3ClientManager.DataService; CswRetObjSearchResults SearchResults = C3SearchClient.getProductDetails(CswC3SearchParams); if (SearchResults.CswC3SearchResults.Length > 0) { CswC3Product C3ProductDetails = SearchResults.CswC3SearchResults[0]; Return.Data.ProductDetails = C3ProductDetails; } } }
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(); } }
public static void GetACDSuppliers(ICswResources CswResources, CswNbtC3SearchReturn Return, CswC3Params CswC3Params) { CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; CswNbtC3ClientManager CswNbtC3ClientManager = new CswNbtC3ClientManager(_CswNbtResources, CswC3Params); SearchClient C3SearchClient = CswNbtC3ClientManager.initializeC3Client(); if (null != C3SearchClient) { CswRetObjSearchResults Results = C3SearchClient.getACDSuppliers(CswC3Params); // Get the already set perferred suppliers so we can select them List <string> PreferredSuppliers = new List <string>(); CswNbtObjClassUser CurrentUser = _CswNbtResources.Nodes.GetNode(_CswNbtResources.CurrentNbtUser.UserId); if (null != CurrentUser) { PreferredSuppliers = CurrentUser.C3ACDPreferredSuppliers.Text.Split(',').ToList(); } Collection <ACDSupplier> ACDSuppliers = new Collection <ACDSupplier>(); IEnumerable <ACDSupplier> SortedSuppliers = new Collection <ACDSupplier>(); if (null != Results) { foreach (CswC3ACDResponseACDSupplier ACDSupplier in Results.ACDSuppliers) { ACDSupplier NewSupplier = new ACDSupplier(); NewSupplier.Name = ACDSupplier.Name + ": " + ACDSupplier.Country; NewSupplier.Id = CswConvert.ToString(ACDSupplier.Id); NewSupplier.Selected = PreferredSuppliers.Contains(ACDSupplier.Id.ToString()); ACDSuppliers.Add(NewSupplier); } SortedSuppliers = ACDSuppliers.OrderBy(si => si.Name); } Return.Data.ACDSuppliers = SortedSuppliers; } }//GetACDSuppliers()