public RavenConfiguration Initialize()
        {
            Core.Initialize(Settings);
            Replication.Initialize(Settings);
            SqlReplication.Initialize(Settings);
            Queries.Initialize(Settings);
            Patching.Initialize(Settings);
            DebugLog.Initialize(Settings);
            BulkInsert.Initialize(Settings);
            Server.Initialize(Settings);
            Memory.Initialize(Settings);
            Storage.Initialize(Settings);
            Encryption.Initialize(Settings);
            Indexing.Initialize(Settings);
            Monitoring.Initialize(Settings);
            Expiration.Initialize(Settings);
            Studio.Initialize(Settings);
            Databases.Initialize(Settings);
            Licensing.Initialize(Settings);
            Quotas.Initialize(Settings);
            Tombstones.Initialize(Settings);

            PostInit();

            Initialized = true;

            return(this);
        }
        /// <summary>
        /// copies the key map table from the dest connection to the source
        /// so you can do inspect and troubleshoot the mapping in the source connection
        /// </summary>
        public async Task <(DbObject @object, int rowCount)> ImportKeyMapTableAsync(DataMigration dataMigration)
        {
            DbObject result   = null;
            int      rowCount = 0;

            await ExecuteWithConnectionsAsync(dataMigration, async (source, dest) =>
            {
                var migrator = await GetMigratorAsync(dest);
                result       = SqlMigrator <int> .KeyMapTable;

                if (await source.TableExistsAsync(result))
                {
                    await source.ExecuteAsync($"DROP TABLE [{result.Schema}].[{result.Name}]");
                }

                if (!await source.SchemaExistsAsync(result.Schema))
                {
                    await source.ExecuteAsync($"CREATE SCHEMA [{result.Schema}]");
                }

                string query    = $"SELECT * FROM [{result.Schema}].[{result.Name}]";
                var data        = await dest.QueryTableAsync(query);
                rowCount        = data.Rows.Count;
                var createTable = await dest.SqlCreateTableAsync(result.Schema, result.Name, query);
                await source.ExecuteAsync(createTable);

                await BulkInsert.ExecuteAsync(data, source, result, 35, new BulkInsertOptions()
                {
                    IdentityInsert = true
                });
            });

            return(result, rowCount);
        }
        public void Insert()
        {
            var dbSessionFactory = new SmartSqlBuilder()
                                   .UseDataSource(DbProvider.MYSQL_CONNECTOR, "Data Source=localhost;database=SmartSqlTestDB;uid=root;pwd=root")
                                   .UseAlias("MySqlConnectorTest")
                                   .Build().GetDbSessionFactory();

            var list = new List <User>
            {
                new() { Id = 1, UserName = "******", IsDelete = true },
                new() { Id = 2, UserName = "******", IsDelete = false }
            };

            using var dbSession = dbSessionFactory.Open();
            var data = list.ToDataTable();

            data.TableName = "t_user";
            var bulkInsert = new BulkInsert(dbSession)
            {
                SecureFilePriv = "C:/ProgramData/MySQL/MySQL Server 8.0/Uploads",
                Table          = data
            };

            bulkInsert.Expressions.Add("user_name = upper(user_name)");
            bulkInsert.Expressions.Add("is_delete = convert(is_delete, unsigned )");
            bulkInsert.Insert();
        }
    }
