Ejemplo n.º 1
0
        //Done on background thread
        static private void UploadFile(string path)
        {
            Byte[] contents;
            try
            {
                contents = File.ReadAllBytes(path);
            }
            catch (Exception ex)
            {
                Debug.Print("Failed to read file contents.  " + ex.Message);
                return;
            }
            var db   = new FishTaggingDataContext();
            var file = new RawDataFile
            {
                FileName   = Path.GetFileName(path),
                FolderName = Path.GetDirectoryName(path),
                Contents   = contents
            };

            db.RawDataFiles.InsertOnSubmit(file);
            try
            {
                db.SubmitChanges();
            }
            catch (Exception ex)
            {
                Debug.Print("Failed to submit file.  " + ex.Message);
            }
        }
Ejemplo n.º 2
0
        public void Parse_Address(string dbPath, int pageID)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("AddressID"),
                RawType.NVarchar("AddressLine1"),
                RawType.NVarchar("AddressLine2"),
                RawType.NVarchar("City"),
                RawType.NVarchar("StateProvince"),
                RawType.NVarchar("CountryRegion"),
                RawType.NVarchar("PostalCode"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(9, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(9, result.AddressID);
            Assert.AreEqual("8713 Yosemite Ct.", result.AddressLine1);
            Assert.AreEqual(null, result.AddressLine2);
            Assert.AreEqual("Bothell", result.City);
            Assert.AreEqual("Washington", result.StateProvince);
            Assert.AreEqual("United States", result.CountryRegion);
            Assert.AreEqual("98011", result.PostalCode);
            Assert.AreEqual(new Guid("268af621-76d7-4c78-9441-144fd139821a"), result.rowguid);
            Assert.AreEqual(new DateTime(2002, 07, 01), result.ModifiedDate);
        }
Ejemplo n.º 3
0
        public void Parse_SalesOrderDetail(string dbPath, int pageID)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("SalesOrderID"),
                RawType.Int("SalesOrderDetailID"),
                RawType.SmallInt("OrderQty"),
                RawType.Int("ProductID"),
                RawType.Money("UnitPrice"),
                RawType.Money("UnitPriceDiscount"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(8, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(71774, result.SalesOrderID);
            Assert.AreEqual(110562, result.SalesOrderDetailID);
            Assert.AreEqual(1, result.OrderQty);
            Assert.AreEqual(836, result.ProductID);
            Assert.AreEqual(356.898, result.UnitPrice);
            Assert.AreEqual(0.00, result.UnitPriceDiscount);
            Assert.AreEqual(new Guid("e3a1994c-7a68-4ce8-96a3-77fdd3bbd730"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2004-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 4
0
        public void Parse_Header_2005()
        {
            var db = new RawDataFile(AW2005Path);
            var header = db.GetPage(118).Header;

            Assert.AreEqual(96, header.RawBytes.Count);
            Assert.AreEqual(8040, header.FreeCnt);
            Assert.AreEqual(150, header.FreeData);
            Assert.AreEqual(33280, header.FlagBits);
            Assert.AreEqual("(17:858:20)", header.Lsn);
            Assert.AreEqual(86, header.ObjectID);
            Assert.AreEqual(PageType.Data, header.Type);
            Assert.AreEqual(21, header.Pminlen);
            Assert.AreEqual(256, header.IndexID);
            Assert.AreEqual(0x4, header.TypeFlagBits);
            Assert.AreEqual(1, header.SlotCnt);
            Assert.AreEqual("(0:0)", header.XdesID);
            Assert.AreEqual(0, header.XactReserved);
            Assert.AreEqual(0, header.ReservedCnt);
            Assert.AreEqual(0, header.Level);
            Assert.AreEqual(1, header.HeaderVersion);
            Assert.AreEqual(0, header.GhostRecCnt);
            Assert.AreEqual(0, header.NextPageFileID);
            Assert.AreEqual(0, header.NextPageID);
            Assert.AreEqual(0, header.PreviousPageFileID);
            Assert.AreEqual(0, header.PreviousPageID);
            Assert.AreEqual(118, header.PageID);
            Assert.AreEqual(1, header.FileID);
            Assert.AreEqual(new [] { 0xDA, 0xC1, 0x11, 0x61 }, header.Checksum.ToArray());
        }
Ejemplo n.º 5
0
 //Done on background thread
 private static void UploadFile(string path)
 {
     Byte[] contents;
     try
     {
         contents = File.ReadAllBytes(path);
     }
     catch (Exception ex)
     {
         Debug.Print("Failed to read file contents.  "+ ex.Message);
         return;
     }
     var db = new FishTaggingDataContext();
     var file = new RawDataFile
     {
         FileName = Path.GetFileName(path),
         FolderName = Path.GetDirectoryName(path),
         Contents = contents
     };
     db.RawDataFiles.InsertOnSubmit(file);
     try
     {
         db.SubmitChanges();
     }
     catch (Exception ex)
     {
         Debug.Print("Failed to submit file.  " + ex.Message);
     }
 }
Ejemplo n.º 6
0
        public void Parse_Header_2008R2()
        {
            var db = new RawDataFile(AW2008R2Path);
            var header = db.GetPage(184).Header;

            Assert.AreEqual(96, header.RawBytes.Count);
            Assert.AreEqual(8038, header.FreeCnt);
            Assert.AreEqual(152, header.FreeData);
            Assert.AreEqual(544, header.FlagBits);
            Assert.AreEqual("(20:577:120)", header.Lsn);
            Assert.AreEqual(33, header.ObjectID);
            Assert.AreEqual(PageType.Data, header.Type);
            Assert.AreEqual(21, header.Pminlen);
            Assert.AreEqual(256, header.IndexID);
            Assert.AreEqual(0x0, header.TypeFlagBits);
            Assert.AreEqual(1, header.SlotCnt);
            Assert.AreEqual("(0:572)", header.XdesID);
            Assert.AreEqual(0, header.XactReserved);
            Assert.AreEqual(0, header.ReservedCnt);
            Assert.AreEqual(0, header.Level);
            Assert.AreEqual(1, header.HeaderVersion);
            Assert.AreEqual(0, header.GhostRecCnt);
            Assert.AreEqual(0, header.NextPageFileID);
            Assert.AreEqual(0, header.NextPageID);
            Assert.AreEqual(0, header.PreviousPageFileID);
            Assert.AreEqual(0, header.PreviousPageID);
            Assert.AreEqual(184, header.PageID);
            Assert.AreEqual(1, header.FileID);
            Assert.AreEqual(new [] { 0xC8, 0x00, 0xBD, 0xBD }, header.Checksum.ToArray());
        }
Ejemplo n.º 7
0
        public void Parse_Header_2008()
        {
            var db = new RawDataFile(AW2008Path);
            var header = db.GetPage(187).Header;

            Assert.AreEqual(96, header.RawBytes.Count);
            Assert.AreEqual(8038, header.FreeCnt);
            Assert.AreEqual(152, header.FreeData);
            Assert.AreEqual(33280, header.FlagBits);
            Assert.AreEqual("(30:848:19)", header.Lsn);
            Assert.AreEqual(31, header.ObjectID);
            Assert.AreEqual(PageType.Data, header.Type);
            Assert.AreEqual(21, header.Pminlen);
            Assert.AreEqual(256, header.IndexID);
            Assert.AreEqual(0x4, header.TypeFlagBits);
            Assert.AreEqual(1, header.SlotCnt);
            Assert.AreEqual("(0:0)", header.XdesID);
            Assert.AreEqual(0, header.XactReserved);
            Assert.AreEqual(0, header.ReservedCnt);
            Assert.AreEqual(0, header.Level);
            Assert.AreEqual(1, header.HeaderVersion);
            Assert.AreEqual(0, header.GhostRecCnt);
            Assert.AreEqual(0, header.NextPageFileID);
            Assert.AreEqual(0, header.NextPageID);
            Assert.AreEqual(0, header.PreviousPageFileID);
            Assert.AreEqual(0, header.PreviousPageID);
            Assert.AreEqual(187, header.PageID);
            Assert.AreEqual(1, header.FileID);
            Assert.AreEqual(new [] { 0xCA, 0x80, 0x15, 0xFC }, header.Checksum.ToArray());
        }
Ejemplo n.º 8
0
        public void sysschobjs()
        {
            var db    = new RawDataFile(AW2012Path);
            var pages = db.Pages.Where(x => x.Header.ObjectID == SQL2012Sysschobjs.ObjectID && x.Header.Type == PageType.Data);
            var rows  = RawColumnParser.Parse(pages, SQL2012Sysschobjs.Schema).Select(SQL2012Sysschobjs.Row).ToList();

            // Aggregates
            Assert.AreEqual(2291, rows.Count);
            Assert.AreEqual(48296, (int)rows.Average(x => x.status));
            Assert.AreEqual(-394768470, (long)rows.Average(x => x.id));

            // Individual rows
            var testRow = rows.Single(x => x.id == -93184835);

            Assert.AreEqual("sp_helpsrvrolemember", testRow.name);
            Assert.AreEqual(Convert.ToDateTime("2011-11-04 21:12:23.257"), testRow.created);

            testRow = rows.Single(x => x.id == 60);
            Assert.AreEqual("sysobjvalues", testRow.name);
            Assert.AreEqual(Convert.ToDateTime("2008-07-09 16:20:00.633"), testRow.modified);

            testRow = rows.Single(x => x.id == 1977058079);
            Assert.AreEqual("QueryNotificationErrorsQueue", testRow.name);
            Assert.AreEqual(Convert.ToDateTime("2008-07-09 16:20:00.913"), testRow.created);
        }
Ejemplo n.º 9
0
        public void Parse_Address(string dbPath, int pageID)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("AddressID"),
                RawType.NVarchar("AddressLine1"),
                RawType.NVarchar("AddressLine2"),
                RawType.NVarchar("City"),
                RawType.NVarchar("StateProvince"),
                RawType.NVarchar("CountryRegion"),
                RawType.NVarchar("PostalCode"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(9, ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(9, result.AddressID);
            Assert.AreEqual("8713 Yosemite Ct.", result.AddressLine1);
            Assert.AreEqual(null, result.AddressLine2);
            Assert.AreEqual("Bothell", result.City);
            Assert.AreEqual("Washington", result.StateProvince);
            Assert.AreEqual("United States", result.CountryRegion);
            Assert.AreEqual("98011", result.PostalCode);
            Assert.AreEqual(new Guid("268af621-76d7-4c78-9441-144fd139821a"), result.rowguid);
            Assert.AreEqual(new DateTime(2002, 07, 01), result.ModifiedDate);
        }
Ejemplo n.º 10
0
        public void Parse_Header_2005()
        {
            var db     = new RawDataFile(AW2005Path);
            var header = db.GetPage(118).Header;

            Assert.AreEqual(96, header.RawBytes.Count);
            Assert.AreEqual(8040, header.FreeCnt);
            Assert.AreEqual(150, header.FreeData);
            Assert.AreEqual(33280, header.FlagBits);
            Assert.AreEqual("(17:858:20)", header.Lsn);
            Assert.AreEqual(86, header.ObjectID);
            Assert.AreEqual(PageType.Data, header.Type);
            Assert.AreEqual(21, header.Pminlen);
            Assert.AreEqual(256, header.IndexID);
            Assert.AreEqual(0x4, header.TypeFlagBits);
            Assert.AreEqual(1, header.SlotCnt);
            Assert.AreEqual("(0:0)", header.XdesID);
            Assert.AreEqual(0, header.XactReserved);
            Assert.AreEqual(0, header.ReservedCnt);
            Assert.AreEqual(0, header.Level);
            Assert.AreEqual(1, header.HeaderVersion);
            Assert.AreEqual(0, header.GhostRecCnt);
            Assert.AreEqual(0, header.NextPageFileID);
            Assert.AreEqual(0, header.NextPageID);
            Assert.AreEqual(0, header.PreviousPageFileID);
            Assert.AreEqual(0, header.PreviousPageID);
            Assert.AreEqual(118, header.PageID);
            Assert.AreEqual(1, header.FileID);
            Assert.AreEqual(new [] { 0xDA, 0xC1, 0x11, 0x61 }, header.Checksum.ToArray());
        }
Ejemplo n.º 11
0
        public void Parse_Header_2008R2()
        {
            var db     = new RawDataFile(AW2008R2Path);
            var header = db.GetPage(184).Header;

            Assert.AreEqual(96, header.RawBytes.Count);
            Assert.AreEqual(8038, header.FreeCnt);
            Assert.AreEqual(152, header.FreeData);
            Assert.AreEqual(544, header.FlagBits);
            Assert.AreEqual("(20:577:120)", header.Lsn);
            Assert.AreEqual(33, header.ObjectID);
            Assert.AreEqual(PageType.Data, header.Type);
            Assert.AreEqual(21, header.Pminlen);
            Assert.AreEqual(256, header.IndexID);
            Assert.AreEqual(0x0, header.TypeFlagBits);
            Assert.AreEqual(1, header.SlotCnt);
            Assert.AreEqual("(0:572)", header.XdesID);
            Assert.AreEqual(0, header.XactReserved);
            Assert.AreEqual(0, header.ReservedCnt);
            Assert.AreEqual(0, header.Level);
            Assert.AreEqual(1, header.HeaderVersion);
            Assert.AreEqual(0, header.GhostRecCnt);
            Assert.AreEqual(0, header.NextPageFileID);
            Assert.AreEqual(0, header.NextPageID);
            Assert.AreEqual(0, header.PreviousPageFileID);
            Assert.AreEqual(0, header.PreviousPageID);
            Assert.AreEqual(184, header.PageID);
            Assert.AreEqual(1, header.FileID);
            Assert.AreEqual(new [] { 0xC8, 0x00, 0xBD, 0xBD }, header.Checksum.ToArray());
        }
Ejemplo n.º 12
0
        public void Parse_Header_2008()
        {
            var db     = new RawDataFile(AW2008Path);
            var header = db.GetPage(187).Header;

            Assert.AreEqual(96, header.RawBytes.Count);
            Assert.AreEqual(8038, header.FreeCnt);
            Assert.AreEqual(152, header.FreeData);
            Assert.AreEqual(33280, header.FlagBits);
            Assert.AreEqual("(30:848:19)", header.Lsn);
            Assert.AreEqual(31, header.ObjectID);
            Assert.AreEqual(PageType.Data, header.Type);
            Assert.AreEqual(21, header.Pminlen);
            Assert.AreEqual(256, header.IndexID);
            Assert.AreEqual(0x4, header.TypeFlagBits);
            Assert.AreEqual(1, header.SlotCnt);
            Assert.AreEqual("(0:0)", header.XdesID);
            Assert.AreEqual(0, header.XactReserved);
            Assert.AreEqual(0, header.ReservedCnt);
            Assert.AreEqual(0, header.Level);
            Assert.AreEqual(1, header.HeaderVersion);
            Assert.AreEqual(0, header.GhostRecCnt);
            Assert.AreEqual(0, header.NextPageFileID);
            Assert.AreEqual(0, header.NextPageID);
            Assert.AreEqual(0, header.PreviousPageFileID);
            Assert.AreEqual(0, header.PreviousPageID);
            Assert.AreEqual(187, header.PageID);
            Assert.AreEqual(1, header.FileID);
            Assert.AreEqual(new [] { 0xCA, 0x80, 0x15, 0xFC }, header.Checksum.ToArray());
        }
Ejemplo n.º 13
0
        private void ShowFile(RawDataFile file)
        {
            Cursor.Current = Cursors.WaitCursor;
            var form = new FileContentsForm(file.Contents.ToArray(), file.FileName);

            Cursor.Current = Cursors.Default;
            form.Show(this);
        }
Ejemplo n.º 14
0
        public void Parse_Page(string dbPath, int pageID)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);

            Assert.AreEqual(pageID, page.PageID);
            Assert.AreEqual(8192, page.RawBytes.Length);
            Assert.AreEqual(25, page.SlotArray.Count());
            Assert.AreEqual(25, page.Records.Count());
        }
Ejemplo n.º 15
0
        public void Parse_Page(string dbPath, int pageID)
        {
            var db   = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);

            Assert.AreEqual(pageID, page.PageID);
            Assert.AreEqual(8192, page.RawBytes.Length);
            Assert.AreEqual(25, page.SlotArray.Count());
            Assert.AreEqual(25, page.Records.Count());
        }
Ejemplo n.º 16
0
        public void Parse_SalesOrderHeader(string dbPath, int pageID, int customerID)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("SalesOrderID"),
                RawType.TinyInt("RevisionNumber"),
                RawType.DateTime("OrderDate"),
                RawType.DateTime("DueDate"),
                RawType.DateTime("ShipDate"),
                RawType.TinyInt("Status"),
                RawType.Bit("OnlineOrderFlag"),
                RawType.NVarchar("PurchaseOrderNumber"),
                RawType.NVarchar("AccountNumber"),
                RawType.Int("CustomerID"),
                RawType.Int("ShipToAddressID"),
                RawType.Int("BillToAddressID"),
                RawType.NVarchar("ShipMethod"),
                RawType.Varchar("CreditCardApprovalCode"),
                RawType.Money("SubTotal"),
                RawType.Money("TaxAmt"),
                RawType.Money("Freight"),
                RawType.NVarchar("Comment"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(20, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(71774, result.SalesOrderID);
            Assert.AreEqual(1, result.RevisionNumber);
            Assert.AreEqual(Convert.ToDateTime("2004-06-01"), result.OrderDate);
            Assert.AreEqual(Convert.ToDateTime("2004-06-13"), result.DueDate);
            Assert.AreEqual(Convert.ToDateTime("2004-06-08"), result.ShipDate);
            Assert.AreEqual(5, result.Status);
            Assert.AreEqual(false, result.OnlineOrderFlag);
            Assert.AreEqual("PO348186287", result.PurchaseOrderNumber);
            Assert.AreEqual("10-4020-000609", result.AccountNumber);
            Assert.AreEqual(customerID, result.CustomerID);
            Assert.AreEqual(1092, result.ShipToAddressID);
            Assert.AreEqual(1092, result.BillToAddressID);
            Assert.AreEqual("CARGO TRANSPORT 5", result.ShipMethod);
            Assert.AreEqual(null, result.CreditCardApprovalCode);
            Assert.AreEqual(880.3484, result.SubTotal);
            Assert.AreEqual(70.4279, result.TaxAmt);
            Assert.AreEqual(22.0087, result.Freight);
            Assert.AreEqual(null, result.Comment);
            Assert.AreEqual(new Guid("89e42cdc-8506-48a2-b89b-eb3e64e3554e"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2004-06-08"), result.ModifiedDate);
        }
Ejemplo n.º 17
0
        public void Parse_Product(string dbPath, int pageID)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductID"),
                RawType.NVarchar("Name"),
                RawType.NVarchar("ProductNumber"),
                RawType.NVarchar("Color"),
                RawType.Money("StandardCost"),
                RawType.Money("ListPrice"),
                RawType.NVarchar("Size"),
                RawType.Decimal("Weight", 8, 2),
                RawType.Int("ProductCategoryID"),
                RawType.Int("ProductModelID"),
                RawType.DateTime("SellStartDate"),
                RawType.DateTime("SellEndDate"),
                RawType.DateTime("DiscontinuedDate"),
                RawType.VarBinary("ThumbNailPhoto"),
                RawType.NVarchar("ThumbnailPhotoFileName"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(17, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(680, result.ProductID);
            Assert.AreEqual("HL Road Frame - Black, 58", result.Name);
            Assert.AreEqual("FR-R92B-58", result.ProductNumber);
            Assert.AreEqual("Black", result.Color);
            Assert.AreEqual(1059.31, result.StandardCost);
            Assert.AreEqual(1431.50, result.ListPrice);
            Assert.AreEqual("58", result.Size);
            Assert.AreEqual(1016.04, result.Weight);
            Assert.AreEqual(18, result.ProductCategoryID);
            Assert.AreEqual(6, result.ProductModelID);
            Assert.AreEqual(Convert.ToDateTime("1998-06-01"), result.SellStartDate);
            Assert.AreEqual(null, result.SellEndDate);
            Assert.AreEqual(null, result.DiscontinuedDate);
            Assert.AreEqual(1077, result.ThumbNailPhoto.Length);
            Assert.AreEqual("no_image_available_small.gif", result.ThumbnailPhotoFileName);
            Assert.AreEqual(new Guid("43dd68d6-14a4-461f-9069-55309d90ea7e"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2004-03-11 10:01:36.827"), result.ModifiedDate);
        }
Ejemplo n.º 18
0
        public void Parse_ProductDescription(string dbPath, int pageID)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductDescriptionID"),
                RawType.NVarchar("Description"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(4, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(3, result.ProductDescriptionID);
            Assert.AreEqual("Chromoly steel.", result.Description);
            Assert.AreEqual(new Guid("301eed3a-1a82-4855-99cb-2afe8290d641"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2003-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 19
0
        public void Parse_BuildVersion(string dbPath, int pageID, string databaseVersion, string versionDate)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.TinyInt("SystemInformationID"),
                RawType.NVarchar("Database Version"),
                RawType.DateTime("VersionDate"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(4, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(1, result.SystemInformationID);
            Assert.AreEqual(databaseVersion, ((Dictionary <string, object>)result)["Database Version"]);
            Assert.AreEqual(Convert.ToDateTime(versionDate), result.VersionDate);
            Assert.AreEqual(Convert.ToDateTime(versionDate), result.ModifiedDate);
        }
Ejemplo n.º 20
0
        public void Parse_BuildVersion(string dbPath, int pageID, string databaseVersion, string versionDate)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.TinyInt("SystemInformationID"),
                RawType.NVarchar("Database Version"),
                RawType.DateTime("VersionDate"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(4,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(1, result.SystemInformationID);
            Assert.AreEqual(databaseVersion, ((Dictionary<string, object>)result)["Database Version"]);
            Assert.AreEqual(Convert.ToDateTime(versionDate), result.VersionDate);
            Assert.AreEqual(Convert.ToDateTime(versionDate), result.ModifiedDate);
        }
Ejemplo n.º 21
0
        public void Parse_Customer(string dbPath, int pageID, string modifiedDate)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("CustomerID"),
                RawType.Bit("NameStyle"),
                RawType.NVarchar("Title"),
                RawType.NVarchar("FirstName"),
                RawType.NVarchar("MiddleName"),
                RawType.NVarchar("LastName"),
                RawType.NVarchar("Suffix"),
                RawType.NVarchar("CompanyName"),
                RawType.NVarchar("SalesPerson"),
                RawType.NVarchar("EmailAddress"),
                RawType.NVarchar("Phone"),
                RawType.Varchar("PasswordHash"),
                RawType.Varchar("PasswordSalt"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(15, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(1, result.CustomerID);
            Assert.AreEqual(false, result.NameStyle);
            Assert.AreEqual("Mr.", result.Title);
            Assert.AreEqual("Orlando", result.FirstName);
            Assert.AreEqual("N.", result.MiddleName);
            Assert.AreEqual("Gee", result.LastName);
            Assert.AreEqual(null, result.Suffix);
            Assert.AreEqual("A Bike Store", result.CompanyName);
            Assert.AreEqual(@"adventure-works\pamela0", result.SalesPerson);
            Assert.AreEqual("*****@*****.**", result.EmailAddress);
            Assert.AreEqual("245-555-0173", result.Phone);
            Assert.AreEqual("L/Rlwxzp4w7RWmEgXX+/A7cXaePEPcp+KwQhl2fJL7w=", result.PasswordHash);
            Assert.AreEqual("1KjXYs4=", result.PasswordSalt);
            Assert.AreEqual(new Guid("3f5ae95e-b87d-4aed-95b4-c3797afcb74f"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime(modifiedDate), result.ModifiedDate);
        }
Ejemplo n.º 22
0
        public void Parse_Customer(string dbPath, int pageID, string modifiedDate)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("CustomerID"),
                RawType.Bit("NameStyle"),
                RawType.NVarchar("Title"),
                RawType.NVarchar("FirstName"),
                RawType.NVarchar("MiddleName"),
                RawType.NVarchar("LastName"),
                RawType.NVarchar("Suffix"),
                RawType.NVarchar("CompanyName"),
                RawType.NVarchar("SalesPerson"),
                RawType.NVarchar("EmailAddress"),
                RawType.NVarchar("Phone"),
                RawType.Varchar("PasswordHash"),
                RawType.Varchar("PasswordSalt"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(15, ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(1, result.CustomerID);
            Assert.AreEqual(false, result.NameStyle);
            Assert.AreEqual("Mr.", result.Title);
            Assert.AreEqual("Orlando", result.FirstName);
            Assert.AreEqual("N.", result.MiddleName);
            Assert.AreEqual("Gee", result.LastName);
            Assert.AreEqual(null, result.Suffix);
            Assert.AreEqual("A Bike Store", result.CompanyName);
            Assert.AreEqual(@"adventure-works\pamela0", result.SalesPerson);
            Assert.AreEqual("*****@*****.**", result.EmailAddress);
            Assert.AreEqual("245-555-0173", result.Phone);
            Assert.AreEqual("L/Rlwxzp4w7RWmEgXX+/A7cXaePEPcp+KwQhl2fJL7w=", result.PasswordHash);
            Assert.AreEqual("1KjXYs4=", result.PasswordSalt);
            Assert.AreEqual(new Guid("3f5ae95e-b87d-4aed-95b4-c3797afcb74f"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime(modifiedDate), result.ModifiedDate);
        }
Ejemplo n.º 23
0
        public void Parse(string dbPath, int pageID, byte secondNullBitmapByte, string title)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = (RawPrimaryRecord)page.Records.First();

            Assert.AreEqual(true, record.HasNullBitmap);
            Assert.AreEqual(true, record.HasVariableLengthColumns);
            Assert.AreEqual(false, record.HasVersioningInformation);
            Assert.AreEqual(false, record.IsGhostForwardedRecord);
            Assert.AreEqual(0x30, record.RawStatusByteA);
            Assert.AreEqual(0x00, record.RawStatusByteB);
            Assert.AreEqual(false, record.Version);
            Assert.AreEqual(29, record.FixedLengthData.Count);
            Assert.AreEqual(15, record.NullBitmapColumnCount);
            Assert.AreEqual(new[] { 0x40, secondNullBitmapByte }, record.NullBitmapRawBytes.ToArray());
            Assert.AreEqual(11, record.NumberOfVariableLengthOffsetArrayEntries);
            Assert.AreEqual(11, record.VariableLengthOffsetValues.Count());
            Assert.AreEqual(6, record.VariableLengthOffsetValues.ToArray()[0].Count);
            Assert.AreEqual(title, Encoding.Unicode.GetString(record.VariableLengthOffsetValues.ToArray()[0].ToArray()));
        }
Ejemplo n.º 24
0
        public void Parse_CustomerAddress(string dbPath, int pageID, int customerID, int addressID, string rowguid, string modifiedDate)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("CustomerID"),
                RawType.Int("AddressID"),
                RawType.NVarchar("AddressType"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(5, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(customerID, result.CustomerID);
            Assert.AreEqual(addressID, result.AddressID);
            Assert.AreEqual("Main Office", result.AddressType);
            Assert.AreEqual(new Guid(rowguid), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime(modifiedDate), result.ModifiedDate);
        }
Ejemplo n.º 25
0
        public void Parse_ProductCategory(string dbPath, int pageID)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductCategoryID"),
                RawType.Int("ParentProductCategoryID"),
                RawType.NVarchar("Name"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(5, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(1, result.ProductCategoryID);
            Assert.AreEqual(null, result.ParentProductCategoryID);
            Assert.AreEqual("Bikes", result.Name);
            Assert.AreEqual(new Guid("cfbda25c-df71-47a7-b81b-64ee161aa37c"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("1998-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 26
0
        public void Parse(string dbPath, int pageID, byte secondNullBitmapByte, string title)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = (RawPrimaryRecord)page.Records.First();

            Assert.AreEqual(true, record.HasNullBitmap);
            Assert.AreEqual(true, record.HasVariableLengthColumns);
            Assert.AreEqual(false, record.HasVersioningInformation);
            Assert.AreEqual(false, record.IsGhostForwardedRecord);
            Assert.AreEqual(0x30, record.RawStatusByteA);
            Assert.AreEqual(0x00, record.RawStatusByteB);
            Assert.AreEqual(false, record.Version);
            Assert.AreEqual(29, record.FixedLengthData.Count);
            Assert.AreEqual(15, record.NullBitmapColumnCount);
            Assert.AreEqual(new[] { 0x40, secondNullBitmapByte }, record.NullBitmapRawBytes.ToArray());
            Assert.AreEqual(11, record.NumberOfVariableLengthOffsetArrayEntries);
            Assert.AreEqual(11, record.VariableLengthOffsetValues.Count());
            Assert.AreEqual(6, record.VariableLengthOffsetValues.ToArray()[0].Count);
            Assert.AreEqual(title, Encoding.Unicode.GetString(record.VariableLengthOffsetValues.ToArray()[0].ToArray()));
        }
Ejemplo n.º 27
0
        public void Parse_ProductModel(string dbPath, int pageID)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductModelID"),
                RawType.NVarchar("Name"),
                RawType.Xml("CatalogDescription"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(5, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(1, result.ProductModelID);
            Assert.AreEqual("Classic Vest", result.Name);
            Assert.AreEqual(null, result.CatalogDescription);
            Assert.AreEqual(new Guid("29321d47-1e4c-4aac-887c-19634328c25e"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2003-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 28
0
        public void Parse_ProductModelProductDescription(string dbPath, int pageID, string rowguid)
        {
            var db     = new RawDataFile(dbPath);
            var page   = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductModelID"),
                RawType.Int("ProductDescriptionID"),
                RawType.NChar("Culture", 6),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(5, ((Dictionary <string, object>)result).Count);
            Assert.AreEqual(1, result.ProductModelID);
            Assert.AreEqual(1199, result.ProductDescriptionID);
            Assert.AreEqual("en".PadRight(6, ' '), result.Culture);
            Assert.AreEqual(new Guid(rowguid), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2003-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 29
0
        public void sysallocunits()
        {
            var db = new RawDataFile(AW2012Path);
            var pages = db.Pages.Where(x => x.Header.ObjectID == SQL2012Sysallocunits.ObjectID && x.Header.Type == PageType.Data);
            var rows = RawColumnParser.Parse(pages, SQL2012Sysallocunits.Schema).Select(SQL2012Sysallocunits.Row).ToList();

            // Aggregates
            Assert.AreEqual(181, rows.Count);
            Assert.AreEqual(27335730062154916, (long)rows.Average(x => x.auid));
            Assert.AreEqual(3, (int)rows.Average(x => x.pcdata));

            // Individual rows
            var testRow = rows.Single(x => x.auid == 562949958533120);
            Assert.AreEqual(562949958533120, testRow.ownerid);
            Assert.AreEqual(0, testRow.pcdata);

            testRow = rows.Single(x => x.auid == 196608);
            Assert.AreEqual(1, testRow.type);
            Assert.AreEqual(17, testRow.pcreserved);
            Assert.AreEqual(13, testRow.pcused);
            Assert.AreEqual(new byte[] { 0x57, 0x00, 0x00, 0x00, 0x01, 0x00 }, testRow.pgroot);
        }
Ejemplo n.º 30
0
        public void syscolpars()
        {
            var db = new RawDataFile(AW2012Path);
            var pages = db.Pages.Where(x => x.Header.ObjectID == SQL2012Syscolpars.ObjectID && x.Header.Type == PageType.Data);
            var rows = RawColumnParser.Parse(pages, SQL2012Syscolpars.Schema).Select(SQL2012Syscolpars.Row).ToList();

            // Aggregates
            Assert.AreEqual(860, rows.Count);
            Assert.AreEqual(317769461, (int)rows.Average(x => x.id));
            Assert.AreEqual(105, (int)rows.Average(x => x.xtype));
            Assert.AreEqual(8, (int)rows.Average(x => x.name.Length));

            // Individual rows
            var testRow = rows.Single(x => x.id == 25 && x.colid == 12);
            Assert.AreEqual("bXVTDocidUseBaseT", testRow.name);
            Assert.AreEqual(48, testRow.utype);

            testRow = rows.Single(x => x.id == 73 && x.colid == 13);
            Assert.AreEqual("enddlgseq", testRow.name);
            Assert.AreEqual(127, testRow.utype);
            Assert.AreEqual(null, testRow.idtval);
        }
Ejemplo n.º 31
0
        public void sysallocunits()
        {
            var db    = new RawDataFile(AW2012Path);
            var pages = db.Pages.Where(x => x.Header.ObjectID == SQL2012Sysallocunits.ObjectID && x.Header.Type == PageType.Data);
            var rows  = RawColumnParser.Parse(pages, SQL2012Sysallocunits.Schema).Select(SQL2012Sysallocunits.Row).ToList();

            // Aggregates
            Assert.AreEqual(181, rows.Count);
            Assert.AreEqual(27335730062154916, (long)rows.Average(x => x.auid));
            Assert.AreEqual(3, (int)rows.Average(x => x.pcdata));

            // Individual rows
            var testRow = rows.Single(x => x.auid == 562949958533120);

            Assert.AreEqual(562949958533120, testRow.ownerid);
            Assert.AreEqual(0, testRow.pcdata);

            testRow = rows.Single(x => x.auid == 196608);
            Assert.AreEqual(1, testRow.type);
            Assert.AreEqual(17, testRow.pcreserved);
            Assert.AreEqual(13, testRow.pcused);
            Assert.AreEqual(new byte[] { 0x57, 0x00, 0x00, 0x00, 0x01, 0x00 }, testRow.pgroot);
        }
Ejemplo n.º 32
0
        public void syscolpars()
        {
            var db    = new RawDataFile(AW2012Path);
            var pages = db.Pages.Where(x => x.Header.ObjectID == SQL2012Syscolpars.ObjectID && x.Header.Type == PageType.Data);
            var rows  = RawColumnParser.Parse(pages, SQL2012Syscolpars.Schema).Select(SQL2012Syscolpars.Row).ToList();

            // Aggregates
            Assert.AreEqual(860, rows.Count);
            Assert.AreEqual(317769461, (int)rows.Average(x => x.id));
            Assert.AreEqual(105, (int)rows.Average(x => x.xtype));
            Assert.AreEqual(8, (int)rows.Average(x => x.name.Length));

            // Individual rows
            var testRow = rows.Single(x => x.id == 25 && x.colid == 12);

            Assert.AreEqual("bXVTDocidUseBaseT", testRow.name);
            Assert.AreEqual(48, testRow.utype);

            testRow = rows.Single(x => x.id == 73 && x.colid == 13);
            Assert.AreEqual("enddlgseq", testRow.name);
            Assert.AreEqual(127, testRow.utype);
            Assert.AreEqual(null, testRow.idtval);
        }
Ejemplo n.º 33
0
        public void sysrowsets()
        {
            var db = new RawDataFile(AW2012Path);
            var pages = db.Pages.Where(x => x.Header.ObjectID == SQL2012Sysrowsets.ObjectID && x.Header.Type == PageType.Data);
            var rows = RawColumnParser.Parse(pages, SQL2012Sysrowsets.Schema).Select(SQL2012Sysrowsets.Row).ToList();

            // Aggregates
            Assert.AreEqual(158, rows.Count);
            Assert.AreEqual(72057594041729024, rows.Max(x => x.rowsetid));
            Assert.AreEqual(196608, rows.Min(x => x.rowsetid));
            Assert.AreEqual(20827366792640280, (long)rows.Average(x => x.rowsetid));
            Assert.AreEqual(7662, (long)rows.Average(x => x.status));
            Assert.AreEqual(2266, (long)rows.Average(x => x.maxleaf));

            // Individual rows
            var testRow = rows.Single(x => x.rowsetid == 562949954535424);
            Assert.AreEqual(70, testRow.status);
            Assert.AreEqual(534, testRow.maxint);

            testRow = rows.Single(x => x.rowsetid == 72057594039697408);
            Assert.AreEqual(117575457, testRow.idmajor);
            Assert.AreEqual(1453, testRow.maxleaf);
        }
Ejemplo n.º 34
0
        public void sysrowsets()
        {
            var db    = new RawDataFile(AW2012Path);
            var pages = db.Pages.Where(x => x.Header.ObjectID == SQL2012Sysrowsets.ObjectID && x.Header.Type == PageType.Data);
            var rows  = RawColumnParser.Parse(pages, SQL2012Sysrowsets.Schema).Select(SQL2012Sysrowsets.Row).ToList();

            // Aggregates
            Assert.AreEqual(158, rows.Count);
            Assert.AreEqual(72057594041729024, rows.Max(x => x.rowsetid));
            Assert.AreEqual(196608, rows.Min(x => x.rowsetid));
            Assert.AreEqual(20827366792640280, (long)rows.Average(x => x.rowsetid));
            Assert.AreEqual(7662, (long)rows.Average(x => x.status));
            Assert.AreEqual(2266, (long)rows.Average(x => x.maxleaf));

            // Individual rows
            var testRow = rows.Single(x => x.rowsetid == 562949954535424);

            Assert.AreEqual(70, testRow.status);
            Assert.AreEqual(534, testRow.maxint);

            testRow = rows.Single(x => x.rowsetid == 72057594039697408);
            Assert.AreEqual(117575457, testRow.idmajor);
            Assert.AreEqual(1453, testRow.maxleaf);
        }
Ejemplo n.º 35
0
        public void sysschobjs()
        {
            var db = new RawDataFile(AW2012Path);
            var pages = db.Pages.Where(x => x.Header.ObjectID == SQL2012Sysschobjs.ObjectID && x.Header.Type == PageType.Data);
            var rows = RawColumnParser.Parse(pages, SQL2012Sysschobjs.Schema).Select(SQL2012Sysschobjs.Row).ToList();

            // Aggregates
            Assert.AreEqual(2291, rows.Count);
            Assert.AreEqual(48296, (int)rows.Average(x => x.status));
            Assert.AreEqual(-394768470, (long)rows.Average(x => x.id));

            // Individual rows
            var testRow = rows.Single(x => x.id == -93184835);
            Assert.AreEqual("sp_helpsrvrolemember", testRow.name);
            Assert.AreEqual(Convert.ToDateTime("2011-11-04 21:12:23.257"), testRow.created);

            testRow = rows.Single(x => x.id == 60);
            Assert.AreEqual("sysobjvalues", testRow.name);
            Assert.AreEqual(Convert.ToDateTime("2008-07-09 16:20:00.633"), testRow.modified);

            testRow = rows.Single(x => x.id == 1977058079);
            Assert.AreEqual("QueryNotificationErrorsQueue", testRow.name);
            Assert.AreEqual(Convert.ToDateTime("2008-07-09 16:20:00.913"), testRow.created);
        }
Ejemplo n.º 36
0
        public void Parse_CustomerAddress(string dbPath, int pageID, int customerID, int addressID, string rowguid, string modifiedDate)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("CustomerID"),
                RawType.Int("AddressID"),
                RawType.NVarchar("AddressType"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(5,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(customerID, result.CustomerID);
            Assert.AreEqual(addressID, result.AddressID);
            Assert.AreEqual("Main Office", result.AddressType);
            Assert.AreEqual(new Guid(rowguid), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime(modifiedDate), result.ModifiedDate);
        }
Ejemplo n.º 37
0
        public void Parse_Product(string dbPath, int pageID)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductID"),
                RawType.NVarchar("Name"),
                RawType.NVarchar("ProductNumber"),
                RawType.NVarchar("Color"),
                RawType.Money("StandardCost"),
                RawType.Money("ListPrice"),
                RawType.NVarchar("Size"),
                RawType.Decimal("Weight", 8, 2),
                RawType.Int("ProductCategoryID"),
                RawType.Int("ProductModelID"),
                RawType.DateTime("SellStartDate"),
                RawType.DateTime("SellEndDate"),
                RawType.DateTime("DiscontinuedDate"),
                RawType.VarBinary("ThumbNailPhoto"),
                RawType.NVarchar("ThumbnailPhotoFileName"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(17,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(680, result.ProductID);
            Assert.AreEqual("HL Road Frame - Black, 58", result.Name);
            Assert.AreEqual("FR-R92B-58", result.ProductNumber);
            Assert.AreEqual("Black", result.Color);
            Assert.AreEqual(1059.31, result.StandardCost);
            Assert.AreEqual(1431.50, result.ListPrice);
            Assert.AreEqual("58", result.Size);
            Assert.AreEqual(1016.04, result.Weight);
            Assert.AreEqual(18, result.ProductCategoryID);
            Assert.AreEqual(6, result.ProductModelID);
            Assert.AreEqual(Convert.ToDateTime("1998-06-01"), result.SellStartDate);
            Assert.AreEqual(null, result.SellEndDate);
            Assert.AreEqual(null, result.DiscontinuedDate);
            Assert.AreEqual(1077, result.ThumbNailPhoto.Length);
            Assert.AreEqual("no_image_available_small.gif", result.ThumbnailPhotoFileName);
            Assert.AreEqual(new Guid("43dd68d6-14a4-461f-9069-55309d90ea7e"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2004-03-11 10:01:36.827"), result.ModifiedDate);
        }
Ejemplo n.º 38
0
        public void Parse_ProductCategory(string dbPath, int pageID)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductCategoryID"),
                RawType.Int("ParentProductCategoryID"),
                RawType.NVarchar("Name"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(5,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(1, result.ProductCategoryID);
            Assert.AreEqual(null, result.ParentProductCategoryID);
            Assert.AreEqual("Bikes", result.Name);
            Assert.AreEqual(new Guid("cfbda25c-df71-47a7-b81b-64ee161aa37c"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("1998-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 39
0
        public void Constructor(string dbPath, int expectedPageCount)
        {
            var db = new RawDataFile(dbPath);

            Assert.AreEqual(expectedPageCount, db.Pages.Count());
        }
Ejemplo n.º 40
0
        public void Parse_ProductModel(string dbPath, int pageID)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductModelID"),
                RawType.NVarchar("Name"),
                RawType.Xml("CatalogDescription"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(5,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(1, result.ProductModelID);
            Assert.AreEqual("Classic Vest", result.Name);
            Assert.AreEqual(null, result.CatalogDescription);
            Assert.AreEqual(new Guid("29321d47-1e4c-4aac-887c-19634328c25e"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2003-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 41
0
        public void Parse_ProductModelProductDescription(string dbPath, int pageID, string rowguid)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductModelID"),
                RawType.Int("ProductDescriptionID"),
                RawType.NChar("Culture", 6),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(5,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(1, result.ProductModelID);
            Assert.AreEqual(1199, result.ProductDescriptionID);
            Assert.AreEqual("en".PadRight(6, ' '), result.Culture);
            Assert.AreEqual(new Guid(rowguid), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2003-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 42
0
        public void Parse_SalesOrderDetail(string dbPath, int pageID)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("SalesOrderID"),
                RawType.Int("SalesOrderDetailID"),
                RawType.SmallInt("OrderQty"),
                RawType.Int("ProductID"),
                RawType.Money("UnitPrice"),
                RawType.Money("UnitPriceDiscount"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(8,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(71774, result.SalesOrderID);
            Assert.AreEqual(110562, result.SalesOrderDetailID);
            Assert.AreEqual(1, result.OrderQty);
            Assert.AreEqual(836, result.ProductID);
            Assert.AreEqual(356.898, result.UnitPrice);
            Assert.AreEqual(0.00, result.UnitPriceDiscount);
            Assert.AreEqual(new Guid("e3a1994c-7a68-4ce8-96a3-77fdd3bbd730"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2004-06-01"), result.ModifiedDate);
        }
Ejemplo n.º 43
0
        public void Parse_SalesOrderHeader(string dbPath, int pageID, int customerID)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("SalesOrderID"),
                RawType.TinyInt("RevisionNumber"),
                RawType.DateTime("OrderDate"),
                RawType.DateTime("DueDate"),
                RawType.DateTime("ShipDate"),
                RawType.TinyInt("Status"),
                RawType.Bit("OnlineOrderFlag"),
                RawType.NVarchar("PurchaseOrderNumber"),
                RawType.NVarchar("AccountNumber"),
                RawType.Int("CustomerID"),
                RawType.Int("ShipToAddressID"),
                RawType.Int("BillToAddressID"),
                RawType.NVarchar("ShipMethod"),
                RawType.Varchar("CreditCardApprovalCode"),
                RawType.Money("SubTotal"),
                RawType.Money("TaxAmt"),
                RawType.Money("Freight"),
                RawType.NVarchar("Comment"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(20,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(71774, result.SalesOrderID);
            Assert.AreEqual(1, result.RevisionNumber);
            Assert.AreEqual(Convert.ToDateTime("2004-06-01"), result.OrderDate);
            Assert.AreEqual(Convert.ToDateTime("2004-06-13"), result.DueDate);
            Assert.AreEqual(Convert.ToDateTime("2004-06-08"), result.ShipDate);
            Assert.AreEqual(5, result.Status);
            Assert.AreEqual(false, result.OnlineOrderFlag);
            Assert.AreEqual("PO348186287", result.PurchaseOrderNumber);
            Assert.AreEqual("10-4020-000609", result.AccountNumber);
            Assert.AreEqual(customerID, result.CustomerID);
            Assert.AreEqual(1092, result.ShipToAddressID);
            Assert.AreEqual(1092, result.BillToAddressID);
            Assert.AreEqual("CARGO TRANSPORT 5", result.ShipMethod);
            Assert.AreEqual(null, result.CreditCardApprovalCode);
            Assert.AreEqual(880.3484, result.SubTotal);
            Assert.AreEqual(70.4279, result.TaxAmt);
            Assert.AreEqual(22.0087, result.Freight);
            Assert.AreEqual(null, result.Comment);
            Assert.AreEqual(new Guid("89e42cdc-8506-48a2-b89b-eb3e64e3554e"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2004-06-08"), result.ModifiedDate);
        }
Ejemplo n.º 44
0
 private void ShowFile(RawDataFile file)
 {
     Cursor.Current = Cursors.WaitCursor;
     var form = new FileContentsForm(file.Contents.ToArray(), file.FileName);
     Cursor.Current = Cursors.Default;
     form.Show(this);
 }
Ejemplo n.º 45
0
        public void Constructor(string dbPath, int expectedPageCount)
        {
            var db = new RawDataFile(dbPath);

            Assert.AreEqual(expectedPageCount, db.Pages.Count());
        }
Ejemplo n.º 46
0
        private void openToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            var result = openDatabaseDialog.ShowDialog();

            file = "";

            if (result == DialogResult.OK)
            {
                try
                {
                    var files = openDatabaseDialog.FileNames;
                    file = files[0];
                    db   = new Database(files);

                    refreshTreeview();
                } catch (Exception ex)
                {
                    logException(ex);

                    try
                    {
                        dbf = new RawDataFile(file);

                        var records = dbf.Pages
                                      .Where(x => x.Header.ObjectID == 34 && x.Header.Type == PageType.Data)
                                      .SelectMany(x => x.Records);

                        var rows = records.Select(x => RawColumnParser.Parse((RawRecord)x, new IRawType[] {
                            RawType.Int("id"),
                            RawType.NVarchar("name"),
                            RawType.Int("nsid"),
                            RawType.TinyInt("nsclass"),
                            RawType.Int("status"),
                            RawType.Char("type", 2),
                            RawType.Int("pid"),
                            RawType.TinyInt("pclass"),
                            RawType.Int("intprop"),
                            RawType.DateTime("created"),
                            RawType.DateTime("modified")
                        }));

                        rawtables = rows
                                    .Where(x => x.GetColumnValue("type").ToString().Trim() == "U");

                        rawrefreshTreeview();
                    }
                    catch (Exception rawex)
                    {
                        logException(rawex);

                        try
                        {
                            var bestdbf = new RawDataFile(file);

                            var SysschobjsPages = bestdbf.Pages
                                                  .Where(x => x.Header.ObjectID == 34 && x.Header.Type == PageType.Data);

                            var bestRecords = RawColumnParser.BestEffortParse(SysschobjsPages, new IRawType[] {
                                RawType.Int("id"),
                                RawType.NVarchar("name"),
                                RawType.Int("nsid"),
                                RawType.TinyInt("nsclass"),
                                RawType.Int("status"),
                                RawType.Char("type", 2),
                                RawType.Int("pid"),
                                RawType.TinyInt("pclass"),
                                RawType.Int("intprop"),
                                RawType.DateTime("created"),
                                RawType.DateTime("modified")
                            });

                            rawtables = bestRecords
                                        .Where(x => x.GetColumnValue("type").ToString().Trim() == "U");

                            var syscolparspages   = bestdbf.Pages.Where(x => x.Header.ObjectID == 41 && x.Header.Type == PageType.Data);
                            var syscolparsrecords = syscolparspages.SelectMany(x => x.Records).Select(x => (RawPrimaryRecord)x);
                            var syscolparsrows    = RawColumnParser.BestEffortParse(syscolparspages, new IRawType[] {
                                RawType.Int("id"),
                                RawType.SmallInt("number"),
                                RawType.Int("colid"),
                                RawType.NVarchar("name"),
                                RawType.TinyInt("xtype"),
                                RawType.Int("utype"),
                                RawType.SmallInt("length"),
                                RawType.TinyInt("prec"),
                                RawType.TinyInt("scale"),
                                RawType.Int("collationid"),
                                RawType.Int("status"),
                                RawType.SmallInt("maxinrow"),
                                RawType.Int("xmlns"),
                                RawType.Int("dflt"),
                                RawType.Int("chk"),
                                RawType.VarBinary("idtval")
                            });

                            rawcolumns = syscolparsrows.Select(x => new
                            {
                                ObjectID = (int?)x.GetColumnValue("id"),
                                ColumnID = (int?)x.GetColumnValue("colid"),
                                Number   = (short?)x.GetColumnValue("number"),
                                TypeID   = (byte?)x.GetColumnValue("xtype"),
                                Length   = (short?)x.GetColumnValue("length"),
                                Name     = x.GetColumnValue("name")
                            });

                            rawrefreshTreeview();
                        }
                        catch (Exception bestrawex)
                        {
                            logException(bestrawex);
                        }
                    }
                }
            }
        }
Ejemplo n.º 47
0
        public void Parse_ProductDescription(string dbPath, int pageID)
        {
            var db = new RawDataFile(dbPath);
            var page = db.GetPage(pageID);
            var record = page.Records.First() as RawPrimaryRecord;

            var result = RawColumnParser.Parse(record, new IRawType[] {
                RawType.Int("ProductDescriptionID"),
                RawType.NVarchar("Description"),
                RawType.UniqueIdentifier("rowguid"),
                RawType.DateTime("ModifiedDate")
            });

            Assert.AreEqual(4,  ((Dictionary<string, object>)result).Count);
            Assert.AreEqual(3, result.ProductDescriptionID);
            Assert.AreEqual("Chromoly steel.", result.Description);
            Assert.AreEqual(new Guid("301eed3a-1a82-4855-99cb-2afe8290d641"), result.rowguid);
            Assert.AreEqual(Convert.ToDateTime("2003-06-01"), result.ModifiedDate);
        }