private OutputManagerConfig GetOutputManagerPrinterConfig(Warehouse_OutputManager_Config omToCall) { OutputManagerService.OutputHandlerServiceClient client = new OutputManagerService.OutputHandlerServiceClient(_endpointName); foreach (string urlToCall in omToCall.orderdURLs) { bool iOK = true; try { EndpointAddress currentEndpoint = client.Endpoint.Address; EndpointAddress address = new EndpointAddress(new Uri(urlToCall), currentEndpoint.Identity, currentEndpoint.Headers); client.Endpoint.Address = address; OutputManagerService.FindPrinterInfoResult omResult = client.FindPrinterInfo(null); client.Close(); OutputManagerConfig newOMConfig = new OutputManagerConfig(); newOMConfig.WarehouseOMID = omToCall.WarehouseId; foreach (OutputManagerService.TerminalGroup terGrp in omResult.TerminalGroups) { foreach (string terminal in terGrp.Terminals) { if (!newOMConfig.TerminalsWithGroup.ContainsKey(terminal)) { newOMConfig.TerminalsWithGroup.Add(terminal, terGrp.TerminalGroupID); } } } foreach (OutputManagerService.ReportGroup rptGrp in omResult.ReportGroups) { foreach (string docTypeAndSub in rptGrp.DocumentTypesWithSubDocType) { if (!newOMConfig.DocumentTypesWithReportGroup.ContainsKey(docTypeAndSub)) { newOMConfig.DocumentTypesWithReportGroup.Add(docTypeAndSub, rptGrp.ReportGroupID); } } } foreach (OutputManagerService.Printer prt in omResult.Printers) { if (!newOMConfig.Printers.ContainsKey(prt.PrinterID)) { newOMConfig.Printers.Add(prt.PrinterID, new OutputManagerConfig.PrinterInfo() { PrinterID = prt.PrinterID, PrinterDeviceName = prt.PrinterDeviceName, PrinterType = prt.PrinterType }); } } foreach (OutputManagerService.PrinterAssociation prtAssoc in omResult.PrinterAssociations) { if (newOMConfig.Printers.ContainsKey(prtAssoc.PrinterID)) { OutputManagerConfig.PrinterInfo printerInfo = newOMConfig.Printers[prtAssoc.PrinterID]; if (!newOMConfig.TerGrp_RptGrp_PrtInfo.ContainsKey(prtAssoc.TerminalGroupID)) { newOMConfig.TerGrp_RptGrp_PrtInfo.Add(prtAssoc.TerminalGroupID, new Dictionary <string, OutputManagerConfig.PrinterInfo>()); } if (!newOMConfig.TerGrp_RptGrp_PrtInfo[prtAssoc.TerminalGroupID].ContainsKey(prtAssoc.ReportGroupID)) { newOMConfig.TerGrp_RptGrp_PrtInfo[prtAssoc.TerminalGroupID].Add(prtAssoc.ReportGroupID, printerInfo); } } } return(newOMConfig); } catch { iOK = false; } if (iOK) { break; } } return(null); }
private Dictionary <string, Warehouse_OutputManager_Config> GetWarehouseOMConfig() { Dictionary <string, Warehouse_OutputManager_Config> configuration = new Dictionary <string, Warehouse_OutputManager_Config>(); IDataReader reader; _printQueue.Getprintconf(out reader); if (reader != null) { try { while (reader.Read()) { Warehouse_OutputManager_Config conf = new Warehouse_OutputManager_Config(); conf.orderdURLs = new List <string>(); if (reader["WHID"] == DBNull.Value) { conf.WarehouseId = ""; } else { conf.WarehouseId = reader["WHID"] as String; } if (reader["OMID"] == DBNull.Value) { conf.WarehouseId = ""; } else { conf.OutputManagerId = reader["OMID"] as String; } if (reader["MAIN_URL"] != DBNull.Value) { conf.orderdURLs.Add(reader["MAIN_URL"] as String); } if (reader["FALLBACK_URL"] != DBNull.Value) { conf.orderdURLs.Add(reader["FALLBACK_URL"] as String); } if (!string.IsNullOrEmpty(conf.WarehouseId)) { configuration.Add(conf.WarehouseId, conf); } } } finally { if (reader != null) { reader.Close(); } } } return(configuration); }