Beispiel #4
0
        public void Insert()
        {
            var dbSessionFactory = new SmartSqlBuilder()
                                   .UseDataSource(DbProvider.MYSQL, "Data Source=localhost;database=SmartSqlTestDB;uid=root;pwd=SmartSql.net")
                                   .UseAlias("MySqlTest")
                                   .Build().GetDbSessionFactory();

            var list = new List <User> {
                new User {
                    Id = 3, UserName = "******"
                }
                , new User {
                    Id = 4, UserName = "******"
                }
            };

            using (var dbSession = dbSessionFactory.Open())
            {
                var data = list.ToDataTable();
                data.Columns.RemoveAt(0);
                data.TableName = "t_user";
                BulkInsert bulkInsert = new BulkInsert(dbSession)
                {
                    SecureFilePriv = "C:/ProgramData/MySQL/MySQL Server 8.0/Uploads",
                    Table          = data
                };
                bulkInsert.Insert();
            }
        }
        public static void Initialize(TestContext context)
        {
            LocalDb.TryDropDatabase(dbName, out _);

            using (var cn = LocalDb.GetConnection(dbName, SampleObjects()))
            {
                var tdg = new TestDataGenerator();
                tdg.Generate <TypicalQueryResult>(1000, (result) =>
                {
                    result.FirstName = tdg.Random(Source.FirstName);
                    result.SomeDate  = tdg.RandomInRange(-1000, 1000, (i) => DateTime.Today.AddDays(i));
                    result.Weight    = tdg.RandomInRange <decimal>(50, 150, (d) => d);
                    result.Notes     = RandomPhrase(4, 8);
                }, (results) =>
                {
                    // AppVeyor seems to need this
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();
                    }

                    var dataTable = results.ToDataTable();
                    BulkInsert.ExecuteAsync(dataTable, cn as SqlConnection, DbObject.Parse("dbo.SampleTable"), 50, new BulkInsertOptions()
                    {
                        SkipIdentityColumn = "Id"
                    }).Wait();
                });
            }
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            using (var db = new BulkInsertEFEntities())
            {
                Console.WriteLine("Starting test. Enter number of records you wish to test for :");
                var count = int.Parse(Console.ReadLine());

                var list = new List <TestTable>();

                for (int i = 0; i < count; i++)
                {
                    list.Add(new TestTable {
                        GuidId         = Guid.NewGuid(),
                        VarcharType    = "Rajesh Panda",
                        OnlyDate       = DateTime.Now.Date,
                        OffsetTypeDate = new DateTimeOffset(DateTime.Now).UtcDateTime,
                        DateTimeType   = DateTime.Now,
                        BooleanType    = false
                    });
                }

                var bulkInsert = new BulkInsert(db);

                bulkInsert.BulkInsertCommand(list);

                Console.WriteLine("Press any key to exit...");
                Console.ReadKey();
            }
        }
Beispiel #7
0
        public void Insert()
        {
            var dbSessionFactory = new SmartSqlBuilder()
                                   .UseDataSource(DbProvider.POSTGRESQL, "Server=localhost;Database=SmartSqlTestDB;Port=5432;User Id=postgres;Password=SmartSql.net;")
                                   .UseAlias("PostgreSqlTest")
                                   .Build().GetDbSessionFactory();

            var list = new List <User> {
                new User {
                    Id = 1, UserName = "******"
                }
                , new User {
                    Id = 2, UserName = "******"
                }
            };

            using (var dbSession = dbSessionFactory.Open())
            {
                var data = list.ToDataTable();
                data.Columns.RemoveAt(0);
                data.Columns["UserName"].ColumnName = "user_name";
                data.Columns["Status"].ColumnName   = "status";
                data.TableName = "t_user";
                BulkInsert bulkInsert = new BulkInsert(dbSession);
                bulkInsert.Table = data;
                bulkInsert.Insert();
            }
        }
        private void btnBulk_Click(object sender, EventArgs e)
        {
            user = lblUser.Text;
            BulkInsert f9 = new BulkInsert();

            f9.Show();
        }
Beispiel #9
0
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            IConfigurationRoot configuration = builder.Build();

            if (CheckConfiguration(configuration))
            {
                Console.WriteLine("Descargando fichero...");

                var downloader = new Downloader(configuration["FileURL:URL"], configuration["FileURL:Directory"]);
                var result     = downloader.Download();

                Console.WriteLine($"Path: {result.FilePath}");
                Console.WriteLine($"Tamaño: {result.Size}bytes");
                Console.WriteLine($"Tiempo de Descarga: {result.DownloadTime.TotalSeconds}s");
                Console.WriteLine($"Hilos en Paralelo: {result.ParallelDownloads}");

                Console.WriteLine("Insertando datos en BBDD...");
                var reader = new CSVReader <StockHistory, StockHistoryMapping>(result.FilePath);
                var bulk   = new BulkInsert <StockHistory>();
                bulk.Execute(configuration.GetConnectionString("StockBBDD"), reader.Read());
                Console.WriteLine("Proceso finalizado!");
                Console.ReadLine();
            }
        }
        public void GetSql_WhenTwoColumnsSpecified_GeneratesSQL()
        {
            var sql = new BulkInsert <SimpleObject>()
                      .GetSql(2);

            Assert.AreEqual(
                "INSERT INTO `table_name`(`LongColumnName`, `SomeString`, `NullableLong`, `Guid`, `NullableGuid`, `IntBasedEnum`, `NullableIntBasedEnum`) VALUES (?p0, ?p1, ?p2, ?p3, ?p4, ?p5, ?p6), (?p7, ?p8, ?p9, ?p10, ?p11, ?p12, ?p13);",
                sql);
        }
        public void GetSql_ZeroEntries_GeneratesSQL()
        {
            var sql = new BulkInsert <SimpleObject>()
                      .GetSql(0);

            Assert.AreEqual(
                "INSERT INTO `table_name`(`LongColumnName`, `SomeString`, `NullableLong`, `Guid`, `NullableGuid`, `IntBasedEnum`, `NullableIntBasedEnum`) VALUES ;",
                sql);
        }
