Ejemplo n.º 1
0
        public void DataTableTest()
        {
            var nonSerializableClasseDataTable = GeneralHelper.CopyToDataTable(NonSerializableClass.GenerateList());

            TestSerialize(nonSerializableClasseDataTable);
            TestSerialize(nonSerializableClasseDataTable.DefaultView);

            var serializableClassDataTable = GeneralHelper.CopyToDataTable(SerializableClass.GenerateList());

            TestSerialize(serializableClassDataTable);
            TestSerialize(serializableClassDataTable.DefaultView);

            var dt = new DataSet();
            var addressTypeEntityCollection = MetaSingletons.MetaData.AddressType.ToEntityCollection();

            addressTypeEntityCollection.CreateHierarchicalProjection(dt);
            TestSerialize(dt.Tables[0]);
            TestSerialize(dt.Tables[0].DefaultView);

            var addressTypeDataTable = GeneralHelper.CopyToDataTable(MetaSingletons.MetaData.AddressType);

            TestSerialize(addressTypeDataTable);
            TestSerialize(addressTypeDataTable.DefaultView);

            var enumerableRowCollection = addressTypeDataTable.AsEnumerable();

            TestSerialize(enumerableRowCollection);

            TestSerialize(DataTableExtensions.CopyToDataTable(enumerableRowCollection));
        }
        public DataTable getLiqsHalls()
        {
            try
            {
                DataTable dt = (DataTable)this.Session[this._nameSessionData];
                if (dt == null || dt.Rows.Count == 0)
                {
                    return(new DataTable());
                }

                return(DataTableExtensions.CopyToDataTable <DataRow>((IEnumerable <DataRow>)EnumerableRowCollectionExtensions.Where <DataRow>(DataTableExtensions.AsEnumerable(dt), (Func <DataRow, bool>)(x => !DataRowExtensions.Field <string>(x, "lhv_status").Equals("PM")))));
            }
            catch
            {
                return(new DataTable());
            }
        }
        public DataTable getLigsPick()
        {
            DataTable dt1;

            try
            {
                DataTable dt = (DataTable)this.Session[this._nameSessionData];
                if (dt == null || dt.Rows.Count == 0)
                {
                    return(new DataTable());
                }

                dt1 = DataTableExtensions.CopyToDataTable <DataRow>((IEnumerable <DataRow>)EnumerableRowCollectionExtensions.Where <DataRow>(DataTableExtensions.AsEnumerable(dt), (Func <DataRow, bool>)(x => DataRowExtensions.Field <string>(x, "liq_estid").Equals("PM") || DataRowExtensions.Field <string>(x, "liq_estid").Equals("PF"))));
                return(dt1);

                //return DataTableExtensions.CopyToDataTable<DataRow>((IEnumerable<DataRow>)EnumerableRowCollectionExtensions.Where<DataRow>(DataTableExtensions.AsEnumerable(dt), (Func<DataRow, bool>)(x => DataRowExtensions.Field<string>(x, "liq_estid").Equals("PF"))));
            }
            catch
            {
                return(new DataTable());
            }
        }
Ejemplo n.º 4
0
 public void CopyToDataTable_NullTable_ThrowsArgumentNullException()
 {
     AssertExtensions.Throws <ArgumentNullException>("table", () => DataTableExtensions.CopyToDataTable(new DataRow[0], null, LoadOption.OverwriteChanges));
     AssertExtensions.Throws <ArgumentNullException>("table", () => DataTableExtensions.CopyToDataTable(new DataRow[0], null, LoadOption.OverwriteChanges, null));
 }
