private static readonly CookieManagerBehavior _cookieBehavior = new CookieManagerBehavior(); //All ChemWatch service clients must share this public static CswNbtChemWatchRequest Initialize(ICswResources CswResources, CswNbtChemWatchRequest Request) { CswNbtChemWatchRequest Return = new CswNbtChemWatchRequest(); CswNbtResources NbtResources = (CswNbtResources)CswResources; CswNbtObjClassChemical ChemicalNode = NbtResources.Nodes[Request.NbtMaterialId]; Return.Supplier = ChemicalNode.Supplier.CachedNodeName; Return.PartNo = ChemicalNode.PartNumber.Text; Return.MaterialName = ChemicalNode.TradeName.Text; Return.NbtMaterialId = ChemicalNode.NodeId; string errorMsg; if (_authenticate(NbtResources, out errorMsg)) { CommonServiceClient cwCommonClient = new CommonServiceClient(); cwCommonClient.Endpoint.Behaviors.Add(_cookieBehavior); // Populate Language list List <ChemWatchMultiSlctListItem> Languages = new List <ChemWatchMultiSlctListItem>(); Languages cwLanguages = cwCommonClient.GetLanguages(); foreach (Language cwLanguage in cwLanguages) { if (cwLanguage.UILanguage) { Languages.Add(new ChemWatchMultiSlctListItem() { Name = cwLanguage.Name, Id = CswConvert.ToString(cwLanguage.Id) }); } } IEnumerable <ChemWatchMultiSlctListItem> SortedLanguages = Languages.OrderBy(si => si.Name); Return.Languages.options = SortedLanguages.ToList(); // Populate Country list List <ChemWatchMultiSlctListItem> Countries = new List <ChemWatchMultiSlctListItem>(); Countries cwCountries = cwCommonClient.GetCountries(); foreach (Country cwCountry in cwCountries) { Countries.Add(new ChemWatchMultiSlctListItem() { Name = cwCountry.Name, Id = CswConvert.ToString(cwCountry.Id) }); } IEnumerable <ChemWatchMultiSlctListItem> SortedCountries = Countries.OrderBy(si => si.Name); Return.Countries.options = SortedCountries.ToList(); // Attempt to populate the Suppliers list _getMatchingSuppliers(Return.Supplier, Return); } else { throw new CswDniException(CswEnumErrorType.Error, "There was a problem authenticating with ChemWatch", errorMsg); } return(Return); }
public static CswNbtChemWatchRequest MaterialSearch(ICswResources CswResources, CswNbtChemWatchRequest Request) { CswNbtChemWatchRequest Return = new CswNbtChemWatchRequest(); CswNbtResources NbtResources = (CswNbtResources)CswResources; string errorMsg; if (_authenticate(NbtResources, out errorMsg)) { MaterialServiceClient cwMaterialClient = new MaterialServiceClient(); cwMaterialClient.Endpoint.Behaviors.Add(_cookieBehavior); List <ChemWatchListItem> Materials = new List <ChemWatchListItem>(); ListResultOfMaterial cwMaterials = cwMaterialClient.GetMaterialsByVendorGroupId(Request.Supplier, Request.MaterialName, Request.PartNo, false, 1, 100, "", 0); foreach (Material cwMaterial in cwMaterials.Rows) { Materials.Add(new ChemWatchListItem() { Id = CswConvert.ToString(cwMaterial.MaterialID), Name = cwMaterial.Name }); } IEnumerable <ChemWatchListItem> SortedMaterials = Materials.OrderBy(si => si.Name); Return.Materials = SortedMaterials.ToList(); } else { throw new CswDniException(CswEnumErrorType.Error, "There was a problem authenticating with ChemWatch", errorMsg); } return(Return); }
public static CswNbtChemWatchRequest CreateSDSDocuments(ICswResources CswResources, CswNbtChemWatchRequest Request) { CswNbtChemWatchRequest Return = new CswNbtChemWatchRequest(); CswNbtResources CswNbtResources = (CswNbtResources)CswResources; CswNbtMetaDataObjectClass SDSDocumentOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.SDSDocumentClass); foreach (ChemWatchSDSDoc SDSDoc in Request.SDSDocuments) { string Language = _getLanguage(SDSDoc.Language); string FileName = SDSDoc.FileName; string Country = SDSDoc.Country; CswNbtResources.Nodes.makeNodeFromNodeTypeId(SDSDocumentOC.FirstNodeType.NodeTypeId, delegate(CswNbtNode NewNode) { CswNbtObjClassSDSDocument NewSDSDocNode = NewNode; NewSDSDocNode.FileType.Value = CswNbtObjClassSDSDocument.CswEnumDocumentFileTypes.ChemWatch; NewSDSDocNode.ChemWatch.Text = FileName; NewSDSDocNode.Language.Value = Language; NewSDSDocNode.Country.Text = Country; NewSDSDocNode.Owner.RelatedNodeId = Request.NbtMaterialId; }); } return(Return); }
private static void _getMatchingSuppliers(string SearchString, CswNbtChemWatchRequest Return) { MaterialServiceClient cwMaterialClient = new MaterialServiceClient(); cwMaterialClient.Endpoint.Behaviors.Add(_cookieBehavior); SearchVendorRequest cwSearchVend = new SearchVendorRequest(); cwSearchVend.Name = SearchString; cwSearchVend.PageNumber = 1; cwSearchVend.PageSize = 100; List <ChemWatchListItem> Suppliers = new List <ChemWatchListItem>(); ListResultOfVendor cwVendors = cwMaterialClient.SearchVendors(cwSearchVend); foreach (Vendor cwVendor in cwVendors.Rows) { ChemWatchListItem cwSupplier = new ChemWatchListItem(); cwSupplier.Name = cwVendor.Name; cwSupplier.Id = cwVendor.VendorGroup.Gid; if (false == Suppliers.Any(supplier => supplier.Id == cwVendor.VendorGroup.Gid && supplier.Name == cwVendor.Name)) { Suppliers.Add(cwSupplier); } } IEnumerable <ChemWatchListItem> SortedSuppliers = Suppliers.OrderBy(si => si.Name); Return.Suppliers = SortedSuppliers.ToList(); }
public static CswNbtChemWatchRequest GetSDSDocument(ICswResources CswResources, string filename) { CswNbtChemWatchRequest Return = new CswNbtChemWatchRequest(); CswNbtResources NbtResources = (CswNbtResources)CswResources; string errorMsg; if (_authenticate(NbtResources, out errorMsg)) { DocumentServiceClient cwDocClient = new DocumentServiceClient(); cwDocClient.Endpoint.Behaviors.Add(_cookieBehavior); Stream DocStream = null; try { DocStream = cwDocClient.GetDocumentContent(filename); Return.SDSDocument = DocStream; } catch (Exception ex) { Return.Message = ex.Message; } } else { throw new CswDniException(CswEnumErrorType.Error, "There was a problem authenticating with ChemWatch", errorMsg); } return(Return); }
public CswNbtChemWatchReturn CreateSDSDocuments(CswNbtChemWatchRequest Request) { CswNbtChemWatchReturn Ret = new CswNbtChemWatchReturn(); var SvcDriver = new CswWebSvcDriver <CswNbtChemWatchReturn, CswNbtChemWatchRequest>( CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null), ReturnObj: Ret, WebSvcMethodPtr: CswNbtWebServiceChemWatch.CreateSDSDocuments, ParamObj: Request ); SvcDriver.run(); return(Ret); }
public CswNbtChemWatchReturn GetMatchingSuppliers(CswNbtChemWatchRequest Request) { CswNbtChemWatchReturn Ret = new CswNbtChemWatchReturn(); var SvcDriver = new CswWebSvcDriver <CswNbtChemWatchReturn, CswNbtChemWatchRequest>( CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null), ReturnObj: Ret, WebSvcMethodPtr: CswNbtWebServiceChemWatch.GetMatchingSuppliers, ParamObj: Request ); SvcDriver.run(); return(Ret); }
public static CswNbtChemWatchRequest SDSDocumentSearch(ICswResources CswResources, CswNbtChemWatchRequest Request) { CswNbtChemWatchRequest Return = new CswNbtChemWatchRequest(); CswNbtResources NbtResources = (CswNbtResources)CswResources; string errorMsg; if (_authenticate(NbtResources, out errorMsg)) { DocumentServiceClient cwDocClient = new DocumentServiceClient(); cwDocClient.Endpoint.Behaviors.Add(_cookieBehavior); //every service client needs to share this DocumentRequest DocumentRequest = new DocumentRequest(); List <int> CountryIdsList = Request.Countries.selected.Select(ListItem => CswConvert.ToInt32(ListItem.Id)).ToList(); int[] CountryIdsArray = CountryIdsList.ToArray(); DocumentRequest.CountryCode = CountryIdsArray; List <int> LanguageIdsList = Request.Languages.selected.Select(ListItem => CswConvert.ToInt32(ListItem.Id)).ToList(); int[] LanguageIdsArray = LanguageIdsList.ToArray(); DocumentRequest.LanguageCode = LanguageIdsArray; DocumentRequest.MaterialId = CswConvert.ToString(Request.ChemWatchMaterialId); DocumentRequest.IsShowOwn = false; DocumentRequest.IsLatest = true; DocumentRequest.ShowOnlyGold = false; DocumentRequest.PageNumber = 1; DocumentRequest.PageSize = 50; DocumentRequest.HideGold = true; DocumentRequest.Gid = Request.Supplier; ListResultOfDocument DocumentList = cwDocClient.GetDocumentsByMaterialId(DocumentRequest); foreach (Document Doc in DocumentList.Rows) { ChemWatchSDSDoc SDSDoc = new ChemWatchSDSDoc(); SDSDoc.Language = Doc.LanguageCode; SDSDoc.Country = Doc.CountryCode; SDSDoc.FileName = Doc.FileName.Length > 0 ? Doc.FileName : String.Empty; SDSDoc.ExternalUrl = Doc.ExternalUrl; Return.SDSDocuments.Add(SDSDoc); } } else { throw new CswDniException(CswEnumErrorType.Error, "There was a problem authenticating with ChemWatch", errorMsg); } return(Return); }
public static CswNbtChemWatchRequest GetMatchingSuppliers(ICswResources CswResources, CswNbtChemWatchRequest Request) { CswNbtChemWatchRequest Return = new CswNbtChemWatchRequest(); CswNbtResources NbtResources = (CswNbtResources)CswResources; string errorMsg; if (_authenticate(NbtResources, out errorMsg)) { _getMatchingSuppliers(Request.Supplier, Return); } else { throw new CswDniException(CswEnumErrorType.Error, "There was a problem authenticating with ChemWatch", errorMsg); } return(Return); }
public static void CreateSDSDocuments(ICswResources CswResources, CswNbtChemWatchReturn Return, CswNbtChemWatchRequest Request) { Return.Data = CswNbtActChemWatch.CreateSDSDocuments(CswResources, Request); }
public static void GetMatchingSuppliers(ICswResources CswResources, CswNbtChemWatchReturn Return, CswNbtChemWatchRequest Request) { Return.Data = CswNbtActChemWatch.GetMatchingSuppliers(CswResources, Request); }
public static void SDSDocumentSearch(ICswResources CswResources, CswNbtChemWatchReturn Return, CswNbtChemWatchRequest Request) { Return.Data = CswNbtActChemWatch.SDSDocumentSearch(CswResources, Request); }
public static void MaterialSearch(ICswResources CswResources, CswNbtChemWatchReturn Return, CswNbtChemWatchRequest Request) { Return.Data = CswNbtActChemWatch.MaterialSearch(CswResources, Request); }
public static void Initialize(ICswResources CswResources, CswNbtChemWatchReturn Return, CswNbtChemWatchRequest Request) { Return.Data = CswNbtActChemWatch.Initialize(CswResources, Request); }
public CswNbtChemWatchReturn() { Data = new CswNbtChemWatchRequest(); }