コード例 #1
0
        public static IMarketFileParser GetXmlParser(ImportFileContext context, ILogger logger)
        {
            var fileType = context.FileType;

            switch (fileType)
            {
            case "248":
                return(new Import248Xml(logger));

            case "650":
                return(new Import650Xml(logger));

            case "810":
                return(new Import810Xml(logger));

            case "814":
                var marketDataAccess = new MarketDataAccess(context.MarketConnectionString);
                return(new Import814Xml(marketDataAccess, logger));

            case "820":
                return(new Import820Xml(logger));

            case "824":
                return(new Import824Xml(logger));

            case "867":
                return(new Import867Xml(logger));

            case "997":
                return(new Import997Xml(logger));
            }

            throw new ArgumentOutOfRangeException(fileType);
        }
コード例 #2
0
        private static IMarketFileExporter GetSsxExporter(ExportFileContext context, ILogger logger)
        {
            var clientDataAccess = new ClientDataAccess(context.ClientConnectionString);
            var marketDataAccess = new MarketDataAccess(context.MarketConnectionString);


            var fileType = context.FileType;

            switch (fileType)
            {
            case "814":
            {
                var dataAccess = new Export814SsxDataAccess(context.MarketConnectionString);
                return(new Export814Ssx(clientDataAccess, marketDataAccess, dataAccess, logger));
            }
            }

            throw new ArgumentOutOfRangeException(fileType);
        }
コード例 #3
0
        public static IMarketFileExporter GetXmlExporter(ExportFileContext context, ILogger logger)
        {
            var clientDataAccess = new ClientDataAccess(context.ClientConnectionString);
            var marketDataAccess = new MarketDataAccess(context.MarketConnectionString);

            var fileType = context.FileType;

            switch (fileType)
            {
            case "650":
            {
                var dataAccess = new Export650XmlDataAccess(context.MarketConnectionString);
                return(new Export650Xml(clientDataAccess, marketDataAccess, dataAccess, logger));
            }

            case "810":
            {
                var dataAccess = new Export810XmlDataAccess(context.MarketConnectionString);
                return(new Export810Xml(clientDataAccess, marketDataAccess, dataAccess, logger));
            }

            case "814":
            {
                var dataAccess = new Export814XmlDataAccess(context.MarketConnectionString);
                return(new Export814Xml(clientDataAccess, marketDataAccess, dataAccess, logger));
            }

            case "820":
            {
                var dataAccess = new Export820XmlDataAccess(context.MarketConnectionString);
                return(new Export820Xml(clientDataAccess, marketDataAccess, dataAccess, logger));
            }

            case "824":
            {
                var dataAccess = new Export824XmlDataAccess(context.MarketConnectionString);
                return(new Export824Xml(clientDataAccess, marketDataAccess, dataAccess, logger));
            }
            }

            throw new ArgumentOutOfRangeException(fileType);
        }
コード例 #4
0
        public IMiramarTask GetTask(IMiramarClientInfo clientInfo, string taskId)
        {
            var adminDataAccess = new AdminDataAccess(clientInfo.AdminConnection);

            var clientId  = clientInfo.ClientId;
            var logName   = string.Format("Client-{0}", clientId);
            var logTaskId = string.Format("client.{0}.{1}", clientId, taskId);
            var logger    = InfrastructureFactory.CreateLogger(clientId, logName, logTaskId);

            if (taskId.StartsWith("market.file", StringComparison.OrdinalIgnoreCase))
            {
                var clientDataAccess = new ClientDataAccess(clientInfo.ClientConnection);

                if (taskId.Equals("market.file.decrypt", StringComparison.OrdinalIgnoreCase))
                {
                    return(new DecryptFileTask(adminDataAccess, clientDataAccess, logger, clientId));
                }

                var marketDataAccess = new MarketDataAccess(clientInfo.MarketConnection);

                if (taskId.Equals("market.file.import", StringComparison.OrdinalIgnoreCase))
                {
                    return(new ImportMarketFileTask(adminDataAccess, marketDataAccess, logger, clientId));
                }

                if (taskId.Equals("market.file.export", StringComparison.OrdinalIgnoreCase))
                {
                    return(new ExportMarketFileTask(adminDataAccess, marketDataAccess, logger, clientId));
                }

                if (taskId.Equals("market.file.encrypt", StringComparison.OrdinalIgnoreCase))
                {
                    return(new EncryptFileTask(adminDataAccess, clientDataAccess, marketDataAccess, logger, clientId));
                }

                if (taskId.Equals("market.file.transmit", StringComparison.OrdinalIgnoreCase))
                {
                    return(new TransmitFileTask(adminDataAccess, clientDataAccess, marketDataAccess, logger, clientId));
                }
            }

            if (taskId.StartsWith("ercot.cbf", StringComparison.OrdinalIgnoreCase))
            {
                var clientDataAccess = new ClientDataAccess(clientInfo.ClientConnection);
                var marketDataAccess = new MarketDataAccess(clientInfo.MarketConnection);

                if (taskId.Equals("ercot.cbf.encrypt", StringComparison.OrdinalIgnoreCase))
                {
                    return(new ErcotEncryptFileTask(adminDataAccess, clientDataAccess, marketDataAccess, logger,
                                                    clientId));
                }

                if (taskId.Equals("ercot.cbf.transmit", StringComparison.OrdinalIgnoreCase))
                {
                    return(new ErcotTransmitFileTask(adminDataAccess, clientDataAccess, marketDataAccess, logger,
                                                     clientId));
                }
            }

            var message = string.Format("No Miramar Task could be identified for task \"{0}\".", taskId);

            throw new ArgumentOutOfRangeException("taskId", message);
        }