コード例 #1
0
        public void Execute()
        {
            MftReader  mft        = MftReader.Create(_spec.GameDirectory.DirectoryPath);
            MftContent mftContent = mft.ReadContent();

            IdxReader  idx        = new IdxReader(mftContent);
            IdxContent idxContent = idx.ReadContent();

            TXEncoding.TryReadFromExecutable(_spec.GameDirectory.ExecutablePath);

            using (DbExtractor extractor = new DbExtractor(mftContent.Version, _spec.OutputDirectory))
            {
                extractor.Rename  = _spec.Rename;
                extractor.Convert = _spec.Convert;

                foreach (var group in idxContent)
                {
                    DbPackage package = group.Key;
                    foreach (IdxEntry entry in group)
                    {
                        extractor.Enqueue(package, entry);
                    }
                }
            }

            Console.WriteLine("Extracted!");
        }
コード例 #2
0
 public bool Execute()
 {
     using (DbAccess dbAccess = DbPackage.CreateConnection())
     {
         return(Execute(dbAccess));
     }
 }
コード例 #3
0
        private void ExecuteTasks()
        {
            int errorTasks = 0;

            Parallel.ForEach(_ParallelTasks, PumpConfig.ParallelOption, task =>
            {
                if (task.Execute() == false)
                {
                    Interlocked.Increment(ref errorTasks);
                }
            });

            using (DbAccess dbAccess = DbPackage.CreateConnection())
            {
                ParallelTask callbackTask = (errorTasks > 0) ? _FailCallbackTask : _SuccessCallbackTask;

                if (callbackTask != null)
                {
                    callbackTask.Execute(dbAccess);
                }

                dbAccess.CompleteParallelJob(_PJobID);
            }

            Dispose();
        }
コード例 #4
0
ファイル: EngineMain.cs プロジェクト: DataBooster/T4SQL
        public EngineMain(EventLog serviceEventLog = null)
        {
            _MainDbAccess = DbPackage.CreateConnection();
            _DbServerEnv  = _MainDbAccess.GetDbServerEnv();

            _MainDbAccess.LoadEngineConfig();
            _ServiceEventLog = serviceEventLog;
            _TemplateManager = new TemplateManager();
        }
コード例 #5
0
        public PumpMain(EventLog serviceEventLog = null)
        {
            _ServiceMode  = ServiceMode.Standby;
            _MainDbAccess = DbPackage.CreateConnection();

            PumpConfig.AppSettingsInDb = _MainDbAccess.GetServiceConfig();

            _ParallelJobs    = new List <ParallelJob>();
            _Synchronizer    = new PumpSynchronizer();
            _ServiceEventLog = serviceEventLog;
        }
コード例 #6
0
 /// <summary>
 /// This is a private method that initiate to actualy update the package.
 /// </summary>
 /// <param name="dbPackage"> The database package </param>
 /// <param name="package"> The update package </param>
 private void UpdateThePackageProperties(DbPackage dbPackage, Package package)
 {
     dbPackage.DisscountPrecentage = package.DisscountPrecentage;
     dbPackage.FixedPrice          = package.FixedPrice;
     dbPackage.Id = package.Id;
     dbPackage.InsideFamilyCall = package.InsideFamilyCall;
     dbPackage.MaxMinute        = package.MaxMinute;
     dbPackage.MostCallNumber   = package.MostCallNumber;
     dbPackage.PackageName      = package.PackageName;
     dbPackage.SelectedNumberId = package.SelectedNumber;
     dbPackage.TotalPrice       = package.TotalPrice;
 }
コード例 #7
0
 public void MyTestOracleLauncher()
 {
     using (OracleLauncher launcher = DbPackage.CreateSampleOraLauncher(1001))
     {
         Parallel.For(0, 100, i =>                   // Just simulating multiple(100) producers
         {
             for (int j = 0; j < 200000; j++)
             {
                 launcher.AddSampleOraRow(i * 200000 + j, (double)j * 0.618);
             }
         });
     }
 }
コード例 #8
0
 public void MyTestSqlLauncher()
 {
     using (SqlLauncher launcher = DbPackage.CreateSampleSqlLauncher())
     {
         Parallel.For(0, 100, i =>                   // Just simulating multiple(100) producers
         {
             for (int j = 0; j < 200000; j++)
             {
                 launcher.AddSampleSqlRow(i, j.ToString(), (i * 200000 + j) * 0.618m);
             }
         });
     }
 }
コード例 #9
0
 /// <summary>
 /// This method getting a package from the BL and replace it with the wanted package to update.
 /// </summary>
 /// <param name="package"></param>
 public void UpdatePackage(Package package)
 {
     try
     {
         using (PhoneCompanyContext context = new PhoneCompanyContext())
         {
             DbPackage dbPackage = context.Packages.FirstOrDefault(x => x.Id == package.Id);
             UpdateThePackageProperties(dbPackage, package);
             context.SaveChanges();
         }
     }
     catch (ArgumentNullException ex)
     {
         Services.WriteExceptionsToLogger(ex);
         throw new GetFromDatabaseException(ex.Message);
     }
 }
コード例 #10
0
        internal static Package DbToCommon(this DbPackage dbPackage)
        {
            Package package = new Package()
            {
                TotalPrice          = dbPackage.TotalPrice,
                DisscountPrecentage = dbPackage.DisscountPrecentage,
                FixedPrice          = dbPackage.FixedPrice,
                Id = dbPackage.Id,
                InsideFamilyCall = dbPackage.InsideFamilyCall,
                MaxMinute        = dbPackage.MaxMinute,
                MostCallNumber   = dbPackage.MostCallNumber,
                PackageName      = dbPackage.PackageName,
                SelectedNumber   = dbPackage.SelectedNumberId,
                MaxSMSs          = dbPackage.MaxSMSs
            };

            return(package);
        }
コード例 #11
0
        internal static DbPackage CommonToDb(this Package package)
        {
            DbPackage dbPackage = new DbPackage()
            {
                DisscountPrecentage = package.DisscountPrecentage,
                FixedPrice          = package.FixedPrice,
                InsideFamilyCall    = package.InsideFamilyCall,
                Id = package.Id,
                SelectedNumberId = package.SelectedNumber,
                MaxMinute        = package.MaxMinute,
                MostCallNumber   = package.MostCallNumber,
                PackageName      = package.PackageName,
                TotalPrice       = package.TotalPrice,
                MaxSMSs          = package.MaxSMSs
            };

            return(dbPackage);
        }
コード例 #12
0
        public void DbToCommon_GetPackage_Convert()
        {
            //Arrange
            var commonPackage = new Package();
            var dbPackage     = new DbPackage();

            var fake = A.Fake <Package>(o => o.Wrapping(commonPackage));
            //Act
            var results = dbPackage.DbToCommon();

            A.CallTo(() => fake.Equals(A <object> ._)).ReturnsLazily(
                call =>
            {
                var other = call.GetArgument <Package>(0);
                return(results.Id == other.Id);
            });
            //Assert
            Assert.AreEqual(fake, results);
        }
コード例 #13
0
 public void MyTestAccess()
 {
     using (DbAccess db = DbPackage.CreateConnection())
     {
         // ...
         var test1 = db.GetSampleSetting("TestDomain");
         // ...
         var test2 = db.LoadSampleObjByAction(test1.Item1, test1.Item2);
         // ...
         using (DbTransactionScope tran = db.NewTransactionScope())                      // Start a transaction
         {
             var test3 = db.LoadSampleObjByMap(test1.Item1, test1.Item2);
             // ...
             db.LogSampleError("Test source", "Test message ...");
             // ...
             tran.Complete();
         }                       // Exit (Commit) the transaction
         // ...
         var test4 = db.LoadSampleObjAutoMap(test1.Item1, test1.Item2);
         // ...
     }
 }
コード例 #14
0
        private static void Test16()
        {
            var f   = "财务数据库.zip";
            var f2  = "财务数据库/凭证库.table";
            var f3  = "cw.zip";
            var dal = DAL.Create("caiwu");

            //var tables = dal.RestoreAll(f, null, true, false);

            //dal.Db.BatchSize = 100;

            var dpk = new DbPackage
            {
                Dal         = dal,
                IgnoreError = false,
                Log         = XTrace.Log
            };
            //var ts = DAL.ImportFrom("财务数据库/xxgk2.xml");
            //var tables = dpk.Restore(f2, ts[0], true);
            var tables = dpk.RestoreAll(f3, null, true);

            //dal.BackupAll(tables, "cw.zip");
        }
コード例 #15
0
        private async void btnSync_Click(Object sender, EventArgs e)
        {
            var connName = cbTarget.SelectedItem + "";

            if (connName.IsNullOrEmpty())
            {
                return;
            }

            //var ts = _models.Select(e => e.Table).ToArray();
            //if (ts.Length == 0) return;

            gbSetting.Enabled = false;

            var syncSchema  = cbSyncSchema.Checked;
            var ignoreError = cbIgnoreError.Checked;
            //_source.SyncAll(ts, connName, cbSyncSchema.Checked, cbIgnoreError.Checked);
            var dpk = new DbPackage
            {
                Dal         = _source,
                IgnoreError = ignoreError,
                Log         = XTrace.Log
            };
            //dpk.OnProgress = (p, dt) =>
            //{
            //    var m = _models.FirstOrDefault(e => e.Name == dt);
            //};
            //Task.Run(() => dpk.SyncAll(ts, connName, syncSchema));
            await Task.Run(() =>
            {
                var dal    = DAL.Create(cbTarget.SelectedItem + "");
                var tables = dal.Tables ?? new List <IDataTable>();

                _source.Db.ShowSQL      = false;
                _source.Session.ShowSQL = false;
                dal.Db.ShowSQL          = false;
                dal.Session.ShowSQL     = false;
                foreach (var item in _models)
                {
                    if (!item.EnableSync)
                    {
                        continue;
                    }

                    try
                    {
                        if (!syncSchema && !tables.Any(e => e.TableName.EqualIgnoreCase(item.Name)))
                        {
                            item.Description = "目标表不存在,跳过!";
                        }
                        else
                        {
                            var tb           = _tables.FirstOrDefault(e => e.TableName == item.Name);
                            var rs           = _source.Sync(tb, connName, syncSchema);
                            item.Finish      = rs;
                            item.Description = "成功!";
                        }
                    }
                    catch (Exception ex)
                    {
                        item.Description = ex.Message;
                        XTrace.WriteException(ex);

                        if (!ignoreError)
                        {
                            throw;
                        }
                    }

                    Invoke(() => dataGridView1.Refresh());
                }
                _source.Session.ShowSQL = true;
                _source.Db.ShowSQL      = true;
                dal.Session.ShowSQL     = true;
                dal.Db.ShowSQL          = true;
            });

            gbSetting.Enabled = true;
        }