Beispiel #12
0
        public void InsertByList()
        {
            IBulkInsert bulkInsert = new BulkInsert(DbSession);
            var         list       = DbSession.Query <AllPrimitive>(new RequestContext
            {
                Scope   = nameof(AllPrimitive),
                SqlId   = "Query",
                Request = new { Taken = 100 }
            });

            bulkInsert.Insert(list);
        }
Beispiel #13
0
        public async Task InsertByListAsync()
        {
            var list = await DbSession.QueryAsync <AllPrimitive>(new RequestContext
            {
                Scope   = nameof(AllPrimitive),
                SqlId   = "Query",
                Request = new { Taken = 100 }
            });

            IBulkInsert bulkInsert = new BulkInsert(DbSession);
            await bulkInsert.InsertAsync <AllPrimitive>(list);
        }
Beispiel #14
0
        public void InsertByList()
        {
            using (var dbSession = _dbSessionFactory.Open())
            {
                var list = dbSession.Query <AllPrimitive>(new RequestContext
                {
                    RealSql = "Select Top(100) * From T_AllPrimitive Order By Id Desc"
                });
                IBulkInsert bulkInsert = new BulkInsert(dbSession);

                bulkInsert.Insert(list);
            }
        }
Beispiel #15
0
        public async Task InsertByListAsync()
        {
            using (var dbSession = _dbSessionFactory.Open())
            {
                var list = await dbSession.QueryAsync <AllPrimitive>(new RequestContext
                {
                    RealSql = "Select Top(100) * From T_AllPrimitive Order By Id Desc"
                });

                IBulkInsert bulkInsert = new BulkInsert(dbSession);
                await bulkInsert.InsertAsync <AllPrimitive>(list);
            }
        }
        public void GetColumns_SimpleObject_ShouldContainSimpleObjectsMappedColumns()
        {
            var columns = new BulkInsert <SimpleObject>().GetColumns();

            var columneNames = columns.Select(p => p.ColumnName);

            Assert.That(columneNames, Contains.Item("`LongColumnName`"));
            Assert.That(columneNames, Contains.Item("`SomeString`"));
            Assert.That(columneNames, Contains.Item("`NullableLong`"));
            Assert.That(columneNames, Contains.Item("`Guid`"));
            Assert.That(columneNames, Contains.Item("`NullableGuid`"));
            Assert.That(columneNames, Contains.Item("`IntBasedEnum`"));
            Assert.That(columneNames, Contains.Item("`NullableIntBasedEnum`"));
        }
Beispiel #17
0
 public void Insert()
 {
     using (var dbSession = _dbSessionFactory.Open())
     {
         var data = dbSession.GetDataTable(new RequestContext
         {
             RealSql = "Select Top(100) * From T_AllPrimitive Order By Id Desc"
         });
         data.TableName = "T_AllPrimitive";
         IBulkInsert bulkInsert = new BulkInsert(dbSession);
         bulkInsert.Table = data;
         bulkInsert.Insert();
     }
 }
        public async Task <IActionResult> BulkInsert(BulkInsert model)
        {
            var res = new BulkInsertResponse();

            res.DailyInserted       = new List <DailyInsert>();
            res.DailyNotInserted    = new List <DailyInsert>();
            res.PositiveNotInserted = new List <PositiveInsert>();
            res.PositiveInserted    = new List <PositiveInsert>();
            foreach (var item in model.PositiveInserts)
            {
                if (ModelState.IsValid)
                {
                    var dailyRes = await _da.PositiveInsertion(item);

                    if (dailyRes.StatusCode == 200)
                    {
                        res.PositiveInserted.Add(item);
                    }
                    else
                    {
                        res.PositiveNotInserted.Add(item);
                    }
                }
                else
                {
                    res.PositiveNotInserted.Add(item);
                }
            }
            foreach (var item in model.DailyInserts)
            {
                if (ModelState.IsValid)
                {
                    var dailyRes = await _da.DailyInsertion(item);

                    if (dailyRes.StatusCode == 200)
                    {
                        res.DailyInserted.Add(item);
                    }
                    else
                    {
                        res.DailyNotInserted.Add(item);
                    }
                }
                else
                {
                    res.DailyNotInserted.Add(item);
                }
            }
            return(Ok(res));
        }