Ejemplo n.º 5
0
 public void CopyToDataTable_NullSource_ThrowsArgumentNullException()
 {
     AssertExtensions.Throws <ArgumentNullException>("source", () => DataTableExtensions.CopyToDataTable <DataRow>(null));
     AssertExtensions.Throws <ArgumentNullException>("source", () => DataTableExtensions.CopyToDataTable <DataRow>(null, new DataTable(), LoadOption.OverwriteChanges));
     AssertExtensions.Throws <ArgumentNullException>("source", () => DataTableExtensions.CopyToDataTable <DataRow>(null, new DataTable(), LoadOption.OverwriteChanges, null));
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Загрузка данных из DBF
        /// </summary>
        /// <param name="dtDbfData">Таблица с данными dbf</param>
        /// <returns>Результат загрузки</returns>
        private bool GetCheckDbfData(ref DataTable dtDbfData)
        {
            bool   isExcep     = false;
            string pathToFiles = Parameters.hConnect.GetPathToDbf(1);

            if (pathToFiles != string.Empty && pathToFiles.Trim().Length > 0)
            {
                string fileName = dtpDate.Value.Year.ToString()
                                  + dtpDate.Value.Month.ToString().PadLeft(2, '0')
                                  + dtpDate.Value.Day.ToString().PadLeft(2, '0')
                                  + ".dbf";

                pathToFiles = pathToFiles + "\\" + fileName;

                FileInfo fiDbf = new FileInfo(pathToFiles);
                if (!fiDbf.Exists)
                {
                    MessageBox.Show("Файл " + pathToFiles + "\n не найден.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    return(false);
                }

                //Копируем файл в рабочую директорию
                try
                {
                    fiDbf.CopyTo(Application.StartupPath + "\\" + fileName, true);
                }
                catch (System.Security.SecurityException)
                {
                    isExcep = true;
                }
                catch (UnauthorizedAccessException)
                {
                    isExcep = true;
                }

                if (isExcep)
                {
                    MessageBox.Show("Не удалось скопировать файл " + fileName, "Предупреждение.", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    return(false);
                }

                //Заполняем таблицу данными из dbf
                DBFWorker dbfWorker = new DBFWorker(Application.StartupPath + "\\" + fileName);
                dbfWorker.ExecuteCommand("PACK " + fileName);
                dtDbfData = dbfWorker.ExecuteCommand("SELECT tbl.*, " +
                                                     "(SELECT COUNT(*) FROM " + fileName + " WHERE Num_ecr = tbl.Num_ecr AND Num_ch = tbl.Num_ch AND F3 = tbl.F3 AND Num_op = tbl.Num_op AND F5 = tbl.F5 AND F4 = tbl.F4) AS cnt " +
                                                     //"IIF(INT(VAL(ALLTRIM(Num_op))) = 2 OR INT(VAL(ALLTRIM(Num_op))) = 21,0, F4) AS cval " +
                                                     "From " + fileName + " AS tbl WHERE INT(VAL(ALLTRIM(Num_op))) IN (1, 4, 32, 330, 132, 9, 21, 2, 0)");
                dtDbfData.Columns.Add("opType", typeof(int));
                int numOp;

                //обновляем коды операций
                foreach (DataRow drDbf in dtDbfData.Rows)
                {
                    if (int.TryParse(drDbf["Num_op"].ToString(), out numOp))
                    {
                        drDbf["opType"] = 0;
                        switch (numOp)
                        {
                        case 1:
                            drDbf["Num_op"] = 504;
                            break;

                        case 4:
                            drDbf["Num_op"] = 505;
                            break;

                        case 32:
                            drDbf["Num_op"] = 508;
                            break;

                        case 330:
                            drDbf["Num_op"] = 501;
                            break;

                        case 132:
                            drDbf["Num_op"] = 507;
                            break;

                        case 9:
                            drDbf["Num_op"] = 524;
                            break;

                        case 21:
                            drDbf["Num_op"] = 509;
                            drDbf["opType"] = 21;
                            break;

                        case 2:
                            drDbf["Num_op"] = 509;
                            drDbf["opType"] = 2;
                            break;

                        case 0:
                            drDbf["Num_op"] = 512;
                            break;
                        }
                    }
                }

                dtDbfData.AcceptChanges();

                //Добавляем анулированные чеки для записей valid = 0 и op_code != 0
                var nullCheck = (from dbf in dtDbfData.AsEnumerable()
                                 where !dbf.Field <bool>("F7") && (int.Parse(dbf.Field <string>("Num_op")) != 512)
                                 select dbf).Distinct();

                if (nullCheck.Count() != 0)
                {
                    DataTable dtNullCheck = DataTableExtensions.CopyToDataTable <DataRow>(nullCheck);

                    foreach (DataRow row in dtNullCheck.Rows)
                    {
                        row["cnt"]    = 1;
                        row["Num_op"] = "512";
                    }

                    dtDbfData.Merge(dtNullCheck);
                }

                return(true);
            }
            else
            {
                MessageBox.Show("Не указан путь\nк файлу с чеками.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

            return(false);
        }