Пример #1
0
        public static void ConfigureLog4Net()
        {
            IConfigurationProvider configProvider = Bootstrapper.GetContainer().Resolve <IConfigurationProvider>();

            string logName         = configProvider.GetAppSettings("log4net:FileName");
            string applicationName = configProvider.GetAppSettings("log4net:ApplicationName");
            string log4NetPath     = configProvider.GetAppSettings("log4net:ConfigFileName");

            if (logName == null)
            {
                logName = Assembly.GetEntryAssembly().GetName().Name;
            }

            GlobalContext.Properties["appName"]  = applicationName;
            GlobalContext.Properties["fileName"] = logName;


            if (log4NetPath == null || !File.Exists(log4NetPath))
            {
                XmlConfigurator.Configure();
            }
            else
            {
                FileInfo fi = new FileInfo(log4NetPath);
                XmlConfigurator.Configure(fi);
            }
        }
Пример #2
0
        public override void ExecuteBulkCopy(IDataReader reader, string destinationTable, IList <KeyValuePair <string, string> > mappings)
        {
            if (reader == null)
            {
                Logger.Log(LevelEnum.Error, Resources.ERR_DBREADER_ISNULL);
                throw new ArgumentNullException(nameof(reader), Resources.ERR_DBREADER_ISNULL);
            }

            if (string.IsNullOrWhiteSpace(destinationTable))
            {
                Logger.Log(LevelEnum.Error, Resources.ERR_TABLENAME_ISNULL);
                throw new ArgumentNullException(nameof(destinationTable), Resources.ERR_TABLENAME_ISNULL);
            }

            Logger.LogFormat(LevelEnum.Verbose, Resources.VERBOSE_BULK_INSERT, destinationTable);
            IConfigurationProvider config = Bootstrapper.GetContainer().Resolve <IConfigurationProvider>();

            using (OracleConnection destinationConnection = (OracleConnection)CreateConnection())
            {
                destinationConnection.Open();
                using (OracleBulkCopy bulkCopy = new OracleBulkCopy(destinationConnection))
                {
                    bulkCopy.DestinationTableName = destinationTable;
                    bulkCopy.BatchSize            = Convert.ToInt32(config.GetAppSettings(DrakeQuest.Configuration.Constants.ConfigBulkCopyBatchSize));
                    bulkCopy.BulkCopyTimeout      = Convert.ToInt32(config.GetAppSettings(DrakeQuest.Configuration.Constants.ConfigBulkCopyTimeout));
                    if (mappings != null)
                    {
                        foreach (var mapping in mappings)
                        {
                            bulkCopy.ColumnMappings.Add(mapping.Key, mapping.Value);
                        }
                    }
                    bulkCopy.WriteToServer(reader);
                    //bulkCopy.OracleRowsCopied += new OracleRowsCopiedEventHandler(bulkCopy_OracleRowsCopied);
                    bulkCopy.Close();
                    bulkCopy.Dispose();
                    destinationConnection.Dispose();
                }
            }
            Logger.LogFormat(LevelEnum.Verbose, Resources.VERBOSE_BULK_INSERT_END, destinationTable);
        }