Beispiel #19
0
 public void InsertByList()
 {
     using (var dbSession = SqlMapper.SessionStore.Open())
     {
         IBulkInsert bulkInsert = new BulkInsert(dbSession);
         var         list       = SqlMapper.Query <AllPrimitive>(new RequestContext
         {
             Scope   = nameof(AllPrimitive),
             SqlId   = "Query",
             Request = new { Taken = 100 }
         });
         bulkInsert.Insert(list);
     }
 }
Beispiel #20
0
 public void BulkInsert(IEnumerable <Excerpt> excerpts)
 {
     using (var session = _repository.SqlMapper.SessionStore.Open())
     {
         var table = excerpts.ToDataTable();
         table.TableName = "t_excerpt";
         var bulkInsert = new BulkInsert(session)
         {
             Table          = table,
             SecureFilePriv = @"C:\ProgramData\MySQL\MySQL Server 8.0\Uploads"
         };
         bulkInsert.Insert();
     }
 }
Beispiel #21
0
        private static StoreFM36History StoreFM36HistorySetup()
        {
            var historyOutput = new List <AppsEarningsHistory>
            {
                new AppsEarningsHistory
                {
                    UKPRN = _ukprn,
                    CollectionReturnCode               = "R01",
                    CollectionYear                     = "1819",
                    LatestInYear                       = true,
                    LearnRefNumber                     = "3DOB01",
                    AppIdentifier                      = "25-5",
                    AppProgCompletedInTheYearInput     = false,
                    BalancingProgAimPaymentsInTheYear  = 0.0m,
                    CompletionProgaimPaymentsInTheYear = 0.0m,
                    DaysInYear = 274,
                    HistoricEffectiveTNPStartDateInput = new System.DateTime(2018, 07, 31),
                    HistoricEmpIdEndWithinYear         = 914429647,
                    HistoricEmpIdStartWithinYear       = 914429647,
                    FworkCode = null,
                    HistoricLearner1618StartInput  = true,
                    OnProgProgAimPaymentsInTheYear = 3000.0m,
                    HistoricPMRAmount = 0.0m,
                    ProgrammeStartDateIgnorePathway = new System.DateTime(2018, 10, 31),
                    ProgrammeStartDateMatchPathway  = new System.DateTime(2018, 10, 31),
                    ProgType          = 25,
                    PwayCode          = null,
                    STDCode           = 5,
                    HistoricTNP1Input = 10500.0m,
                    HistoricTNP2Input = 0.0m,
                    HistoricTNP3Input = 0.0m,
                    HistoricTNP4Input = 0.0m,
                    HistoricTotal1618UpliftPaymentsInTheYearInput = 0.0m,
                    TotalProgAimPaymentsInTheYear = 3000.0m,
                    ULN         = 9900278304,
                    UptoEndDate = new System.DateTime(2018, 07, 31),
                    HistoricVirtualTNP3EndOfTheYearInput      = 0.0m,
                    HistoricVirtualTNP4EndOfTheYearInput      = 0.0m,
                    HistoricLearnDelProgEarliestACT2DateInput = new System.DateTime(2018, 10, 31),
                }
            };

            var         fm36HistoryMapperMock = new Mock <IFM36HistoryMapper>();
            IBulkInsert bulkInsert            = new BulkInsert();

            fm36HistoryMapperMock.Setup(fm => fm.MapAppsEarningsHistory(_fundingOutputs, It.IsAny <string>(), It.IsAny <string>())).Returns(historyOutput);

            return(new StoreFM36History(fm36HistoryMapperMock.Object, bulkInsert));
        }
        public static void BulkInsert <T>(this IDbConnection connection, IList <T> items)
            where T : class
        {
            if (items.Count == 0)
            {
                return;
            }

            var commandGenerator = new BulkInsert <T>();

            var sql        = commandGenerator.GetSql(items.Count);
            var parameters = items.SelectMany(item => commandGenerator.GetColumns().Select(c => c.ValueAccessor(item))).ToList();

            AttachParamsAndRun(connection, sql, parameters);
        }
Beispiel #23
0
        public async Task InsertByListAsync()
        {
            using (var dbSession = SqlMapper.SessionStore.Open())
            {
                var list = await SqlMapper.QueryAsync <AllPrimitive>(new RequestContext
                {
                    Scope   = nameof(AllPrimitive),
                    SqlId   = "Query",
                    Request = new { Taken = 100 }
                });

                IBulkInsert bulkInsert = new BulkInsert(dbSession);
                await bulkInsert.InsertAsync <AllPrimitive>(list);
            }
        }
