Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }