Esempio n. 1
0
        private IExportTable GetTableExportTask(string path, bool remote)
        {
            var source = new SourceTableQuery()
            {
                Dataset = new Jhu.Graywulf.Schema.SqlServer.SqlServerDataset(Jhu.Graywulf.Test.Constants.TestDatasetName, Jhu.Graywulf.Test.AppSettings.IOTestConnectionString),
                Query   = "SELECT * FROM SampleData"
            };

            var destination = new DelimitedTextDataFile()
            {
                Uri = Util.UriConverter.FromFilePath(path)
            };

            IExportTable te = null;

            if (remote)
            {
                te = RemoteServiceHelper.CreateObject <IExportTable>(Test.Constants.Localhost);
            }
            else
            {
                te = new ExportTable();
            }

            te.Source      = source;
            te.Destination = destination;

            return(te);
        }
 /// <summary>
 /// Initializing func for Serializer.
 /// </summary>
 /// <param name="H">Header of the package</param>
 /// <param name="NT">NameTable of package.</param>
 /// <param name="ET">ExportTable of package.</param>
 /// <param name="IT">ImportTable of Package</param>
 /// <param name="body">Readed and decrypted bytes of package body. </param>
 /// <seealso cref="L2Package.PackageReader"/>
 public void Initialize(IHeader H, INameTable NT, IExportTable ET, IImportTable IT, byte[] body)
 {
     Header      = H;
     NameTable   = NT;
     ExportTable = ET;
     ImportTable = IT;
     Bytes       = body;
     Initialized = true;
 }
Esempio n. 3
0
        private void CurrentContext_OnBeforeExecute(object sender, EntityQueryExecuteEventArgs e)
        {
            IExportTable exportTable = e.Entity as IExportTable;

            if (exportTable != null)
            {
                exportTable.BatchNumber = 0;
            }
            if (e.ExecuteType == EntityQueryExecuteType.Delete)
            {
                OptDbContext.CurrentDataBase.BeginTransaction();
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 生成批次号为空或者为0的查询,对应于本地新增或者更新过的数据
        /// </summary>
        /// <param name="batchNumber">批次号</param>
        /// <param name="entity"></param>
        /// <returns></returns>
        private OQL FilterQuery(int batchNumber, EntityBase entity)
        {
            if (entity is IExportTable)
            {
                var tableInfoCache = EntityFieldsCache.Item(entity.GetType());
                var fieldList      = tableInfoCache.PropertyNames;
                Console.WriteLine("===================导出表 [{0}] ==================", entity.GetTableName());

                IExportTable ExportableEntity = entity as IExportTable;
                ExportableEntity.BatchNumber = batchNumber;
                //将数据库导出标记为0或者为空的记录,更新为当前导出标记号
                //一定得按数据分类标识更新及导出
                OQL updateQ = null;
                if (fieldList.Contains(C_Classification))
                {
                    entity[C_Classification] = ClassificationID;
                    updateQ = OQL.From(entity)
                              .Update(ExportableEntity.BatchNumber)
                              .Where(cmp => cmp.EqualValue(entity[C_Classification]) &
                                     (cmp.Comparer(ExportableEntity.BatchNumber, "=", 0) | cmp.IsNull(ExportableEntity.BatchNumber))
                                     )
                              .END;
                    int count = EntityQuery.ExecuteOql(updateQ, this.CurrDbContext.CurrentDataBase);
                    Console.WriteLine("(查询前)更新批次号 {0} 受影响的记录数 {1}", batchNumber, count);

                    OQL q = OQL.From(entity)
                            .Select()
                            .Where(cmp => cmp.EqualValue(entity[C_Classification]) & cmp.EqualValue(ExportableEntity.BatchNumber))
                            .END;
                    return(q);
                }
                else
                {
                    updateQ = OQL.From(entity)
                              .Update(ExportableEntity.BatchNumber)
                              .Where(cmp => cmp.Comparer(ExportableEntity.BatchNumber, "=", 0) | cmp.IsNull(ExportableEntity.BatchNumber))
                              .END;
                    int count = EntityQuery.ExecuteOql(updateQ, this.CurrDbContext.CurrentDataBase);
                    Console.WriteLine("(查询前)更新批次号 {0} 受影响的记录数 {1}", batchNumber, count);
                    OQL q = OQL.From(entity)
                            .Select()
                            .Where(cmp => cmp.EqualValue(ExportableEntity.BatchNumber))
                            .END;
                    return(q);
                }
            }
            return(null);
        }
Esempio n. 5
0
        /// <summary>
        /// ExportTable konvertálása DataGrid-be
        /// </summary>
        private static void TableToDataGridView(IExportTable srcTable, DataGridView destDataGridView)
        {
            destDataGridView.Rows.Clear();
            destDataGridView.Columns.Clear();

            foreach (var tableColumn in srcTable.Columns)
            {
                DataGridViewTextBoxColumn dgvColumn;
                destDataGridView.Columns.Add(dgvColumn = new DataGridViewTextBoxColumn()
                {
                    Name         = tableColumn.Name,
                    HeaderText   = tableColumn.HeaderText,
                    DisplayIndex = tableColumn.DisplayIndex,
                    Visible      = tableColumn.Visible,
                });

                if (srcTable.SourceIsSupportColumnWidth)
                {
                    dgvColumn.Width = tableColumn.Width;
                }
            }

            destDataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;

            for (var rowIndex = 0; rowIndex < srcTable.Rows.Count; rowIndex++)
            {
                destDataGridView.Rows.Add(new DataGridViewRow());
                /*Sormagasság*/
                /*TODO: Túl hosszú müvelet a sor magasság állítása, letitlva.*/
                /*destDataGridView.Rows[rowIndex].Height = 18;*/
                for (var columnIndex = 0; columnIndex < srcTable.Columns.Count; columnIndex++)
                {
                    destDataGridView.Rows[rowIndex].Cells[columnIndex].Value = srcTable.Rows[rowIndex].Cells[columnIndex].Value;
                }
            }
        }
Esempio n. 6
0
 internal L2PackageEnumerator(IExportTable iet, IUnrealSerializer szr)
 {
     et        = iet;
     Cursor    = -1;
     Serilizer = szr;
 }