Beispiel #1
0
        }//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()
Beispiel #2
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()
Beispiel #3
0
        }//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);
            }
        }
Beispiel #4
0
        }//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()
Beispiel #5
0
        }//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()
Beispiel #6
0
        }//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;
                }
            }
        }
Beispiel #7
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();
            }
        }
Beispiel #8
0
        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()