Beispiel #24
0
        public void InsertByListWithTypeHandler()
        {
            using (var dbSession = SqlMapper.SessionStore.Open())
            {
                IBulkInsert bulkInsert = new BulkInsert(dbSession);
                var         list       = SqlMapper.Query <UserExtendedInfo>(new RequestContext
                {
                    Scope   = nameof(UserExtendedInfo),
                    SqlId   = "Query",
                    Request = new { Taken = 100 }
                });

                bulkInsert.Insert(list);
            }
        }
Beispiel #25
0
        public void Insert()
        {
            var data = DbSession.GetDataTable(new RequestContext
            {
                Scope   = nameof(AllPrimitive),
                SqlId   = "Query",
                Request = new { Taken = 100 }
            });

            data.TableName = "T_AllPrimitive";
            IBulkInsert bulkInsert = new BulkInsert(DbSession);

            bulkInsert.Table = data;
            bulkInsert.Insert();
        }
Beispiel #26
0
        public async Task InsertAsync()
        {
            var data = await DbSession.GetDataTableAsync(new RequestContext
            {
                Scope   = nameof(AllPrimitive),
                SqlId   = "Query",
                Request = new { Taken = 100 }
            });

            data.TableName = "T_AllPrimitive";
            IBulkInsert bulkInsert = new BulkInsert(DbSession);

            bulkInsert.Table = data;
            await bulkInsert.InsertAsync();
        }
Beispiel #27
0
 public void Insert()
 {
     using (var dbSession = SqlMapper.SessionStore.Open())
     {
         var data = SqlMapper.GetDataTable(new RequestContext
         {
             Scope   = nameof(AllPrimitive),
             SqlId   = "Query",
             Request = new { Taken = 100 }
         });
         data.TableName = "T_AllPrimitive";
         IBulkInsert bulkInsert = new BulkInsert(dbSession);
         bulkInsert.Table = data;
         bulkInsert.Insert();
     }
 }
Beispiel #28
0
        public RavenConfiguration Initialize()
        {
            Core.Initialize(Settings);
            Replication.Initialize(Settings);
            Queries.Initialize(Settings);
            Patching.Initialize(Settings);
            BulkInsert.Initialize(Settings);
            Server.Initialize(Settings);
            Memory.Initialize(Settings);
            Indexing.Initialize(Settings);
            Prefetcher.Initialize(Settings);
            Storage.Initialize(Settings);
            Encryption.Initialize(Settings);
            Cluster.Initialize(Settings);
            Monitoring.Initialize(Settings);
            FileSystem.Initialize(Settings);
            Counter.Initialize(Settings);
            TimeSeries.Initialize(Settings);
            Expiration.Initialize(Settings);
            Versioning.Initialize(Settings);
            Studio.Initialize(Settings);
            Tenants.Initialize(Settings);
            Licensing.Initialize(Settings);
            Quotas.Initialize(Settings);

            if (Settings["Raven/MaxServicePointIdleTime"] != null)
            {
                ServicePointManager.MaxServicePointIdleTime = Convert.ToInt32(Settings["Raven/MaxServicePointIdleTime"]);
            }

            if (ConcurrentMultiGetRequests == null)
            {
                ConcurrentMultiGetRequests = new SemaphoreSlim(Server.MaxConcurrentMultiGetRequests);
            }

            PostInit();

            initialized = true;

            return(this);
        }
        private async void btnCopy_Click(object sender, EventArgs e)
        {
            try
            {
                var table = cbTable.SelectedItem as Table;
                if (table != null)
                {
                    var output = await BulkInsert.GetSqlStatementsAsync(table.Name, DataTable, new BulkInsertOptions()
                    {
                        SkipIdentityColumn = (rbOmitIdentity.Checked) ? table.IdentityColumn : null,
                        IdentityInsert     = rbIdentityInsert.Checked
                    });

                    Clipboard.SetText(output.ToString());
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }
Beispiel #30
0
 private void ImportData()
 {
     try
     {
         using (var dt = CreateSourceDataTable())
         {
             using (var session = CreateSession())
             {
                 using (var bulkInsert = new BulkInsert <T, int>(session.Connection))
                 {
                     foreach (DataRow dr in dt.Rows.OfType <DataRow>())
                     {
                         var target = DataRowToTarget(dr);
                         bulkInsert.Insert(target);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Logger.Write(ex);
     }
 }