From f6f004e7dc43345db49cfcd2d7fb93a91f6eddde Mon Sep 17 00:00:00 2001 From: CodeTile <43536260+CodeTile@users.noreply.github.com> Date: Mon, 17 Feb 2025 20:33:09 +0000 Subject: [PATCH 1/5] Inital change --- .../AdventureWorksDemo.API.csproj | 9 +- .../appsettings.Development.json | 2 +- ...reWorksDemo.Common.Tests.Extensions.csproj | 3 + .../AdventureWorksDemo.Common.Tests.csproj | 31 +- .../DatabaseSetup/Prep_DeleteRecords.sql | 6 +- .../PrepareTablesForTesting-Original.sql | 362 ++++ .../DatabaseSetup/PrepareTablesForTesting.sql | 956 ++++++---- .../DatabaseSetup/RestoreDatabase.SQL | 4 +- .../DockerMsSqlServerDatabase.cs | 30 +- ...entureWorksDemo.Data.Tests.reqnroll.csproj | 21 +- .../AddressServiceAddTests.Feature | 30 +- .../appsettings.json | 4 +- .../AdventureWorksDemo.Data.Tests.csproj | 11 +- .../Fakes/FakeDbContext_Address.cs | 24 +- .../Fakes/MockedDbContext.cs | 4 +- .../Validaton/AddressValidatorTests.cs | 114 +- .../AdventureWorksDemo.Data.csproj | 5 +- .../DbContexts/AdventureWorksContext.cs | 1661 +++++++++++++++-- .../Entities/HumanResources/Department.cs | 47 + .../Entities/HumanResources/Employee.cs | 129 ++ .../EmployeeDepartmentHistory.cs | 69 + .../HumanResources/EmployeePayHistory.cs | 52 + .../Entities/HumanResources/JobCandidate.cs | 46 + .../Entities/HumanResources/Shift.cs | 51 + .../Entities/{SalesLT => Person}/Address.cs | 25 +- .../Entities/Person/AddressType.cs | 47 + .../Entities/Person/BusinessEntity.cs | 51 + .../Entities/Person/BusinessEntityAddress.cs | 65 + .../Entities/Person/BusinessEntityContact.cs | 65 + .../Entities/Person/ContactType.cs | 40 + .../Entities/Person/CountryRegion.cs | 46 + .../EmailAddress.cs} | 38 +- .../Entities/Person/Password.cs | 52 + .../Entities/Person/Person.cs | 128 ++ .../Entities/Person/PersonPhone.cs | 53 + .../Entities/Person/PhoneNumberType.cs | 39 + .../Entities/Person/StateProvince.cs | 84 + .../Entities/Production/BillOfMaterial.cs | 85 + .../Entities/Production/Culture.cs | 41 + .../Entities/Production/Illustration.cs | 38 + .../Entities/Production/Location.cs | 55 + .../Entities/Production/Product.cs | 222 +++ .../ProductCategory.cs | 17 +- .../Entities/Production/ProductCostHistory.cs | 53 + .../ProductDescription.cs | 4 +- .../Entities/Production/ProductInventory.cs | 68 + .../Production/ProductListPriceHistory.cs | 53 + .../Entities/Production/ProductModel.cs | 67 + .../Production/ProductModelIllustration.cs | 45 + .../ProductModelProductDescriptionCulture.cs} | 23 +- .../Entities/Production/ProductPhoto.cs | 54 + .../Production/ProductProductPhoto.cs | 50 + .../Entities/Production/ProductReview.cs | 71 + .../Entities/Production/ProductSubcategory.cs | 57 + .../Entities/Production/ScrapReason.cs | 40 + .../Entities/Production/TransactionHistory.cs | 77 + .../Production/TransactionHistoryArchive.cs | 73 + .../Entities/Production/UnitMeasure.cs | 49 + .../Entities/Production/WorkOrder.cs | 87 + .../Entities/Production/WorkOrderRouting.cs | 100 + .../Entities/Purchasing/ProductVendor.cs | 96 + .../Purchasing/PurchaseOrderDetail.cs | 93 + .../Purchasing/PurchaseOrderHeader.cs | 110 ++ .../Entities/Purchasing/ShipMethod.cs | 62 + .../Entities/Purchasing/Vendor.cs | 76 + .../Entities/Sales/CountryRegionCurrency.cs | 46 + .../Entities/Sales/CreditCard.cs | 60 + .../Entities/Sales/Currency.cs | 46 + .../Entities/Sales/CurrencyRate.cs | 73 + .../Entities/Sales/Customer.cs | 79 + .../Entities/Sales/PersonCreditCard.cs | 45 + .../{SalesLT => Sales}/SalesOrderDetail.cs | 22 +- .../{SalesLT => Sales}/SalesOrderHeader.cs | 68 +- .../Sales/SalesOrderHeaderSalesReason.cs | 45 + .../Entities/Sales/SalesPerson.cs | 92 + .../Entities/Sales/SalesPersonQuotaHistory.cs | 54 + .../Entities/Sales/SalesReason.cs | 46 + .../Entities/Sales/SalesTaxRate.cs | 65 + .../Entities/Sales/SalesTerritory.cs | 101 + .../Entities/Sales/SalesTerritoryHistory.cs | 65 + .../Entities/Sales/ShoppingCartItem.cs | 59 + .../Entities/Sales/SpecialOffer.cs | 88 + .../Entities/Sales/SpecialOfferProduct.cs | 56 + .../Entities/Sales/Store.cs | 68 + .../Entities/SalesLT/Customer.cs | 120 -- .../Entities/SalesLT/Product.cs | 134 -- .../Entities/SalesLT/ProductModel.cs | 39 - .../{BuildVersion.cs => AwbuildVersion.cs} | 10 +- .../Entities/dbo/DatabaseLog.cs | 69 + .../Models/AddressModel.cs | 6 +- .../Repository/GenericCRUDRepository.cs | 2 +- .../Services/AddressService.cs | 6 +- .../Services/BaseService.cs | 18 +- .../StartUp/IOCData.cs | 2 +- .../Validation/AddressValidator.cs | 4 +- .../AdventureWorksDemo.Data/efpt.config.json | 414 +++- .../AdventureWorksDemo.MudBlazor.Tests.csproj | 11 +- .../AdventureWorksDemo.MudBlazor.csproj | 1 + 98 files changed, 7147 insertions(+), 1137 deletions(-) create mode 100644 src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting-Original.sql create mode 100644 src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs rename src/API/AdventureWorksDemo.Data/Entities/{SalesLT => Person}/Address.cs (71%) create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs rename src/API/AdventureWorksDemo.Data/Entities/{SalesLT/CustomerAddress.cs => Person/EmailAddress.cs} (50%) create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs rename src/API/AdventureWorksDemo.Data/Entities/{SalesLT => Production}/ProductCategory.cs (64%) create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductCostHistory.cs rename src/API/AdventureWorksDemo.Data/Entities/{SalesLT => Production}/ProductDescription.cs (85%) create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductInventory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductListPriceHistory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductModel.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelIllustration.cs rename src/API/AdventureWorksDemo.Data/Entities/{SalesLT/ProductModelProductDescription.cs => Production/ProductModelProductDescriptionCulture.cs} (68%) create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductPhoto.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductProductPhoto.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductReview.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ProductSubcategory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/ScrapReason.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistoryArchive.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/UnitMeasure.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrder.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrderRouting.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Purchasing/ProductVendor.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderDetail.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderHeader.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Purchasing/ShipMethod.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Purchasing/Vendor.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/CountryRegionCurrency.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/CreditCard.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/Currency.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/CurrencyRate.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/Customer.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/PersonCreditCard.cs rename src/API/AdventureWorksDemo.Data/Entities/{SalesLT => Sales}/SalesOrderDetail.cs (82%) rename src/API/AdventureWorksDemo.Data/Entities/{SalesLT => Sales}/SalesOrderHeader.cs (68%) create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeaderSalesReason.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPerson.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPersonQuotaHistory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SalesReason.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTaxRate.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritoryHistory.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/ShoppingCartItem.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOffer.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOfferProduct.cs create mode 100644 src/API/AdventureWorksDemo.Data/Entities/Sales/Store.cs delete mode 100644 src/API/AdventureWorksDemo.Data/Entities/SalesLT/Customer.cs delete mode 100644 src/API/AdventureWorksDemo.Data/Entities/SalesLT/Product.cs delete mode 100644 src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductModel.cs rename src/API/AdventureWorksDemo.Data/Entities/dbo/{BuildVersion.cs => AwbuildVersion.cs} (84%) create mode 100644 src/API/AdventureWorksDemo.Data/Entities/dbo/DatabaseLog.cs diff --git a/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj b/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj index 15747b4..01621e8 100644 --- a/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj +++ b/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj @@ -9,10 +9,11 @@ - - - - + + + + + diff --git a/src/API/AdventureWorksDemo.API/appsettings.Development.json b/src/API/AdventureWorksDemo.API/appsettings.Development.json index b4185ce..edcc788 100644 --- a/src/API/AdventureWorksDemo.API/appsettings.Development.json +++ b/src/API/AdventureWorksDemo.API/appsettings.Development.json @@ -6,6 +6,6 @@ } }, "ConnectionStrings": { - "Target": "Data Source=localhost,1433;Initial Catalog=AdventureWorks;Persist Security Info=True;User ID=sa;Password=;TrustServerCertificate=True;" + "Target": "Data Source=localhost,1433;Initial Catalog=AdventureWorks;Persist Security Info=True;User ID=sa;Password=;Encrypt=false;TrustServerCertificate=True;" } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Common.Tests.Extensions/AdventureWorksDemo.Common.Tests.Extensions.csproj b/src/API/AdventureWorksDemo.Common.Tests.Extensions/AdventureWorksDemo.Common.Tests.Extensions.csproj index 529d730..e53d264 100644 --- a/src/API/AdventureWorksDemo.Common.Tests.Extensions/AdventureWorksDemo.Common.Tests.Extensions.csproj +++ b/src/API/AdventureWorksDemo.Common.Tests.Extensions/AdventureWorksDemo.Common.Tests.Extensions.csproj @@ -9,4 +9,7 @@ true + + + diff --git a/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj b/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj index 21aa0e3..25c1615 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj +++ b/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj @@ -11,21 +11,32 @@ - - - - - - + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + - - - - + + + + + + + + PreserveNewest + + + diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql index 3e6960e..1b1ba8a 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql @@ -20,9 +20,9 @@ GO DROP DATABASE [AdventureWorks] USE [master] -RESTORE DATABASE [AdventureWorks] FROM DISK = N'/var/opt/mssql/backup/SampleDatabase.bak' WITH FILE = 1, - MOVE N'AdventureWorksLT2022_Data' TO N'/var/opt/mssql/data/AdventureWorks.mdf', - MOVE N'AdventureWorksLT2022_Log' TO N'/var/opt/mssql/data/AdventureWorks_log.ldf', +RESTORE DATABASE [AdventureWorks] FROM DISK = N'/var/opt/mssql/backup/AdventureWorks.bak' WITH FILE = 1, + MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/AdventureWorks.mdf', + MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/AdventureWorks_log.ldf', NOUNLOAD, STATS = 5 diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting-Original.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting-Original.sql new file mode 100644 index 0000000..23c0875 --- /dev/null +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting-Original.sql @@ -0,0 +1,362 @@ +Print ' +**************************************************************** + Prepare the data in the tables for the tests. + + This script will be run every time the system tests + needs to reset the data. +**************************************************************** +'; + + +use [$TARGET_DB_NAME] +PRINT ' +***************************************** + Delete all records in database +*****************************************' +Truncate table BuildVersion; +Truncate Table ErrorLog; + +-- Disable all the constraint in database + +DECLARE @sql nvarchar(max) = N''; + +;WITH x AS +( + SELECT DISTINCT obj = + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' + + QUOTENAME(OBJECT_NAME(parent_object_id)) + FROM sys.foreign_keys +) +SELECT @sql += N'ALTER TABLE ' + obj + N' NOCHECK CONSTRAINT ALL; +' FROM x; + +EXEC sys.sp_executesql @sql; +GO +-- ----- + +Declare @TableName nvarchar(256) ; +SET @TableName = ''; + +WHILE @TableName IS NOT NULL +BEGIN + SET @TableName = + ( + SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)) + FROM INFORMATION_SCHEMA.TABLES + WHERE TABLE_TYPE = 'BASE TABLE' + AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName + ) +print 'Deleting from table '+@TableName ; + +DECLARE @sql nvarchar(max) = N'Delete from ' + @tablename; +EXEC sys.sp_executesql @sql; +ENd +GO + +------- + +DECLARE @sql nvarchar(max) = N''; + +;WITH x AS +( + SELECT DISTINCT obj = + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' + + QUOTENAME(OBJECT_NAME(parent_object_id)) + FROM sys.foreign_keys +) +SELECT @sql += N'ALTER TABLE ' + obj + N' WITH CHECK CHECK CONSTRAINT ALL; +' FROM x; + +EXEC sys.sp_executesql @sql; +GO + +PRINT '--------------------------- + Insert records into database. +---------------------------' +SET IDENTITY_INSERT [SalesLT].[Address] ON +GO +INSERT [SalesLT].[Address] ([AddressID], [AddressLine1], [AddressLine2], [City], [StateProvince], [CountryRegion], [PostalCode], [rowguid], [ModifiedDate]) + VALUES (640, N'251 The Metro Center', NULL, N'Wokingham', N'England', N'United Kingdom', N'RG41 1QW', N'0e4ac5bb-be0d-4a96-a58e-064daec08e1a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (652, N'Wymbush', NULL, N'Milton Keynes', N'England', N'United Kingdom', N'MK8 8DF', N'54e20963-b0e9-41cf-ab7e-d50459a3325c', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) + , (669, N'Internet House, 3399 Science Park', NULL, N'Cambridge', N'England', N'United Kingdom', N'CB4 4BZ', N'56baec2a-5cc5-4a90-bef9-ee57e82f2e69', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) + , (1034, N'Oxnard Outlet', NULL, N'Oxnard', N'California', N'United States', N'93030', N'300d2a6e-67b4-417b-83a9-2026818a21c6', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (1038, N'123 Camelia Avenue', NULL, N'Oxnard', N'California', N'United States', N'93030', N'a86c8140-ad7d-4caa-9b40-4006bd9998e2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (1090, N'25130 South State Street', NULL, N'Sandy', N'Utah', N'United States', N'84070', N'cf3ae92a-3e66-4af0-b683-731826e89cd1', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (1092, N'99700 Bell Road', NULL, N'Auburn', N'California', N'United States', N'95603', N'79cdd89c-3c91-48db-8277-46d04aad7251', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) + , (1111, N'Orphan Record', NULL, N'Use In Delete Tests', N'California', N'United States', N'95603', N'00000000-1111-2222-0000-000000000001', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[Address] OFF +GO +SET IDENTITY_INSERT [SalesLT].[Customer] ON +GO +INSERT [SalesLT].[Customer] ([CustomerID], [NameStyle], [Title], [FirstName], [MiddleName], [LastName], [Suffix], [CompanyName], [SalesPerson], [EmailAddress], [Phone], [PasswordHash], [PasswordSalt], [rowguid], [ModifiedDate]) + VALUES (29847, 0, N'Mr.', N'David', NULL, N'Hodgson', NULL, N'Good Toys', N'adventure-works\linda3', N'david16@adventure-works.com', N'969-555-0117', N'+gtwbVycsIIj2loVtrHNRN6IBLl20lQpRK8+JhzxyEo=', N'AwqZdYk=', N'fdd7d9cb-9a81-40fc-baf6-facde8da4923', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) + , (30019, 0, N'Mr.', N'Matthew', N'J.', N'Miller', NULL, N'Tachometers and Accessories', N'adventure-works\jae0', N'matthew5@adventure-works.com', N'1 (11) 500 555-0176', N'/hDOTbr9X/E4UE8H6wjOGHYZ6Gb8GDpmutPWgFTXQnc=', N'eiCRDs8=', N'226d328b-23d4-4215-b9c4-3da08f2e68db', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) + , (30027, 0, N'Mr.', N'Joseph', N'P.', N'Mitzner', N'Jr.', N'Engineered Bike Systems', N'adventure-works\shu0', N'joseph4@adventure-works.com', N'129-555-0164', N'7obarvC3BHLIE/oFo0n+bkB/EZ03Zc8Vu+F2jpK/CNM=', N'k6zgROU=', N'029c27b5-72e5-4024-a5fa-53bdb42b98bc', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (30033, 0, N'Mr.', N'Vassar', N'J.', N'Stern', NULL, N'Transport Bikes', N'adventure-works\shu0', N'vassar0@adventure-works.com', N'328-555-0123', N'nPkLkDdemKmfK3VexvRWH5zYyNzwcfvny8DxWGnicSw=', N'hLswDiQ=', N'66193607-693c-4073-be28-78e3892141a2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (30072, 0, N'Ms.', N'Andrea', N'A.', N'Thomsen', NULL, N'West Side Mart', N'adventure-works\jae0', N'andrea1@adventure-works.com', N'1 (11) 500 555-0120', N'LDoJwsGCFLtxVdbdQBbN/to7zFF1skP+hWLrIrCxvAw=', N'NuexV8w=', N'9bbbddc1-8e1a-4edf-aa2f-a8abea78c940', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (30089, 0, N'Mr.', N'Michael John', N'R.', N'Troyer', NULL, N'Thrifty Parts and Sales', N'adventure-works\linda3', N'michaeljohn0@adventure-works.com', N'308-555-0175', N'Gdklarx2tW1EtZEyrAUEIhhguzrFKVS4Bh3BdAsGngk=', N'HUE+JKI=', N'8d6af1e8-5082-4e5c-9f15-dfd04e64fd95', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (30102, 0, N'Mr.', N'Roger', NULL, N'Van Houten', NULL, N'Sports Store', N'adventure-works\jae0', N'roger2@adventure-works.com', N'1 (11) 500 555-0110', N'C0yLsx6zITh7lXoIPgG1bl1t5II3nx4GYi/RaS1yB84=', N'WnTAc/0=', N'0ee7e95d-f12d-4d0d-8c6e-c64a0dda719a', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[Customer] OFF +GO +INSERT [SalesLT].[CustomerAddress] ([CustomerID], [AddressID], [AddressType], [rowguid], [ModifiedDate]) + VALUES (29847, 1092, N'Main Office', N'54e22612-0521-4ea6-b7b0-29d081e054c4', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) + , (30019, 652, N'Main Office', N'4d79eb56-5f62-4c2f-90f2-f2f11d7e4f63', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) + , (30027, 1038, N'Main Office', N'5dc4ddd8-be9a-4bd2-9f35-9f81743296e8', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (30033, 1090, N'Main Office', N'c3b9cc49-7b83-4888-8958-1a3b7558e614', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (30072, 640, N'Main Office', N'c6078b9a-2f95-4029-be72-511345be2a9a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (30089, 1034, N'Main Office', N'2f99485b-952a-44d4-a5af-5a94faca240e', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) + , (30102, 669, N'Main Office', N'd996364a-0b31-4b67-adcc-1d0454b5b26d', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] ON +GO +INSERT [SalesLT].[SalesOrderHeader] ([SalesOrderID], [RevisionNumber], [OrderDate], [DueDate], [ShipDate], [Status], [OnlineOrderFlag], [PurchaseOrderNumber], [AccountNumber], [CustomerID], [ShipToAddressID], [BillToAddressID], [ShipMethod], [CreditCardApprovalCode], [SubTotal], [TaxAmt], [Freight], [Comment], [rowguid], [ModifiedDate]) + VALUES (71774, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO348186287', N'10-4020-000609', 29847, 1092, 1092, N'CARGO TRANSPORT 5', NULL, 880.3484, 70.4279, 22.0087, NULL, N'89e42cdc-8506-48a2-b89b-eb3e64e3554e', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) + , (71776, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO19952192051', N'10-4020-000106', 30072, 640, 640, N'CARGO TRANSPORT 5', NULL, 78.8100, 6.3048, 1.9703, NULL, N'8a3448c5-e677-4158-a29b-dd33069be0b0', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) + , (71815, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO13021155785', N'10-4020-000276', 30089, 1034, 1034, N'CARGO TRANSPORT 5', NULL, 1141.5782, 91.3263, 28.5395, NULL, N'2aa5f39b-1096-4a4b-b17b-f10504a397ce', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) + , (71816, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO12992180445', N'10-4020-000295', 30027, 1038, 1038, N'CARGO TRANSPORT 5', NULL, 3398.1659, 271.8533, 84.9541, NULL, N'e3c189e7-98de-4c40-b6c2-0d1d13f9bb33', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) + , (71831, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO10295111084', N'10-4020-000322', 30019, 652, 652, N'CARGO TRANSPORT 5', NULL, 2016.3408, 161.3073, 50.4085, NULL, N'625d76fc-c26f-4149-bf24-939fb2bccd77', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) + , (71846, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO2378131604', N'10-4020-000635', 30102, 669, 669, N'CARGO TRANSPORT 5', NULL, 2453.7645, 196.3012, 61.3441, NULL, N'a86d90ad-d1c0-440d-9a57-5b763bf18234', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) + , (71856, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO16530177647', N'10-4020-000601', 30033, 1090, 1090, N'CARGO TRANSPORT 5', NULL, 602.1946, 48.1756, 15.0549, NULL, N'05fee073-0640-4a3c-914d-fe4ae6da3d43', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] OFF +GO +SET IDENTITY_INSERT [SalesLT].[ProductCategory] ON +GO +INSERT [SalesLT].[ProductCategory] ([ProductCategoryID], [ParentProductCategoryID], [Name], [rowguid], [ModifiedDate]) + VALUES (1, NULL, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (2, NULL, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (3, NULL, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (4, NULL, N'Accessories', N'2be3be36-d9a2-4eee-b593-ed895d97c2a6', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (5, 1, N'Mountain Bikes', N'2d364ade-264a-433c-b092-4fcbf3804e01', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (6, 1, N'Road Bikes', N'000310c0-bcc8-42c4-b0c3-45ae611af06b', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (7, 1, N'Touring Bikes', N'02c5061d-ecdc-4274-b5f1-e91d76bc3f37', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (8, 2, N'Handlebars', N'3ef2c725-7135-4c85-9ae6-ae9a3bdd9283', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (9, 2, N'Bottom Brackets', N'a9e54089-8a1e-4cf5-8646-e3801f685934', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (10, 2, N'Brakes', N'd43ba4a3-ef0d-426b-90eb-4be4547dd30c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (11, 2, N'Chains', N'e93a7231-f16c-4b0f-8c41-c73fdec62da0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (12, 2, N'Cranksets', N'4f644521-422b-4f19-974a-e3df6102567e', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (13, 2, N'Derailleurs', N'1830d70c-aa2a-40c0-a271-5ba86f38f8bf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (14, 2, N'Forks', N'b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (15, 2, N'Headsets', N'7c782bbe-5a16-495a-aa50-10afe5a84af2', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (16, 2, N'Mountain Frames', N'61b21b65-e16a-4be7-9300-4d8e9db861be', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (17, 2, N'Pedals', N'6d24ac07-7a84-4849-864a-865a14125bc9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (18, 2, N'Road Frames', N'5515f857-075b-4f9a-87b7-43b4997077b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (19, 2, N'Saddles', N'049fffa3-9d30-46df-82f7-f20730ec02b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (20, 2, N'Touring Frames', N'd2e3f1a8-56c4-4f36-b29d-5659fc0d2789', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (21, 2, N'Wheels', N'43521287-4b0b-438e-b80e-d82d9ad7c9f0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (22, 3, N'Bib-Shorts', N'67b58d2b-5798-4a90-8c6c-5ddacf057171', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (23, 3, N'Caps', N'430dd6a8-a755-4b23-bb05-52520107da5f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (24, 3, N'Gloves', N'92d5657b-0032-4e49-bad5-41a441a70942', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (25, 3, N'Jerseys', N'09e91437-ba4f-4b1a-8215-74184fd95db8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (26, 3, N'Shorts', N'1a5ba5b3-03c3-457c-b11e-4fa85ede87da', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (27, 3, N'Socks', N'701019c3-09fe-4949-8386-c6ce686474e5', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (28, 3, N'Tights', N'5deb3e55-9897-4416-b18a-515e970bc2d1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (29, 3, N'Vests', N'9ad7fe93-5ba0-4736-b578-ff80a2071297', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (30, 4, N'Bike Racks', N'4624b5ce-66d6-496b-9201-c053df3556cc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (31, 4, N'Bike Stands', N'43b445c8-b820-424e-a1d5-90d81da0b46f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (32, 4, N'Bottles and Cages', N'9b7dff41-9fa3-4776-8def-2c9a48c8b779', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (33, 4, N'Cleaners', N'9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (34, 4, N'Fenders', N'1697f8a2-0a08-4883-b7dd-d19117b4e9a7', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (35, 4, N'Helmets', N'f5e07a33-c9e0-439c-b5f3-9f25fb65becc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (36, 4, N'Hydration Packs', N'646a8906-fc87-4267-a443-9c6d791e6693', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (37, 4, N'Lights', N'954178ba-624f-42db-95f6-ca035f36d130', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (38, 4, N'Locks', N'19646983-3fa0-4773-9a0c-f34c49df9bc8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (39, 4, N'Panniers', N'3002a5d5-fec3-464b-bef3-e0f81d35f431', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (40, 4, N'Pumps', N'fe4d46f2-c87c-48c5-a4a1-3f55712d80b1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (41, 4, N'Tires and Tubes', N'3c17c9ae-e906-48b4-bdd3-60e28d47dcdf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) + , (42, Null, N'Record to Delete', N'3c17c9ae-e906-48b4-bdd3-000000000001', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[ProductCategory] OFF +GO +SET IDENTITY_INSERT [SalesLT].[ProductModel] ON +GO +INSERT [SalesLT].[ProductModel] ([ProductModelID], [Name], [CatalogDescription], [rowguid], [ModifiedDate]) + VALUES (2, N'Cycling Cap', NULL, N'474fb654-3c96-4cb9-82df-2152eeffbdb0', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) + , (5, N'HL Mountain Frame', NULL, N'fdd5407b-c2db-49d1-a86b-c13a2e3582a2', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) + , (9, N'LL Road Frame', NULL, N'ddc67a2f-024a-4446-9b54-3c679baba708', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) + , (11, N'Long-Sleeve Logo Jersey', NULL, N'20efe3f1-a2f8-4dde-b74b-18265f61f863', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) + , (17, N'ML Road Frame-W', NULL, N'ca18ecfd-2023-4fa7-a556-0321153bca34', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) + , (20, N'Mountain-200', NULL, N'3b78edff-2aa9-4ac1-8c3d-94090b5f53a9', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) + , (22, N'Mountain-400-W', NULL, N'6d2fcce4-ffce-4662-a3f8-5d18f0eedcd8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (23, N'Mountain-500', N'Suitable for any type of riding, on or off-road. + Fits any budget. Smooth-shifting with a comfortable ride. + AdventureWorks2002HTTP://www.Adventure-works.comProduct highlights include: + 1 yearparts and labor3 yearsmaintenance contact available through dealerStable, durable wheels suitable for novice riders.Made from synthetic leather and features gel padding for increased comfort.Expanded platform so you can ride in any shoes; great for all-around riding. Super rigid spindle. Our best value frame utilizing the same, ground-breaking technology as the ML aluminum frame.frontsmall1 These are the product specifications. + Varies Centimeters. + Aluminum AlloyAvailable in all colors.Mountain bikeNovice to Intermediate riders', N'866dbad3-5999-4329-beac-d826d959d9a1', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) + , (24, N'Racing Socks', NULL, N'bd8ba6f8-7e16-4fa3-b3b3-2036dd4a2ae0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (31, N'Road-750', NULL, N'2bf795f4-2666-4691-af14-d490c7334a8a', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) + , (32, N'Short-Sleeve Classic Jersey', NULL, N'6beccf2d-eacd-496b-995b-d692567565cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (34, N'Touring-1000', N'Travel in style and comfort. Designed for maximum comfort and safety. + Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. + AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. + 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.Excellent aerodynamic rims guarantee a smooth ride.Cut-out shell for a more comfortable ride.A stable pedal for all-day riding.aluminum alloy frame + and features a lightweight down-tube milled to the perfect diameter for optimal strength.frontsmall87 These are the product specifications. + + Aluminum alloy Available in most colors.Touring bikeNovice to Advanced riders', N'52e7f2c1-dbff-4518-927d-c7d46f9ed32e', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) + , (35, N'Touring-2000', N'The plush custom saddle keeps you riding all day, and there''s plenty of space + to add panniers and bike bags to the newly-redesigned carrier. + This bike has great stability when fully-loaded. + AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. + 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.New design relieves pressure for long rides.Top-of-the-line clipless pedals with adjustable tension. High-strength crank arm. The aluminum frame is custom-shaped for both good looks and strength; + it will withstand the most rigorous challenges of daily riding.frontsmall87 These are the product specifications. + AluminumAvailable in all colors except metallic.Touring bikeAluminium alloyIntermediate to Advanced riders', N'aa10d9e6-e33f-4da8-ace1-992fcd6bb171', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) + , (36, N'Touring-3000', NULL, N'f5a6ec78-4451-45db-955f-db197de8b059', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) + , (37, N'Women''s Mountain Shorts', NULL, N'a08dd61a-6155-4051-9a11-223232ea51cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (63, N'ML Mountain Pedal', NULL, N'be9cdc56-f4ab-40f1-b338-2e08e0627abd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (102, N'Front Brakes', NULL, N'1099a23a-c9ed-41b1-8cc1-e2c1c54a10c8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (103, N'Front Derailleur', NULL, N'10e0c8fd-ca13-437b-8e22-51853ae160a7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (128, N'Rear Brakes', NULL, N'71d47afd-da3a-43f1-83ad-69c71f96ef33', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[ProductModel] OFF +GO +SET IDENTITY_INSERT [SalesLT].[Product] ON +GO +INSERT [SalesLT].[Product] ([ProductID], [Name], [ProductNumber], [Color], [StandardCost], [ListPrice], [Size], [Weight], [ProductCategoryID], [ProductModelID], [SellStartDate], [SellEndDate], [DiscontinuedDate], [ThumbNailPhoto], [ThumbnailPhotoFileName], [rowguid], [ModifiedDate]) + VALUES (712, N'AWC Logo Cap', N'CA-1098', N'Multi', 6.9223, 8.9900, NULL, NULL, 23, 2, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9ede243-a6f4-4629-b1d4-ffe1aedc6de7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (715, N'Long-Sleeve Logo Jersey, L', N'LJ-0192-L', N'Multi', 38.4923, 49.9900, N'L', NULL, 25, 11, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000142567FCFCFC9F9F9F2C4B67CECECEE4E4E43B658AAAAAAA2C3458CACACAF0F0F04757A510182EC6C6C6E6E6E6EAEAEAA4A4A4EEEEEEE2E2E2696665AFAFAF102136225A8B8895AAD2D0E6B1B1B18DAFD3333335FAFAFA2E73B2254B72637098B2BCC876757AC2C2C218479DF6F6F65075AC3216701750A1F8F8F87E8E9DF4F4F4B8B8B71D3B88262526DEDEDEA7A8B4DADADA8D8D8D345CA82334750C365B1A53882934672C435ECFD0D01664AAF2F2F2165A981948854581B787A7C5534B46919191113F6B5357751B3394DDDDDDB4B4B4D7D7D79A9A9932343D3E3E3E16181D192E595754523134470F1A4824547FD4D4D46986A67DA5CC87827EC7C6D91761A9574F4A4C5C83959594CCD1D8193F99A5A19CACA9A64E48442C589A05060850637CD0D0CE262E639A9896928D89182942928E9F1E5199326A9C282D38E1E0DF453C38A1A1A1675B77A8A8A79594923579B549423D395A88CDCDCBE5E4E2757370B6B6B6D3D3D22D3A4A9796958C8986BAB6B31F3C58BABABABFBDBAACB1BDC0BEBBE7E6E4D8D8D8737DBAB1ADA939437ADFDFDF3A4C96272F488B8784D5D5D2605954CAC9C62C3F54D0CECBE9E8E73D276ABCBAB8B6B4B0B3B1AFACACAB0C2A54050B16BCBDBDD4D2D0C8C7C7EFEFEF5E95C5195E9F1830810C121DDBD9D7EEEEECEBEBEBE1E1E1DAD9D968625E4F3A7699BCDA1B49927E78730F0F0FBFBFBFFEFEFEBEBEBEE8E8E8EDEDED1667ACECECEC1659A56B98C6CBD9EA184C9FE9E9E9535EA96169AFFDFDFD1D3F90223E77296EB0B9B9B9EEEDECF5F4F31953A0CCCBCAEDEDECE4E3E139312EF5F5F5C7CCCFA4A2A0E9E9E8154891300E7B6081BC6F8AC12A639F8F91C5B6B5B40E2F4CC3C2C0D1D1D17B7FA6FBFBFB706F7C6F6C69686D7C355978DFDEDCADABA8EAEAE9EAE9E8E9EAEA9EB2C4E7E7E73C516932496A7E85BFC0C0BFA8A5A21D1E20CACDE4A29F9BFBFCFCD6D6D52B2B2CF7F8F82260A7F7F7F7505152F8F8F7414151F1F1F19994903E74A5DCDBDB3120542D2E5B3F4A8B313C7A3D2374301C621660A835383C2F2F2F739CC6000000FFFFFF21F90400000000002C00000000500032000008FF0055FD1B48B0A0C1830657295CB80A97435C01224E9BC6A1220A76EC481053A1029E024DAE603D68E5A080044344601881128D4082062258F12A42E10004010211EADCF98FE1C287102552B4885123478F204592348952254B973065D2B48993A7D5843E1B060D307162450E17336EECF831E4C8922753AE6CF932E6CC9A37735EBDCAD06180735FC1EA454154ECD1B24AD1365D0BD5EDD4B873E76AE58AA2C13C05735E880BD64B810E62EAD485354A36E959A66A9FB6950AB76A629E0ACF0533832F5F32132692BDA667660EB640BD2E93D03816A9D9A5699DB28DFA96AADCD358A715BB8066463E7C6D4A9582E47A800D691F227DA2134A818AB19D7F0BFF0E3DDC70E9E3C87BAE0AF0278A1419703C34811DA28D897C339E2068166BC7150A8AA8F148043AA8A0836F8181265C61A41997DE400AB1278716BB68B080014F3482443D36E453CF06BA80918410B1E8A3C529293813E03611C083E067C111365A7188A5D7D01F68E83302853EDC70032739F081C83508D8B00127B280B0CF8F5AD022851729F8818E04A16862A5780ACA48DC61A69DB68A02D20C52858E5A30D30E123BBC92430DFEA492843FBA5421CB2C72ECE3010B4ECAD04319938461482DAE4480658CA26D791E72ABB872CF0262EA3803121BF090839AB1A4E24F125FF020E72C1D7860C10D79F6E0C9042BCCF1A72B830E56A8790E7A198313B688FFC9090F376C50C80893E6104B0597A672C2A61D9CE0C10D7844B18E3C4EB40041247748F0002C09125A5E83352A16C03E0CC45A830DBF0C408D2DB852BAC4A54AFC3A67B087E0D1842EE080234619751CD080200E84120A8CAA4E4B639774CD438E27F608B101B7DF50016EAEB1E8726905E6727AC20221AC7B8327360C9084002BE0204A2DF702972F83FBA2B753433120D20200330C7CC607181C4CE9295F24C130B00F6B20B1123678C0400C0788308A030FE04B1EC85C8AAC53434D2080040329DB30C32D180C52021C9B6C120B2DA9F033F3B93537A24B23E4E48C47176CF0128D04B5D4E2F1D033169DD82AA138A1B413626C80C0105097B38C29A6E8FF4A0BAF4B341CEC021AD4704319FCE4DC481A475090C93C0EA83DDE826D1F3A57000200A0340B0C20D109DE1884A30C1CBB583D4219FE044E33E1AF5850C1C01EE0F1450C10B0824E01ADAC4DB9A1AD5AD5D0049A23914B059F83EEB2DFE3AACE35EBFA30007B1AFEB4334606A67AE3CDE45AB25A2D6A1128F10522C23FC1C010C687EBF70CA90B5EF32B3CF0013BAFA9E8610C343014707D96AB52CBEF4EB8B8E18F3F4A081F3900503E84D14261CA7318EB2A5003D859CA1F4C20C324A2210A07602F7F21A30B2EBAF03F7FA421174FD880253A01B5E35D8D05FE6081FA16688181DDA0832D40853932418402D8505A44B31CF71ED8261022211D0C28A1F9FFAEA60B066861851A08C2335A68032574700DA420831F046143FCE9CB6DBE53471D3AE80F008470034A1042CB867840001C71751750C20098F885FFA5220E8B98C21EA674C38F55AE772363071DDEF4BF2F7C118C0623E3123A7146AE1DA205FB58E30678F5BF61AC611189888411245047B6F16E7B47434120FCD0820E2A6103A06C84104C488B250CA1900E63403A90A0C83602700D7120453CA0318F2AE2F08E9844C82AA6010A4C9081872D00E5009E718F2122E373A8EC00323EB9813592A38F6B58831550918D30A8C18256CC211E8F860B5F0803105BECA3302DE0892106410BA7145C05F8214C0FB8921F71E8C204E20188FA61F39697DCDFD1A6A1FF804FEC61111D2447332D90864A18109DA8E483FB846989FF91A30B5D88A3243081BBFBE1537BFAD4E52ADC110A4C64230E1DE4C71A91A08434F90DA1E6BA4025BE882D375AE107D3DC42265CE00DC965139719D5252ED8B10D476CA193001C29022A40295AA0B40A2520070841998E3EBED40AD51803207E1634DD654F7F463B5A0088110846A0A2837CB000121080081A9C349D3B4845F840E9CA38C094147A9868011ED0B10B5E5187D6F2661E2CD1464B3C61AC1E60E0D5505A09F02DF5814EE8C20F16818A7100430DDC80455D6F9ACFAC8E6C1A3A80C61700F0BF32ECA31E03680418D661D4537AA10C4A03E133BF70CE2E5861026488C428BC81AA68FFD9B1B2365A050AB4E18F2138E17FE94000185EE083C19EB2047FB881F082E08F2FD420075A780763CDC10809C04250B6B524462D3BB20028201D0464803F5A10836EC0E1AC47ECC125AC910BBE46414D5A40C204A6C0054738C0159EB12A06B188285CA8601F04B4C504FE508283A6B30AFDC80204F6610F0DA8A913A9A80319081186FBE6D7AEDACCE55C7041820938016F545800198F3AA71E9C817539A8C03EA6F0863E593855DAC5EA83FEB1D3107C5888064EE6FA76E08F6AE8E108CEB8C38BB3BBBBEDCE78151CC880250A5854122BD0C134D8801E6220804B18A11511B830658DFC20241761C9386EF28197E7604B4C20066F708363429165181759FFC65DE6676FC38C5EC1F1E01E5108422A6210832350AF00F8D5F245E16CA300E820157203E30D0CC0681E72D18D2D68413A48110320D44E10ADB092A06FCBE542136305A460423BAA010420BCE10D79C0C2A94BCD6A56F3B9D20228023044010B050046686FCEE08C775A8B68D8810DA9CE431EC63086231CA1D8C64EB6B205C0860C340006997E917EEFBA4D2F7140012EC8841D28E1063770211B942004252840EE7267E0DC1928821D2E91002AB648DA18C6297751130012C0C2107778492618010C60CCC11104C081C071108D68DCE1E07740070C448165781CE8D6D3CE704E35380D1268A21655B4DF238E718C56A4EDE320AFC5B35A54A0876F3AC6FB40A2802A56CEF296BBFCE52BBFC425FAB0829AF3A20F38CFB9CE6FCE8B9EFBBC0F3EE745CDED60076714A108192837252871806E4300026C1080B1C78085520704003B, N'awc_jersey_male_small.gif', N'34cf5ef5-c077-4ea0-914a-084814d5cbd5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (738, N'LL Road Frame - Black, 52', N'FR-R38B-52', N'Black', 204.6251, 337.2200, N'52', CAST(1088.62 AS Decimal(8, 2)), 18, 9, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'18fc5d72-a012-4dc7-bb35-0d01a84d0219', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (739, N'HL Mountain Frame - Silver, 42', N'FR-M94S-42', N'Silver', 747.2002, 1364.5000, N'42', CAST(1233.76 AS Decimal(8, 2)), 16, 5, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000C1C3BDF4F4F4BBCCC9ECEAEAC2D4D1ACC2BBB5B8B4DADADAB8BAB5ABB8B4AAB5B2E8E6E6D6D5D5A8B4ADEAEAEAC7C8C4B0B2ACA6B3B3E2E2E2DFDEDEE1E0E0ECECECB3BDBBF0F0F0CDD2CCD4D9D4F4F2F3C2D2CDEAE8E8E4E2E2E6F3F3DCDCDCCADBD9F2F2F2A4A5A3F0EEEEADADACABBDBBB4C9C3A5B1ADCECDCDE5E4E4D1D2CDDFDDDDD8D8D8EEECECCDCFCAD9E9E9F5F3F3E6E5E6BEBFBDEEEEEED9D6D6B4B6B0D8DAD6BCBDB9E0E1DEC8CAC4E7E4E4C6C5C5F2F0F1F7F4F49D9C9AB4C2BBE8E7E8E3E0E1DCDEDABDC0BAC2C1C1F9F2F1B9BDB9B9BAB8E4E3E4A5ADABFBFCFCE9E8E8D8D6D8ADAFAADCDBDCFAF8F8E4E5E2E0DEE0A9AAA9EDECECCBD8D5DAD9DAAAADA6DEDCDEBFC1BCA6B8B9F8F7F7DADCD8D4D2D1C9C9C9E8E8E7C4C4C1BAC9C7ECEAECB5B6B4D3D5D2B0C2C2DDDCDDE3D9D9B1B2B0B4C6C5AEC0C0CCCACBF2EEEEB5C5C2B2B6B3F1EFEFCACDC8E2E0E2E6DBDBBFC2C1DADFDDBED0CEBFC5C2D4D3D4C4C9C8FCFBFBE6E4E6E3E4E2C1C6C0B3C4C3CAC7C8BDC7C6EEEDEDC0CECED6E1E1DCDADBFCFBFCC7CECDF6EFEFCAD5D4C5D8D5FCFCFBFAFAF9C2CDCBF4F0F1BBC2C1EBEAE8DEE1DDDBDADBB2C6C6A6ABA6E1E0E1DDDEDCDEDDDED9D8D9DFDDE0D1D2D1B5C3C3FDFDFDFCFCFCFBFBFBF8F8F8FBFAFAF7F7F7FAFAFAF9F9F9FEFDFDF9F8F8F7F6F6F6F6F6FDFCFCFBFAFBFBFBFAFDFCFDF8F7F8F8F8F7FEFDFEF0EDEDF2F1F1FEFEFDFDFEFEF7F7F8F7F7F6F7F6F7FDFDFEF4F4F3EAE9E9F9F8F9F2F2F1FAFAFBF0EFEDF3F3F3FCFCFDE1E2E0FDFDFCF6F6F5F8F9F9F0F0EFEBEBEBEDEEEDF8F8F9F6F5F5DAE2E2F8F9F8E4DDDDF8FEFEF1F1F1F9F9F8E2E7E6E3E3E3E0EBEBF2ECECBBC0BBEFEFEFB8C2BFE3E3E0E7E7E7F3F4F3F6F6F7C3C9C9F7F2F3C5C3C4F4F1F1FCFDFCBEC4BEC0C0BEEFF4F4FCFDFDF5F6F5FAFBFBAEAFAFD8CFD0CFDFE08D9796818080EAD9D9FDFEFDC0C6C5D5DDD9B9BEBCB9B8B7F0EBEBF0EBECF1ECEBCFCFCEE1DCDCEEEEEDC1C0C0E9EAE8E9EAEAFAF9F99AAEAEC3D0D0E4E7E7E6D4D4E7E7E4D7D6D7ACACACA7AFAEFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0E1C04C0E230AF4376A043B67850A15D9B8D19D068912FD0590C089A0A600333E090C0552203178F08E99311387A6B97CF98E8D6AE9D01FB447CC3C29D1B580128B7D12DC5C08B2A6A5BF4C995EA1223605080D1AF046F8E3199118033B559CD8B1430988844751283DD2C175A0A660CC525CD0D63622386894183080B353E0146C3BECF0A8FB8FD31F0DB308475459EA51258803BBA113D1473135608A25120BF12FCA95821E0C884001AAAEBF11BA3247D4F53106835403FDBD104162CC1C1C03B4F0DC144C95EA86FE866D95C580522781C808F03BD3840F0110E91C71F015D15FAB01907F2BDCF56A6032065582F5FFF060E1C69E315FDA444843874A0621FA606C15F82AD3FC8114D6A9C9AEDDA11609FB8873C71944F42304299E30A306020A9420000154D8204D2E9A1CB4C925EBC8804B7F2D6D32C23D62DC90041A381023101E533020438368D061C87B8DF8E65D1732BCC1214FC80820430D359C0006050114A4C10A0F18900019026C8041067AD0F24F2D3B2030C98D099DF4472D4BD4124C2B5A34630137085060C00980EC00CD41F54CF38E1109A461021B75BCF10611433869D0200154E0C534D3D0934C2AF7B5444C0A4E545105259438F1481582D07104022EFCE300041128820D2909B9120F0D7224A0801452C880850405E9C28C134E945186138254C142251354FFC05F439C48C08213417831801BD9B8D1C2001FF0C14D130708C48B1559288242850B1183C30367C8F0C3A802C922C90112ECBA48363068B0C6000B4451C501673AF4070B8F48D0C228B3E2510C1B323461071215DA60450977D8E110140660A14001582CA041151DB4008328AE1884070C53E8508504CC2A040403130C50DA41A1BCC08801282CC0C207A5A910491A754CD0900B063CA04203263481C21F6B1CA75026D7B430C1072A2534CD3E70B4225026110F540F083220008A26D35452C527BBB8100919EA00B19026431CA1C22C639C5000094824E4CF5303893205054E044DD01FFBA460E244B3FED38DA3EFACC4C13E94F803CA1749646184CF0901FF23C61038FC03448F26EC80E94460FF631F44F3D9520B05261BE4090B14C010DB41FE34E30702C2FCB35526793010C33F01DCD04F090FE886D02467EC910C2C955000C00926AC63F953607F6DDF56607352CB07B51844F60804053A100CE330F240419D4CC04090C28C890617660FF486182E98624919AD7CF280D6E178A2F8D79E3FB57BC41A4C534549DEB110034B9E2754C12146F062D005954421D03C9492C1C041BFA89A10DCC084016C851300684001C4608ADD792E139BD0843F24B8927F8C8D5403490B677ED6B67FE061198000C013E6433E7F20611F96FB072F9A10810450C020C1A80116BC108515ACED1FC4B881028F3008FB784E139F800A09FF05220A201CE0629EA8420CF863BCAD6821107E6001422EC082140C640BC84A40F008B28533BC6100951840416EC1A012C8236240F361FC06328509044320C1A8C21F1AC203106C638EC6FBC72628F00866F9430508C842345427901CD420034810440A0912831A24A0004EB81C09CD27900020E185FF90C0046E58BC89FC6315CC20800B06A1843C3EA9124112082E30300448D44166C6308211A0000709D4E3203880400236C08107164F8802F9041028710A4D5022059BF0E44134910A42B06105E43B881BAA30058278E201CFC8C21D04A20711ECE10F55008229FF31095D12008F0411E27D5851065D70C209E2C4DC403A11043658A00708D90A0CCAB0FF8082840000EAB04706FE01011FBCE32C03D0844251A189526482A1A8604113122080D1950F216E98C01F02F0882D7A2D177D480006C6B746828C220A5D2B4805109004134CA01CFC400112F2C08A4D74A2980A5DC52A34518F1660C10A11C0045BB2134D81F060020ED0C523C4A8904E5C420EDC48010F4C91102D48028305D1C33AD061011FC8E31D5308C34714D709188C000A5BC0C01E7E600111F8E00498100528D867100D2035004E606A3E03310E3970E109A5C8270E2591D282D8A20F67E08714D6B1834AA8810614A8C41830B00101BC890C64B040024470031790430E99F844F5FED10A4A04C3134E588242FC818F00D0E00FBF689624F2609055FF68000644E0473864100E6B58E01E87380401E800861F18A00D3CBA0100202005E9300082392B080FAE30824D1C33B082C5832450B189710A040651F0E84036F1A710748108F740C33D0C41883D6C030B0078800B6CC08B5AB88113BEC000375070267F7862B43C7082E5244101BA5E2E7E40435C424640890B18E41301D0C42606B083AF72A10F6AA0400574F1893C7E2318C138402DE69ACCA27AAE165750492DB857902196D4C4042905079C7031826CA215B0F0042862300D62C06200B5804D8BDD22812568022ACABC0F273A00874A1E209E435670490D32A8261BC41F172086C174A1054E68E20F0B78634232E180091032C9024986692742090A88AFFF93075E6D1BAB79105504400B1AD040005A200B524481240801DA0024E01B260EA414C178448D2BE0841604EAD10C190510CA30DA4ABAA11530084027B4D0090938C10D5F5368274C718A4ED8E214A255E681B3210166A4F30329C0A7AAA74C6BC50DA0620B1945A651E3094404A06230D044317D086318FF43141C38C09BE3978C4770E0387880B4B107F2871450027E0AE1C426F0D00BF2C5A0D1D896329C07620A0E4CC00B078941C53AE18D82302E21C958C0233819E86A182F134E48CA7DBE66CAFB8482151D9840073311050AB0E3960F69DB7D2E008447CCA0219EB840C20AA2852A8E0011F1CB63A07A0A041A2764131390403BE4336BE655E51115C36848262A800452E4310055AC450A79C7BBE2B5A2162950F64232C10C4A0CA005B1480C9ADC30002438C1C10E81E03849F1084A708015A218380C169082B428A3D606F94319D4358211DCF909A4A0851B82C1811850421206568C3752C08209C460095E17C52738718BA277806CD33887443651E628A480031C180010A69102494C4012C9E84F82892181B04C80021440820E26408932C03A165CD1C42DA69116449DDD019817376126780A44F4C2130E20DB011E71800F482018BA48041E2868908000003B, N'frame_silver_small.gif', N'8ae32663-8d6f-457d-8343-5b181fec43a7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (782, N'Mountain-200 Black, 38', N'BK-M68B-38', N'Black', 1251.9813, 2294.9900, N'38', CAST(10591.33 AS Decimal(8, 2)), 5, 20, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700009A9CA3BEC2C79DA3ACF1F0F96566694D53647C8494E1DDE44D515C41454D444953B2B2BBF6F5FDEEF0F5F5F5F5EEEEEEC2C2C4EEEEF8D5D3D90B182A97999ED1D1D4E9E8F450545E3D43525D616AF0E7E0CBCBD3F5F5FADFDCEA83848A000204F0EEF8F0F0F0FEFEFEEDEDF6FCFCFCDBDAE3EAEAE91423343D404A6B717970737AA4A5ABABB0B6535662F2F2F45458638B8A92BBBDC0CBCBCD414653AAB3C1A9ABAEF7F7FBBCBBBC6C6D728987A4494B54F4F0EAFCFCFFFAFAFAC4C4C76A75825C6773E5E5E57A7C848D97A4EAE9EC43355C494D59E1E2E55B5B62EDEEF1012543F1F1FCE1E1E2E8E8EBB3BCC5F8F8F93C3C44EAE9F7EAE9F2D2D3E38C9197B0B2B6ABABB2010811DAD9DD444B59BFC7E3848B92DAD9DA393D48A2A3A6E7E6E9213346F6F8FBE1E0E9E5E4F02324284A4E62838790FBFCFEB0AFB1CBD4E3E6E5F6C2C6D2E9E7E85A5E67DEDDF261656FECEBF5D4DCE438373AF8F8FFD6D8DDE4E4F92B313AFAFAFE2229348478989599B37E7D8ADDDEDFF8F9FBEBEBEDB2AEC8323D4A676A70555C66BAB6C0E7E7F2CDCDDAC4CBD2F4F3FEDADCDD383E50B5B7BB554B55E1E0F2343641A3ADB9CFD2D7FEFEFD5B6882F9F8FCE5E3E5373A43424658F3F2F2ECEEEE9EA9B7C6C8CAE2E6ED9E9FA4FBFBF9AEAEBAF3F3F9F3F4F5F5F3FA131319EDEDFC2038535257696A6672E4E3F2352949A6ABAEE7E5EEE1E6EAE3E2E9FDFCFDFBFBFB3F5266BCB8D3777681FAF9FDB9BACCCECED1040E1CFDFEFEFDFDFD74787FF3F3F4484551A8A7A9E3E3E5636777FBFBFFF9FAFB8D8E99F9F9FAF9F9FE5F5D696F748B7B77818A9EB18B666DE3E1F3E8E8F6524A73A6A6BFA5A5AE6C6C7AFAF8FEA3B9D5353069DDDBDEABAAC86E7E933239483C3648393240F4F4F4CDCDE2C5C8DA352B5DBAC2DA75648CD7D6DA6D6B8A5A5662F8F8F77497B4575486F7F7F7EBE4E3FDFDFCEFE8E9ECECECD6D7D8E7E9E8D1D9EAE9E8F9D5D4E8AB9C9F868598D9D7E6BEC0C3E5E2EDEBEAF2ECECF5DFE0EC968993B0BFCCB6B6CEB9B8C6F8F9F9595F6FE5E0E2DDE2EEC9C8CF4E4A70ECECF8FFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C183026D7D1187B0A1C3871023460C4281800F8918336A84880B0001245E5A6D1C4912233008482825A852B2A54B844136B5402147D7CB9B372DA1C1014541061824700A1D29E2DF19693A025119CA74E3A3132784586A4A55A2B42BA36260DCB5C70C802AB3F81C0942E4C193AA198F9CF8406B0200891500102BB5A88D10185BA850D95301AD44331FAED0FAF0C1081F8C7E6EE04082040A945CD5DEFA7DF809CF870957087F08452123B16AA528405866A5C9E48702020BCEAC39818C886CBCA1C8745AE29D2E8169B1D61C18C754480D615012523B22831CA1AE84C2406B306FC2646E348C5646C7AEE20F6DBC4A76EA54BD7F3F7407FF7EFE2150887FB66A0D2C14EE593BEC10739C2A92038440209809EF860E81A09A6DD9F4A3CC59F021644E251314F14A2C029D21886E99ED47980A53FDB3C77C7A24516043040496471404F551C015247E600719CFE1E1031F9975334681B63C70041F4C3C10D43F6864464B1C067D928573B49891C173B4D86162030F89208E09410471093025915001052A08D2420B1764A0020037A0F801060825C19C66BA700105798138848E225BFC0004106FA4700B15019C87912DEFA460442E3AE432C30C28F0A9C35A819971907A4D00B29B4DBA78A91F01E618C4C4162D2070C105DE60D9C20B082000C4260F4484CE2D5D609A0B258D7481C2AA2A9DA0E3020E1DFF01C66ED289E34128E37D40061A0391B002025990428A113354A2C00C18A0A08337DE20F0467F0E55A0032517E88042069BBC43C70158CCB2097E6C918140000E21322B61A1406B0E0EFBB5610E304224424A0195B400C3025C4800CD066808A14325C2B4A0C0260D558042020A74810404D6F4E009037D1CE20024C5E86847170A5CD4D053242A37CB40E7E8C01B192F54424A25597801CF3F4B88800CCBB50CB08A190A5C3AF041E8E89000025DFCF24D080E3CC000C48784C0812B6C1100854A1760E190216B6546C66103F920076F7860204409FF7020CF127720C3CA00AD58C04330B35C60C40B46B054D02D94BC90C02687F0604910427BC2C31296A4FF31C107AEFCA348230A28A0420F0E05F0B7D4D70DD48322461236014B0CD8128528C144C143040C8C30020F3C4880E50B8220425026502090C01EE811C2C0037C78D240CC210C11580073CCA14B175960A0C8438AFC4D18019A6828903848E0C1DA152968184C1D7BDFE14F046A00134104FFCCA28320461037100E281881841F0BFD630103417C318008707C31641BBD58F00F03CCA080C11BF83CC4C2157874E2080D3408C00EFE0180469441014898C060F0E0887F608E01BD18401DFC11050EFCC3137300000674F69A7F98C95A2BF807097631950858800EF368C2141E81075A546009B1888208663103056080360FC10426C01189156CC1113728870AFFCA50860C24E0037800046132A0091010E1134B10853FFAF08F0180281E7243810704A20B28E8E0027E38843F5AF185508D600A0B78C71A60F0812C74AE0344608310158082A53C640D4E90862B0C300427D4831F3AE005023283002C1C60086B098501A6C08F47CC412011F00703D421020AA0204BE7F140E184F00013ACC21D7098C417B82006466CA0032DF800209650023658024A5E40C10C52F01012380113BF48410A78C10B2750C00E960985179E508E03E863036F18CC30EE718FD74C520D6A18402C3660844A55A0162A505D08C5618D1048C11DFC608119F6F00369E0AA0011780011BEA00F132CA00B3310042E1C0289003CE2082A50000C1651FF8F7C90680202D8471AD29186355861133038C10412F18B0530421403F0870D38D00B3F64400733508438088000055861095218C10096E08F0E386371E259819D06C20D14D4EC120F8983131E010B6AFC2213C5708E6656B3D32B9C801605F8C31418C083111C230A1190C71B40880F0210CB6D04F1030DAE30017AE0CA0EF710031C22308228F8831FAABA40A41CD20A3CF262149830842A2E800730B8E207F9E8A802B2000830FC54094AA0851E56C1833BF8B5173CB041207480012FFC23100813C0002C60014248C1146ED0C22826A0D00950A113EB1803083C61837F4080120A68C33C1B52145FA8E20D1360C72C5A41050C94C1000439C312B0418305FF4CA33991B00721FC1A064F7096086F30020A42E881C798811CBE98A82818E1861218421BB2B84700CEF18503A8C10D168003032880B114D842220698803134E00034B4211F29F84204E0600A3544C114FCE8C4304691880D704314EA1085273820895A48E002089881565640B80C34617AC720C40822C089125C430212C086861C300E0E20630087C5C00CB61091B3E4601AE3F8EE2C5CFB8677AC621E2300853FFEE1025900001366A0032482C18008B8211E5288450D1460840BA0C383E1D3C1EFA230000E80680EF370870B425081792CE11F0E980430E6508804080201EF88880974A18252BCE308FFB0461B7AF70B06B8A003EE3041034CD181770040FF1162604015E33149068082190840C12D0682582304C2027DE8C3CB6CE00F3E88A117C0D805160630827F24DA169A7CC11B46FB901EDCC00714A8011704F20B0C14201F4C38048693908A5594202E6BE08314EC038706442C0633B8000A7E57941B3442609D41862D80110517206200C158D201D8C08028046501A1CD022A30121412B4A228FF404416CA50003348A28A20E044071AE08727C4A309EAC3301C6C1002B5CDA00D0EF807B45590800B286019FF680532EEC08420ECB7077E78C0241E7007065480742D4801A54942014F936205CD38040982400871F8E11F2308011F8031024F541107332840177E879EEF3241013B4B80179E6C82B2706000E4FF3087251E600E56F8004BA4B840075B828B37B89614006045125C100107982366D668821F4460661C4C0301D3F05EC7BF9B094AB89412B790801F5A11823B0C0012360A01116080002C651427584040250A400A215420B0DDE4C1001C0E8C56F8C0081868C13432B05211D85D20EF484023844B095854E11C4D48452BB801010F6029030568DB502A7081B117E0051EF00113ACC1034F00831B83E04517A83D8D3704C121E768831DBA5E3804BC0009C1ED711B84E19399DF04384C084422CAC0B62C5CE0161E78C30B30300D23E4A3008910C24A1BE200005CA011B9C845A70A37031DE8200B82A08009AA828F5FCDA0C78248FC0C1020084E5522038A20C78841EC6E0B5BB402184131410D70A0BA1A3A1F0181580113D0D383567CF725E6EF013010B70B0064E04F7FA26118600429C0022EF00FB5600BD03610E4670B24A07F4FC00AFF800FE89009375003351003884045AC000C6D677F0B387E761782062102E6070CE2F0091C700649F008A8400566600654500574F00967100638D8073D40020AF80F0101003B, N'hotrodbike_black_small.gif', N'82cb8f9b-b8bb-4841-98d3-bcdb807c4dd8', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (822, N'ML Road Frame-W - Yellow, 38', N'FR-R72Y-38', N'Yellow', 360.9428, 594.8300, N'38', CAST(988.83 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'22976fa7-0ad0-40f9-b4f9-ba10279ea1a3', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (835, N'ML Road Frame-W - Yellow, 44', N'FR-R72Y-44', N'Yellow', 360.9428, 594.8300, N'44', CAST(1043.26 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'a0fad492-ac24-4fcf-8d2a-d21d06386ae1', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (836, N'ML Road Frame-W - Yellow, 48', N'FR-R72Y-48', N'Yellow', 360.9428, 594.8300, N'48', CAST(1061.40 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'8487bfe0-2138-471e-9c6d-fdb3a67e7d86', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (867, N'Women''s Mountain Shorts, S', N'SH-W890-S', N'Black', 26.1763, 69.9900, N'S', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'22616fd2-b99f-4f7d-acf6-33dff66d42d2', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (869, N'Women''s Mountain Shorts, L', N'SH-W890-L', N'Black', 26.1763, 69.9900, N'L', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'1a66b244-5ca0-4153-b539-ae048d14faec', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (874, N'Racing Socks, M', N'SO-R809-M', N'White', 3.3623, 8.9900, N'M', NULL, 27, 24, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9c7eb0a-1dd1-4a1d-b4c3-1dad83a8ea7e', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (883, N'Short-Sleeve Classic Jersey, L', N'SJ-0194-L', N'Yellow', 41.5723, 53.9900, N'L', NULL, 25, 32, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839614E003100F70000B3B257C3C361878787F2F007676559EBEE4C79784A8C8642696838B4B798B8B31C4E4B3970736FB4B4B426456EC9CAE19A9542363F607E7B51A4A4A4B1B1B16A662D929292333232E3E3E3ECECECDEDEDE817F49938C44BDBDBD56523533458F3137529797AA7C7B25D8D809E0E0EC7E7FA3424E88CBCA38AFAFAF989558646667D3D3E5AAAAAA333763C7C7B79A9767C2BE1AC2C2D9494B7DADAB4A58888B2C34664E757AA9A818474F52343548625E3EBEBEBE475284696994CCCB4C5B5C5BCACAAA9E9E9E9694824A47337C7C7C565877313284B9B9B8B3B4D49B9A3B99999985844BA8A758625F4DBEBF2A6465AB413F34575666313279494A4CB7B7B7868341A2A2A2BBBAB66F6D3B908C3DBABED63E3C366C6E4E6E6E5B3B39339899C72E3E84ADADAD45444EC5C4C4313272656347A7A7A743423B7D7B6C74703E7B7930868577827D2C8B8CC04441331C318E4C4B41BABABAFEFEFEE5E5E5DBDBDBE0E0E0D5D5D5D1D1D1777777E9E9E9D8D8D8C7C7C7CECECECBCBCBC2C2C2E7E7E7EBEBEBFFFF00EEEEEEEFEFEFF1F1F1F2F2F2F3F3F3F4F4F4D5D211DFDC10938C2DC5C143FDFC37CDC944FFFF19FDFDFDFFFF01777130FCFCFCF9F9F9FBFBFBF5F5F5F6F6F6313390F7F7F7F8F8F8979241FAFAFACCCB8CF8F7085F5B3B32343EBBBBBBCCCB0C588A9A1750A1FDFC2CA6A370BFBB703D3B32BEBFDCE5E5F1A8A8A8CBCCE35D5932E1E1E63033592D314ADDDDE97D7A45B3B040FEFE01DBDAADBAB84E97923D3D3B37EBEB2C454743E1E01B3E437E37387E686739989831D7D7D7798858929134CCCCCC777544B5B63DD6D637908C27706F4467673EE5E5126362322F425481968C575887EBEB17BCBCBC484765CFD146E4E407B9B86A7E849CA19E1DD0CD11B8BA41F2F21CB0B1C2AEB6C0ACADD0989842FFFFBFAFB0405755484E5148373B40ABAA93B2AF5EF2F2F8373632BFC086888523E5E5D16A724DDDDD50ADAC86746F2F5759A4587681CCCBCBCBCC6097974C514F2F7E7FB9BFBE0FC7C7CBA29F6B8E8D1E9091BF8688BC94947E595828808067BEBC54BFBFBFFFFFFF21F90400000000002C000000004E0031000008FF0083F81B48B0A0C1830677285CB8A383C387CF9E81021527CE918B54A834D848A1238A302C58A83233C14A90204A94585829A02511223FFCFD9B49B3A6CD9B36E5E8DCF9A8E72349402951DA346952264C962A1D325488D020411900E5F93307431D0D74F4D8B9C3A7CF1E3F3B403540C162021E9938D3AAFDB793A74FA0928412358A542953A750A552B58A552B57AF60E38C2D7B76ADE19C6DE5F8FC197468D1A34997367D1A756AD5AB59B776FDBA433059B3680F1F4EACF8ED200C721FD7958CB7F25ECC7E37071E0C5AB4E8B68442F49021A5990C23466484C8A03AF25DCA7A2FF7D50CB833EDC2B60DEBD493608611324576499152438A980560A8D5FF816C77725ECB7C33FFE5EC9970E8E869B531F396409D981646B2490A71894C16566FF020CD0BF518679E6BCAA9279B739F4107DF4D1DF0300A0DD724504B0A17D4D0822B35E4E04A15F2BCC2C32C2998B08E06AC21871E6CCCB1F7DC7B0FFE03840FA57C3021313870508C2C2D38B0CC1B3988308B35E59C314289F0D0600E1D0726975E6CCDB5575B8CFFE8B14627A4D4388A0DA728830D238D548143386EB09148208840514E054B98008F2805B843456B4EB2B8DE6C0DC268DB04603080658D0E5CB0CF008E80C9810EB778A0C89969A6C18E0232BC59800D5EA021CC79AF2D772783EE3D288C0419FA498A3D2A9CE1C599853672E8168A320AC50149C0FF700B137002E385046B609A20942EE6F9E00F9A5C008E9F4E1461CA19150C1048AAABB68AE6AB8BB0514E0DE944B3C4ADDFE8FA648B78761ADD1C3904AB860A917CC283295B44320024CCEAC0EAA2CF1EB0C8021942900B17B74EE10F82DB6E2AA583A25D0142B0062CC28AB92F5C10892ECEE0520000CDC29BA6BC0B0C510304E1E02BC11416F06BE782FFEAB99610035F30CC0C9E7CB2CB101710700200FA4CD34FC4AE52ACC3C550683C053F1E6B0AF28BF09551B201B6A48C0CCB043001403F018C4373BCF3561101041EE8DC851D75FA1C25D0B6ED90C5D0587852010C2CABCBAEA1EE3A3BF1BC100C6340193FE4DB8516592BB8B5AFB675F375B00418FFA0C608642BBC6EBBEFD6CCF6063D5CA2F825BCEC42F78A5AF7EAAD68E8FCB6F825DC8412B8D984AB0DED02106C00C71879C480043EF8B45237AFDD4E295A2A5F7C81CA2AE4FCE383E6650F8E76E150839E061C296AFBF1DD9353E9033D9BEBAE6ADA127F0E8132FA04DFB3DD92BB6EFC0DC99FBD3CEF6B83DE8B38D2AFCE2DA7D6C778BB02B96BFF74F71060414BF89053DF3AC0E68F604CFA9D374F31040800017FA6F2231FFD1E048F5954007FBBF3DCFEFAF7BF5D8D2F6454A20927022102046E4F816C63E0718417B9F9892C3A13ACA0E0D4C73CC3810E012E6860BF7E86B7084EF01E165C9FF350A8C2E1556F80F0996035B630C2FC99907F29DCE0F4FF5827C00FDA66823780420F13A8BF0C06B149F123220423F88F12244301A758E2059B78C231D4B08345A4E23F9EE0041878418B325CA01785283E7F712D82F3D8800294C83926FE100B6B842200A5F8462A7D6103E770031A4BD83B08A4E10E5F0CE01423880415C0208B75DCE20F63718444F2B185545A8523634848F66DC002967C601F63948A4B64CF8785DC400842E9464C52C9949CE49EF3BA900F56B2B078546A4716628941D0150116B6245EF962F4842AF0928B4B78C22182794323DAA60D0438A609A3B08DF2D0298AA274658CBE100541B22218BEE0463C24D08429E4400C4D3806017ED0026844A1059758813555B4C76CE23246A878C213DAF0688507F8F301AB00E83F1FB0027F9260122B588181AE59CF56DE3382A4590C5C52439785D2D3810E1D26441323D1C6CC853CCCF4A0186B12D1B778B438F3E4A0229F830284B8F4A52F6588421C12919A52C42218C9C8461AD0110A7C0424239940494E929295102120003B, N'awc_tee_male_yellow_small.gif', N'2d9f59b8-9f24-46eb-98ad-553e48bb9db9', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (907, N'Rear Brakes', N'RB-9231', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 128, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'5946f163-93f0-4141-b17e-55d9778cc274', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (936, N'ML Mountain Pedal', N'PD-M340', N'Silver/Black', 27.5680, 62.0900, NULL, CAST(215.00 AS Decimal(8, 2)), 17, 63, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839612D003200F700009C9B9B848283E9E3E4F6F5F6EDECEDC2BEC0E6E4E6E1E0E1DEDCDDF2F1F1FDB110D5D4D5FCFCFCFFFEFAD8D4D4FCFBF8D9D6D8D5D1D2FC6908DAD9DA919191FDB064D2CDCEF2210FFED69BC6C4C5FCF9F9CECCCEF94902FCB138C8C5C5B3ACACFFFDCAC0BDBDD2D0D1E5E3E4B1AEB2EAE9E9A29D9DAAA3A4BAAAABDDD9DAC4C1C2D0CFD0EFEEEDFFFEA8E8E6E8999595FCFEFE8A8989DFDEDEFFFDE4A1A1A1FFF98CBEBCBDFFFFB7CAC7C9F9F7F8C6C3C4C2C0C2898789FEFDEBBDB9BAA9A6A9C9C9C9B1B1B1E1E1DECDCACCFEFDFEFAFDFEF8F8F9959796AAA9A9B6B5B6DEDEE0CCC9CAA29EA2FED710918E8EDAD8D8BAB7B8BDBBBDF1EFF0ECEAEFADA8A9DCDADD8E8D8DE4E1E2C5BDBEFCFAFCB8B5B6E2DEDF837E82BAB8B8888486D4D2D4C3B6B6E2E2E3FEFDFCB5B2B2F4F3F2FBFAFAC1C1C4FEFEF9F0F1EFF2EBE3B8B0AFADABAC938E91DBCCCDC0B9B9F8F6F6EBE8E6CECDD0C2B6BAEAE9ECB5B3B88E908EFCFBFAFAF9F8FDFEFDF9FAFC8F8A8FB6B2B5E6DDDE949292D1CACAFD861BED00009CA09EBDAEB1A4A1A3F71700F34333B8B2B4D5CECE8F9190E1DED9ABA8ADCCBABF888A89A7A1A5DAD8DEC4BABB969394F9F8FAA6A4A4F20200F7F7F9B3A5A5B0B1B5BCB5B7878688C6C4C3FDFDFD929493F8F9F8F7F5F4BCB1B28B8D8DA6A5A8D6D5D78E898BFAFAF7AEAEAEE6E4E39C9898F4F3F4BAB5B3EFEEEFC4C0C0D0C6CAEFF1F3F3F2F37E7C7EECEBEAB7AFB1E1D3D3989797D1D0D4D1C9CCCBCACCC9C3C2BEBCBBBBBABBF7F8F6D7D8D8D6D4D2969493C9C2C5FFFFFDFEFFFFFFFEFFFFFFFBFEFEFDFFFEFDFFFEFEFFFEFCFEFEFFFAF9FAFEFFFE9F9F9FF9FAFADEDCDBFEFFFD989999FEFEFCBEB8B8FEFCFAFFEBC9A1A4A3C8C6C8BEB3B4FB8628FFDD7EFEED5CFEFF60E0D9DBE2DBDCFFE2B9FFE6AFE8DADDA99495FEEBE7CBC6C3A4A09FDBDCDBCCC6C58C8D8BFC6F5EC2B8BCB29F9FF8FAFAD8D1CBF2F4F18A8B8BB9A6A8BFBEC0F11410DEE4E69C9BA1DEB8B68F8D8FB0ACAD888888CDCCCBE6D1CFD1C7C7979897FDCCC4AD9898F4DDC6FFFFFEFEFEFEFFFEF8FFFFFF21F90400000000002C000000002D0032000008FF007DFDBB83E4D3A64D4768246B76E09FC3870F91FDB3D0A78E93100E1930E1222AC4330F4488E081D1AFDFBF7EFC1C8E0080E8203E1A0090A482F8B02430288810C558E0708E1E2EF274C08AF08F483F18BF4EA27C18A6591D0A145E3643D28AE6C97F524C209247E140997F57787091E501059F7FBF909574B8F4A13859502934A37164CD00ABFF1CF4F9C464C3AC1503A2B8E2920C8B1A16FFF0682A69126F28A89B281C611944D943226F3478780180CA0E3A2476800AE0459A216AA31E6AC20B7145CEC814367D4A92A0550A1C050A8470F3C8CD9820B8CC9821312F09AC67250E7C496160990C04CB5803A98308AA135E2778B7CBB061C3120FAA7AADFFB29104141D336B2E090297AB449857AD84C897C1FA5F864F14AC9842E5C64F0420328C0001155640F2C20F050C11052824B4338D206D40344C4A0EF992123F024164430C008CE141044B0CC2861B025C020B1B98D013000F3F6C9001148AA880422CFF08238C33FCACD54F033C3690A16A5D8CB1C40219F4E1441F54986308092A90204B1F6C482242281B9851801CDAD424CC3F8BFDE3CF970DB0F5D004215860810D8388120E0EB4D01242142B6061C30AE495B0C60EB3E02047049C70D94F97257DE94F31495DE6830E2ABCB0862986F8E1830990F040C325DE18828B0F2A8CC0032673CAA14A180C00D30F11C4F033CC30609EB49A435B84E00124A2ACFFA1820726F0B0CE3AF43861412C1FD003890E0EFC10803C71F46241020F0C1312110C4023C69784AEF54F0E054430C2207D84D08E2C5EC470EB3A4E2C604C323104A005014BE8E18519B4404046279DE49045161A6890C097BE18531211C0A4104218FF1880842086B0E105238C1C410A1410B8300823010CF10F04516082CB134F305094145744A00A2C27E0CBA526C410514F01044C1BC139282C6102004174810B1206E8908424EBB8609F07B274F1C5023A98488524C924238D34FEF8781211FF24A043040494908208F758D009013624C30B226BB8F0833C41EC3080149268810B146475214B206C0380CF2688249DD25A06ECF0C4041364A0CB3F13E8FFD009110B9010441C8E50E1453249E0224B0C4888206C12D3D4414E1D75F4614A38F3F8138C4344ACB6850E101060C41388895380245B6441402B2E74FC8215148C01C5185888F0821727F831CF07581C520A0B64DCD10085FDE001D634E2301089127785E2423DBC40304715A120E0820B5B1C00470E16E813C20F6A7892CD2814AA56FE51BFA4E08101C00CA08411FF88409F0A41B0F0452528A420450264BCF1C6168FB0802254310E08A8830165C8C131ECC0408868C2782928C00180B1BC01F4E339FD60000474A10A148081002EE84419EC90802C4C2303EDD0C2131C00875CA0E3188B698C4344653C01A84017C760C0085EF10F17ACE00E0438C02CFF48A08830C8E0151AB0C30156A08952D8800E1ED0C52ABAC10FA4E00518C43089143C20029D194006C05006804A400947D0C112B908036258908153F4701E6C1081389840857FC0A008E5A309D338918121406004131882010670857AC0211255D0411C9A4680016420653940802102A03700BC800CBFD04431A465154D8840070B004228BE10074F6061022B90C2170A108632106002A10018300E300215046009A148820912610C22146A556C598B1476B002371240049500C3001040802F64200C1958010266028CE99D02010080800E2CB0061FF4A30830F80703345613C63060033B30009704408D0DE4C00853184228D030C80940E0140698C01CFE61FF840588A011D3C80400B6C0250600B3260FC19A08A4309003B4A3162E18811946300022944007D4B0051010C0803718A00A05E0021326600A2AE48201C2F8853158C30F625C41150E70A3140E80802F3833151F5DC1235050851118511CA180001348B3842E04200576C4033058CA0F3B4420045F6041090CF0060464A01694F8CE0A22508A7132403906C84108B8C00524AC800DA860403857CA1A3C10E30E2250C106484900014471002E00E196C4E982508CC08DA9A0001730318D4B84430068F9852F8A41210CF1C319677046515210051DE060050218C21CD0508A27E46020AF98C0135CF0159308C615F048811A16A18122A023183C826D0392168C60FFFC080E99F0C1060C108A2CA8EF0B323880684B90806188810159C02B0D6830885DA4E303ABE08303662BA8EA26CD423DF00703827B802B944107B7C884073EB48B2794E277CBD8C2135AB18B3DFC800A89B0053B044009EA6ACE17BE0886A078D40361F0831FAD8000FF44B00B073820055718412908508637A06114C2F0450E1AC1850004010EB0588414A83B3C87F043BFF8520C6817408904D82143C380887FFFCB0C66FCE3003CF0821722608113B481BA3FFA872F5295C95F70220C0838462B8691D25F18B91FA5E207328C6C6489E8A0C26C00DA07700C911DFB43206B39C51F8D40861CF1C3478CCD2342EF20AC0004420058A0F243AC8CE52DB9E0FF0B25688511BCCCE1060443CC097D410002408A57F862B67904F1F08C5C8477288115ACC84385AC2B379A64F01F3210052602708B1D870922204E1A0866B08F78D8230D69E8410F66500C465FB7269A18E73FEA81894DFD39C510E1F03F6A700D0EB8E30285E8400BB071032F995A69AA698C0EBC8009BCF0034CFED806063A408849385B021D504005A2615FEB769826C02042010280171CCFE00F12200420C6ED6C0E70E00FDC2086A953A5C7A2ECC02A5FDE6F3ECA718171DB9B0312B086AFD7ED0F3187841876B04AA693F60D05344101E62E4435ACD1841AEC7BDD392E68971E126FEBF203042DB881C6FDB1E916CCA0DABFFE511EF19B5F900B6A860E14D95C8A4BCDEFFDD696471069B9CC67BEEE6B0704003B, N'pedal_small.gif', N'274c86dc-439e-4469-9de8-7e9bd6455d0d', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (945, N'Front Derailleur', N'FD-2342', N'Silver', 40.6216, 91.4900, NULL, CAST(88.00 AS Decimal(8, 2)), 13, 103, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'448e9e7b-9548-4a4c-abb3-853686aa7517', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (948, N'Front Brakes', N'FB-9873', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 102, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'c1813164-1b4b-42d1-9007-4e5f9aee0e19', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (953, N'Touring-2000 Blue, 60', N'BK-T44U-60', N'Blue', 755.1508, 1214.8500, N'60', CAST(12655.16 AS Decimal(8, 2)), 7, 35, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007477789EA4AA3B41442E3169C1C2C27877AF196EFBCACADACBCBCCBABCBBFDFDF17573F02F63EFFCFCFCF6F6F77182E2EDEDED65686954595A3056F6FAFAFA5072518E8AEDF5F4EDF8F8F8AAACAC27349B5471F0506AD4B2C0AFA7BCA1FEFEFEF6F6F95D6263B2B8ADEEEDF07C7DAD2F30F4A1A4A4575C6BB2B4B4201A70BEBEBFD9DAEEC0C0D9E9E9EAB8B5EBF4F4F4778876495BEC4B52548282847D838331383AF2F2F241474C929395445BCEF1EBF323272AE5E5E60E15F1999C9C8A8C8B525A8F303ACFFFFFF82B32371A2227F4F4F76D7272D3D2DC0044FAF2F2F36371DD8D95D084A87BC4C5C7282D32D9D9DA12181C9C9EA3C0C1CD8D93934A54B2D0D1D2BFC7BA3B449DE0E0E1B6B6D7FFFFFCEAEAEBD5D6D6969998A4A4AAC6CAE70C1317484C518D8E93A9A4E9CBD1C63E4ACD9BA8984B70A7174DF6195EFCA7A9A9AFADD9F8F8FAD9D7F57A7D7F161D21929B92E1DDD4F9F6F6F0F0F0A4A7A4B6B9B7CAC9C2F1F0F2024FFADEDEDFE6E5E8F4F2F497908D2F74CE8C948B6B6D710222FBABAFA8CED1D1E9EBE1838F81B8B7B9ECE9F69598B9AFB1AFE2E1E3B1AEED8689896A8595DAD9DBF8F8F1848689B3B0ABEEEFE801080BFFFCFCD7D9D6A8A8F2837EBB003CEB003DFE949598B7B1BF9FA39FE6E3F3C6C6C164706C1628F6F7F4F5ECE5F9FDFCFEDEE3E09C9B95060E11F6F6F1204AECD8D7DAE9ECEAE5E8E6F6F7F4F4F7F70043EFE7E2E2D2D3D3FDFDFDFCFAFDF9F9F9F7F7F7F2F2F0F4EFF3DFE0DB1538FEFBFCFD9F9FA1C8C9CB1E2121FBFBFBECECEDF9FAFAF9F9FAF1F1F3D3D4D4FAFBF7EFEFF0726D6E657691232EE4E1DADCA6AEB8F9FCFAC7C6C87E91920201D96681B6CECED0FCF9F95F7595747DA4717074D1D5D3D4D3D66F838ED0CCF2183CEC798B956A6F8E6868A2DCDBD5697186E6E5E1DADDD9C8CAC5DBDBDCF3F4F4C3BFB8F3F3F3BEBEFEF3F3F428303131392E1F42D70F62EDEAE3E4A9A4CCF2EFECD5CEE0E7E7E8C2BEF0A8BADE9D9CEEE4E4E5D0CDC6505152EDEFEEFDFEFE9FA0D7F5F6F56261F2F5F5F6F7F8F9918FA88E98B5A8A8ABFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33A11B8389C48B1A2431F35DE14B2C8B163C50619C0EC9090C1A3C99308B948901162532A5918500A8495449FCC8AA8C480734700472E4A9D24520CD665CA8F198B7EB811A362538457371DDA8025B05E1E4434FEC8ABA82C971A7F2670DC70428F5E0D1FF8A256A4F0E41E800427558409234F8550B515A518A3D2EE64AE1A51F076D462090F20341B2A85D26211D60C31823BC6E180A7C4063C78105732C4D861A230CA225B5CA5C9C0AD185CDE3D6080070962453A1A1EC8D64B74C56DC87A9430C04181161DAA59BB5602BBB3C10F87FAD9A6D8E200B72B16621878A040E06F17AB5B9F52E2A296C122D1582CFF7708ABC9216D0584BC9B60608910825A0C6167DD6ABB0B53023F203A816A7C432C645CC10F08FF6831461A0C647190169C28F2401A485C62CC035F38C28106E2F95750035409C40B024BF4F0C5405A586000034724C460251B7CC20C33C694D003391AFE030E1D6E8420810411B8910B24C8005242110461B0006FEE2CA4451E31008284906D184401178864F2C80C337451481E1DD511821344ECE08439643AB1C32E6700928F418648A7842309C931067D13C4C34A4110201282006012E16798358480484C0E0513C22E504031C40D37C8E0A800430CD1470F034062501BEC3DF05E41B5C433418465DCF3CC86FED033C41B50103144183BCA70C31044BCFF11860A0D65600E146F044A431775A84040028FFC71421ACCBCE1C40CB314E4027BF718178A05A76072490E6B5457D0167F38816A0D7F7851080255E892801A3F44700311503CD280425120BA83111938E340B21F08E40F31CD6092C22E6FEC20CD0BF0C583200B5AB4B1001AD2E690C5A605E5410FA24E00D0843C1F50F00F2CB17C300C3B76FC104629A518C10B4219202A4017CE50C04B030EC0320B87BDF0D1C7359ACC00A6BF160F24C4910C2C700B26AD70C002C305E97103185008E0450BFFCC82812C0DBC0C8B03FF14C1831A12802109000755E1041802D0210F05147C30CE2CBCCCF24103C32030DD3FB2FC00EB0E3814E4403E067C628C120710FF5DD02F11A04A0F02933CF3022C77C84201D5BC604041B2BD14120218A5F850902CF480614E2EFDFD334E03B2CCC18B031FFCE2083CE9F4A58F0D8F80E984330571225D19D6261445AC371020D00BE350F0C20B8FFFF3CB2F0EF07287F019C8500A1194104407AE3334F2CF1C1F7C508EC60E504D81230F7020C438360D23CD9921AC4B903513A4B3807106E921C01B437871B11C0DDC6103062360C0C63F4F17713806E1B8034624118281F8E206A5A0870AC6F1015ED8E01FBC2882037AB10F08DAE20AEB10464C1E578530F4AB0905D182222690060B24440C6F78030028A00F0CE0621693C8DE162AF80F07E86318BCD0873EEA458D08246A1A02690218FFDE2006A68D0316B21807FFCAD10B22FDA20911C002556471BC7F3C62076F9086414A940634B8E020771040D29AB032E06100141F90832BFC418016FC620BFA78812C2E96040798A0065B13080D24718304D4040336681CD526988817B4200A38D0430D19388B5938C383021886417666805344A9208548A1115496BD61CC620FA0F8C731A471033114A105B3A00A059230320448A01435509BF222F20FD04D3009896B4013501085000040028510053E7C97AC72B8214C20340830A43301437C801683A8C73F68B0BC5C1084021018C13020908110486208A8C8D93E8AD0000CBCC01DC784C234EA310430CC001C4E93052F78018C61F4A209096881344E10FF0109B821114518863E66A143139CCA720759410CD0A10D116CC2075168C21F042080045C20128EB880301470816E04C20F3030820C7090AC59CCAB1CA9FC4026CC510A4480038B38D842037E810193CEA21C7950813322300401D4E0062150463930B03281A8408C3348C8174250012674C00A3EF0C0390670850258E2AA562D0009B40184AE1603001128C4305AD00B60BC401FE578C11D25318557EC820899E8052C3A34904454C11FFD5AD50D50503A0C644F8204B80114B886105D9881103070AA09CC200122546019CBC04635AAC1084640030857D0408CAEE08945C80318E5700051EB85023CD2800B6FC5813CB2A74307ECA31C5C2884099CE00469FFF8231385152C610D020B1308A2032085830F0251810150A11967A00215CAC0DC2038F70A572841103C6182445CAC71FAA8893F0420091AF0C009E962DADA1AA08F5E6C411E09104417DCD0045F0D830D6CC0C0D3544600A4228402514800220811063F74C0031520C209A221063844C10B7478AA08E0008310C8A0023050012AF4415781FC85ADB21040C8AA70D67164730FC368403D10D1845734411773D0432F1CA0B2062C0E11358082350FF20113A8C1077558841A9CA10BEE8620120581C524FED1844CA080001948C03D5119C781BEE08A9250C33F2220090536ED0E64DB03555EC0056A54810031C1C01DEEF002F9C2621C3E085368108200136420FF106EA04306BEF107490840103A844503C631C70FE8C2C6E3720616B80081615080436C0901144A01BB0C94C2095DE0814D6661837AE9A3055B10881EA8F78F16CE6B9EA83042D280911058D421105D800301EAB00A4480810819A0DA2C8ED83459E842060848C42B54E00E0CFCC206662D072C12100649D4608EBDD8011822A00BCF29F1037770400B00D6805E8C80489E8B9A3E2870D4C12EE4170920C4263AD1020AE861089230020FB277B1DEED21113468DA3008058C33BFAC058BC0E36EDD606C1C60816A0D10DD1C80A1BD1740E0A617AB342CA841837E355B21F508C43760310C2CE4211146F8A91A482D0A9BFCE20E4708411E3EB06252F32209FFFFB8032F54E043460F040BCA26899E87313508C8C22630014623B5E78011C0180A1160082536010182C0820B3E8D0001AA800A7724421E18788424DCF08B170CD526FAA09A331681EEA013C407CB7B8B123100BED1D5DA01C21EE83F46A00209C04F7AA56E801AE87010372CAF0BE1DC421E2EEE0F23A0C001B20086F57ED1B43C6CE295E6484541EC118247CF20017BA0300327CD32DFF14F0F0408410AA5AC903920E207A49883419270B41D6C02157BA821040512351B7E00E58DC885A2A190CC82D403814E7043065C31D34E771A1636C140121AA1A7142675211FB08537EC408B833C6108A5D8415B2140F8B450B8654462BB09145D0ABA23640BF4589EFF0448218E634080D445F8003078F00A14FCE07D6F9841BD50828076BEE10F22B0832D98568E1ACA411DBBF47E48B3090BE10000000560E00412B008265008F360079D80083EE00661802E3B805037F1041F03064360047E306E2AD009900009814003324004A5600E70D110092058A5902B37400F2BC127A8B20311500582310B3FC052CB230032D02A7CA235446004AA807CB8400184B772005003940332600006BB200033808351513DB04001E1D00058300537F006A520096008866050036E2008C9E00B0D307F347685503310F59001601501113003083047FFB03637A167B2800FF5B005A9500FA3800239B22312E0095D4006AAE00EAA900AAB000B6A04F80F0101003B, N'julianax_r_02_blue_small.gif', N'f1bb3957-8d27-47f3-91ec-c71822d11436', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (954, N'Touring-1000 Yellow, 46', N'BK-T79Y-46', N'Yellow', 1481.9379, 2384.0700, N'46', CAST(11398.72 AS Decimal(8, 2)), 7, 34, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'83b77413-8c8a-4af1-93e4-136edb7ff15f', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (961, N'Touring-3000 Yellow, 44', N'BK-T18Y-44', N'Yellow', 461.4448, 742.3500, N'44', CAST(13049.78 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'5646c15a-68ad-4234-b328-254706cbccc5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (962, N'Touring-3000 Yellow, 50', N'BK-T18Y-50', N'Yellow', 461.4448, 742.3500, N'50', CAST(13213.08 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'df85e805-af87-4fab-a668-c80f2a5b8a69', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (981, N'Mountain-400-W Silver, 40', N'BK-M38S-40', N'Silver', 419.7784, 769.4900, N'40', CAST(12142.60 AS Decimal(8, 2)), 5, 22, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007A7B82383B463D404CCC2F2EBA878ACDBBC5898B94F4E7E5B903029A9CA4E9F4FD432F61F9F9FDBBC4CFF2BABDE2E1EB686974CD6E6DDBDADCC00A0A89666D912D30F1F0F9E3E2F2A6ABBB9BACBAEEEEF85E6169AC0101F1FBFEF5F5F5D4D4DA4D515CD9BFBFEC9594DDDEEBF6F5FD444953E6D7DAD8B5B6E7E5EA42444DFEFEFEE9E8F5FFF2F2EEEEEED0505050545ED1D2D4A4A5ACFCFCFCB3B5BA95999EF5F5FAC1C2C5EAEAE94E5365EDEDF66C70787F1114F0F0F19A010161656FDDDDE0F1F2F453586355556172757E404552EFEFF4B2747784868FDBE6E9A7B2C0C3C4C8DE8887E0DEE77D818ADCDDF2A04E4ECD8486FAFAFAFCFCFF484C54E5E6E6F8FEFFE8E7E9CCCDD0494E5ACCC9CCF9EFEAEAE9ECC9A5A6BEC0C2F8F7FCBD464795768A860203D1CDD2F8F8F95B5961AEB2B7EAEAF7EAE9F2AAABAFBBBBBEB0AFB5C31212C8B5BAB314148C9198F1F1FCE2E2E4562F3FA35458B3393AE1E1E2D1D3E378333CB3BCC4D00503A51418EDEEF2D29A9B7C3C65A2787E8A1919C091959F8994C0C8D1BF2424464957C6C7CAECEBF5CBD8E6E8E0DFE5E4F7E6EAF94A4E6234333F5B5D679A4546C0BEC8ECEBECE47271D71413CECDDAE7E6F3A0A1A7F7F8FBE5E3E5B2B2B6D6DBE1FCFFFF9A95B5A62322F4F3F4EBE3E6E7EDEDF4F3FEE6EFF8AA6868565C67FEFEFD70191EB6B8BC554B55CDD2D6B72B2D5157694E4671CC0F0EEBA6A6A53C44FBFBF9EFF7FBF5F3FAABACC8A6ABAED6D7DF9A1516FBFBFBF3F4F53F4658A19DA1EEEFFBFDFDFDF3F2F2484551A8A7AAE4E4E7B1B7C4FDFCFDF9FAFBEBEBFDAB0D0CF9F9FAC1CCDDF3F3FACCC2D3B76B6DB70D0BAF1F203F4E66A96E77AC3230E7E9E8BAB6C0A64851B1BFCAB7B7CCBA5E5F5F4673ECECF8FFF7F7F8F9F9BCA3A6575486E4E1E37A5F698E8BB08686A8DAACAFA65C5FC6ACAFF9C0C0C9C8D0BDBAD6654C56FAFAFEE8E8F9FCF9F9DAD9E5D6D9EED5D4E8955C62FDFEFEECECEEEBEAF2EBECF5BA6D71C2C5D8C6C6D3DECACE91182CE6C9C9EBECFBDD3738950B0CCDCEE5E0615EF7F7F7580E32D6D7D9595F6FFFFFFF21F904010000FF002C00000000500031000008FE00FF091C48B0A0C183027559D987B0A1C387102346A4426303218918336A84C809970F32946A6D1C491223311B8C02A4B854B2A54B8454700911B0A8D7CB9B3777A98110A0C4862332700A1DA942C53F1A2920B819CA74A3357D150000694A55A28855D03E6084D3E4488232577EC0F1B5A5C598AA19590C401021238C040020986204C0C011376E9AC0406B154F8F0A0C35B64BA3830C990001782D4AC037E23D043BC27CCB3412C02208096CC44063A5F1C3707886F9491626D4462B64045CF41C31933EC86192AD096344A3810000584734A6895E0F5272F04D985D5B622C4553E0E87EE8651CB5057142FC23D063C28430041AB21B2829DB8223CB21FE765BB0805B0E8146AA5FFFF370048405AA309C0D8F70940B7EAAC631109829548F55D771E1D03C7C2CA0891EF43524021E1C80910841327CF3DF75D221040902603C409F2E2DC0F1031D2D04F54F389184668241FB3CF11F64F31CE4C004AD04D6900AFBDC40852F2D1053920C30D0A083282F04F1C20643D0C0C63D78203007429C34B2A21F2712A4052A1C78E39033A51830840F5CEA30841B36F090912E5DE880052F53F042041102A049440578AC8200140751D64205FF71504127042D81000782B072101D47BC00C20B42249A68102080E003252D44E4CC100220CA0B620108A0A94A03ACB24A0FE038D4099EABE819A9407B0C93CC9F2E1C30900CFE318030482AA960B1E6206C0A30881064386AC343304C11C00B5308B0012E5DCCF283045724B04D24009282C5AF0D1D82E71A3D3422E30973A8CA411B22FCE3010002A482C32D38183083041F30AB0600530CC288102550D2100C02A4202C1936701285312430F089071D38006D188BF4A4844326F8D103B67288F8CF397B34330CAB14DC92CA2D8350A2E11B2A98F3CF1BBA5800C71183BCF04209B81CE4CC14298010800163F0E0410B2404FC090FAF4092240588A5F0820403FAC101B6A611C402149BACCA811DB70C81CE3F35BC934B39930063412D2B48C180182F60110416651804400041A480CB2752EC822309C648F1060F123CF6C53F332C5242FE094344E15008F81C4D9B410704B706027948F7892E66D8C3801952E442420E394821C5074204290AD1031112000829E4A6CB2424B4F083314594ECC909917050CF2B5EF41240B1333C7442181C5C870D12ED0C648B288B9032CC04082C714E150C20227739D5688008311A68F0CF15538882456E03E9200016643C8202432B9040050A16A85008122220304D152BFC4382F644F870CD435CE0D38A1A19249184125AFC93C0228AB8451F86C1010E0CC001FF1006034820050B20A21A66A8C13F8CC180040800665710880466278018FC430670D8C53F34B082593CC00A75E8C73D9261825C3C4E0557204209540311706000101488C11130908603E82080FE3AF8C23090F1050E200012BB00C5166CF1865C5443471630C33FDC21841408003CFF90DD145EF0884F54A3165688540EEA30832E34800008F842077230822D58E1113A98E1521ED2805F80811C4DA0C11DA2218E417089166D38810224B007542060007F3004213EB09F11568304E650010D2AB5013135616F0068C10D7C818E4258C20A12188113026188224EA303E8B0C22E744409011041070F91C11D32E0061DE800023E88060D1611871E08C204AFD0860430210623B4614E8EB843062139894958800157101B0860C08E2180CE83FBF0000FCE800E71A881000460063C92D1032380A2055B4081366E3083001041149C70C8281A700A380C611006FE304534B6410A0E0CC31B9D30010A26C18464B2A10203F88601D470016138D10B3590C21636300522CC601F3E004109D0F08633E4C0026FA8463A24210804B48178F80841EF08D20F0194E0052B6D0826EE708A212CC20D81A08432FE348C9EB641104045C51C5AF10554E4010CB1A803037370013368E01D3E28560CAEE1032C94A06C05A10249D700054164EB174C28840672B0826A882353307D482D02110D0AD8210381380005E210070A78630F50C86B04BE3087397CA10243C50013A4508EC25ACE0B10A8A8BD2090827A5960052B98C4192EE0847C7CA10DCAC8C326708101755CA008B0F0C23F6CD013514C6546FF080612D6410A5C88A1166E10FEC0329AC09F2A744001C5F84519EC400B54C8411A93286C256A40DC2D54B583FF6842628EA08B604054034E70023AB2708C0214200BFD40011310E1841514820434E8890E74211123EC800207F0801A18E10F1DA0400385B80022CC700171606008A4B0432066610F73E4C21835A8842E3E602822A4E11F3158C42036B085E65D601239D0802B30910F187C201E08F240276AB0020BFC03026B324044CE0288381C82BC3154840FBAF08011E40016D5F80710A491004A1C6116A3582074DD718672A0A10458788133FE21810B0EA214FF3083056A2045068C601640E0010C1EF006715982180C90440AACD78588DCA017B7EC82723CC08841DCC200240002FE13D07183225CA0A00928C50348F00F0BB8039224800504402080210C84B15880C00A18C080F679A11A3F7880148801070958E03C8CD6C5114A10041FC41322514883126880867E08C40044C0813FE8F0090F1761120FF8C15BE4F1833378B8104510581A88F00201D4CE28695844104A40837FAC4017C43003101CCD801AD1C10A243043502E51027F4C411618098A0C6A6114220F42113838C27E2C20E11114610B63708715AC6081577B8107612302233CF08F6AEB406825F020D7CA41072A00380A8F6881255A500E12C02008A208820E4E5B9249E220153110980C7C31897D3CE21F39E0C10F88910363D45907A10E0092FFA10BF2D2A104314B0125FEAA7C83B2D4C002BA78C42E5AD00E60282173A97841065DC2091F104111A94800305A00040D78A01D25F3C0161EA18234EBE073B81948C7C9EB39970660083078442D78500E0B8C22443CD882014020248BE244022040572A000003297881133C68A0C389510B25604100420840250752946A7721058B78FBD32FD18F74D6A21F363842E6368003B20D05062F40170E82700425D0C11652300631FAF10C9E603B003EA08243FAC18845707D6F5C17455583CC0846F864E63819C53FE800010128626C290340137C10042204000BFEC081000020A6877820012F58440A78D1A84194800853889728687083AA5C23564408B2280A4F0410043CEC1B9801790D8152948ED7821841B9011A74003A5E0C6210530001046240078E47A116DB77892E6A110562F8CD1709D8C09A88708BFD634107653015ECA00BD546772AD07132507F63000CFF700DCE900569800668900612303FC0400C6C077F05781075B781DC377FC4B00FB610517A700AB2E00647701765300B9057092E687F324080FF101000003B, N'hotrodbike_f_small.gif', N'0a72791c-a984-4733-ae4e-2b4373cfd7cd', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (984, N'Mountain-500 Silver, 40', N'BK-M18S-40', N'Silver', 308.2179, 564.9900, N'40', CAST(12405.69 AS Decimal(8, 2)), 5, 23, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b96c057b-6416-4851-8d59-bcb37c8e6e51', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (998, N'Road-750 Black, 48', N'BK-R19B-48', N'Black', 343.6496, 539.9900, N'48', CAST(9130.77 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'3de9a212-1d49-40b6-b10a-f564d981dbde', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) + , (999, N'Road-750 Black, 52', N'BK-R19B-52', N'Black', 343.6496, 539.9900, N'52', CAST(9262.31 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'ae638923-2b67-4679-b90e-abbab17dca31', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[Product] OFF +GO +SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] ON +GO +INSERT [SalesLT].[SalesOrderDetail] ([SalesOrderID], [SalesOrderDetailID], [OrderQty], [ProductID], [UnitPrice], [UnitPriceDiscount], [rowguid], [ModifiedDate]) + VALUES (71774, 110562, 1, 836, 356.8980, 0.0000, N'e3a1994c-7a68-4ce8-96a3-77fdd3bbd730', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71774, 110563, 1, 822, 356.8980, 0.0000, N'5c77f557-fdb6-43ba-90b9-9a7aec55ca32', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71776, 110567, 1, 907, 63.9000, 0.0000, N'6dbfe398-d15d-425e-aa58-88178fe360e5', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71815, 111451, 1, 738, 202.3320, 0.0000, N'810e5535-2bdb-4d83-b26d-796e5cff1a1b', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71815, 111452, 2, 835, 356.8980, 0.0000, N'daeb0cfa-807c-46ac-8458-ffccef36b5b2', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71815, 111453, 2, 874, 5.3940, 0.0000, N'09f90eb4-24de-4812-825e-45520602b437', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71816, 111454, 1, 953, 728.9100, 0.0000, N'b8a9720f-1f6f-4fe1-ad4a-ac70d4c905bd', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71816, 111455, 1, 954, 1430.4420, 0.0000, N'edc86c40-ecbd-45af-912b-ae37d177821a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71816, 111456, 2, 715, 29.9940, 0.0000, N'9f7406e4-25c9-431a-9891-f419e3f5253d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71816, 111457, 4, 712, 5.3940, 0.0000, N'ee2ce69c-24eb-47ff-ab6c-bd5aabdcd6e9', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71816, 111458, 3, 883, 32.3940, 0.0000, N'affbb13e-55a8-4fa8-9cd7-809b1816c30d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71816, 111459, 1, 961, 445.4100, 0.0000, N'b4e5503b-0fd8-4f2f-8675-e899db180280', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71816, 111460, 1, 948, 63.9000, 0.0000, N'5f4f0aa9-acc6-4ef7-ab68-17d0748a5512', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71831, 111790, 2, 869, 41.9940, 0.0000, N'73bc96fd-863b-441c-aeea-25387c2d17ac', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71831, 111791, 1, 782, 1376.9940, 0.0000, N'a5f59647-47b7-48fc-9000-0830e623981a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71831, 111792, 6, 867, 41.9940, 0.0000, N'14f64fdc-4405-47b4-965c-b4f506515e8a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71846, 112149, 2, 936, 37.2540, 0.0000, N'7232fd67-8db7-42f8-ad0d-6185299430f1', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71846, 112150, 1, 739, 818.7000, 0.0000, N'9a32772b-9b98-4b22-aa2b-f4e5ffd2a23e', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71846, 112151, 1, 984, 112.9980, 0.4000, N'78557d82-1267-4f7c-93a7-e53ae2a3a85c', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71846, 112152, 2, 981, 461.6940, 0.0000, N'3a26f840-c413-4bef-aeff-b8d6218698e6', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71856, 112331, 1, 962, 445.4100, 0.0000, N'62b3d72f-3586-40ac-a24e-a6f07eb7ca4a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) + , (71856, 112332, 1, 945, 54.8940, 0.0000, N'4733918f-da34-4d30-b5b4-32f7537e609d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] OFF +GO +SET IDENTITY_INSERT [SalesLT].[ProductDescription] ON +GO +INSERT [SalesLT].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate]) + VALUES (8, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (64, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (128, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) + , (209, N'Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (513, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (554, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (594, N'Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.', N'32b82c92-e545-4da0-a175-0be710b482fe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (627, N'All-weather brake pads; provides superior stopping by applying more surface to the rim.', N'ebf2f0a4-89f2-4d31-be48-d8fd278f3024', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (630, N'Wide-link design.', N'28c4682c-38b2-4b61-a2ae-bcac7c7ce29b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (647, N'Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.', N'7ad9e29f-16cf-4db0-b073-cc62d501b61a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (661, N'Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women''s version.', N'd61c9d54-22c3-4563-a418-0b9dc7e03850', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (848, N'Lightweight, durable, clipless pedal with adjustable tension.', N'03acbb19-749a-48a1-b77e-5d2a48e8dc3a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1020, N'The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.', N'f4c70a6b-bbe8-4774-9d75-393d3f315e9b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1196, N'Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.', N'c65bee64-4dba-47ec-91cd-31356ba379e1', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1205, N'Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.', N'58d86ede-0519-4263-a264-a2b5b01a6c7b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1208, N'Thin, lightweight and durable with cuffs that stay up.', N'9f436663-525d-4cc2-85ba-47d20bcea0ec', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1210, N'Traditional style with a flip-up brim; one-size fits all.', N'66f84b21-1a43-49d3-8883-09cdb77fffef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1211, N'Unisex long-sleeve AWC logo microfiber cycling jersey', N'12f60253-f8e1-4f76-8142-6232396b8f17', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1487, N'Adapté à tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable.', N'5c1dab3a-4b31-4d9d-a14f-3cb61949b79b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1488, N'Ce vélo offre un excellent rapport qualité-prix. Vif et facile à manœuvrer, il se conduit en toute tranquillité sur les chemins et les sentiers.', N'79065ec8-2080-4120-a4ea-bfa7ea1f1f9d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1490, N'Conduite sur terrains très accidentés. Idéal pour tous les niveaux de compétition. Utilise le même cadre HL que le Montain-100.', N'2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) + , (1493, N'Vélo d''adulte d''entrée de gamme ; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons à blocage rapide.', N'7943455f-3fbe-44c0-9ac2-7ee642d3944b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1502, N'Vélo de qualité pour tous usages, doté d''un bon niveau de confort et de sécurité. Présente des pneus plus larges et plus stables pour les sorties en ville ou les randonnées du week-end.', N'e5288050-bc5b-45cc-8849-c7d4af2fe2b6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1503, N'La selle rembourrée offre un confort optimal. Le porte-bagages nouvellement remanié offre diverses possibilités d''ajout de paniers ou de sacoches. Ce vélo reste parfaitement stable une fois chargé.', N'28b132c3-108c-412d-9918-a8c9297dfb73', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1504, N'Voyagez confortablement et avec élégance. Confort et sécurité maximum. Large éventail de vitesses pour gravir toutes les côtes. Sa fabrication en alliage d''aluminium haute technologie est synonyme de robustesse, sans ajout de poids.', N'e3bac4a6-220c-4e5e-8261-51e08906c0e8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1509, N'Patins de freinage pour tous les temps ; freinage renforcé par l''application d''une plus grande surface sur la jante.', N'5ed8186a-6049-42b1-b1b0-3b1f899c538b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1510, N'Conception liaison large.', N'64723c0c-09d5-497d-83a3-4561818a8f1c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1517, N'Doté du même alliage en aluminium que notre cadre HL haut de gamme, le ML possède un tube léger dont le diamètre est prévu pour offrir une résistance optimale. Version femmes.', N'f3cd990a-b70d-43c8-a075-934a3e98b5aa', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1537, N'Pédales automatiques légères et robustes avec tension réglable.', N'6a60e7f6-a5cd-4e7b-8612-9340e46bf66d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1571, N'Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un très bon rapport qualité-prix.', N'e95e1259-b822-40ee-aa86-7de9f9e0f0ea', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1587, N'Cuissards résistants à l''usure pour utilisation intensive, doublés à l''intérieur en Spandex, sans couture, peau de chamois anti-bactérie pour un meilleur confort.', N'e11a3c2a-b074-48f9-8226-16d65c2f91c2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1594, N'Maillot manches courtes classique et anti-transpiration avec contrôle de l''humidité, fermeture avant à glissière et 3 poches arrière.', N'fb2a5474-9d83-4a9b-bbbd-8ffc9036866e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1596, N'Fin, léger et résistant avec des poignets qui restent en place.', N'31d4905c-d37c-4128-bcff-4a35da9c1bb7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1598, N'Style classique avec une visière relevable ; taille unique.', N'fb627d1b-2933-4fbe-a6a4-bf69f2814ec2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1599, N'Maillot de cycliste en microfibre avec le logo de l''équipe AWV, manches longues, unisexe.', N'4aae6d4f-8320-4f32-99de-bb3b1b13f1ef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (1600, N'Orphan record to deletion test', N'4aae6d4f-1111-4f32-99de-bb3b1b13f1ef', CAST(N'2020-06-01T00:00:00.000' AS DateTime)) + , (1605, N'Chaque cadre est fabriqué artisanalement dans notre atelier de Bordeaux afin d''obtenir le diamètre et l''épaisseur adaptés à un vélo tout-terrain de premier choix. Le cadre en aluminium soudé à chaud présente un tube d''un plus grand diamètre, afin d''absorber les bosses.', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [SalesLT].[ProductDescription] OFF +GO +INSERT [SalesLT].[ProductModelProductDescription] ([ProductModelID], [ProductDescriptionID], [Culture], [rowguid], [ModifiedDate]) + VALUES (2, 1210, N'en ', N'623741c2-74bd-4ce1-a554-1fe8c0606b4b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (2, 1598, N'fr ', N'6d7b1148-6159-4ec5-b469-d106ffef6ca5', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (5, 647, N'en ', N'56b6b980-c1ca-4545-a5ba-edc4c14bdcf9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (5, 1605, N'fr ', N'6cc243bc-b8fa-4bd2-9392-8ead11c55406', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (9, 1020, N'en ', N'14c44869-3696-4b30-929a-3adffc8243de', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (9, 1571, N'fr ', N'649557cd-028e-4a1f-b5d5-71c09a6ae268', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (11, 1211, N'en ', N'03c12575-f1bf-48ad-a483-d1185d24ce2c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (11, 1599, N'fr ', N'000aa434-8c55-4a8e-a850-9ae32edf537b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (17, 661, N'en ', N'd91f0507-baa5-4b44-a0e6-a6acef29f066', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (17, 1517, N'fr ', N'87365776-a0a1-4580-b080-b18f21d8cb1e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (20, 128, N'en ', N'f57a0614-ec87-4f51-ab3e-f889d37440f6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (20, 1490, N'fr ', N'70b555e3-ac30-4a42-8959-339738dac806', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (22, 64, N'en ', N'b301b583-2d7f-4c19-afa9-01d142f8ae2d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (22, 1488, N'fr ', N'a73f5bf1-ad79-4703-9bfe-5f6f87705516', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (23, 8, N'en ', N'397fa9e9-eef0-42dc-b27a-5b9a717bb237', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (23, 1487, N'fr ', N'a96e7527-4414-43a3-b52d-26a57d0ae88f', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (24, 1208, N'en ', N'2d4d6267-b8d4-4345-ba19-9334b6bc7055', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (24, 1596, N'fr ', N'984a725c-9095-47e3-8a2f-8be4ff45d2c0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (31, 209, N'en ', N'c44f974f-ffb2-44fe-abac-fab53e7a896a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (31, 1493, N'fr ', N'67a11e38-08f8-43cf-a6ec-b832a9b34d58', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (32, 1205, N'en ', N'7dd01ecf-d739-4fdf-8574-aec55267323c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (32, 1594, N'fr ', N'71123dec-1396-4c4e-80c8-3efd3d5c13d9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (34, 594, N'en ', N'49ece470-9fdb-48fb-9d80-46ae0e3ef8fc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (34, 1504, N'fr ', N'c7deacd9-f36d-467e-9159-ea8e0b705dbf', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (35, 554, N'en ', N'8d57b85b-1c3d-4773-b326-a62fdd1cd378', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (35, 1503, N'fr ', N'220652e7-47ee-4f99-9eb1-f3597520ffbc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (36, 513, N'en ', N'f35f7fac-4479-4748-81d1-7adec2de9917', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (36, 1502, N'fr ', N'5c1d62aa-c221-4090-b7de-15c5f976d379', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (37, 1196, N'en ', N'46f1f2f9-33dc-4384-baa9-9c70d83a44ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (37, 1587, N'fr ', N'2691d6fd-b45e-4604-b2ef-61d5accf47ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (63, 848, N'en ', N'9e7855e4-3c99-460a-bba5-9b45486b8fbe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (63, 1537, N'fr ', N'62ebf8f0-bc2c-4726-bca0-2c7f4aee336b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (102, 627, N'en ', N'5b74c2c4-d71a-4d8d-9ddb-e376816fbf21', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (102, 1509, N'fr ', N'a72f9088-ef86-4fd2-aa13-efbb1aac404b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (103, 630, N'en ', N'035f5b8e-7728-4412-ba63-0cea7cd79a6c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (103, 1510, N'fr ', N'83b25658-4554-4679-ae8d-f31a506356eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [dbo].[BuildVersion] ON +GO +INSERT [dbo].[BuildVersion] ([SystemInformationID], [Database Version], [VersionDate], [ModifiedDate]) VALUES (1, N'10.50.91013.00', CAST(N'2009-10-13T00:00:00.000' AS DateTime), CAST(N'2009-10-13T00:00:00.000' AS DateTime)) +GO +SET IDENTITY_INSERT [dbo].[BuildVersion] OFF +GO +DBCC CHECKIDENT ('[SalesLT].[Address]' , RESEED, 5000); +DBCC CHECKIDENT ('[SalesLT].[ProductCategory]' , RESEED, 5000); +DBCC CHECKIDENT ('[SalesLT].[ProductDescription]', RESEED, 5000); diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql index 23c0875..2231fe0 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql @@ -1,362 +1,614 @@ -Print ' -**************************************************************** - Prepare the data in the tables for the tests. - - This script will be run every time the system tests - needs to reset the data. -**************************************************************** -'; - - -use [$TARGET_DB_NAME] -PRINT ' -***************************************** - Delete all records in database -*****************************************' -Truncate table BuildVersion; -Truncate Table ErrorLog; - --- Disable all the constraint in database - -DECLARE @sql nvarchar(max) = N''; - -;WITH x AS -( - SELECT DISTINCT obj = - QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' - + QUOTENAME(OBJECT_NAME(parent_object_id)) - FROM sys.foreign_keys -) -SELECT @sql += N'ALTER TABLE ' + obj + N' NOCHECK CONSTRAINT ALL; -' FROM x; - -EXEC sys.sp_executesql @sql; -GO --- ----- - -Declare @TableName nvarchar(256) ; -SET @TableName = ''; - -WHILE @TableName IS NOT NULL -BEGIN - SET @TableName = - ( - SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)) - FROM INFORMATION_SCHEMA.TABLES - WHERE TABLE_TYPE = 'BASE TABLE' - AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName - ) -print 'Deleting from table '+@TableName ; - -DECLARE @sql nvarchar(max) = N'Delete from ' + @tablename; -EXEC sys.sp_executesql @sql; -ENd -GO -------- -DECLARE @sql nvarchar(max) = N''; -;WITH x AS -( - SELECT DISTINCT obj = - QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' - + QUOTENAME(OBJECT_NAME(parent_object_id)) - FROM sys.foreign_keys -) -SELECT @sql += N'ALTER TABLE ' + obj + N' WITH CHECK CHECK CONSTRAINT ALL; -' FROM x; -EXEC sys.sp_executesql @sql; -GO + + +EXEC sp_MSforeachtable 'SET QUOTED_IDENTIFIER ON; SET ANSI_NULLS ON; DISABLE TRIGGER ALL ON ?'; +EXEC sp_MSforeachtable 'SET QUOTED_IDENTIFIER ON; SET ANSI_NULLS ON; ALTER TABLE ? NOCHECK CONSTRAINT ALL'; + + + DELETE FROM [HumanResources].[Department] + DELETE FROM [HumanResources].[EmployeeDepartmentHistory] + DELETE FROM [HumanResources].[EmployeePayHistory] + DELETE FROM [HumanResources].[Employee] + DELETE FROM [HumanResources].[JobCandidate] + --DELETE FROM [HumanResources].[Shift] + DELETE FROM [Person].[AddressType] + DELETE FROM [Person].[Address] + DELETE FROM [Person].[BusinessEntityAddress] + DELETE FROM [Person].[BusinessEntityContact] + DELETE FROM [Person].[BusinessEntity] + DELETE FROM [Person].[ContactType] + DELETE FROM [Person].[CountryRegion] + DELETE FROM [Person].[EmailAddress] + DELETE FROM [Person].[Password] + DELETE FROM [Person].[PersonPhone] + DELETE FROM [Person].[Person] + DELETE FROM [Person].[PhoneNumberType] + DELETE FROM [Person].[StateProvince] where CountryRegionCode='US' + DELETE FROM [Production].[BillOfMaterials] + DELETE FROM [Production].[Culture] + DELETE FROM [Production].[Document] + DELETE FROM [Production].[Illustration] + DELETE FROM [Production].[Location] + DELETE FROM [Production].[ProductCategory] + DELETE FROM [Production].[ProductCostHistory] + DELETE FROM [Production].[ProductDescription] + DELETE FROM [Production].[ProductDocument] + DELETE FROM [Production].[ProductInventory] + DELETE FROM [Production].[ProductListPriceHistory] + DELETE FROM [Production].[ProductModelIllustration] + DELETE FROM [Production].[ProductModelProductDescriptionCulture] + DELETE FROM [Production].[ProductModel] + DELETE FROM [Production].[ProductPhoto] + DELETE FROM [Production].[ProductProductPhoto] + DELETE FROM [Production].[ProductReview] + DELETE FROM [Production].[ProductSubcategory] + DELETE FROM [Production].[Product] + DELETE FROM [Production].[TransactionHistoryArchive] + DELETE FROM [Production].[TransactionHistory] + DELETE FROM [Production].[WorkOrderRouting] + DELETE FROM [Production].[WorkOrder] + DELETE FROM [Purchasing].[ProductVendor] + DELETE FROM [Purchasing].[PurchaseOrderDetail] + DELETE FROM [Purchasing].[PurchaseOrderHeader] + DELETE FROM [Purchasing].[ShipMethod] + DELETE FROM [Purchasing].[Vendor] + DELETE FROM [Sales].[CountryRegionCurrency] + DELETE FROM [Sales].[CurrencyRate] + DELETE FROM [Sales].[Currency] + DELETE FROM [Sales].[Customer] + DELETE FROM [Sales].[PersonCreditCard] + DELETE FROM [Sales].[SalesOrderDetail] + DELETE FROM [Sales].[SalesOrderHeaderSalesReason] + DELETE FROM [Sales].[SalesOrderHeader] + DELETE FROM [Sales].[SalesPersonQuotaHistory] + DELETE FROM [Sales].[SalesPerson] + DELETE FROM [Sales].[SalesReason] + DELETE FROM [Sales].[SalesTaxRate] + DELETE FROM [Sales].[SalesTerritoryHistory] + DELETE FROM [Sales].[SalesTerritory] + DELETE FROM [Sales].[ShoppingCartItem] + DELETE FROM [Sales].[SpecialOfferProduct] + DELETE FROM [Sales].[SpecialOffer] + DELETE FROM [Sales].[Store] + DELETE FROM [dbo].[AWBuildVersion] + DELETE FROM [dbo].[DatabaseLog] + DELETE FROM [dbo].[ErrorLog] + +DBCC CHECKIDENT ('HumanResources.Department', RESEED, 5000); +DBCC CHECKIDENT ('HumanResources.JobCandidate', RESEED, 5000); +DBCC CHECKIDENT ('Person.Address', RESEED, 5000); +DBCC CHECKIDENT ('Person.EmailAddress', RESEED, 5000); +DBCC CHECKIDENT ('Person.PhoneNumberType', RESEED, 5000); +DBCC CHECKIDENT ('Person.StateProvince', RESEED, 5000); +DBCC CHECKIDENT ('Production.BillOfMaterials', RESEED, 5000); +DBCC CHECKIDENT ('Production.Illustration', RESEED, 5000); +DBCC CHECKIDENT ('Production.Location', RESEED, 5000); +DBCC CHECKIDENT ('Production.Product', RESEED, 5000); +--DBCC CHECKIDENT ('Production.ProductCategory', RESEED, 5000); +--DBCC CHECKIDENT ('Production.ProductDescription', RESEED, 5000); +DBCC CHECKIDENT ('Production.ProductModel', RESEED, 5000); +DBCC CHECKIDENT ('Production.ProductPhoto', RESEED, 5000); +DBCC CHECKIDENT ('Production.ProductReview', RESEED, 5000); +DBCC CHECKIDENT ('Production.ProductSubcategory', RESEED, 5000); +DBCC CHECKIDENT ('Production.ScrapReason', RESEED, 5000); +DBCC CHECKIDENT ('Production.TransactionHistory', RESEED, 5000); +DBCC CHECKIDENT ('Production.WorkOrder', RESEED, 5000); +DBCC CHECKIDENT ('Purchasing.PurchaseOrderDetail', RESEED, 5000); +DBCC CHECKIDENT ('Purchasing.PurchaseOrderHeader', RESEED, 5000); +DBCC CHECKIDENT ('Purchasing.ShipMethod', RESEED, 5000); +DBCC CHECKIDENT ('Sales.CreditCard', RESEED, 5000); +DBCC CHECKIDENT ('Sales.CurrencyRate', RESEED, 5000); +DBCC CHECKIDENT ('Sales.Customer', RESEED, 5000); +DBCC CHECKIDENT ('Sales.SalesOrderDetail', RESEED, 5000); +DBCC CHECKIDENT ('Sales.SalesOrderHeader', RESEED, 5000); +DBCC CHECKIDENT ('Sales.SalesReason', RESEED, 5000); +DBCC CHECKIDENT ('Sales.SalesTaxRate', RESEED, 5000); +DBCC CHECKIDENT ('Sales.SalesTerritory', RESEED, 5000); +DBCC CHECKIDENT ('Sales.ShoppingCartItem', RESEED, 5000); +DBCC CHECKIDENT ('Sales.SpecialOffer', RESEED, 5000); +DBCC CHECKIDENT ('dbo.DatabaseLog', RESEED, 5000); +DBCC CHECKIDENT ('dbo.ErrorLog', RESEED, 5000); + +EXEC sp_MSforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'; + +EXEC sp_MSforeachtable 'ENABLE TRIGGER ALL ON ?'; + PRINT '--------------------------- Insert records into database. ---------------------------' -SET IDENTITY_INSERT [SalesLT].[Address] ON -GO -INSERT [SalesLT].[Address] ([AddressID], [AddressLine1], [AddressLine2], [City], [StateProvince], [CountryRegion], [PostalCode], [rowguid], [ModifiedDate]) - VALUES (640, N'251 The Metro Center', NULL, N'Wokingham', N'England', N'United Kingdom', N'RG41 1QW', N'0e4ac5bb-be0d-4a96-a58e-064daec08e1a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (652, N'Wymbush', NULL, N'Milton Keynes', N'England', N'United Kingdom', N'MK8 8DF', N'54e20963-b0e9-41cf-ab7e-d50459a3325c', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (669, N'Internet House, 3399 Science Park', NULL, N'Cambridge', N'England', N'United Kingdom', N'CB4 4BZ', N'56baec2a-5cc5-4a90-bef9-ee57e82f2e69', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) - , (1034, N'Oxnard Outlet', NULL, N'Oxnard', N'California', N'United States', N'93030', N'300d2a6e-67b4-417b-83a9-2026818a21c6', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (1038, N'123 Camelia Avenue', NULL, N'Oxnard', N'California', N'United States', N'93030', N'a86c8140-ad7d-4caa-9b40-4006bd9998e2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (1090, N'25130 South State Street', NULL, N'Sandy', N'Utah', N'United States', N'84070', N'cf3ae92a-3e66-4af0-b683-731826e89cd1', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (1092, N'99700 Bell Road', NULL, N'Auburn', N'California', N'United States', N'95603', N'79cdd89c-3c91-48db-8277-46d04aad7251', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (1111, N'Orphan Record', NULL, N'Use In Delete Tests', N'California', N'United States', N'95603', N'00000000-1111-2222-0000-000000000001', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[Address] OFF -GO -SET IDENTITY_INSERT [SalesLT].[Customer] ON -GO -INSERT [SalesLT].[Customer] ([CustomerID], [NameStyle], [Title], [FirstName], [MiddleName], [LastName], [Suffix], [CompanyName], [SalesPerson], [EmailAddress], [Phone], [PasswordHash], [PasswordSalt], [rowguid], [ModifiedDate]) - VALUES (29847, 0, N'Mr.', N'David', NULL, N'Hodgson', NULL, N'Good Toys', N'adventure-works\linda3', N'david16@adventure-works.com', N'969-555-0117', N'+gtwbVycsIIj2loVtrHNRN6IBLl20lQpRK8+JhzxyEo=', N'AwqZdYk=', N'fdd7d9cb-9a81-40fc-baf6-facde8da4923', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (30019, 0, N'Mr.', N'Matthew', N'J.', N'Miller', NULL, N'Tachometers and Accessories', N'adventure-works\jae0', N'matthew5@adventure-works.com', N'1 (11) 500 555-0176', N'/hDOTbr9X/E4UE8H6wjOGHYZ6Gb8GDpmutPWgFTXQnc=', N'eiCRDs8=', N'226d328b-23d4-4215-b9c4-3da08f2e68db', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (30027, 0, N'Mr.', N'Joseph', N'P.', N'Mitzner', N'Jr.', N'Engineered Bike Systems', N'adventure-works\shu0', N'joseph4@adventure-works.com', N'129-555-0164', N'7obarvC3BHLIE/oFo0n+bkB/EZ03Zc8Vu+F2jpK/CNM=', N'k6zgROU=', N'029c27b5-72e5-4024-a5fa-53bdb42b98bc', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30033, 0, N'Mr.', N'Vassar', N'J.', N'Stern', NULL, N'Transport Bikes', N'adventure-works\shu0', N'vassar0@adventure-works.com', N'328-555-0123', N'nPkLkDdemKmfK3VexvRWH5zYyNzwcfvny8DxWGnicSw=', N'hLswDiQ=', N'66193607-693c-4073-be28-78e3892141a2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30072, 0, N'Ms.', N'Andrea', N'A.', N'Thomsen', NULL, N'West Side Mart', N'adventure-works\jae0', N'andrea1@adventure-works.com', N'1 (11) 500 555-0120', N'LDoJwsGCFLtxVdbdQBbN/to7zFF1skP+hWLrIrCxvAw=', N'NuexV8w=', N'9bbbddc1-8e1a-4edf-aa2f-a8abea78c940', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30089, 0, N'Mr.', N'Michael John', N'R.', N'Troyer', NULL, N'Thrifty Parts and Sales', N'adventure-works\linda3', N'michaeljohn0@adventure-works.com', N'308-555-0175', N'Gdklarx2tW1EtZEyrAUEIhhguzrFKVS4Bh3BdAsGngk=', N'HUE+JKI=', N'8d6af1e8-5082-4e5c-9f15-dfd04e64fd95', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30102, 0, N'Mr.', N'Roger', NULL, N'Van Houten', NULL, N'Sports Store', N'adventure-works\jae0', N'roger2@adventure-works.com', N'1 (11) 500 555-0110', N'C0yLsx6zITh7lXoIPgG1bl1t5II3nx4GYi/RaS1yB84=', N'WnTAc/0=', N'0ee7e95d-f12d-4d0d-8c6e-c64a0dda719a', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[Customer] OFF -GO -INSERT [SalesLT].[CustomerAddress] ([CustomerID], [AddressID], [AddressType], [rowguid], [ModifiedDate]) - VALUES (29847, 1092, N'Main Office', N'54e22612-0521-4ea6-b7b0-29d081e054c4', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (30019, 652, N'Main Office', N'4d79eb56-5f62-4c2f-90f2-f2f11d7e4f63', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (30027, 1038, N'Main Office', N'5dc4ddd8-be9a-4bd2-9f35-9f81743296e8', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30033, 1090, N'Main Office', N'c3b9cc49-7b83-4888-8958-1a3b7558e614', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30072, 640, N'Main Office', N'c6078b9a-2f95-4029-be72-511345be2a9a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30089, 1034, N'Main Office', N'2f99485b-952a-44d4-a5af-5a94faca240e', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30102, 669, N'Main Office', N'd996364a-0b31-4b67-adcc-1d0454b5b26d', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] ON -GO -INSERT [SalesLT].[SalesOrderHeader] ([SalesOrderID], [RevisionNumber], [OrderDate], [DueDate], [ShipDate], [Status], [OnlineOrderFlag], [PurchaseOrderNumber], [AccountNumber], [CustomerID], [ShipToAddressID], [BillToAddressID], [ShipMethod], [CreditCardApprovalCode], [SubTotal], [TaxAmt], [Freight], [Comment], [rowguid], [ModifiedDate]) - VALUES (71774, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO348186287', N'10-4020-000609', 29847, 1092, 1092, N'CARGO TRANSPORT 5', NULL, 880.3484, 70.4279, 22.0087, NULL, N'89e42cdc-8506-48a2-b89b-eb3e64e3554e', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71776, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO19952192051', N'10-4020-000106', 30072, 640, 640, N'CARGO TRANSPORT 5', NULL, 78.8100, 6.3048, 1.9703, NULL, N'8a3448c5-e677-4158-a29b-dd33069be0b0', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71815, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO13021155785', N'10-4020-000276', 30089, 1034, 1034, N'CARGO TRANSPORT 5', NULL, 1141.5782, 91.3263, 28.5395, NULL, N'2aa5f39b-1096-4a4b-b17b-f10504a397ce', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71816, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO12992180445', N'10-4020-000295', 30027, 1038, 1038, N'CARGO TRANSPORT 5', NULL, 3398.1659, 271.8533, 84.9541, NULL, N'e3c189e7-98de-4c40-b6c2-0d1d13f9bb33', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71831, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO10295111084', N'10-4020-000322', 30019, 652, 652, N'CARGO TRANSPORT 5', NULL, 2016.3408, 161.3073, 50.4085, NULL, N'625d76fc-c26f-4149-bf24-939fb2bccd77', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71846, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO2378131604', N'10-4020-000635', 30102, 669, 669, N'CARGO TRANSPORT 5', NULL, 2453.7645, 196.3012, 61.3441, NULL, N'a86d90ad-d1c0-440d-9a57-5b763bf18234', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71856, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO16530177647', N'10-4020-000601', 30033, 1090, 1090, N'CARGO TRANSPORT 5', NULL, 602.1946, 48.1756, 15.0549, NULL, N'05fee073-0640-4a3c-914d-fe4ae6da3d43', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] OFF -GO -SET IDENTITY_INSERT [SalesLT].[ProductCategory] ON -GO -INSERT [SalesLT].[ProductCategory] ([ProductCategoryID], [ParentProductCategoryID], [Name], [rowguid], [ModifiedDate]) - VALUES (1, NULL, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (2, NULL, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (3, NULL, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (4, NULL, N'Accessories', N'2be3be36-d9a2-4eee-b593-ed895d97c2a6', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (5, 1, N'Mountain Bikes', N'2d364ade-264a-433c-b092-4fcbf3804e01', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (6, 1, N'Road Bikes', N'000310c0-bcc8-42c4-b0c3-45ae611af06b', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (7, 1, N'Touring Bikes', N'02c5061d-ecdc-4274-b5f1-e91d76bc3f37', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (8, 2, N'Handlebars', N'3ef2c725-7135-4c85-9ae6-ae9a3bdd9283', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (9, 2, N'Bottom Brackets', N'a9e54089-8a1e-4cf5-8646-e3801f685934', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (10, 2, N'Brakes', N'd43ba4a3-ef0d-426b-90eb-4be4547dd30c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (11, 2, N'Chains', N'e93a7231-f16c-4b0f-8c41-c73fdec62da0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (12, 2, N'Cranksets', N'4f644521-422b-4f19-974a-e3df6102567e', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (13, 2, N'Derailleurs', N'1830d70c-aa2a-40c0-a271-5ba86f38f8bf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (14, 2, N'Forks', N'b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (15, 2, N'Headsets', N'7c782bbe-5a16-495a-aa50-10afe5a84af2', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (16, 2, N'Mountain Frames', N'61b21b65-e16a-4be7-9300-4d8e9db861be', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (17, 2, N'Pedals', N'6d24ac07-7a84-4849-864a-865a14125bc9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (18, 2, N'Road Frames', N'5515f857-075b-4f9a-87b7-43b4997077b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (19, 2, N'Saddles', N'049fffa3-9d30-46df-82f7-f20730ec02b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (20, 2, N'Touring Frames', N'd2e3f1a8-56c4-4f36-b29d-5659fc0d2789', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (21, 2, N'Wheels', N'43521287-4b0b-438e-b80e-d82d9ad7c9f0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (22, 3, N'Bib-Shorts', N'67b58d2b-5798-4a90-8c6c-5ddacf057171', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (23, 3, N'Caps', N'430dd6a8-a755-4b23-bb05-52520107da5f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (24, 3, N'Gloves', N'92d5657b-0032-4e49-bad5-41a441a70942', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (25, 3, N'Jerseys', N'09e91437-ba4f-4b1a-8215-74184fd95db8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (26, 3, N'Shorts', N'1a5ba5b3-03c3-457c-b11e-4fa85ede87da', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (27, 3, N'Socks', N'701019c3-09fe-4949-8386-c6ce686474e5', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (28, 3, N'Tights', N'5deb3e55-9897-4416-b18a-515e970bc2d1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (29, 3, N'Vests', N'9ad7fe93-5ba0-4736-b578-ff80a2071297', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (30, 4, N'Bike Racks', N'4624b5ce-66d6-496b-9201-c053df3556cc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (31, 4, N'Bike Stands', N'43b445c8-b820-424e-a1d5-90d81da0b46f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (32, 4, N'Bottles and Cages', N'9b7dff41-9fa3-4776-8def-2c9a48c8b779', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (33, 4, N'Cleaners', N'9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (34, 4, N'Fenders', N'1697f8a2-0a08-4883-b7dd-d19117b4e9a7', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (35, 4, N'Helmets', N'f5e07a33-c9e0-439c-b5f3-9f25fb65becc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (36, 4, N'Hydration Packs', N'646a8906-fc87-4267-a443-9c6d791e6693', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (37, 4, N'Lights', N'954178ba-624f-42db-95f6-ca035f36d130', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (38, 4, N'Locks', N'19646983-3fa0-4773-9a0c-f34c49df9bc8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (39, 4, N'Panniers', N'3002a5d5-fec3-464b-bef3-e0f81d35f431', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (40, 4, N'Pumps', N'fe4d46f2-c87c-48c5-a4a1-3f55712d80b1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (41, 4, N'Tires and Tubes', N'3c17c9ae-e906-48b4-bdd3-60e28d47dcdf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (42, Null, N'Record to Delete', N'3c17c9ae-e906-48b4-bdd3-000000000001', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[ProductCategory] OFF -GO -SET IDENTITY_INSERT [SalesLT].[ProductModel] ON +SET IDENTITY_INSERT [Person].[AddressType] ON ; +Insert INTO [Person].[AddressType] ([AddressTypeID],[Name],[rowguid],[ModifiedDate]) + VALUES (1,'Billing', '00000001-0000-0000-0000-000000000000','1 May 2007') + , (2,'Home', '00000002-0000-0000-0000-000000000000','1 May 2007') + , (3,'Main Office', '00000003-0000-0000-0000-000000000000','1 May 2007') + , (4,'Primary', '00000004-0000-0000-0000-000000000000','1 May 2007') + , (5,'Shipping', '00000005-0000-0000-0000-000000000000','1 May 2007') + , (6,'Archive', '00000006-0000-0000-0000-000000000000','1 May 2007') + , (7,'For Delete Tests Only', '00000006-dddd-0000-0000-000000000000','1 May 2007'); +SET IDENTITY_INSERT [Person].[AddressType] OFF; +DBCC CHECKIDENT ('Person.AddressType', RESEED, 5000); +------------------------------------------------------------------- + + + +SET IDENTITY_INSERT [Person].[ContactType] ON ; +INSERT INTO [Person].[ContactType] ([ContactTypeID] ,[Name] ,[ModifiedDate]) + VALUES (1,'Owner', '1 May 2007') + , (2,'Sales Bod', '1 May 2007') + , (3,'Marketing Bod', '1 May 2007') + , (4,'Apprentice', '1 May 2007') + , (5,'Shop Manager', '1 May 2007') + , (6,'Time Lord', '1 May 2007') + , (7,'For Delete Tests Only','1 May 2007') + +SET IDENTITY_INSERT [Person].[ContactType] OFF; +DBCC CHECKIDENT ('Person.[ContactType]', RESEED, 5000); +------------------------------------------------------------------- + + +INSERT INTO [Person].[CountryRegion] ([CountryRegionCode] ,[Name] ,[ModifiedDate]) + VALUES ('GB','Great Britan', '1 May 2007') + , ('FO','Taiwan', '1 May 2007') + , ('MZ','Mozambique', '1 May 2007') + , ('LC','Saint Lucia', '1 May 2007') + , ('TK','Tokelau', '1 May 2007') + , ('AU','Australia', '1 May 2007') + , ('DD','For Delete Tests Only' ,'1 May 2007') + +------------------------------------------------------------------- + + +SET IDENTITY_INSERT [Person].[PhoneNumberType] ON ; +INSERT INTO [Person].[PhoneNumberType] ([PhoneNumberTypeID] ,[Name] ,[ModifiedDate]) + VALUES (1,'Mobile', '1 May 2007') + , (2,'Home', '1 May 2007') + , (3,'Office', '1 May 2007') + , (4,'Space Station', '1 May 2007') + , (5,'Den', '1 May 2007') + , (6,'Shed', '1 May 2007') + , (7,'For Delete Tests Only','1 May 2007') + +SET IDENTITY_INSERT [Person].[PhoneNumberType] OFF; +DBCC CHECKIDENT ('Person.[PhoneNumberType]', RESEED, 5000); +------------------------------------------------------------------- + +INSERT INTO [Production].[Culture] (CultureID ,[Name] ,[ModifiedDate]) + VALUES ('', 'Invariant', '1 May 2007') + , ('ar','Arabic', '1 May 2007') + , ('en','English', '1 May 2007') + , ('es','Spanish', '1 May 2007') + , ('fr','French', '1 May 2007') + , ('he','Hebrew', '1 May 2007') + , ('dd','For Delete Tests Only','1 May 2007') +------------------------------------------------------------------- +SET IDENTITY_INSERT [Production].[ProductDescription] ON +-- +INSERT [Production].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate]) + VALUES (1, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (2, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (3, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) + , (4, N'Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (555, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (666, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (777, N'For Delete Tests Only', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +--GO +SET IDENTITY_INSERT [Production].[ProductDescription] OFF + +DBCC CHECKIDENT ('[Production].[ProductDescription]', RESEED, 5000); +------------------------------------------------------------------------------------ + +SET IDENTITY_INSERT [Production].[ProductCategory] ON +GO +INSERT [Production].[ProductCategory] + ([ProductCategoryID], [Name], [rowguid], [ModifiedDate]) +VALUES + (1, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), + (2, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), + (3, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), + (4, N'Accessories', N'2be3be36-d9a2-4eee-b593-ed895d97c2a6', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), + (5, N'Mountain Bikes', N'2d364ade-264a-433c-b092-4fcbf3804e01', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), + (6, N'Road Bikes', N'000310c0-bcc8-42c4-b0c3-45ae611af06b', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), + (7, N'For Delete Tests Only', N'02c5061d-ecdc-4274-b5f1-e91d76bc3f37', CAST(N'2002-06-01T00:00:00.000' AS DateTime)); + + GO -INSERT [SalesLT].[ProductModel] ([ProductModelID], [Name], [CatalogDescription], [rowguid], [ModifiedDate]) - VALUES (2, N'Cycling Cap', NULL, N'474fb654-3c96-4cb9-82df-2152eeffbdb0', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) - , (5, N'HL Mountain Frame', NULL, N'fdd5407b-c2db-49d1-a86b-c13a2e3582a2', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) - , (9, N'LL Road Frame', NULL, N'ddc67a2f-024a-4446-9b54-3c679baba708', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) - , (11, N'Long-Sleeve Logo Jersey', NULL, N'20efe3f1-a2f8-4dde-b74b-18265f61f863', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) - , (17, N'ML Road Frame-W', NULL, N'ca18ecfd-2023-4fa7-a556-0321153bca34', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) - , (20, N'Mountain-200', NULL, N'3b78edff-2aa9-4ac1-8c3d-94090b5f53a9', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) - , (22, N'Mountain-400-W', NULL, N'6d2fcce4-ffce-4662-a3f8-5d18f0eedcd8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (23, N'Mountain-500', N'Suitable for any type of riding, on or off-road. - Fits any budget. Smooth-shifting with a comfortable ride. - AdventureWorks2002HTTP://www.Adventure-works.comProduct highlights include: - 1 yearparts and labor3 yearsmaintenance contact available through dealerStable, durable wheels suitable for novice riders.Made from synthetic leather and features gel padding for increased comfort.Expanded platform so you can ride in any shoes; great for all-around riding. Super rigid spindle. Our best value frame utilizing the same, ground-breaking technology as the ML aluminum frame.frontsmall1 These are the product specifications. - Varies Centimeters. - Aluminum AlloyAvailable in all colors.Mountain bikeNovice to Intermediate riders', N'866dbad3-5999-4329-beac-d826d959d9a1', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (24, N'Racing Socks', NULL, N'bd8ba6f8-7e16-4fa3-b3b3-2036dd4a2ae0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (31, N'Road-750', NULL, N'2bf795f4-2666-4691-af14-d490c7334a8a', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (32, N'Short-Sleeve Classic Jersey', NULL, N'6beccf2d-eacd-496b-995b-d692567565cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (34, N'Touring-1000', N'Travel in style and comfort. Designed for maximum comfort and safety. - Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. - AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. - 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.Excellent aerodynamic rims guarantee a smooth ride.Cut-out shell for a more comfortable ride.A stable pedal for all-day riding.aluminum alloy frame - and features a lightweight down-tube milled to the perfect diameter for optimal strength.frontsmall87 These are the product specifications. +SET IDENTITY_INSERT [Production].[ProductCategory] OFF + +DBCC CHECKIDENT ('[Production].[ProductCategory]', RESEED, 5000); +------------------------------------------------------------------------------------ + + + + +--SELECT * from production.ProductDescription order by NewID() + +/* +select * from ( +SELECT + s.name as SchemaName, + t.name AS TableName, + p.row_count +FROM + sys.tables t +LEFT JOIN + sys.foreign_keys fk ON t.object_id = fk.parent_object_id +JOIN + sys.schemas s ON t.schema_id = s.schema_id +LEFT JOIN + sys.dm_db_partition_stats p ON t.object_id = p.object_id AND p.index_id IN (0, 1) -- 0 = Heap, 1 = Clustered +WHERE + fk.parent_object_id IS NULL +GROUP BY + s.name, t.name, p.row_count + ) t + +where t.row_count=0 + +*/ + +----------Print ' +----------**************************************************************** +---------- Prepare the data in the tables for the tests. + +---------- This script will be run every time the system tests +---------- needs to reset the data. +----------**************************************************************** +----------'; + + +----------use [$TARGET_DB_NAME] +----------PRINT ' +----------***************************************** +---------- Delete all records in database +----------*****************************************' +----------Truncate table BuildVersion; +----------Truncate Table ErrorLog; + +------------ Disable all the constraint in database + +----------DECLARE @sql nvarchar(max) = N''; + +----------;WITH x AS +----------( +---------- SELECT DISTINCT obj = +---------- QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' +---------- + QUOTENAME(OBJECT_NAME(parent_object_id)) +---------- FROM sys.foreign_keys +----------) +----------SELECT @sql += N'ALTER TABLE ' + obj + N' NOCHECK CONSTRAINT ALL; +----------' FROM x; + +----------EXEC sys.sp_executesql @sql; +----------GO +------------ ----- + +----------Declare @TableName nvarchar(256) ; +----------SET @TableName = ''; + +----------WHILE @TableName IS NOT NULL +----------BEGIN +---------- SET @TableName = +---------- ( +---------- SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)) +---------- FROM INFORMATION_SCHEMA.TABLES +---------- WHERE TABLE_TYPE = 'BASE TABLE' +---------- AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName +---------- ) +----------print 'Deleting from table '+@TableName ; + +----------DECLARE @sql nvarchar(max) = N'Delete from ' + @tablename; +----------EXEC sys.sp_executesql @sql; +----------ENd +----------GO + +----------------- + +----------DECLARE @sql nvarchar(max) = N''; + +----------;WITH x AS +----------( +---------- SELECT DISTINCT obj = +---------- QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' +---------- + QUOTENAME(OBJECT_NAME(parent_object_id)) +---------- FROM sys.foreign_keys +----------) +----------SELECT @sql += N'ALTER TABLE ' + obj + N' WITH CHECK CHECK CONSTRAINT ALL; +----------' FROM x; + +----------EXEC sys.sp_executesql @sql; +----------GO + +----------PRINT '--------------------------- +---------- Insert records into database. +-------------------------------------' +----------SET IDENTITY_INSERT [SalesLT].[Address] ON +----------GO +----------INSERT [SalesLT].[Address] ([AddressID], [AddressLine1], [AddressLine2], [City], [StateProvince], [CountryRegion], [PostalCode], [rowguid], [ModifiedDate]) +---------- VALUES (640, N'251 The Metro Center', NULL, N'Wokingham', N'England', N'United Kingdom', N'RG41 1QW', N'0e4ac5bb-be0d-4a96-a58e-064daec08e1a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (652, N'Wymbush', NULL, N'Milton Keynes', N'England', N'United Kingdom', N'MK8 8DF', N'54e20963-b0e9-41cf-ab7e-d50459a3325c', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) +---------- , (669, N'Internet House, 3399 Science Park', NULL, N'Cambridge', N'England', N'United Kingdom', N'CB4 4BZ', N'56baec2a-5cc5-4a90-bef9-ee57e82f2e69', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) +---------- , (1034, N'Oxnard Outlet', NULL, N'Oxnard', N'California', N'United States', N'93030', N'300d2a6e-67b4-417b-83a9-2026818a21c6', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (1038, N'123 Camelia Avenue', NULL, N'Oxnard', N'California', N'United States', N'93030', N'a86c8140-ad7d-4caa-9b40-4006bd9998e2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (1090, N'25130 South State Street', NULL, N'Sandy', N'Utah', N'United States', N'84070', N'cf3ae92a-3e66-4af0-b683-731826e89cd1', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (1092, N'99700 Bell Road', NULL, N'Auburn', N'California', N'United States', N'95603', N'79cdd89c-3c91-48db-8277-46d04aad7251', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) +---------- , (1111, N'Orphan Record', NULL, N'Use In Delete Tests', N'California', N'United States', N'95603', N'00000000-1111-2222-0000-000000000001', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[Address] OFF +----------GO +----------SET IDENTITY_INSERT [SalesLT].[Customer] ON +----------GO +----------INSERT [SalesLT].[Customer] ([CustomerID], [NameStyle], [Title], [FirstName], [MiddleName], [LastName], [Suffix], [CompanyName], [SalesPerson], [EmailAddress], [Phone], [PasswordHash], [PasswordSalt], [rowguid], [ModifiedDate]) +---------- VALUES (29847, 0, N'Mr.', N'David', NULL, N'Hodgson', NULL, N'Good Toys', N'adventure-works\linda3', N'david16@adventure-works.com', N'969-555-0117', N'+gtwbVycsIIj2loVtrHNRN6IBLl20lQpRK8+JhzxyEo=', N'AwqZdYk=', N'fdd7d9cb-9a81-40fc-baf6-facde8da4923', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) +---------- , (30019, 0, N'Mr.', N'Matthew', N'J.', N'Miller', NULL, N'Tachometers and Accessories', N'adventure-works\jae0', N'matthew5@adventure-works.com', N'1 (11) 500 555-0176', N'/hDOTbr9X/E4UE8H6wjOGHYZ6Gb8GDpmutPWgFTXQnc=', N'eiCRDs8=', N'226d328b-23d4-4215-b9c4-3da08f2e68db', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) +---------- , (30027, 0, N'Mr.', N'Joseph', N'P.', N'Mitzner', N'Jr.', N'Engineered Bike Systems', N'adventure-works\shu0', N'joseph4@adventure-works.com', N'129-555-0164', N'7obarvC3BHLIE/oFo0n+bkB/EZ03Zc8Vu+F2jpK/CNM=', N'k6zgROU=', N'029c27b5-72e5-4024-a5fa-53bdb42b98bc', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (30033, 0, N'Mr.', N'Vassar', N'J.', N'Stern', NULL, N'Transport Bikes', N'adventure-works\shu0', N'vassar0@adventure-works.com', N'328-555-0123', N'nPkLkDdemKmfK3VexvRWH5zYyNzwcfvny8DxWGnicSw=', N'hLswDiQ=', N'66193607-693c-4073-be28-78e3892141a2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (30072, 0, N'Ms.', N'Andrea', N'A.', N'Thomsen', NULL, N'West Side Mart', N'adventure-works\jae0', N'andrea1@adventure-works.com', N'1 (11) 500 555-0120', N'LDoJwsGCFLtxVdbdQBbN/to7zFF1skP+hWLrIrCxvAw=', N'NuexV8w=', N'9bbbddc1-8e1a-4edf-aa2f-a8abea78c940', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (30089, 0, N'Mr.', N'Michael John', N'R.', N'Troyer', NULL, N'Thrifty Parts and Sales', N'adventure-works\linda3', N'michaeljohn0@adventure-works.com', N'308-555-0175', N'Gdklarx2tW1EtZEyrAUEIhhguzrFKVS4Bh3BdAsGngk=', N'HUE+JKI=', N'8d6af1e8-5082-4e5c-9f15-dfd04e64fd95', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (30102, 0, N'Mr.', N'Roger', NULL, N'Van Houten', NULL, N'Sports Store', N'adventure-works\jae0', N'roger2@adventure-works.com', N'1 (11) 500 555-0110', N'C0yLsx6zITh7lXoIPgG1bl1t5II3nx4GYi/RaS1yB84=', N'WnTAc/0=', N'0ee7e95d-f12d-4d0d-8c6e-c64a0dda719a', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[Customer] OFF +----------GO +----------INSERT [SalesLT].[CustomerAddress] ([CustomerID], [AddressID], [AddressType], [rowguid], [ModifiedDate]) +---------- VALUES (29847, 1092, N'Main Office', N'54e22612-0521-4ea6-b7b0-29d081e054c4', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) +---------- , (30019, 652, N'Main Office', N'4d79eb56-5f62-4c2f-90f2-f2f11d7e4f63', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) +---------- , (30027, 1038, N'Main Office', N'5dc4ddd8-be9a-4bd2-9f35-9f81743296e8', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (30033, 1090, N'Main Office', N'c3b9cc49-7b83-4888-8958-1a3b7558e614', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (30072, 640, N'Main Office', N'c6078b9a-2f95-4029-be72-511345be2a9a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (30089, 1034, N'Main Office', N'2f99485b-952a-44d4-a5af-5a94faca240e', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) +---------- , (30102, 669, N'Main Office', N'd996364a-0b31-4b67-adcc-1d0454b5b26d', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] ON +----------GO +----------INSERT [SalesLT].[SalesOrderHeader] ([SalesOrderID], [RevisionNumber], [OrderDate], [DueDate], [ShipDate], [Status], [OnlineOrderFlag], [PurchaseOrderNumber], [AccountNumber], [CustomerID], [ShipToAddressID], [BillToAddressID], [ShipMethod], [CreditCardApprovalCode], [SubTotal], [TaxAmt], [Freight], [Comment], [rowguid], [ModifiedDate]) +---------- VALUES (71774, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO348186287', N'10-4020-000609', 29847, 1092, 1092, N'CARGO TRANSPORT 5', NULL, 880.3484, 70.4279, 22.0087, NULL, N'89e42cdc-8506-48a2-b89b-eb3e64e3554e', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) +---------- , (71776, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO19952192051', N'10-4020-000106', 30072, 640, 640, N'CARGO TRANSPORT 5', NULL, 78.8100, 6.3048, 1.9703, NULL, N'8a3448c5-e677-4158-a29b-dd33069be0b0', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) +---------- , (71815, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO13021155785', N'10-4020-000276', 30089, 1034, 1034, N'CARGO TRANSPORT 5', NULL, 1141.5782, 91.3263, 28.5395, NULL, N'2aa5f39b-1096-4a4b-b17b-f10504a397ce', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) +---------- , (71816, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO12992180445', N'10-4020-000295', 30027, 1038, 1038, N'CARGO TRANSPORT 5', NULL, 3398.1659, 271.8533, 84.9541, NULL, N'e3c189e7-98de-4c40-b6c2-0d1d13f9bb33', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) +---------- , (71831, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO10295111084', N'10-4020-000322', 30019, 652, 652, N'CARGO TRANSPORT 5', NULL, 2016.3408, 161.3073, 50.4085, NULL, N'625d76fc-c26f-4149-bf24-939fb2bccd77', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) +---------- , (71846, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO2378131604', N'10-4020-000635', 30102, 669, 669, N'CARGO TRANSPORT 5', NULL, 2453.7645, 196.3012, 61.3441, NULL, N'a86d90ad-d1c0-440d-9a57-5b763bf18234', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) +---------- , (71856, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO16530177647', N'10-4020-000601', 30033, 1090, 1090, N'CARGO TRANSPORT 5', NULL, 602.1946, 48.1756, 15.0549, NULL, N'05fee073-0640-4a3c-914d-fe4ae6da3d43', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] OFF +----------GO +----------SET IDENTITY_INSERT [SalesLT].[ProductCategory] ON +----------GO +----------INSERT [SalesLT].[ProductCategory] ([ProductCategoryID], [ParentProductCategoryID], [Name], [rowguid], [ModifiedDate]) +---------- VALUES (1, NULL, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (2, NULL, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (3, NULL, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (4, NULL, N'Accessories', N'2be3be36-d9a2-4eee-b593-ed895d97c2a6', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (5, 1, N'Mountain Bikes', N'2d364ade-264a-433c-b092-4fcbf3804e01', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (6, 1, N'Road Bikes', N'000310c0-bcc8-42c4-b0c3-45ae611af06b', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (7, 1, N'Touring Bikes', N'02c5061d-ecdc-4274-b5f1-e91d76bc3f37', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (8, 2, N'Handlebars', N'3ef2c725-7135-4c85-9ae6-ae9a3bdd9283', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (9, 2, N'Bottom Brackets', N'a9e54089-8a1e-4cf5-8646-e3801f685934', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (10, 2, N'Brakes', N'd43ba4a3-ef0d-426b-90eb-4be4547dd30c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (11, 2, N'Chains', N'e93a7231-f16c-4b0f-8c41-c73fdec62da0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (12, 2, N'Cranksets', N'4f644521-422b-4f19-974a-e3df6102567e', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (13, 2, N'Derailleurs', N'1830d70c-aa2a-40c0-a271-5ba86f38f8bf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (14, 2, N'Forks', N'b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (15, 2, N'Headsets', N'7c782bbe-5a16-495a-aa50-10afe5a84af2', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (16, 2, N'Mountain Frames', N'61b21b65-e16a-4be7-9300-4d8e9db861be', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (17, 2, N'Pedals', N'6d24ac07-7a84-4849-864a-865a14125bc9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (18, 2, N'Road Frames', N'5515f857-075b-4f9a-87b7-43b4997077b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (19, 2, N'Saddles', N'049fffa3-9d30-46df-82f7-f20730ec02b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (20, 2, N'Touring Frames', N'd2e3f1a8-56c4-4f36-b29d-5659fc0d2789', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (21, 2, N'Wheels', N'43521287-4b0b-438e-b80e-d82d9ad7c9f0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (22, 3, N'Bib-Shorts', N'67b58d2b-5798-4a90-8c6c-5ddacf057171', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (23, 3, N'Caps', N'430dd6a8-a755-4b23-bb05-52520107da5f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (24, 3, N'Gloves', N'92d5657b-0032-4e49-bad5-41a441a70942', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (25, 3, N'Jerseys', N'09e91437-ba4f-4b1a-8215-74184fd95db8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (26, 3, N'Shorts', N'1a5ba5b3-03c3-457c-b11e-4fa85ede87da', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (27, 3, N'Socks', N'701019c3-09fe-4949-8386-c6ce686474e5', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (28, 3, N'Tights', N'5deb3e55-9897-4416-b18a-515e970bc2d1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (29, 3, N'Vests', N'9ad7fe93-5ba0-4736-b578-ff80a2071297', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (30, 4, N'Bike Racks', N'4624b5ce-66d6-496b-9201-c053df3556cc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (31, 4, N'Bike Stands', N'43b445c8-b820-424e-a1d5-90d81da0b46f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (32, 4, N'Bottles and Cages', N'9b7dff41-9fa3-4776-8def-2c9a48c8b779', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (33, 4, N'Cleaners', N'9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (34, 4, N'Fenders', N'1697f8a2-0a08-4883-b7dd-d19117b4e9a7', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (35, 4, N'Helmets', N'f5e07a33-c9e0-439c-b5f3-9f25fb65becc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (36, 4, N'Hydration Packs', N'646a8906-fc87-4267-a443-9c6d791e6693', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (37, 4, N'Lights', N'954178ba-624f-42db-95f6-ca035f36d130', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (38, 4, N'Locks', N'19646983-3fa0-4773-9a0c-f34c49df9bc8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (39, 4, N'Panniers', N'3002a5d5-fec3-464b-bef3-e0f81d35f431', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (40, 4, N'Pumps', N'fe4d46f2-c87c-48c5-a4a1-3f55712d80b1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (41, 4, N'Tires and Tubes', N'3c17c9ae-e906-48b4-bdd3-60e28d47dcdf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) +---------- , (42, Null, N'Record to Delete', N'3c17c9ae-e906-48b4-bdd3-000000000001', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[ProductCategory] OFF +----------GO +----------SET IDENTITY_INSERT [SalesLT].[ProductModel] ON +----------GO +----------INSERT [SalesLT].[ProductModel] ([ProductModelID], [Name], [CatalogDescription], [rowguid], [ModifiedDate]) +---------- VALUES (2, N'Cycling Cap', NULL, N'474fb654-3c96-4cb9-82df-2152eeffbdb0', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) +---------- , (5, N'HL Mountain Frame', NULL, N'fdd5407b-c2db-49d1-a86b-c13a2e3582a2', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) +---------- , (9, N'LL Road Frame', NULL, N'ddc67a2f-024a-4446-9b54-3c679baba708', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) +---------- , (11, N'Long-Sleeve Logo Jersey', NULL, N'20efe3f1-a2f8-4dde-b74b-18265f61f863', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) +---------- , (17, N'ML Road Frame-W', NULL, N'ca18ecfd-2023-4fa7-a556-0321153bca34', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) +---------- , (20, N'Mountain-200', NULL, N'3b78edff-2aa9-4ac1-8c3d-94090b5f53a9', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) +---------- , (22, N'Mountain-400-W', NULL, N'6d2fcce4-ffce-4662-a3f8-5d18f0eedcd8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (23, N'Mountain-500', N'Suitable for any type of riding, on or off-road. +---------- Fits any budget. Smooth-shifting with a comfortable ride. +---------- AdventureWorks2002HTTP://www.Adventure-works.comProduct highlights include: +---------- 1 yearparts and labor3 yearsmaintenance contact available through dealerStable, durable wheels suitable for novice riders.Made from synthetic leather and features gel padding for increased comfort.Expanded platform so you can ride in any shoes; great for all-around riding. Super rigid spindle. Our best value frame utilizing the same, ground-breaking technology as the ML aluminum frame.frontsmall1 These are the product specifications. +---------- Varies Centimeters. +---------- Aluminum AlloyAvailable in all colors.Mountain bikeNovice to Intermediate riders', N'866dbad3-5999-4329-beac-d826d959d9a1', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) +---------- , (24, N'Racing Socks', NULL, N'bd8ba6f8-7e16-4fa3-b3b3-2036dd4a2ae0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (31, N'Road-750', NULL, N'2bf795f4-2666-4691-af14-d490c7334a8a', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) +---------- , (32, N'Short-Sleeve Classic Jersey', NULL, N'6beccf2d-eacd-496b-995b-d692567565cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (34, N'Touring-1000', N'Travel in style and comfort. Designed for maximum comfort and safety. +---------- Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. +---------- AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. +---------- 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.Excellent aerodynamic rims guarantee a smooth ride.Cut-out shell for a more comfortable ride.A stable pedal for all-day riding.aluminum alloy frame +---------- and features a lightweight down-tube milled to the perfect diameter for optimal strength.frontsmall87 These are the product specifications. - Aluminum alloy Available in most colors.Touring bikeNovice to Advanced riders', N'52e7f2c1-dbff-4518-927d-c7d46f9ed32e', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (35, N'Touring-2000', N'The plush custom saddle keeps you riding all day, and there''s plenty of space - to add panniers and bike bags to the newly-redesigned carrier. - This bike has great stability when fully-loaded. - AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. - 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.New design relieves pressure for long rides.Top-of-the-line clipless pedals with adjustable tension. High-strength crank arm. The aluminum frame is custom-shaped for both good looks and strength; - it will withstand the most rigorous challenges of daily riding.frontsmall87 These are the product specifications. - AluminumAvailable in all colors except metallic.Touring bikeAluminium alloyIntermediate to Advanced riders', N'aa10d9e6-e33f-4da8-ace1-992fcd6bb171', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (36, N'Touring-3000', NULL, N'f5a6ec78-4451-45db-955f-db197de8b059', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (37, N'Women''s Mountain Shorts', NULL, N'a08dd61a-6155-4051-9a11-223232ea51cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (63, N'ML Mountain Pedal', NULL, N'be9cdc56-f4ab-40f1-b338-2e08e0627abd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (102, N'Front Brakes', NULL, N'1099a23a-c9ed-41b1-8cc1-e2c1c54a10c8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (103, N'Front Derailleur', NULL, N'10e0c8fd-ca13-437b-8e22-51853ae160a7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (128, N'Rear Brakes', NULL, N'71d47afd-da3a-43f1-83ad-69c71f96ef33', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[ProductModel] OFF -GO -SET IDENTITY_INSERT [SalesLT].[Product] ON -GO -INSERT [SalesLT].[Product] ([ProductID], [Name], [ProductNumber], [Color], [StandardCost], [ListPrice], [Size], [Weight], [ProductCategoryID], [ProductModelID], [SellStartDate], [SellEndDate], [DiscontinuedDate], [ThumbNailPhoto], [ThumbnailPhotoFileName], [rowguid], [ModifiedDate]) - VALUES (712, N'AWC Logo Cap', N'CA-1098', N'Multi', 6.9223, 8.9900, NULL, NULL, 23, 2, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9ede243-a6f4-4629-b1d4-ffe1aedc6de7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (715, N'Long-Sleeve Logo Jersey, L', N'LJ-0192-L', N'Multi', 38.4923, 49.9900, N'L', NULL, 25, 11, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000142567FCFCFC9F9F9F2C4B67CECECEE4E4E43B658AAAAAAA2C3458CACACAF0F0F04757A510182EC6C6C6E6E6E6EAEAEAA4A4A4EEEEEEE2E2E2696665AFAFAF102136225A8B8895AAD2D0E6B1B1B18DAFD3333335FAFAFA2E73B2254B72637098B2BCC876757AC2C2C218479DF6F6F65075AC3216701750A1F8F8F87E8E9DF4F4F4B8B8B71D3B88262526DEDEDEA7A8B4DADADA8D8D8D345CA82334750C365B1A53882934672C435ECFD0D01664AAF2F2F2165A981948854581B787A7C5534B46919191113F6B5357751B3394DDDDDDB4B4B4D7D7D79A9A9932343D3E3E3E16181D192E595754523134470F1A4824547FD4D4D46986A67DA5CC87827EC7C6D91761A9574F4A4C5C83959594CCD1D8193F99A5A19CACA9A64E48442C589A05060850637CD0D0CE262E639A9896928D89182942928E9F1E5199326A9C282D38E1E0DF453C38A1A1A1675B77A8A8A79594923579B549423D395A88CDCDCBE5E4E2757370B6B6B6D3D3D22D3A4A9796958C8986BAB6B31F3C58BABABABFBDBAACB1BDC0BEBBE7E6E4D8D8D8737DBAB1ADA939437ADFDFDF3A4C96272F488B8784D5D5D2605954CAC9C62C3F54D0CECBE9E8E73D276ABCBAB8B6B4B0B3B1AFACACAB0C2A54050B16BCBDBDD4D2D0C8C7C7EFEFEF5E95C5195E9F1830810C121DDBD9D7EEEEECEBEBEBE1E1E1DAD9D968625E4F3A7699BCDA1B49927E78730F0F0FBFBFBFFEFEFEBEBEBEE8E8E8EDEDED1667ACECECEC1659A56B98C6CBD9EA184C9FE9E9E9535EA96169AFFDFDFD1D3F90223E77296EB0B9B9B9EEEDECF5F4F31953A0CCCBCAEDEDECE4E3E139312EF5F5F5C7CCCFA4A2A0E9E9E8154891300E7B6081BC6F8AC12A639F8F91C5B6B5B40E2F4CC3C2C0D1D1D17B7FA6FBFBFB706F7C6F6C69686D7C355978DFDEDCADABA8EAEAE9EAE9E8E9EAEA9EB2C4E7E7E73C516932496A7E85BFC0C0BFA8A5A21D1E20CACDE4A29F9BFBFCFCD6D6D52B2B2CF7F8F82260A7F7F7F7505152F8F8F7414151F1F1F19994903E74A5DCDBDB3120542D2E5B3F4A8B313C7A3D2374301C621660A835383C2F2F2F739CC6000000FFFFFF21F90400000000002C00000000500032000008FF0055FD1B48B0A0C1830657295CB80A97435C01224E9BC6A1220A76EC481053A1029E024DAE603D68E5A080044344601881128D4082062258F12A42E10004010211EADCF98FE1C287102552B4885123478F204592348952254B973065D2B48993A7D5843E1B060D307162450E17336EECF831E4C8922753AE6CF932E6CC9A37735EBDCAD06180735FC1EA454154ECD1B24AD1365D0BD5EDD4B873E76AE58AA2C13C05735E880BD64B810E62EAD485354A36E959A66A9FB6950AB76A629E0ACF0533832F5F32132692BDA667660EB640BD2E93D03816A9D9A5699DB28DFA96AADCD358A715BB8066463E7C6D4A9582E47A800D691F227DA2134A818AB19D7F0BFF0E3DDC70E9E3C87BAE0AF0278A1419703C34811DA28D897C339E2068166BC7150A8AA8F148043AA8A0836F8181265C61A41997DE400AB1278716BB68B080014F3482443D36E453CF06BA80918410B1E8A3C529293813E03611C083E067C111365A7188A5D7D01F68E83302853EDC70032739F081C83508D8B00127B280B0CF8F5AD022851729F8818E04A16862A5780ACA48DC61A69DB68A02D20C52858E5A30D30E123BBC92430DFEA492843FBA5421CB2C72ECE3010B4ECAD04319938461482DAE4480658CA26D791E72ABB872CF0262EA3803121BF090839AB1A4E24F125FF020E72C1D7860C10D79F6E0C9042BCCF1A72B830E56A8790E7A198313B688FFC9090F376C50C80893E6104B0597A672C2A61D9CE0C10D7844B18E3C4EB40041247748F0002C09125A5E83352A16C03E0CC45A830DBF0C408D2DB852BAC4A54AFC3A67B087E0D1842EE080234619751CD080200E84120A8CAA4E4B639774CD438E27F608B101B7DF50016EAEB1E8726905E6727AC20221AC7B8327360C9084002BE0204A2DF702972F83FBA2B753433120D20200330C7CC607181C4CE9295F24C130B00F6B20B1123678C0400C0788308A030FE04B1EC85C8AAC53434D2080040329DB30C32D180C52021C9B6C120B2DA9F033F3B93537A24B23E4E48C47176CF0128D04B5D4E2F1D033169DD82AA138A1B413626C80C0105097B38C29A6E8FF4A0BAF4B341CEC021AD4704319FCE4DC481A475090C93C0EA83DDE826D1F3A57000200A0340B0C20D109DE1884A30C1CBB583D4219FE044E33E1AF5850C1C01EE0F1450C10B0824E01ADAC4DB9A1AD5AD5D0049A23914B059F83EEB2DFE3AACE35EBFA30007B1AFEB4334606A67AE3CDE45AB25A2D6A1128F10522C23FC1C010C687EBF70CA90B5EF32B3CF0013BAFA9E8610C343014707D96AB52CBEF4EB8B8E18F3F4A081F3900503E84D14261CA7318EB2A5003D859CA1F4C20C324A2210A07602F7F21A30B2EBAF03F7FA421174FD880253A01B5E35D8D05FE6081FA16688181DDA0832D40853932418402D8505A44B31CF71ED8261022211D0C28A1F9FFAEA60B066861851A08C2335A68032574700DA420831F046143FCE9CB6DBE53471D3AE80F008470034A1042CB867840001C71751750C20098F885FFA5220E8B98C21EA674C38F55AE772363071DDEF4BF2F7C118C0623E3123A7146AE1DA205FB58E30678F5BF61AC611189888411245047B6F16E7B47434120FCD0820E2A6103A06C84104C488B250CA1900E63403A90A0C83602700D7120453CA0318F2AE2F08E9844C82AA6010A4C9081872D00E5009E718F2122E373A8EC00323EB9813592A38F6B58831550918D30A8C18256CC211E8F860B5F0803105BECA3302DE0892106410BA7145C05F8214C0FB8921F71E8C204E20188FA61F39697DCDFD1A6A1FF804FEC61111D2447332D90864A18109DA8E483FB846989FF91A30B5D88A3243081BBFBE1537BFAD4E52ADC110A4C64230E1DE4C71A91A08434F90DA1E6BA4025BE882D375AE107D3DC42265CE00DC965139719D5252ED8B10D476CA193001C29022A40295AA0B40A2520070841998E3EBED40AD51803207E1634DD654F7F463B5A0088110846A0A2837CB000121080081A9C349D3B4845F840E9CA38C094147A9868011ED0B10B5E5187D6F2661E2CD1464B3C61AC1E60E0D5505A09F02DF5814EE8C20F16818A7100430DDC80455D6F9ACFAC8E6C1A3A80C61700F0BF32ECA31E03680418D661D4537AA10C4A03E133BF70CE2E5861026488C428BC81AA68FFD9B1B2365A050AB4E18F2138E17FE94000185EE083C19EB2047FB881F082E08F2FD420075A780763CDC10809C04250B6B524462D3BB20028201D0464803F5A10836EC0E1AC47ECC125AC910BBE46414D5A40C204A6C0054738C0159EB12A06B188285CA8601F04B4C504FE508283A6B30AFDC80204F6610F0DA8A913A9A80319081186FBE6D7AEDACCE55C7041820938016F545800198F3AA71E9C817539A8C03EA6F0863E593855DAC5EA83FEB1D3107C5888064EE6FA76E08F6AE8E108CEB8C38BB3BBBBEDCE78151CC880250A5854122BD0C134D8801E6220804B18A11511B830658DFC20241761C9386EF28197E7604B4C20066F708363429165181759FFC65DE6676FC38C5EC1F1E01E5108422A6210832350AF00F8D5F245E16CA300E820157203E30D0CC0681E72D18D2D68413A48110320D44E10ADB092A06FCBE542136305A460423BAA010420BCE10D79C0C2A94BCD6A56F3B9D20228023044010B050046686FCEE08C775A8B68D8810DA9CE431EC63086231CA1D8C64EB6B205C0860C340006997E917EEFBA4D2F7140012EC8841D28E1063770211B942004252840EE7267E0DC1928821D2E91002AB648DA18C6297751130012C0C2107778492618010C60CCC11104C081C071108D68DCE1E07740070C448165781CE8D6D3CE704E35380D1268A21655B4DF238E718C56A4EDE320AFC5B35A54A0876F3AC6FB40A2802A56CEF296BBFCE52BBFC425FAB0829AF3A20F38CFB9CE6FCE8B9EFBBC0F3EE745CDED60076714A108192837252871806E4300026C1080B1C78085520704003B, N'awc_jersey_male_small.gif', N'34cf5ef5-c077-4ea0-914a-084814d5cbd5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (738, N'LL Road Frame - Black, 52', N'FR-R38B-52', N'Black', 204.6251, 337.2200, N'52', CAST(1088.62 AS Decimal(8, 2)), 18, 9, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'18fc5d72-a012-4dc7-bb35-0d01a84d0219', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (739, N'HL Mountain Frame - Silver, 42', N'FR-M94S-42', N'Silver', 747.2002, 1364.5000, N'42', CAST(1233.76 AS Decimal(8, 2)), 16, 5, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000C1C3BDF4F4F4BBCCC9ECEAEAC2D4D1ACC2BBB5B8B4DADADAB8BAB5ABB8B4AAB5B2E8E6E6D6D5D5A8B4ADEAEAEAC7C8C4B0B2ACA6B3B3E2E2E2DFDEDEE1E0E0ECECECB3BDBBF0F0F0CDD2CCD4D9D4F4F2F3C2D2CDEAE8E8E4E2E2E6F3F3DCDCDCCADBD9F2F2F2A4A5A3F0EEEEADADACABBDBBB4C9C3A5B1ADCECDCDE5E4E4D1D2CDDFDDDDD8D8D8EEECECCDCFCAD9E9E9F5F3F3E6E5E6BEBFBDEEEEEED9D6D6B4B6B0D8DAD6BCBDB9E0E1DEC8CAC4E7E4E4C6C5C5F2F0F1F7F4F49D9C9AB4C2BBE8E7E8E3E0E1DCDEDABDC0BAC2C1C1F9F2F1B9BDB9B9BAB8E4E3E4A5ADABFBFCFCE9E8E8D8D6D8ADAFAADCDBDCFAF8F8E4E5E2E0DEE0A9AAA9EDECECCBD8D5DAD9DAAAADA6DEDCDEBFC1BCA6B8B9F8F7F7DADCD8D4D2D1C9C9C9E8E8E7C4C4C1BAC9C7ECEAECB5B6B4D3D5D2B0C2C2DDDCDDE3D9D9B1B2B0B4C6C5AEC0C0CCCACBF2EEEEB5C5C2B2B6B3F1EFEFCACDC8E2E0E2E6DBDBBFC2C1DADFDDBED0CEBFC5C2D4D3D4C4C9C8FCFBFBE6E4E6E3E4E2C1C6C0B3C4C3CAC7C8BDC7C6EEEDEDC0CECED6E1E1DCDADBFCFBFCC7CECDF6EFEFCAD5D4C5D8D5FCFCFBFAFAF9C2CDCBF4F0F1BBC2C1EBEAE8DEE1DDDBDADBB2C6C6A6ABA6E1E0E1DDDEDCDEDDDED9D8D9DFDDE0D1D2D1B5C3C3FDFDFDFCFCFCFBFBFBF8F8F8FBFAFAF7F7F7FAFAFAF9F9F9FEFDFDF9F8F8F7F6F6F6F6F6FDFCFCFBFAFBFBFBFAFDFCFDF8F7F8F8F8F7FEFDFEF0EDEDF2F1F1FEFEFDFDFEFEF7F7F8F7F7F6F7F6F7FDFDFEF4F4F3EAE9E9F9F8F9F2F2F1FAFAFBF0EFEDF3F3F3FCFCFDE1E2E0FDFDFCF6F6F5F8F9F9F0F0EFEBEBEBEDEEEDF8F8F9F6F5F5DAE2E2F8F9F8E4DDDDF8FEFEF1F1F1F9F9F8E2E7E6E3E3E3E0EBEBF2ECECBBC0BBEFEFEFB8C2BFE3E3E0E7E7E7F3F4F3F6F6F7C3C9C9F7F2F3C5C3C4F4F1F1FCFDFCBEC4BEC0C0BEEFF4F4FCFDFDF5F6F5FAFBFBAEAFAFD8CFD0CFDFE08D9796818080EAD9D9FDFEFDC0C6C5D5DDD9B9BEBCB9B8B7F0EBEBF0EBECF1ECEBCFCFCEE1DCDCEEEEEDC1C0C0E9EAE8E9EAEAFAF9F99AAEAEC3D0D0E4E7E7E6D4D4E7E7E4D7D6D7ACACACA7AFAEFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0E1C04C0E230AF4376A043B67850A15D9B8D19D068912FD0590C089A0A600333E090C0552203178F08E99311387A6B97CF98E8D6AE9D01FB447CC3C29D1B580128B7D12DC5C08B2A6A5BF4C995EA1223605080D1AF046F8E3199118033B559CD8B1430988844751283DD2C175A0A660CC525CD0D63622386894183080B353E0146C3BECF0A8FB8FD31F0DB308475459EA51258803BBA113D1473135608A25120BF12FCA95821E0C884001AAAEBF11BA3247D4F53106835403FDBD104162CC1C1C03B4F0DC144C95EA86FE866D95C580522781C808F03BD3840F0110E91C71F015D15FAB01907F2BDCF56A6032065582F5FFF060E1C69E315FDA444843874A0621FA606C15F82AD3FC8114D6A9C9AEDDA11609FB8873C71944F42304299E30A306020A9420000154D8204D2E9A1CB4C925EBC8804B7F2D6D32C23D62DC90041A381023101E533020438368D061C87B8DF8E65D1732BCC1214FC80820430D359C0006050114A4C10A0F18900019026C8041067AD0F24F2D3B2030C98D099DF4472D4BD4124C2B5A34630137085060C00980EC00CD41F54CF38E1109A461021B75BCF10611433869D0200154E0C534D3D0934C2AF7B5444C0A4E545105259438F1481582D07104022EFCE300041128820D2909B9120F0D7224A0801452C880850405E9C28C134E945186138254C142251354FFC05F439C48C08213417831801BD9B8D1C2001FF0C14D130708C48B1559288242850B1183C30367C8F0C3A802C922C90112ECBA48363068B0C6000B4451C501673AF4070B8F48D0C228B3E2510C1B323461071215DA60450977D8E110140660A14001582CA041151DB4008328AE1884070C53E8508504CC2A040403130C50DA41A1BCC08801282CC0C207A5A910491A754CD0900B063CA04203263481C21F6B1CA75026D7B430C1072A2534CD3E70B4225026110F540F083220008A26D35452C527BBB8100919EA00B19026431CA1C22C639C5000094824E4CF5303893205054E044DD01FFBA460E244B3FED38DA3EFACC4C13E94F803CA1749646184CF0901FF23C61038FC03448F26EC80E94460FF631F44F3D9520B05261BE4090B14C010DB41FE34E30702C2FCB35526793010C33F01DCD04F090FE886D02467EC910C2C955000C00926AC63F953607F6DDF56607352CB07B51844F60804053A100CE330F240419D4CC04090C28C890617660FF486182E98624919AD7CF280D6E178A2F8D79E3FB57BC41A4C534549DEB110034B9E2754C12146F062D005954421D03C9492C1C041BFA89A10DCC084016C851300684001C4608ADD792E139BD0843F24B8927F8C8D5403490B677ED6B67FE061198000C013E6433E7F20611F96FB072F9A10810450C020C1A80116BC108515ACED1FC4B881028F3008FB784E139F800A09FF05220A201CE0629EA8420CF863BCAD6821107E6001422EC082140C640BC84A40F008B28533BC6100951840416EC1A012C8236240F361FC06328509044320C1A8C21F1AC203106C638EC6FBC72628F00866F9430508C842345427901CD420034810440A0912831A24A0004EB81C09CD27900020E185FF90C0046E58BC89FC6315CC20800B06A1843C3EA9124112082E30300448D44166C6308211A0000709D4E3203880400236C08107164F8802F9041028710A4D5022059BF0E44134910A42B06105E43B881BAA30058278E201CFC8C21D04A20711ECE10F55008229FF31095D12008F0411E27D5851065D70C209E2C4DC403A11043658A00708D90A0CCAB0FF8082840000EAB04706FE01011FBCE32C03D0844251A189526482A1A8604113122080D1950F216E98C01F02F0882D7A2D177D480006C6B746828C220A5D2B4805109004134CA01CFC400112F2C08A4D74A2980A5DC52A34518F1660C10A11C0045BB2134D81F060020ED0C523C4A8904E5C420EDC48010F4C91102D48028305D1C33AD061011FC8E31D5308C34714D709188C000A5BC0C01E7E600111F8E00498100528D867100D2035004E606A3E03310E3970E109A5C8270E2591D282D8A20F67E08714D6B1834AA8810614A8C41830B00101BC890C64B040024470031790430E99F844F5FED10A4A04C3134E588242FC818F00D0E00FBF689624F2609055FF68000644E0473864100E6B58E01E87380401E800861F18A00D3CBA0100202005E9300082392B080FAE30824D1C33B082C5832450B189710A040651F0E84036F1A710748108F740C33D0C41883D6C030B0078800B6CC08B5AB88113BEC000375070267F7862B43C7082E5244101BA5E2E7E40435C424640890B18E41301D0C42606B083AF72A10F6AA0400574F1893C7E2318C138402DE69ACCA27AAE165750492DB857902196D4C4042905079C7031826CA215B0F0042862300D62C06200B5804D8BDD22812568022ACABC0F273A00874A1E209E435670490D32A8261BC41F172086C174A1054E68E20F0B78634232E180091032C9024986692742090A88AFFF93075E6D1BAB79105504400B1AD040005A200B524481240801DA0024E01B260EA414C178448D2BE0841604EAD10C190510CA30DA4ABAA11530084027B4D0090938C10D5F5368274C718A4ED8E214A255E681B3210166A4F30329C0A7AAA74C6BC50DA0620B1945A651E3094404A06230D044317D086318FF43141C38C09BE3978C4770E0387880B4B107F2871450027E0AE1C426F0D00BF2C5A0D1D896329C07620A0E4CC00B078941C53AE18D82302E21C958C0233819E86A182F134E48CA7DBE66CAFB8482151D9840073311050AB0E3960F69DB7D2E008447CCA0219EB840C20AA2852A8E0011F1CB63A07A0A041A2764131390403BE4336BE655E51115C36848262A800452E4310055AC450A79C7BBE2B5A2162950F64232C10C4A0CA005B1480C9ADC30002438C1C10E81E03849F1084A708015A218380C169082B428A3D606F94319D4358211DCF909A4A0851B82C1811850421206568C3752C08209C460095E17C52738718BA277806CD33887443651E628A480031C180010A69102494C4012C9E84F82892181B04C80021440820E26408932C03A165CD1C42DA69116449DDD019817376126780A44F4C2130E20DB011E71800F482018BA48041E2868908000003B, N'frame_silver_small.gif', N'8ae32663-8d6f-457d-8343-5b181fec43a7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (782, N'Mountain-200 Black, 38', N'BK-M68B-38', N'Black', 1251.9813, 2294.9900, N'38', CAST(10591.33 AS Decimal(8, 2)), 5, 20, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700009A9CA3BEC2C79DA3ACF1F0F96566694D53647C8494E1DDE44D515C41454D444953B2B2BBF6F5FDEEF0F5F5F5F5EEEEEEC2C2C4EEEEF8D5D3D90B182A97999ED1D1D4E9E8F450545E3D43525D616AF0E7E0CBCBD3F5F5FADFDCEA83848A000204F0EEF8F0F0F0FEFEFEEDEDF6FCFCFCDBDAE3EAEAE91423343D404A6B717970737AA4A5ABABB0B6535662F2F2F45458638B8A92BBBDC0CBCBCD414653AAB3C1A9ABAEF7F7FBBCBBBC6C6D728987A4494B54F4F0EAFCFCFFFAFAFAC4C4C76A75825C6773E5E5E57A7C848D97A4EAE9EC43355C494D59E1E2E55B5B62EDEEF1012543F1F1FCE1E1E2E8E8EBB3BCC5F8F8F93C3C44EAE9F7EAE9F2D2D3E38C9197B0B2B6ABABB2010811DAD9DD444B59BFC7E3848B92DAD9DA393D48A2A3A6E7E6E9213346F6F8FBE1E0E9E5E4F02324284A4E62838790FBFCFEB0AFB1CBD4E3E6E5F6C2C6D2E9E7E85A5E67DEDDF261656FECEBF5D4DCE438373AF8F8FFD6D8DDE4E4F92B313AFAFAFE2229348478989599B37E7D8ADDDEDFF8F9FBEBEBEDB2AEC8323D4A676A70555C66BAB6C0E7E7F2CDCDDAC4CBD2F4F3FEDADCDD383E50B5B7BB554B55E1E0F2343641A3ADB9CFD2D7FEFEFD5B6882F9F8FCE5E3E5373A43424658F3F2F2ECEEEE9EA9B7C6C8CAE2E6ED9E9FA4FBFBF9AEAEBAF3F3F9F3F4F5F5F3FA131319EDEDFC2038535257696A6672E4E3F2352949A6ABAEE7E5EEE1E6EAE3E2E9FDFCFDFBFBFB3F5266BCB8D3777681FAF9FDB9BACCCECED1040E1CFDFEFEFDFDFD74787FF3F3F4484551A8A7A9E3E3E5636777FBFBFFF9FAFB8D8E99F9F9FAF9F9FE5F5D696F748B7B77818A9EB18B666DE3E1F3E8E8F6524A73A6A6BFA5A5AE6C6C7AFAF8FEA3B9D5353069DDDBDEABAAC86E7E933239483C3648393240F4F4F4CDCDE2C5C8DA352B5DBAC2DA75648CD7D6DA6D6B8A5A5662F8F8F77497B4575486F7F7F7EBE4E3FDFDFCEFE8E9ECECECD6D7D8E7E9E8D1D9EAE9E8F9D5D4E8AB9C9F868598D9D7E6BEC0C3E5E2EDEBEAF2ECECF5DFE0EC968993B0BFCCB6B6CEB9B8C6F8F9F9595F6FE5E0E2DDE2EEC9C8CF4E4A70ECECF8FFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C183026D7D1187B0A1C3871023460C4281800F8918336A84880B0001245E5A6D1C4912233008482825A852B2A54B844136B5402147D7CB9B372DA1C1014541061824700A1D29E2DF19693A025119CA74E3A3132784586A4A55A2B42BA36260DCB5C70C802AB3F81C0942E4C193AA198F9CF8406B0200891500102BB5A88D10185BA850D95301AD44331FAED0FAF0C1081F8C7E6EE04082040A945CD5DEFA7DF809CF870957087F08452123B16AA528405866A5C9E48702020BCEAC39818C886CBCA1C8745AE29D2E8169B1D61C18C754480D615012523B22831CA1AE84C2406B306FC2646E348C5646C7AEE20F6DBC4A76EA54BD7F3F7407FF7EFE2150887FB66A0D2C14EE593BEC10739C2A92038440209809EF860E81A09A6DD9F4A3CC59F021644E251314F14A2C029D21886E99ED47980A53FDB3C77C7A24516043040496471404F551C015247E600719CFE1E1031F9975334681B63C70041F4C3C10D43F6864464B1C067D928573B49891C173B4D86162030F89208E09410471093025915001052A08D2420B1764A0020037A0F801060825C19C66BA700105798138848E225BFC0004106FA4700B15019C87912DEFA460442E3AE432C30C28F0A9C35A819971907A4D00B29B4DBA78A91F01E618C4C4162D2070C105DE60D9C20B082000C4260F4484CE2D5D609A0B258D7481C2AA2A9DA0E3020E1DFF01C66ED289E34128E37D40061A0391B002025990428A113354A2C00C18A0A08337DE20F0467F0E55A0032517E88042069BBC43C70158CCB2097E6C918140000E21322B61A1406B0E0EFBB5610E304224424A0195B400C3025C4800CD066808A14325C2B4A0C0260D558042020A74810404D6F4E009037D1CE20024C5E86847170A5CD4D053242A37CB40E7E8C01B192F54424A25597801CF3F4B88800CCBB50CB08A190A5C3AF041E8E89000025DFCF24D080E3CC000C48784C0812B6C1100854A1760E190216B6546C66103F920076F7860204409FF7020CF127720C3CA00AD58C04330B35C60C40B46B054D02D94BC90C02687F0604910427BC2C31296A4FF31C107AEFCA348230A28A0420F0E05F0B7D4D70DD48322461236014B0CD8128528C144C143040C8C30020F3C4880E50B8220425026502090C01EE811C2C0037C78D240CC210C11580073CCA14B175960A0C8438AFC4D18019A6828903848E0C1DA152968184C1D7BDFE14F046A00134104FFCCA28320461037100E281881841F0BFD630103417C318008707C31641BBD58F00F03CCA080C11BF83CC4C2157874E2080D3408C00EFE0180469441014898C060F0E0887F608E01BD18401DFC11050EFCC3137300000674F69A7F98C95A2BF807097631950858800EF368C2141E81075A546009B1888208663103056080360FC10426C01189156CC1113728870AFFCA50860C24E0037800046132A0091010E1134B10853FFAF08F0180281E7243810704A20B28E8E0027E38843F5AF185508D600A0B78C71A60F0812C74AE0344608310158082A53C640D4E90862B0C300427D4831F3AE005023283002C1C60086B098501A6C08F47CC412011F00703D421020AA0204BE7F140E184F00013ACC21D7098C417B82006466CA0032DF800209650023658024A5E40C10C52F01012380113BF48410A78C10B2750C00E960985179E508E03E863036F18CC30EE718FD74C520D6A18402C3660844A55A0162A505D08C5618D1048C11DFC608119F6F00369E0AA0011780011BEA00F132CA00B3310042E1C0289003CE2082A50000C1651FF8F7C90680202D8471AD29186355861133038C10412F18B0530421403F0870D38D00B3F64400733508438088000055861095218C10096E08F0E386371E259819D06C20D14D4EC120F8983131E010B6AFC2213C5708E6656B3D32B9C801605F8C31418C083111C230A1190C71B40880F0210CB6D04F1030DAE30017AE0CA0EF710031C22308228F8831FAABA40A41CD20A3CF262149830842A2E800730B8E207F9E8A802B2000830FC54094AA0851E56C1833BF8B5173CB041207480012FFC23100813C0002C60014248C1146ED0C22826A0D00950A113EB1803083C61837F4080120A68C33C1B52145FA8E20D1360C72C5A41050C94C1000439C312B0418305FF4CA33991B00721FC1A064F7096086F30020A42E881C798811CBE98A82818E1861218421BB2B84700CEF18503A8C10D168003032880B114D842220698803134E00034B4211F29F84204E0600A3544C114FCE8C4304691880D704314EA1085273820895A48E002089881565640B80C34617AC720C40822C089125C430212C086861C300E0E20630087C5C00CB61091B3E4601AE3F8EE2C5CFB8677AC621E2300853FFEE1025900001366A0032482C18008B8211E5288450D1460840BA0C383E1D3C1EFA230000E80680EF370870B425081792CE11F0E980430E6508804080201EF88880974A18252BCE308FFB0461B7AF70B06B8A003EE3041034CD181770040FF1162604015E33149068082190840C12D0682582304C2027DE8C3CB6CE00F3E88A117C0D805160630827F24DA169A7CC11B46FB901EDCC00714A8011704F20B0C14201F4C38048693908A5594202E6BE08314EC038706442C0633B8000A7E57941B3442609D41862D80110517206200C158D201D8C08028046501A1CD022A30121412B4A228FF404416CA50003348A28A20E044071AE08727C4A309EAC3301C6C1002B5CDA00D0EF807B45590800B286019FF680532EEC08420ECB7077E78C0241E7007065480742D4801A54942014F936205CD38040982400871F8E11F2308011F8031024F541107332840177E879EEF3241013B4B80179E6C82B2706000E4FF3087251E600E56F8004BA4B840075B828B37B89614006045125C100107982366D668821F4460661C4C0301D3F05EC7BF9B094AB89412B790801F5A11823B0C0012360A01116080002C651427584040250A400A215420B0DDE4C1001C0E8C56F8C0081868C13432B05211D85D20EF484023844B095854E11C4D48452BB801010F6029030568DB502A7081B117E0051EF00113ACC1034F00831B83E04517A83D8D3704C121E768831DBA5E3804BC0009C1ED711B84E19399DF04384C084422CAC0B62C5CE0161E78C30B30300D23E4A3008910C24A1BE200005CA011B9C845A70A37031DE8200B82A08009AA828F5FCDA0C78248FC0C1020084E5522038A20C78841EC6E0B5BB402184131410D70A0BA1A3A1F0181580113D0D383567CF725E6EF013010B70B0064E04F7FA26118600429C0022EF00FB5600BD03610E4670B24A07F4FC00AFF800FE89009375003351003884045AC000C6D677F0B387E761782062102E6070CE2F0091C700649F008A8400566600654500574F00967100638D8073D40020AF80F0101003B, N'hotrodbike_black_small.gif', N'82cb8f9b-b8bb-4841-98d3-bcdb807c4dd8', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (822, N'ML Road Frame-W - Yellow, 38', N'FR-R72Y-38', N'Yellow', 360.9428, 594.8300, N'38', CAST(988.83 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'22976fa7-0ad0-40f9-b4f9-ba10279ea1a3', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (835, N'ML Road Frame-W - Yellow, 44', N'FR-R72Y-44', N'Yellow', 360.9428, 594.8300, N'44', CAST(1043.26 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'a0fad492-ac24-4fcf-8d2a-d21d06386ae1', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (836, N'ML Road Frame-W - Yellow, 48', N'FR-R72Y-48', N'Yellow', 360.9428, 594.8300, N'48', CAST(1061.40 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'8487bfe0-2138-471e-9c6d-fdb3a67e7d86', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (867, N'Women''s Mountain Shorts, S', N'SH-W890-S', N'Black', 26.1763, 69.9900, N'S', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'22616fd2-b99f-4f7d-acf6-33dff66d42d2', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (869, N'Women''s Mountain Shorts, L', N'SH-W890-L', N'Black', 26.1763, 69.9900, N'L', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'1a66b244-5ca0-4153-b539-ae048d14faec', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (874, N'Racing Socks, M', N'SO-R809-M', N'White', 3.3623, 8.9900, N'M', NULL, 27, 24, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9c7eb0a-1dd1-4a1d-b4c3-1dad83a8ea7e', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (883, N'Short-Sleeve Classic Jersey, L', N'SJ-0194-L', N'Yellow', 41.5723, 53.9900, N'L', NULL, 25, 32, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839614E003100F70000B3B257C3C361878787F2F007676559EBEE4C79784A8C8642696838B4B798B8B31C4E4B3970736FB4B4B426456EC9CAE19A9542363F607E7B51A4A4A4B1B1B16A662D929292333232E3E3E3ECECECDEDEDE817F49938C44BDBDBD56523533458F3137529797AA7C7B25D8D809E0E0EC7E7FA3424E88CBCA38AFAFAF989558646667D3D3E5AAAAAA333763C7C7B79A9767C2BE1AC2C2D9494B7DADAB4A58888B2C34664E757AA9A818474F52343548625E3EBEBEBE475284696994CCCB4C5B5C5BCACAAA9E9E9E9694824A47337C7C7C565877313284B9B9B8B3B4D49B9A3B99999985844BA8A758625F4DBEBF2A6465AB413F34575666313279494A4CB7B7B7868341A2A2A2BBBAB66F6D3B908C3DBABED63E3C366C6E4E6E6E5B3B39339899C72E3E84ADADAD45444EC5C4C4313272656347A7A7A743423B7D7B6C74703E7B7930868577827D2C8B8CC04441331C318E4C4B41BABABAFEFEFEE5E5E5DBDBDBE0E0E0D5D5D5D1D1D1777777E9E9E9D8D8D8C7C7C7CECECECBCBCBC2C2C2E7E7E7EBEBEBFFFF00EEEEEEEFEFEFF1F1F1F2F2F2F3F3F3F4F4F4D5D211DFDC10938C2DC5C143FDFC37CDC944FFFF19FDFDFDFFFF01777130FCFCFCF9F9F9FBFBFBF5F5F5F6F6F6313390F7F7F7F8F8F8979241FAFAFACCCB8CF8F7085F5B3B32343EBBBBBBCCCB0C588A9A1750A1FDFC2CA6A370BFBB703D3B32BEBFDCE5E5F1A8A8A8CBCCE35D5932E1E1E63033592D314ADDDDE97D7A45B3B040FEFE01DBDAADBAB84E97923D3D3B37EBEB2C454743E1E01B3E437E37387E686739989831D7D7D7798858929134CCCCCC777544B5B63DD6D637908C27706F4467673EE5E5126362322F425481968C575887EBEB17BCBCBC484765CFD146E4E407B9B86A7E849CA19E1DD0CD11B8BA41F2F21CB0B1C2AEB6C0ACADD0989842FFFFBFAFB0405755484E5148373B40ABAA93B2AF5EF2F2F8373632BFC086888523E5E5D16A724DDDDD50ADAC86746F2F5759A4587681CCCBCBCBCC6097974C514F2F7E7FB9BFBE0FC7C7CBA29F6B8E8D1E9091BF8688BC94947E595828808067BEBC54BFBFBFFFFFFF21F90400000000002C000000004E0031000008FF0083F81B48B0A0C1830677285CB8A383C387CF9E81021527CE918B54A834D848A1238A302C58A83233C14A90204A94585829A02511223FFCFD9B49B3A6CD9B36E5E8DCF9A8E72349402951DA346952264C962A1D325488D020411900E5F93307431D0D74F4D8B9C3A7CF1E3F3B403540C162021E9938D3AAFDB793A74FA0928412358A542953A750A552B58A552B57AF60E38C2D7B76ADE19C6DE5F8FC197468D1A34997367D1A756AD5AB59B776FDBA433059B3680F1F4EACF8ED200C721FD7958CB7F25ECC7E37071E0C5AB4E8B68442F49021A5990C23466484C8A03AF25DCA7A2FF7D50CB833EDC2B60DEBD493608611324576499152438A980560A8D5FF816C77725ECB7C33FFE5EC9970E8E869B531F396409D981646B2490A71894C16566FF020CD0BF518679E6BCAA9279B739F4107DF4D1DF0300A0DD724504B0A17D4D0822B35E4E04A15F2BCC2C32C2998B08E06AC21871E6CCCB1F7DC7B0FFE03840FA57C3021313870508C2C2D38B0CC1B3988308B35E59C314289F0D0600E1D0726975E6CCDB5575B8CFFE8B14627A4D4388A0DA728830D238D548143386EB09148208840514E054B98008F2805B843456B4EB2B8DE6C0DC268DB04603080658D0E5CB0CF008E80C9810EB778A0C89969A6C18E0232BC59800D5EA021CC79AF2D772783EE3D288C0419FA498A3D2A9CE1C599853672E8168A320AC50149C0FF700B137002E385046B609A20942EE6F9E00F9A5C008E9F4E1461CA19150C1048AAABB68AE6AB8BB0514E0DE944B3C4ADDFE8FA648B78761ADD1C3904AB860A917CC283295B44320024CCEAC0EAA2CF1EB0C8021942900B17B74EE10F82DB6E2AA583A25D0142B0062CC28AB92F5C10892ECEE0520000CDC29BA6BC0B0C510304E1E02BC11416F06BE782FFEAB99610035F30CC0C9E7CB2CB101710700200FA4CD34FC4AE52ACC3C550683C053F1E6B0AF28BF09551B201B6A48C0CCB043001403F018C4373BCF3561101041EE8DC851D75FA1C25D0B6ED90C5D0587852010C2CABCBAEA1EE3A3BF1BC100C6340193FE4DB8516592BB8B5AFB675F375B00418FFA0C608642BBC6EBBEFD6CCF6063D5CA2F825BCEC42F78A5AF7EAAD68E8FCB6F825DC8412B8D984AB0DED02106C00C71879C480043EF8B45237AFDD4E295A2A5F7C81CA2AE4FCE383E6650F8E76E150839E061C296AFBF1DD9353E9033D9BEBAE6ADA127F0E8132FA04DFB3DD92BB6EFC0DC99FBD3CEF6B83DE8B38D2AFCE2DA7D6C778BB02B96BFF74F71060414BF89053DF3AC0E68F604CFA9D374F31040800017FA6F2231FFD1E048F5954007FBBF3DCFEFAF7BF5D8D2F6454A20927022102046E4F816C63E0718417B9F9892C3A13ACA0E0D4C73CC3810E012E6860BF7E86B7084EF01E165C9FF350A8C2E1556F80F0996035B630C2FC99907F29DCE0F4FF5827C00FDA66823780420F13A8BF0C06B149F123220423F88F12244301A758E2059B78C231D4B08345A4E23F9EE0041878418B325CA01785283E7F712D82F3D8800294C83926FE100B6B842200A5F8462A7D6103E770031A4BD83B08A4E10E5F0CE01423880415C0208B75DCE20F63718444F2B185545A8523634848F66DC002967C601F63948A4B64CF8785DC400842E9464C52C9949CE49EF3BA900F56B2B078546A4716628941D0150116B6245EF962F4842AF0928B4B78C22182794323DAA60D0438A609A3B08DF2D0298AA274658CBE100541B22218BEE0463C24D08429E4400C4D3806017ED0026844A1059758813555B4C76CE23246A878C213DAF0688507F8F301AB00E83F1FB0027F9260122B588181AE59CF56DE3382A4590C5C52439785D2D3810E1D26441323D1C6CC853CCCF4A0186B12D1B778B438F3E4A0229F830284B8F4A52F6588421C12919A52C42218C9C8461AD0110A7C0424239940494E929295102120003B, N'awc_tee_male_yellow_small.gif', N'2d9f59b8-9f24-46eb-98ad-553e48bb9db9', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (907, N'Rear Brakes', N'RB-9231', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 128, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'5946f163-93f0-4141-b17e-55d9778cc274', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (936, N'ML Mountain Pedal', N'PD-M340', N'Silver/Black', 27.5680, 62.0900, NULL, CAST(215.00 AS Decimal(8, 2)), 17, 63, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839612D003200F700009C9B9B848283E9E3E4F6F5F6EDECEDC2BEC0E6E4E6E1E0E1DEDCDDF2F1F1FDB110D5D4D5FCFCFCFFFEFAD8D4D4FCFBF8D9D6D8D5D1D2FC6908DAD9DA919191FDB064D2CDCEF2210FFED69BC6C4C5FCF9F9CECCCEF94902FCB138C8C5C5B3ACACFFFDCAC0BDBDD2D0D1E5E3E4B1AEB2EAE9E9A29D9DAAA3A4BAAAABDDD9DAC4C1C2D0CFD0EFEEEDFFFEA8E8E6E8999595FCFEFE8A8989DFDEDEFFFDE4A1A1A1FFF98CBEBCBDFFFFB7CAC7C9F9F7F8C6C3C4C2C0C2898789FEFDEBBDB9BAA9A6A9C9C9C9B1B1B1E1E1DECDCACCFEFDFEFAFDFEF8F8F9959796AAA9A9B6B5B6DEDEE0CCC9CAA29EA2FED710918E8EDAD8D8BAB7B8BDBBBDF1EFF0ECEAEFADA8A9DCDADD8E8D8DE4E1E2C5BDBEFCFAFCB8B5B6E2DEDF837E82BAB8B8888486D4D2D4C3B6B6E2E2E3FEFDFCB5B2B2F4F3F2FBFAFAC1C1C4FEFEF9F0F1EFF2EBE3B8B0AFADABAC938E91DBCCCDC0B9B9F8F6F6EBE8E6CECDD0C2B6BAEAE9ECB5B3B88E908EFCFBFAFAF9F8FDFEFDF9FAFC8F8A8FB6B2B5E6DDDE949292D1CACAFD861BED00009CA09EBDAEB1A4A1A3F71700F34333B8B2B4D5CECE8F9190E1DED9ABA8ADCCBABF888A89A7A1A5DAD8DEC4BABB969394F9F8FAA6A4A4F20200F7F7F9B3A5A5B0B1B5BCB5B7878688C6C4C3FDFDFD929493F8F9F8F7F5F4BCB1B28B8D8DA6A5A8D6D5D78E898BFAFAF7AEAEAEE6E4E39C9898F4F3F4BAB5B3EFEEEFC4C0C0D0C6CAEFF1F3F3F2F37E7C7EECEBEAB7AFB1E1D3D3989797D1D0D4D1C9CCCBCACCC9C3C2BEBCBBBBBABBF7F8F6D7D8D8D6D4D2969493C9C2C5FFFFFDFEFFFFFFFEFFFFFFFBFEFEFDFFFEFDFFFEFEFFFEFCFEFEFFFAF9FAFEFFFE9F9F9FF9FAFADEDCDBFEFFFD989999FEFEFCBEB8B8FEFCFAFFEBC9A1A4A3C8C6C8BEB3B4FB8628FFDD7EFEED5CFEFF60E0D9DBE2DBDCFFE2B9FFE6AFE8DADDA99495FEEBE7CBC6C3A4A09FDBDCDBCCC6C58C8D8BFC6F5EC2B8BCB29F9FF8FAFAD8D1CBF2F4F18A8B8BB9A6A8BFBEC0F11410DEE4E69C9BA1DEB8B68F8D8FB0ACAD888888CDCCCBE6D1CFD1C7C7979897FDCCC4AD9898F4DDC6FFFFFEFEFEFEFFFEF8FFFFFF21F90400000000002C000000002D0032000008FF007DFDBB83E4D3A64D4768246B76E09FC3870F91FDB3D0A78E93100E1930E1222AC4330F4488E081D1AFDFBF7EFC1C8E0080E8203E1A0090A482F8B02430288810C558E0708E1E2EF274C08AF08F483F18BF4EA27C18A6591D0A145E3643D28AE6C97F524C209247E140997F57787091E501059F7FBF909574B8F4A13859502934A37164CD00ABFF1CF4F9C464C3AC1503A2B8E2920C8B1A16FFF0682A69126F28A89B281C611944D943226F3478780180CA0E3A2476800AE0459A216AA31E6AC20B7145CEC814367D4A92A0550A1C050A8470F3C8CD9820B8CC9821312F09AC67250E7C496160990C04CB5803A98308AA135E2778B7CBB061C3120FAA7AADFFB29104141D336B2E090297AB449857AD84C897C1FA5F864F14AC9842E5C64F0420328C0001155640F2C20F050C11052824B4338D206D40344C4A0EF992123F024164430C008CE141044B0CC2861B025C020B1B98D013000F3F6C9001148AA880422CFF08238C33FCACD54F033C3690A16A5D8CB1C40219F4E1441F54986308092A90204B1F6C482242281B9851801CDAD424CC3F8BFDE3CF970DB0F5D004215860810D8388120E0EB4D01242142B6061C30AE495B0C60EB3E02047049C70D94F97257DE94F31495DE6830E2ABCB0862986F8E1830990F040C325DE18828B0F2A8CC0032673CAA14A180C00D30F11C4F033CC30609EB49A435B84E00124A2ACFFA1820726F0B0CE3AF43861412C1FD003890E0EFC10803C71F46241020F0C1312110C4023C69784AEF54F0E054430C2207D84D08E2C5EC470EB3A4E2C604C323104A005014BE8E18519B4404046279DE49045161A6890C097BE18531211C0A4104218FF1880842086B0E105238C1C410A1410B8300823010CF10F04516082CB134F305094145744A00A2C27E0CBA526C410514F01044C1BC139282C6102004174810B1206E8908424EBB8609F07B274F1C5023A98488524C924238D34FEF8781211FF24A043040494908208F758D009013624C30B226BB8F0833C41EC3080149268810B146475214B206C0380CF2688249DD25A06ECF0C4041364A0CB3F13E8FFD009110B9010441C8E50E1453249E0224B0C4888206C12D3D4414E1D75F4614A38F3F8138C4344ACB6850E101060C41388895380245B6441402B2E74FC8215148C01C5185888F0821727F831CF07581C520A0B64DCD10085FDE001D634E2301089127785E2423DBC40304715A120E0820B5B1C00470E16E813C20F6A7892CD2814AA56FE51BFA4E08101C00CA08411FF88409F0A41B0F0452528A420450264BCF1C6168FB0802254310E08A8830165C8C131ECC0408868C2782928C00180B1BC01F4E339FD60000474A10A148081002EE84419EC90802C4C2303EDD0C2131C00875CA0E3188B698C4344653C01A84017C760C0085EF10F17ACE00E0438C02CFF48A08830C8E0151AB0C30156A08952D8800E1ED0C52ABAC10FA4E00518C43089143C20029D194006C05006804A400947D0C112B908036258908153F4701E6C1081389840857FC0A008E5A309D338918121406004131882010670857AC0211255D0411C9A4680016420653940802102A03700BC800CBFD04431A465154D8840070B004228BE10074F6061022B90C2170A108632106002A10018300E300215046009A148820912610C22146A556C598B1476B002371240049500C3001040802F64200C1958010266028CE99D02010080800E2CB0061FF4A30830F80703345613C63060033B30009704408D0DE4C00853184228D030C80940E0140698C01CFE61FF840588A011D3C80400B6C0250600B3260FC19A08A4309003B4A3162E18811946300022944007D4B0051010C0803718A00A05E0021326600A2AE48201C2F8853158C30F625C41150E70A3140E80802F3833151F5DC1235050851118511CA180001348B3842E04200576C4033058CA0F3B4420045F6041090CF0060464A01694F8CE0A22508A7132403906C84108B8C00524AC800DA860403857CA1A3C10E30E2250C106484900014471002E00E196C4E982508CC08DA9A0001730318D4B84430068F9852F8A41210CF1C319677046515210051DE060050218C21CD0508A27E46020AF98C0135CF0159308C615F048811A16A18122A023183C826D0392168C60FFFC080E99F0C1060C108A2CA8EF0B323880684B90806188810159C02B0D6830885DA4E303ABE08303662BA8EA26CD423DF00703827B802B944107B7C884073EB48B2794E277CBD8C2135AB18B3DFC800A89B0053B044009EA6ACE17BE0886A078D40361F0831FAD8000FF44B00B073820055718412908508637A06114C2F0450E1AC1850004010EB0588414A83B3C87F043BFF8520C6817408904D82143C380887FFFCB0C66FCE3003CF0821722608113B481BA3FFA872F5295C95F70220C0838462B8691D25F18B91FA5E207328C6C6489E8A0C26C00DA07700C911DFB43206B39C51F8D40861CF1C3478CCD2342EF20AC0004420058A0F243AC8CE52DB9E0FF0B25688511BCCCE1060443CC097D410002408A57F862B67904F1F08C5C8477288115ACC84385AC2B379A64F01F3210052602708B1D870922204E1A0866B08F78D8230D69E8410F66500C465FB7269A18E73FEA81894DFD39C510E1F03F6A700D0EB8E30285E8400BB071032F995A69AA698C0EBC8009BCF0034CFED806063A408849385B021D504005A2615FEB769826C02042010280171CCFE00F12200420C6ED6C0E70E00FDC2086A953A5C7A2ECC02A5FDE6F3ECA718171DB9B0312B086AFD7ED0F3187841876B04AA693F60D05344101E62E4435ACD1841AEC7BDD392E68971E126FEBF203042DB881C6FDB1E916CCA0DABFFE511EF19B5F900B6A860E14D95C8A4BCDEFFDD696471069B9CC67BEEE6B0704003B, N'pedal_small.gif', N'274c86dc-439e-4469-9de8-7e9bd6455d0d', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (945, N'Front Derailleur', N'FD-2342', N'Silver', 40.6216, 91.4900, NULL, CAST(88.00 AS Decimal(8, 2)), 13, 103, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'448e9e7b-9548-4a4c-abb3-853686aa7517', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (948, N'Front Brakes', N'FB-9873', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 102, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'c1813164-1b4b-42d1-9007-4e5f9aee0e19', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (953, N'Touring-2000 Blue, 60', N'BK-T44U-60', N'Blue', 755.1508, 1214.8500, N'60', CAST(12655.16 AS Decimal(8, 2)), 7, 35, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007477789EA4AA3B41442E3169C1C2C27877AF196EFBCACADACBCBCCBABCBBFDFDF17573F02F63EFFCFCFCF6F6F77182E2EDEDED65686954595A3056F6FAFAFA5072518E8AEDF5F4EDF8F8F8AAACAC27349B5471F0506AD4B2C0AFA7BCA1FEFEFEF6F6F95D6263B2B8ADEEEDF07C7DAD2F30F4A1A4A4575C6BB2B4B4201A70BEBEBFD9DAEEC0C0D9E9E9EAB8B5EBF4F4F4778876495BEC4B52548282847D838331383AF2F2F241474C929395445BCEF1EBF323272AE5E5E60E15F1999C9C8A8C8B525A8F303ACFFFFFF82B32371A2227F4F4F76D7272D3D2DC0044FAF2F2F36371DD8D95D084A87BC4C5C7282D32D9D9DA12181C9C9EA3C0C1CD8D93934A54B2D0D1D2BFC7BA3B449DE0E0E1B6B6D7FFFFFCEAEAEBD5D6D6969998A4A4AAC6CAE70C1317484C518D8E93A9A4E9CBD1C63E4ACD9BA8984B70A7174DF6195EFCA7A9A9AFADD9F8F8FAD9D7F57A7D7F161D21929B92E1DDD4F9F6F6F0F0F0A4A7A4B6B9B7CAC9C2F1F0F2024FFADEDEDFE6E5E8F4F2F497908D2F74CE8C948B6B6D710222FBABAFA8CED1D1E9EBE1838F81B8B7B9ECE9F69598B9AFB1AFE2E1E3B1AEED8689896A8595DAD9DBF8F8F1848689B3B0ABEEEFE801080BFFFCFCD7D9D6A8A8F2837EBB003CEB003DFE949598B7B1BF9FA39FE6E3F3C6C6C164706C1628F6F7F4F5ECE5F9FDFCFEDEE3E09C9B95060E11F6F6F1204AECD8D7DAE9ECEAE5E8E6F6F7F4F4F7F70043EFE7E2E2D2D3D3FDFDFDFCFAFDF9F9F9F7F7F7F2F2F0F4EFF3DFE0DB1538FEFBFCFD9F9FA1C8C9CB1E2121FBFBFBECECEDF9FAFAF9F9FAF1F1F3D3D4D4FAFBF7EFEFF0726D6E657691232EE4E1DADCA6AEB8F9FCFAC7C6C87E91920201D96681B6CECED0FCF9F95F7595747DA4717074D1D5D3D4D3D66F838ED0CCF2183CEC798B956A6F8E6868A2DCDBD5697186E6E5E1DADDD9C8CAC5DBDBDCF3F4F4C3BFB8F3F3F3BEBEFEF3F3F428303131392E1F42D70F62EDEAE3E4A9A4CCF2EFECD5CEE0E7E7E8C2BEF0A8BADE9D9CEEE4E4E5D0CDC6505152EDEFEEFDFEFE9FA0D7F5F6F56261F2F5F5F6F7F8F9918FA88E98B5A8A8ABFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33A11B8389C48B1A2431F35DE14B2C8B163C50619C0EC9090C1A3C99308B948901162532A5918500A8495449FCC8AA8C480734700472E4A9D24520CD665CA8F198B7EB811A362538457371DDA8025B05E1E4434FEC8ABA82C971A7F2670DC70428F5E0D1FF8A256A4F0E41E800427558409234F8550B515A518A3D2EE64AE1A51F076D462090F20341B2A85D26211D60C31823BC6E180A7C4063C78105732C4D861A230CA225B5CA5C9C0AD185CDE3D6080070962453A1A1EC8D64B74C56DC87A9430C04181161DAA59BB5602BBB3C10F87FAD9A6D8E200B72B16621878A040E06F17AB5B9F52E2A296C122D1582CFF7708ABC9216D0584BC9B60608910825A0C6167DD6ABB0B53023F203A816A7C432C645CC10F08FF6831461A0C647190169C28F2401A485C62CC035F38C28106E2F95750035409C40B024BF4F0C5405A586000034724C460251B7CC20C33C694D003391AFE030E1D6E8420810411B8910B24C8005242110461B0006FEE2CA4451E31008284906D184401178864F2C80C337451481E1DD511821344ECE08439643AB1C32E6700928F418648A7842309C931067D13C4C34A4110201282006012E16798358480484C0E0513C22E504031C40D37C8E0A800430CD1470F034062501BEC3DF05E41B5C433418465DCF3CC86FED033C41B50103144183BCA70C31044BCFF11860A0D65600E146F044A431775A84040028FFC71421ACCBCE1C40CB314E4027BF718178A05A76072490E6B5457D0167F38816A0D7F7851080255E892801A3F44700311503CD280425120BA83111938E340B21F08E40F31CD6092C22E6FEC20CD0BF0C583200B5AB4B1001AD2E690C5A605E5410FA24E00D0843C1F50F00F2CB17C300C3B76FC104629A518C10B4219202A4017CE50C04B030EC0320B87BDF0D1C7359ACC00A6BF160F24C4910C2C700B26AD70C002C305E97103185008E0450BFFCC82812C0DBC0C8B03FF14C1831A12802109000755E1041802D0210F05147C30CE2CBCCCF24103C32030DD3FB2FC00EB0E3814E4403E067C628C120710FF5DD02F11A04A0F02933CF3022C77C84201D5BC604041B2BD14120218A5F850902CF480614E2EFDFD334E03B2CCC18B031FFCE2083CE9F4A58F0D8F80E984330571225D19D6261445AC371020D00BE350F0C20B8FFFF3CB2F0EF07287F019C8500A1194104407AE3334F2CF1C1F7C508EC60E504D81230F7020C438360D23CD9921AC4B903513A4B3807106E921C01B437871B11C0DDC6103062360C0C63F4F17713806E1B8034624118281F8E206A5A0870AC6F1015ED8E01FBC2882037AB10F08DAE20AEB10464C1E578530F4AB0905D182222690060B24440C6F78030028A00F0CE0621693C8DE162AF80F07E86318BCD0873EEA458D08246A1A02690218FFDE2006A68D0316B21807FFCAD10B22FDA20911C002556471BC7F3C62076F9086414A940634B8E020771040D29AB032E06100141F90832BFC418016FC620BFA78812C2E96040798A0065B13080D24718304D4040336681CD526988817B4200A38D0430D19388B5938C383021886417666805344A9208548A1115496BD61CC620FA0F8C731A471033114A105B3A00A059230320448A01435509BF222F20FD04D3009896B4013501085000040028510053E7C97AC72B8214C20340830A43301437C801683A8C73F68B0BC5C1084021018C13020908110486208A8C8D93E8AD0000CBCC01DC784C234EA310430CC001C4E93052F78018C61F4A209096881344E10FF0109B821114518863E66A143139CCA720759410CD0A10D116CC2075168C21F042080045C20128EB880301470816E04C20F3030820C7090AC59CCAB1CA9FC4026CC510A4480038B38D842037E810193CEA21C7950813322300401D4E0062150463930B03281A8408C3348C8174250012674C00A3EF0C0390670850258E2AA562D0009B40184AE1603001128C4305AD00B60BC401FE578C11D25318557EC820899E8052C3A34904454C11FFD5AD50D50503A0C644F8204B80114B886105D9881103070AA09CC200122546019CBC04635AAC1084640030857D0408CAEE08945C80318E5700051EB85023CD2800B6FC5813CB2A74307ECA31C5C2884099CE00469FFF8231385152C610D020B1308A2032085830F0251810150A11967A00215CAC0DC2038F70A572841103C6182445CAC71FAA8893F0420091AF0C009E962DADA1AA08F5E6C411E09104417DCD0045F0D830D6CC0C0D3544600A4228402514800220811063F74C0031520C209A221063844C10B7478AA08E0008310C8A0023050012AF4415781FC85ADB21040C8AA70D67164730FC368403D10D1845734411773D0432F1CA0B2062C0E11358082350FF20113A8C1077558841A9CA10BEE8620120581C524FED1844CA080001948C03D5119C781BEE08A9250C33F2220090536ED0E64DB03555EC0056A54810031C1C01DEEF002F9C2621C3E085368108200136420FF106EA04306BEF107490840103A844503C631C70FE8C2C6E3720616B80081615080436C0901144A01BB0C94C2095DE0814D6661837AE9A3055B10881EA8F78F16CE6B9EA83042D280911058D421105D800301EAB00A4480810819A0DA2C8ED83459E842060848C42B54E00E0CFCC206662D072C12100649D4608EBDD8011822A00BCF29F1037770400B00D6805E8C80489E8B9A3E2870D4C12EE4170920C4263AD1020AE861089230020FB277B1DEED21113468DA3008058C33BFAC058BC0E36EDD606C1C60816A0D10DD1C80A1BD1740E0A617AB342CA841837E355B21F508C43760310C2CE4211146F8A91A482D0A9BFCE20E4708411E3EB06252F32209FFFFB8032F54E043460F040BCA26899E87313508C8C22630014623B5E78011C0180A1160082536010182C0820B3E8D0001AA800A7724421E18788424DCF08B170CD526FAA09A331681EEA013C407CB7B8B123100BED1D5DA01C21EE83F46A00209C04F7AA56E801AE87010372CAF0BE1DC421E2EEE0F23A0C001B20086F57ED1B43C6CE295E6484541EC118247CF20017BA0300327CD32DFF14F0F0408410AA5AC903920E207A49883419270B41D6C02157BA821040512351B7E00E58DC885A2A190CC82D403814E7043065C31D34E771A1636C140121AA1A7142675211FB08537EC408B833C6108A5D8415B2140F8B450B8654462BB09145D0ABA23640BF4589EFF0448218E634080D445F8003078F00A14FCE07D6F9841BD50828076BEE10F22B0832D98568E1ACA411DBBF47E48B3090BE10000000560E00412B008265008F360079D80083EE00661802E3B805037F1041F03064360047E306E2AD009900009814003324004A5600E70D110092058A5902B37400F2BC127A8B20311500582310B3FC052CB230032D02A7CA235446004AA807CB8400184B772005003940332600006BB200033808351513DB04001E1D00058300537F006A520096008866050036E2008C9E00B0D307F347685503310F59001601501113003083047FFB03637A167B2800FF5B005A9500FA3800239B22312E0095D4006AAE00EAA900AAB000B6A04F80F0101003B, N'julianax_r_02_blue_small.gif', N'f1bb3957-8d27-47f3-91ec-c71822d11436', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (954, N'Touring-1000 Yellow, 46', N'BK-T79Y-46', N'Yellow', 1481.9379, 2384.0700, N'46', CAST(11398.72 AS Decimal(8, 2)), 7, 34, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'83b77413-8c8a-4af1-93e4-136edb7ff15f', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (961, N'Touring-3000 Yellow, 44', N'BK-T18Y-44', N'Yellow', 461.4448, 742.3500, N'44', CAST(13049.78 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'5646c15a-68ad-4234-b328-254706cbccc5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (962, N'Touring-3000 Yellow, 50', N'BK-T18Y-50', N'Yellow', 461.4448, 742.3500, N'50', CAST(13213.08 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'df85e805-af87-4fab-a668-c80f2a5b8a69', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (981, N'Mountain-400-W Silver, 40', N'BK-M38S-40', N'Silver', 419.7784, 769.4900, N'40', CAST(12142.60 AS Decimal(8, 2)), 5, 22, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007A7B82383B463D404CCC2F2EBA878ACDBBC5898B94F4E7E5B903029A9CA4E9F4FD432F61F9F9FDBBC4CFF2BABDE2E1EB686974CD6E6DDBDADCC00A0A89666D912D30F1F0F9E3E2F2A6ABBB9BACBAEEEEF85E6169AC0101F1FBFEF5F5F5D4D4DA4D515CD9BFBFEC9594DDDEEBF6F5FD444953E6D7DAD8B5B6E7E5EA42444DFEFEFEE9E8F5FFF2F2EEEEEED0505050545ED1D2D4A4A5ACFCFCFCB3B5BA95999EF5F5FAC1C2C5EAEAE94E5365EDEDF66C70787F1114F0F0F19A010161656FDDDDE0F1F2F453586355556172757E404552EFEFF4B2747784868FDBE6E9A7B2C0C3C4C8DE8887E0DEE77D818ADCDDF2A04E4ECD8486FAFAFAFCFCFF484C54E5E6E6F8FEFFE8E7E9CCCDD0494E5ACCC9CCF9EFEAEAE9ECC9A5A6BEC0C2F8F7FCBD464795768A860203D1CDD2F8F8F95B5961AEB2B7EAEAF7EAE9F2AAABAFBBBBBEB0AFB5C31212C8B5BAB314148C9198F1F1FCE2E2E4562F3FA35458B3393AE1E1E2D1D3E378333CB3BCC4D00503A51418EDEEF2D29A9B7C3C65A2787E8A1919C091959F8994C0C8D1BF2424464957C6C7CAECEBF5CBD8E6E8E0DFE5E4F7E6EAF94A4E6234333F5B5D679A4546C0BEC8ECEBECE47271D71413CECDDAE7E6F3A0A1A7F7F8FBE5E3E5B2B2B6D6DBE1FCFFFF9A95B5A62322F4F3F4EBE3E6E7EDEDF4F3FEE6EFF8AA6868565C67FEFEFD70191EB6B8BC554B55CDD2D6B72B2D5157694E4671CC0F0EEBA6A6A53C44FBFBF9EFF7FBF5F3FAABACC8A6ABAED6D7DF9A1516FBFBFBF3F4F53F4658A19DA1EEEFFBFDFDFDF3F2F2484551A8A7AAE4E4E7B1B7C4FDFCFDF9FAFBEBEBFDAB0D0CF9F9FAC1CCDDF3F3FACCC2D3B76B6DB70D0BAF1F203F4E66A96E77AC3230E7E9E8BAB6C0A64851B1BFCAB7B7CCBA5E5F5F4673ECECF8FFF7F7F8F9F9BCA3A6575486E4E1E37A5F698E8BB08686A8DAACAFA65C5FC6ACAFF9C0C0C9C8D0BDBAD6654C56FAFAFEE8E8F9FCF9F9DAD9E5D6D9EED5D4E8955C62FDFEFEECECEEEBEAF2EBECF5BA6D71C2C5D8C6C6D3DECACE91182CE6C9C9EBECFBDD3738950B0CCDCEE5E0615EF7F7F7580E32D6D7D9595F6FFFFFFF21F904010000FF002C00000000500031000008FE00FF091C48B0A0C183027559D987B0A1C387102346A4426303218918336A84C809970F32946A6D1C491223311B8C02A4B854B2A54B8454700911B0A8D7CB9B3777A98110A0C4862332700A1DA942C53F1A2920B819CA74A3357D150000694A55A28855D03E6084D3E4488232577EC0F1B5A5C598AA19590C401021238C040020986204C0C011376E9AC0406B154F8F0A0C35B64BA3830C990001782D4AC037E23D043BC27CCB3412C02208096CC44063A5F1C3707886F9491626D4462B64045CF41C31933EC86192AD096344A3810000584734A6895E0F5272F04D985D5B622C4553E0E87EE8651CB5057142FC23D063C28430041AB21B2829DB8223CB21FE765BB0805B0E8146AA5FFFF370048405AA309C0D8F70940B7EAAC631109829548F55D771E1D03C7C2CA0891EF43524021E1C80910841327CF3DF75D221040902603C409F2E2DC0F1031D2D04F54F389184668241FB3CF11F64F31CE4C004AD04D6900AFBDC40852F2D1053920C30D0A083282F04F1C20643D0C0C63D78203007429C34B2A21F2712A4052A1C78E39033A51830840F5CEA30841B36F090912E5DE880052F53F042041102A049440578AC8200140751D64205FF71504127042D81000782B072101D47BC00C20B42249A68102080E003252D44E4CC100220CA0B620108A0A94A03ACB24A0FE038D4099EABE819A9407B0C93CC9F2E1C30900CFE318030482AA960B1E6206C0A30881064386AC343304C11C00B5308B0012E5DCCF283045724B04D24009282C5AF0D1D82E71A3D3422E30973A8CA411B22FCE3010002A482C32D38183083041F30AB0600530CC288102550D2100C02A4202C1936701285312430F089071D38006D188BF4A4844326F8D103B67288F8CF397B34330CAB14DC92CA2D8350A2E11B2A98F3CF1BBA5800C71183BCF04209B81CE4CC14298010800163F0E0410B2404FC090FAF4092240588A5F0820403FAC101B6A611C402149BACCA811DB70C81CE3F35BC934B39930063412D2B48C180182F60110416651804400041A480CB2752EC822309C648F1060F123CF6C53F332C5242FE094344E15008F81C4D9B410704B706027948F7892E66D8C3801952E442420E394821C5074204290AD1031112000829E4A6CB2424B4F083314594ECC909917050CF2B5EF41240B1333C7442181C5C870D12ED0C648B288B9032CC04082C714E150C20227739D5688008311A68F0CF15538882456E03E9200016643C8202432B9040050A16A85008122220304D152BFC4382F644F870CD435CE0D38A1A19249184125AFC93C0228AB8451F86C1010E0CC001FF1006034820050B20A21A66A8C13F8CC180040800665710880466278018FC430670D8C53F34B082593CC00A75E8C73D9261825C3C4E0557204209540311706000101488C11130908603E82080FE3AF8C23090F1050E200012BB00C5166CF1865C5443471630C33FDC21841408003CFF90DD145EF0884F54A3165688540EEA30832E34800008F842077230822D58E1113A98E1521ED2805F80811C4DA0C11DA2218E417089166D38810224B007542060007F3004213EB09F11568304E650010D2AB5013135616F0068C10D7C818E4258C20A12188113026188224EA303E8B0C22E744409011041070F91C11D32E0061DE800023E88060D1611871E08C204AFD0860430210623B4614E8EB843062139894958800157101B0860C08E2180CE83FBF0000FCE800E71A881000460063C92D1032380A2055B4081366E3083001041149C70C8281A700A380C611006FE304534B6410A0E0CC31B9D30010A26C18464B2A10203F88601D470016138D10B3590C21636300522CC601F3E004109D0F08633E4C0026FA8463A24210804B48178F80841EF08D20F0194E0052B6D0826EE708A212CC20D81A08432FE348C9EB641104045C51C5AF10554E4010CB1A803037370013368E01D3E28560CAEE1032C94A06C05A10249D700054164EB174C28840672B0826A882353307D482D02110D0AD8210381380005E210070A78630F50C86B04BE3087397CA10243C50013A4508EC25ACE0B10A8A8BD2090827A5960052B98C4192EE0847C7CA10DCAC8C326708101755CA008B0F0C23F6CD013514C6546FF080612D6410A5C88A1166E10FEC0329AC09F2A744001C5F84519EC400B54C8411A93286C256A40DC2D54B583FF6842628EA08B604054034E70023AB2708C0214200BFD40011310E1841514820434E8890E74211123EC800207F0801A18E10F1DA0400385B80022CC700171606008A4B0432066610F73E4C21835A8842E3E602822A4E11F3158C42036B085E65D601239D0802B30910F187C201E08F240276AB0020BFC03026B324044CE0288381C82BC3154840FBAF08011E40016D5F80710A491004A1C6116A3582074DD718672A0A10458788133FE21810B0EA214FF3083056A2045068C601640E0010C1EF006715982180C90440AACD78588DCA017B7EC82723CC08841DCC200240002FE13D07183225CA0A00928C50348F00F0BB8039224800504402080210C84B15880C00A18C080F679A11A3F7880148801070958E03C8CD6C5114A10041FC41322514883126880867E08C40044C0813FE8F0090F1761120FF8C15BE4F1833378B8104510581A88F00201D4CE28695844104A40837FAC4017C43003101CCD801AD1C10A243043502E51027F4C411618098A0C6A6114220F42113838C27E2C20E11114610B63708715AC6081577B8107612302233CF08F6AEB406825F020D7CA41072A00380A8F6881255A500E12C02008A208820E4E5B9249E220153110980C7C31897D3CE21F39E0C10F88910363D45907A10E0092FFA10BF2D2A104314B0125FEAA7C83B2D4C002BA78C42E5AD00E60282173A97841065DC2091F104111A94800305A00040D78A01D25F3C0161EA18234EBE073B81948C7C9EB39970660083078442D78500E0B8C22443CD882014020248BE244022040572A000003297881133C68A0C389510B25604100420840250752946A7721058B78FBD32FD18F74D6A21F363842E6368003B20D05062F40170E82700425D0C11652300631FAF10C9E603B003EA08243FAC18845707D6F5C17455583CC0846F864E63819C53FE800010128626C290340137C10042204000BFEC081000020A6877820012F58440A78D1A84194800853889728687083AA5C23564408B2280A4F0410043CEC1B9801790D8152948ED7821841B9011A74003A5E0C6210530001046240078E47A116DB77892E6A110562F8CD1709D8C09A88708BFD634107653015ECA00BD546772AD07132507F63000CFF700DCE900569800668900612303FC0400C6C077F05781075B781DC377FC4B00FB610517A700AB2E00647701765300B9057092E687F324080FF101000003B, N'hotrodbike_f_small.gif', N'0a72791c-a984-4733-ae4e-2b4373cfd7cd', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (984, N'Mountain-500 Silver, 40', N'BK-M18S-40', N'Silver', 308.2179, 564.9900, N'40', CAST(12405.69 AS Decimal(8, 2)), 5, 23, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b96c057b-6416-4851-8d59-bcb37c8e6e51', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (998, N'Road-750 Black, 48', N'BK-R19B-48', N'Black', 343.6496, 539.9900, N'48', CAST(9130.77 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'3de9a212-1d49-40b6-b10a-f564d981dbde', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (999, N'Road-750 Black, 52', N'BK-R19B-52', N'Black', 343.6496, 539.9900, N'52', CAST(9262.31 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'ae638923-2b67-4679-b90e-abbab17dca31', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[Product] OFF -GO -SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] ON -GO -INSERT [SalesLT].[SalesOrderDetail] ([SalesOrderID], [SalesOrderDetailID], [OrderQty], [ProductID], [UnitPrice], [UnitPriceDiscount], [rowguid], [ModifiedDate]) - VALUES (71774, 110562, 1, 836, 356.8980, 0.0000, N'e3a1994c-7a68-4ce8-96a3-77fdd3bbd730', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71774, 110563, 1, 822, 356.8980, 0.0000, N'5c77f557-fdb6-43ba-90b9-9a7aec55ca32', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71776, 110567, 1, 907, 63.9000, 0.0000, N'6dbfe398-d15d-425e-aa58-88178fe360e5', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71815, 111451, 1, 738, 202.3320, 0.0000, N'810e5535-2bdb-4d83-b26d-796e5cff1a1b', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71815, 111452, 2, 835, 356.8980, 0.0000, N'daeb0cfa-807c-46ac-8458-ffccef36b5b2', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71815, 111453, 2, 874, 5.3940, 0.0000, N'09f90eb4-24de-4812-825e-45520602b437', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111454, 1, 953, 728.9100, 0.0000, N'b8a9720f-1f6f-4fe1-ad4a-ac70d4c905bd', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111455, 1, 954, 1430.4420, 0.0000, N'edc86c40-ecbd-45af-912b-ae37d177821a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111456, 2, 715, 29.9940, 0.0000, N'9f7406e4-25c9-431a-9891-f419e3f5253d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111457, 4, 712, 5.3940, 0.0000, N'ee2ce69c-24eb-47ff-ab6c-bd5aabdcd6e9', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111458, 3, 883, 32.3940, 0.0000, N'affbb13e-55a8-4fa8-9cd7-809b1816c30d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111459, 1, 961, 445.4100, 0.0000, N'b4e5503b-0fd8-4f2f-8675-e899db180280', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111460, 1, 948, 63.9000, 0.0000, N'5f4f0aa9-acc6-4ef7-ab68-17d0748a5512', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71831, 111790, 2, 869, 41.9940, 0.0000, N'73bc96fd-863b-441c-aeea-25387c2d17ac', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71831, 111791, 1, 782, 1376.9940, 0.0000, N'a5f59647-47b7-48fc-9000-0830e623981a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71831, 111792, 6, 867, 41.9940, 0.0000, N'14f64fdc-4405-47b4-965c-b4f506515e8a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71846, 112149, 2, 936, 37.2540, 0.0000, N'7232fd67-8db7-42f8-ad0d-6185299430f1', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71846, 112150, 1, 739, 818.7000, 0.0000, N'9a32772b-9b98-4b22-aa2b-f4e5ffd2a23e', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71846, 112151, 1, 984, 112.9980, 0.4000, N'78557d82-1267-4f7c-93a7-e53ae2a3a85c', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71846, 112152, 2, 981, 461.6940, 0.0000, N'3a26f840-c413-4bef-aeff-b8d6218698e6', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71856, 112331, 1, 962, 445.4100, 0.0000, N'62b3d72f-3586-40ac-a24e-a6f07eb7ca4a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71856, 112332, 1, 945, 54.8940, 0.0000, N'4733918f-da34-4d30-b5b4-32f7537e609d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] OFF -GO -SET IDENTITY_INSERT [SalesLT].[ProductDescription] ON -GO -INSERT [SalesLT].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate]) - VALUES (8, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (64, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (128, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) - , (209, N'Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (513, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (554, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (594, N'Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.', N'32b82c92-e545-4da0-a175-0be710b482fe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (627, N'All-weather brake pads; provides superior stopping by applying more surface to the rim.', N'ebf2f0a4-89f2-4d31-be48-d8fd278f3024', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (630, N'Wide-link design.', N'28c4682c-38b2-4b61-a2ae-bcac7c7ce29b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (647, N'Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.', N'7ad9e29f-16cf-4db0-b073-cc62d501b61a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (661, N'Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women''s version.', N'd61c9d54-22c3-4563-a418-0b9dc7e03850', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (848, N'Lightweight, durable, clipless pedal with adjustable tension.', N'03acbb19-749a-48a1-b77e-5d2a48e8dc3a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1020, N'The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.', N'f4c70a6b-bbe8-4774-9d75-393d3f315e9b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1196, N'Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.', N'c65bee64-4dba-47ec-91cd-31356ba379e1', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1205, N'Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.', N'58d86ede-0519-4263-a264-a2b5b01a6c7b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1208, N'Thin, lightweight and durable with cuffs that stay up.', N'9f436663-525d-4cc2-85ba-47d20bcea0ec', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1210, N'Traditional style with a flip-up brim; one-size fits all.', N'66f84b21-1a43-49d3-8883-09cdb77fffef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1211, N'Unisex long-sleeve AWC logo microfiber cycling jersey', N'12f60253-f8e1-4f76-8142-6232396b8f17', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1487, N'Adapté à tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable.', N'5c1dab3a-4b31-4d9d-a14f-3cb61949b79b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1488, N'Ce vélo offre un excellent rapport qualité-prix. Vif et facile à manœuvrer, il se conduit en toute tranquillité sur les chemins et les sentiers.', N'79065ec8-2080-4120-a4ea-bfa7ea1f1f9d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1490, N'Conduite sur terrains très accidentés. Idéal pour tous les niveaux de compétition. Utilise le même cadre HL que le Montain-100.', N'2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) - , (1493, N'Vélo d''adulte d''entrée de gamme ; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons à blocage rapide.', N'7943455f-3fbe-44c0-9ac2-7ee642d3944b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1502, N'Vélo de qualité pour tous usages, doté d''un bon niveau de confort et de sécurité. Présente des pneus plus larges et plus stables pour les sorties en ville ou les randonnées du week-end.', N'e5288050-bc5b-45cc-8849-c7d4af2fe2b6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1503, N'La selle rembourrée offre un confort optimal. Le porte-bagages nouvellement remanié offre diverses possibilités d''ajout de paniers ou de sacoches. Ce vélo reste parfaitement stable une fois chargé.', N'28b132c3-108c-412d-9918-a8c9297dfb73', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1504, N'Voyagez confortablement et avec élégance. Confort et sécurité maximum. Large éventail de vitesses pour gravir toutes les côtes. Sa fabrication en alliage d''aluminium haute technologie est synonyme de robustesse, sans ajout de poids.', N'e3bac4a6-220c-4e5e-8261-51e08906c0e8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1509, N'Patins de freinage pour tous les temps ; freinage renforcé par l''application d''une plus grande surface sur la jante.', N'5ed8186a-6049-42b1-b1b0-3b1f899c538b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1510, N'Conception liaison large.', N'64723c0c-09d5-497d-83a3-4561818a8f1c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1517, N'Doté du même alliage en aluminium que notre cadre HL haut de gamme, le ML possède un tube léger dont le diamètre est prévu pour offrir une résistance optimale. Version femmes.', N'f3cd990a-b70d-43c8-a075-934a3e98b5aa', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1537, N'Pédales automatiques légères et robustes avec tension réglable.', N'6a60e7f6-a5cd-4e7b-8612-9340e46bf66d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1571, N'Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un très bon rapport qualité-prix.', N'e95e1259-b822-40ee-aa86-7de9f9e0f0ea', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1587, N'Cuissards résistants à l''usure pour utilisation intensive, doublés à l''intérieur en Spandex, sans couture, peau de chamois anti-bactérie pour un meilleur confort.', N'e11a3c2a-b074-48f9-8226-16d65c2f91c2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1594, N'Maillot manches courtes classique et anti-transpiration avec contrôle de l''humidité, fermeture avant à glissière et 3 poches arrière.', N'fb2a5474-9d83-4a9b-bbbd-8ffc9036866e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1596, N'Fin, léger et résistant avec des poignets qui restent en place.', N'31d4905c-d37c-4128-bcff-4a35da9c1bb7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1598, N'Style classique avec une visière relevable ; taille unique.', N'fb627d1b-2933-4fbe-a6a4-bf69f2814ec2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1599, N'Maillot de cycliste en microfibre avec le logo de l''équipe AWV, manches longues, unisexe.', N'4aae6d4f-8320-4f32-99de-bb3b1b13f1ef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1600, N'Orphan record to deletion test', N'4aae6d4f-1111-4f32-99de-bb3b1b13f1ef', CAST(N'2020-06-01T00:00:00.000' AS DateTime)) - , (1605, N'Chaque cadre est fabriqué artisanalement dans notre atelier de Bordeaux afin d''obtenir le diamètre et l''épaisseur adaptés à un vélo tout-terrain de premier choix. Le cadre en aluminium soudé à chaud présente un tube d''un plus grand diamètre, afin d''absorber les bosses.', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[ProductDescription] OFF -GO -INSERT [SalesLT].[ProductModelProductDescription] ([ProductModelID], [ProductDescriptionID], [Culture], [rowguid], [ModifiedDate]) - VALUES (2, 1210, N'en ', N'623741c2-74bd-4ce1-a554-1fe8c0606b4b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (2, 1598, N'fr ', N'6d7b1148-6159-4ec5-b469-d106ffef6ca5', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (5, 647, N'en ', N'56b6b980-c1ca-4545-a5ba-edc4c14bdcf9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (5, 1605, N'fr ', N'6cc243bc-b8fa-4bd2-9392-8ead11c55406', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (9, 1020, N'en ', N'14c44869-3696-4b30-929a-3adffc8243de', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (9, 1571, N'fr ', N'649557cd-028e-4a1f-b5d5-71c09a6ae268', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (11, 1211, N'en ', N'03c12575-f1bf-48ad-a483-d1185d24ce2c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (11, 1599, N'fr ', N'000aa434-8c55-4a8e-a850-9ae32edf537b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (17, 661, N'en ', N'd91f0507-baa5-4b44-a0e6-a6acef29f066', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (17, 1517, N'fr ', N'87365776-a0a1-4580-b080-b18f21d8cb1e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (20, 128, N'en ', N'f57a0614-ec87-4f51-ab3e-f889d37440f6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (20, 1490, N'fr ', N'70b555e3-ac30-4a42-8959-339738dac806', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (22, 64, N'en ', N'b301b583-2d7f-4c19-afa9-01d142f8ae2d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (22, 1488, N'fr ', N'a73f5bf1-ad79-4703-9bfe-5f6f87705516', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (23, 8, N'en ', N'397fa9e9-eef0-42dc-b27a-5b9a717bb237', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (23, 1487, N'fr ', N'a96e7527-4414-43a3-b52d-26a57d0ae88f', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (24, 1208, N'en ', N'2d4d6267-b8d4-4345-ba19-9334b6bc7055', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (24, 1596, N'fr ', N'984a725c-9095-47e3-8a2f-8be4ff45d2c0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (31, 209, N'en ', N'c44f974f-ffb2-44fe-abac-fab53e7a896a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (31, 1493, N'fr ', N'67a11e38-08f8-43cf-a6ec-b832a9b34d58', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (32, 1205, N'en ', N'7dd01ecf-d739-4fdf-8574-aec55267323c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (32, 1594, N'fr ', N'71123dec-1396-4c4e-80c8-3efd3d5c13d9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (34, 594, N'en ', N'49ece470-9fdb-48fb-9d80-46ae0e3ef8fc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (34, 1504, N'fr ', N'c7deacd9-f36d-467e-9159-ea8e0b705dbf', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (35, 554, N'en ', N'8d57b85b-1c3d-4773-b326-a62fdd1cd378', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (35, 1503, N'fr ', N'220652e7-47ee-4f99-9eb1-f3597520ffbc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (36, 513, N'en ', N'f35f7fac-4479-4748-81d1-7adec2de9917', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (36, 1502, N'fr ', N'5c1d62aa-c221-4090-b7de-15c5f976d379', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (37, 1196, N'en ', N'46f1f2f9-33dc-4384-baa9-9c70d83a44ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (37, 1587, N'fr ', N'2691d6fd-b45e-4604-b2ef-61d5accf47ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (63, 848, N'en ', N'9e7855e4-3c99-460a-bba5-9b45486b8fbe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (63, 1537, N'fr ', N'62ebf8f0-bc2c-4726-bca0-2c7f4aee336b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (102, 627, N'en ', N'5b74c2c4-d71a-4d8d-9ddb-e376816fbf21', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (102, 1509, N'fr ', N'a72f9088-ef86-4fd2-aa13-efbb1aac404b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (103, 630, N'en ', N'035f5b8e-7728-4412-ba63-0cea7cd79a6c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (103, 1510, N'fr ', N'83b25658-4554-4679-ae8d-f31a506356eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [dbo].[BuildVersion] ON -GO -INSERT [dbo].[BuildVersion] ([SystemInformationID], [Database Version], [VersionDate], [ModifiedDate]) VALUES (1, N'10.50.91013.00', CAST(N'2009-10-13T00:00:00.000' AS DateTime), CAST(N'2009-10-13T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [dbo].[BuildVersion] OFF -GO -DBCC CHECKIDENT ('[SalesLT].[Address]' , RESEED, 5000); -DBCC CHECKIDENT ('[SalesLT].[ProductCategory]' , RESEED, 5000); -DBCC CHECKIDENT ('[SalesLT].[ProductDescription]', RESEED, 5000); +---------- Aluminum alloy Available in most colors.Touring bikeNovice to Advanced riders', N'52e7f2c1-dbff-4518-927d-c7d46f9ed32e', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) +---------- , (35, N'Touring-2000', N'The plush custom saddle keeps you riding all day, and there''s plenty of space +---------- to add panniers and bike bags to the newly-redesigned carrier. +---------- This bike has great stability when fully-loaded. +---------- AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. +---------- 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.New design relieves pressure for long rides.Top-of-the-line clipless pedals with adjustable tension. High-strength crank arm. The aluminum frame is custom-shaped for both good looks and strength; +---------- it will withstand the most rigorous challenges of daily riding.frontsmall87 These are the product specifications. +---------- AluminumAvailable in all colors except metallic.Touring bikeAluminium alloyIntermediate to Advanced riders', N'aa10d9e6-e33f-4da8-ace1-992fcd6bb171', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) +---------- , (36, N'Touring-3000', NULL, N'f5a6ec78-4451-45db-955f-db197de8b059', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) +---------- , (37, N'Women''s Mountain Shorts', NULL, N'a08dd61a-6155-4051-9a11-223232ea51cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (63, N'ML Mountain Pedal', NULL, N'be9cdc56-f4ab-40f1-b338-2e08e0627abd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (102, N'Front Brakes', NULL, N'1099a23a-c9ed-41b1-8cc1-e2c1c54a10c8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (103, N'Front Derailleur', NULL, N'10e0c8fd-ca13-437b-8e22-51853ae160a7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (128, N'Rear Brakes', NULL, N'71d47afd-da3a-43f1-83ad-69c71f96ef33', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[ProductModel] OFF +----------GO +----------SET IDENTITY_INSERT [SalesLT].[Product] ON +----------GO +----------INSERT [SalesLT].[Product] ([ProductID], [Name], [ProductNumber], [Color], [StandardCost], [ListPrice], [Size], [Weight], [ProductCategoryID], [ProductModelID], [SellStartDate], [SellEndDate], [DiscontinuedDate], [ThumbNailPhoto], [ThumbnailPhotoFileName], [rowguid], [ModifiedDate]) +---------- VALUES (712, N'AWC Logo Cap', N'CA-1098', N'Multi', 6.9223, 8.9900, NULL, NULL, 23, 2, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9ede243-a6f4-4629-b1d4-ffe1aedc6de7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (715, N'Long-Sleeve Logo Jersey, L', N'LJ-0192-L', N'Multi', 38.4923, 49.9900, N'L', NULL, 25, 11, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000142567FCFCFC9F9F9F2C4B67CECECEE4E4E43B658AAAAAAA2C3458CACACAF0F0F04757A510182EC6C6C6E6E6E6EAEAEAA4A4A4EEEEEEE2E2E2696665AFAFAF102136225A8B8895AAD2D0E6B1B1B18DAFD3333335FAFAFA2E73B2254B72637098B2BCC876757AC2C2C218479DF6F6F65075AC3216701750A1F8F8F87E8E9DF4F4F4B8B8B71D3B88262526DEDEDEA7A8B4DADADA8D8D8D345CA82334750C365B1A53882934672C435ECFD0D01664AAF2F2F2165A981948854581B787A7C5534B46919191113F6B5357751B3394DDDDDDB4B4B4D7D7D79A9A9932343D3E3E3E16181D192E595754523134470F1A4824547FD4D4D46986A67DA5CC87827EC7C6D91761A9574F4A4C5C83959594CCD1D8193F99A5A19CACA9A64E48442C589A05060850637CD0D0CE262E639A9896928D89182942928E9F1E5199326A9C282D38E1E0DF453C38A1A1A1675B77A8A8A79594923579B549423D395A88CDCDCBE5E4E2757370B6B6B6D3D3D22D3A4A9796958C8986BAB6B31F3C58BABABABFBDBAACB1BDC0BEBBE7E6E4D8D8D8737DBAB1ADA939437ADFDFDF3A4C96272F488B8784D5D5D2605954CAC9C62C3F54D0CECBE9E8E73D276ABCBAB8B6B4B0B3B1AFACACAB0C2A54050B16BCBDBDD4D2D0C8C7C7EFEFEF5E95C5195E9F1830810C121DDBD9D7EEEEECEBEBEBE1E1E1DAD9D968625E4F3A7699BCDA1B49927E78730F0F0FBFBFBFFEFEFEBEBEBEE8E8E8EDEDED1667ACECECEC1659A56B98C6CBD9EA184C9FE9E9E9535EA96169AFFDFDFD1D3F90223E77296EB0B9B9B9EEEDECF5F4F31953A0CCCBCAEDEDECE4E3E139312EF5F5F5C7CCCFA4A2A0E9E9E8154891300E7B6081BC6F8AC12A639F8F91C5B6B5B40E2F4CC3C2C0D1D1D17B7FA6FBFBFB706F7C6F6C69686D7C355978DFDEDCADABA8EAEAE9EAE9E8E9EAEA9EB2C4E7E7E73C516932496A7E85BFC0C0BFA8A5A21D1E20CACDE4A29F9BFBFCFCD6D6D52B2B2CF7F8F82260A7F7F7F7505152F8F8F7414151F1F1F19994903E74A5DCDBDB3120542D2E5B3F4A8B313C7A3D2374301C621660A835383C2F2F2F739CC6000000FFFFFF21F90400000000002C00000000500032000008FF0055FD1B48B0A0C1830657295CB80A97435C01224E9BC6A1220A76EC481053A1029E024DAE603D68E5A080044344601881128D4082062258F12A42E10004010211EADCF98FE1C287102552B4885123478F204592348952254B973065D2B48993A7D5843E1B060D307162450E17336EECF831E4C8922753AE6CF932E6CC9A37735EBDCAD06180735FC1EA454154ECD1B24AD1365D0BD5EDD4B873E76AE58AA2C13C05735E880BD64B810E62EAD485354A36E959A66A9FB6950AB76A629E0ACF0533832F5F32132692BDA667660EB640BD2E93D03816A9D9A5699DB28DFA96AADCD358A715BB8066463E7C6D4A9582E47A800D691F227DA2134A818AB19D7F0BFF0E3DDC70E9E3C87BAE0AF0278A1419703C34811DA28D897C339E2068166BC7150A8AA8F148043AA8A0836F8181265C61A41997DE400AB1278716BB68B080014F3482443D36E453CF06BA80918410B1E8A3C529293813E03611C083E067C111365A7188A5D7D01F68E83302853EDC70032739F081C83508D8B00127B280B0CF8F5AD022851729F8818E04A16862A5780ACA48DC61A69DB68A02D20C52858E5A30D30E123BBC92430DFEA492843FBA5421CB2C72ECE3010B4ECAD04319938461482DAE4480658CA26D791E72ABB872CF0262EA3803121BF090839AB1A4E24F125FF020E72C1D7860C10D79F6E0C9042BCCF1A72B830E56A8790E7A198313B688FFC9090F376C50C80893E6104B0597A672C2A61D9CE0C10D7844B18E3C4EB40041247748F0002C09125A5E83352A16C03E0CC45A830DBF0C408D2DB852BAC4A54AFC3A67B087E0D1842EE080234619751CD080200E84120A8CAA4E4B639774CD438E27F608B101B7DF50016EAEB1E8726905E6727AC20221AC7B8327360C9084002BE0204A2DF702972F83FBA2B753433120D20200330C7CC607181C4CE9295F24C130B00F6B20B1123678C0400C0788308A030FE04B1EC85C8AAC53434D2080040329DB30C32D180C52021C9B6C120B2DA9F033F3B93537A24B23E4E48C47176CF0128D04B5D4E2F1D033169DD82AA138A1B413626C80C0105097B38C29A6E8FF4A0BAF4B341CEC021AD4704319FCE4DC481A475090C93C0EA83DDE826D1F3A57000200A0340B0C20D109DE1884A30C1CBB583D4219FE044E33E1AF5850C1C01EE0F1450C10B0824E01ADAC4DB9A1AD5AD5D0049A23914B059F83EEB2DFE3AACE35EBFA30007B1AFEB4334606A67AE3CDE45AB25A2D6A1128F10522C23FC1C010C687EBF70CA90B5EF32B3CF0013BAFA9E8610C343014707D96AB52CBEF4EB8B8E18F3F4A081F3900503E84D14261CA7318EB2A5003D859CA1F4C20C324A2210A07602F7F21A30B2EBAF03F7FA421174FD880253A01B5E35D8D05FE6081FA16688181DDA0832D40853932418402D8505A44B31CF71ED8261022211D0C28A1F9FFAEA60B066861851A08C2335A68032574700DA420831F046143FCE9CB6DBE53471D3AE80F008470034A1042CB867840001C71751750C20098F885FFA5220E8B98C21EA674C38F55AE772363071DDEF4BF2F7C118C0623E3123A7146AE1DA205FB58E30678F5BF61AC611189888411245047B6F16E7B47434120FCD0820E2A6103A06C84104C488B250CA1900E63403A90A0C83602700D7120453CA0318F2AE2F08E9844C82AA6010A4C9081872D00E5009E718F2122E373A8EC00323EB9813592A38F6B58831550918D30A8C18256CC211E8F860B5F0803105BECA3302DE0892106410BA7145C05F8214C0FB8921F71E8C204E20188FA61F39697DCDFD1A6A1FF804FEC61111D2447332D90864A18109DA8E483FB846989FF91A30B5D88A3243081BBFBE1537BFAD4E52ADC110A4C64230E1DE4C71A91A08434F90DA1E6BA4025BE882D375AE107D3DC42265CE00DC965139719D5252ED8B10D476CA193001C29022A40295AA0B40A2520070841998E3EBED40AD51803207E1634DD654F7F463B5A0088110846A0A2837CB000121080081A9C349D3B4845F840E9CA38C094147A9868011ED0B10B5E5187D6F2661E2CD1464B3C61AC1E60E0D5505A09F02DF5814EE8C20F16818A7100430DDC80455D6F9ACFAC8E6C1A3A80C61700F0BF32ECA31E03680418D661D4537AA10C4A03E133BF70CE2E5861026488C428BC81AA68FFD9B1B2365A050AB4E18F2138E17FE94000185EE083C19EB2047FB881F082E08F2FD420075A780763CDC10809C04250B6B524462D3BB20028201D0464803F5A10836EC0E1AC47ECC125AC910BBE46414D5A40C204A6C0054738C0159EB12A06B188285CA8601F04B4C504FE508283A6B30AFDC80204F6610F0DA8A913A9A80319081186FBE6D7AEDACCE55C7041820938016F545800198F3AA71E9C817539A8C03EA6F0863E593855DAC5EA83FEB1D3107C5888064EE6FA76E08F6AE8E108CEB8C38BB3BBBBEDCE78151CC880250A5854122BD0C134D8801E6220804B18A11511B830658DFC20241761C9386EF28197E7604B4C20066F708363429165181759FFC65DE6676FC38C5EC1F1E01E5108422A6210832350AF00F8D5F245E16CA300E820157203E30D0CC0681E72D18D2D68413A48110320D44E10ADB092A06FCBE542136305A460423BAA010420BCE10D79C0C2A94BCD6A56F3B9D20228023044010B050046686FCEE08C775A8B68D8810DA9CE431EC63086231CA1D8C64EB6B205C0860C340006997E917EEFBA4D2F7140012EC8841D28E1063770211B942004252840EE7267E0DC1928821D2E91002AB648DA18C6297751130012C0C2107778492618010C60CCC11104C081C071108D68DCE1E07740070C448165781CE8D6D3CE704E35380D1268A21655B4DF238E718C56A4EDE320AFC5B35A54A0876F3AC6FB40A2802A56CEF296BBFCE52BBFC425FAB0829AF3A20F38CFB9CE6FCE8B9EFBBC0F3EE745CDED60076714A108192837252871806E4300026C1080B1C78085520704003B, N'awc_jersey_male_small.gif', N'34cf5ef5-c077-4ea0-914a-084814d5cbd5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (738, N'LL Road Frame - Black, 52', N'FR-R38B-52', N'Black', 204.6251, 337.2200, N'52', CAST(1088.62 AS Decimal(8, 2)), 18, 9, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'18fc5d72-a012-4dc7-bb35-0d01a84d0219', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (739, N'HL Mountain Frame - Silver, 42', N'FR-M94S-42', N'Silver', 747.2002, 1364.5000, N'42', CAST(1233.76 AS Decimal(8, 2)), 16, 5, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000C1C3BDF4F4F4BBCCC9ECEAEAC2D4D1ACC2BBB5B8B4DADADAB8BAB5ABB8B4AAB5B2E8E6E6D6D5D5A8B4ADEAEAEAC7C8C4B0B2ACA6B3B3E2E2E2DFDEDEE1E0E0ECECECB3BDBBF0F0F0CDD2CCD4D9D4F4F2F3C2D2CDEAE8E8E4E2E2E6F3F3DCDCDCCADBD9F2F2F2A4A5A3F0EEEEADADACABBDBBB4C9C3A5B1ADCECDCDE5E4E4D1D2CDDFDDDDD8D8D8EEECECCDCFCAD9E9E9F5F3F3E6E5E6BEBFBDEEEEEED9D6D6B4B6B0D8DAD6BCBDB9E0E1DEC8CAC4E7E4E4C6C5C5F2F0F1F7F4F49D9C9AB4C2BBE8E7E8E3E0E1DCDEDABDC0BAC2C1C1F9F2F1B9BDB9B9BAB8E4E3E4A5ADABFBFCFCE9E8E8D8D6D8ADAFAADCDBDCFAF8F8E4E5E2E0DEE0A9AAA9EDECECCBD8D5DAD9DAAAADA6DEDCDEBFC1BCA6B8B9F8F7F7DADCD8D4D2D1C9C9C9E8E8E7C4C4C1BAC9C7ECEAECB5B6B4D3D5D2B0C2C2DDDCDDE3D9D9B1B2B0B4C6C5AEC0C0CCCACBF2EEEEB5C5C2B2B6B3F1EFEFCACDC8E2E0E2E6DBDBBFC2C1DADFDDBED0CEBFC5C2D4D3D4C4C9C8FCFBFBE6E4E6E3E4E2C1C6C0B3C4C3CAC7C8BDC7C6EEEDEDC0CECED6E1E1DCDADBFCFBFCC7CECDF6EFEFCAD5D4C5D8D5FCFCFBFAFAF9C2CDCBF4F0F1BBC2C1EBEAE8DEE1DDDBDADBB2C6C6A6ABA6E1E0E1DDDEDCDEDDDED9D8D9DFDDE0D1D2D1B5C3C3FDFDFDFCFCFCFBFBFBF8F8F8FBFAFAF7F7F7FAFAFAF9F9F9FEFDFDF9F8F8F7F6F6F6F6F6FDFCFCFBFAFBFBFBFAFDFCFDF8F7F8F8F8F7FEFDFEF0EDEDF2F1F1FEFEFDFDFEFEF7F7F8F7F7F6F7F6F7FDFDFEF4F4F3EAE9E9F9F8F9F2F2F1FAFAFBF0EFEDF3F3F3FCFCFDE1E2E0FDFDFCF6F6F5F8F9F9F0F0EFEBEBEBEDEEEDF8F8F9F6F5F5DAE2E2F8F9F8E4DDDDF8FEFEF1F1F1F9F9F8E2E7E6E3E3E3E0EBEBF2ECECBBC0BBEFEFEFB8C2BFE3E3E0E7E7E7F3F4F3F6F6F7C3C9C9F7F2F3C5C3C4F4F1F1FCFDFCBEC4BEC0C0BEEFF4F4FCFDFDF5F6F5FAFBFBAEAFAFD8CFD0CFDFE08D9796818080EAD9D9FDFEFDC0C6C5D5DDD9B9BEBCB9B8B7F0EBEBF0EBECF1ECEBCFCFCEE1DCDCEEEEEDC1C0C0E9EAE8E9EAEAFAF9F99AAEAEC3D0D0E4E7E7E6D4D4E7E7E4D7D6D7ACACACA7AFAEFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0E1C04C0E230AF4376A043B67850A15D9B8D19D068912FD0590C089A0A600333E090C0552203178F08E99311387A6B97CF98E8D6AE9D01FB447CC3C29D1B580128B7D12DC5C08B2A6A5BF4C995EA1223605080D1AF046F8E3199118033B559CD8B1430988844751283DD2C175A0A660CC525CD0D63622386894183080B353E0146C3BECF0A8FB8FD31F0DB308475459EA51258803BBA113D1473135608A25120BF12FCA95821E0C884001AAAEBF11BA3247D4F53106835403FDBD104162CC1C1C03B4F0DC144C95EA86FE866D95C580522781C808F03BD3840F0110E91C71F015D15FAB01907F2BDCF56A6032065582F5FFF060E1C69E315FDA444843874A0621FA606C15F82AD3FC8114D6A9C9AEDDA11609FB8873C71944F42304299E30A306020A9420000154D8204D2E9A1CB4C925EBC8804B7F2D6D32C23D62DC90041A381023101E533020438368D061C87B8DF8E65D1732BCC1214FC80820430D359C0006050114A4C10A0F18900019026C8041067AD0F24F2D3B2030C98D099DF4472D4BD4124C2B5A34630137085060C00980EC00CD41F54CF38E1109A461021B75BCF10611433869D0200154E0C534D3D0934C2AF7B5444C0A4E545105259438F1481582D07104022EFCE300041128820D2909B9120F0D7224A0801452C880850405E9C28C134E945186138254C142251354FFC05F439C48C08213417831801BD9B8D1C2001FF0C14D130708C48B1559288242850B1183C30367C8F0C3A802C922C90112ECBA48363068B0C6000B4451C501673AF4070B8F48D0C228B3E2510C1B323461071215DA60450977D8E110140660A14001582CA041151DB4008328AE1884070C53E8508504CC2A040403130C50DA41A1BCC08801282CC0C207A5A910491A754CD0900B063CA04203263481C21F6B1CA75026D7B430C1072A2534CD3E70B4225026110F540F083220008A26D35452C527BBB8100919EA00B19026431CA1C22C639C5000094824E4CF5303893205054E044DD01FFBA460E244B3FED38DA3EFACC4C13E94F803CA1749646184CF0901FF23C61038FC03448F26EC80E94460FF631F44F3D9520B05261BE4090B14C010DB41FE34E30702C2FCB35526793010C33F01DCD04F090FE886D02467EC910C2C955000C00926AC63F953607F6DDF56607352CB07B51844F60804053A100CE330F240419D4CC04090C28C890617660FF486182E98624919AD7CF280D6E178A2F8D79E3FB57BC41A4C534549DEB110034B9E2754C12146F062D005954421D03C9492C1C041BFA89A10DCC084016C851300684001C4608ADD792E139BD0843F24B8927F8C8D5403490B677ED6B67FE061198000C013E6433E7F20611F96FB072F9A10810450C020C1A80116BC108515ACED1FC4B881028F3008FB784E139F800A09FF05220A201CE0629EA8420CF863BCAD6821107E6001422EC082140C640BC84A40F008B28533BC6100951840416EC1A012C8236240F361FC06328509044320C1A8C21F1AC203106C638EC6FBC72628F00866F9430508C842345427901CD420034810440A0912831A24A0004EB81C09CD27900020E185FF90C0046E58BC89FC6315CC20800B06A1843C3EA9124112082E30300448D44166C6308211A0000709D4E3203880400236C08107164F8802F9041028710A4D5022059BF0E44134910A42B06105E43B881BAA30058278E201CFC8C21D04A20711ECE10F55008229FF31095D12008F0411E27D5851065D70C209E2C4DC403A11043658A00708D90A0CCAB0FF8082840000EAB04706FE01011FBCE32C03D0844251A189526482A1A8604113122080D1950F216E98C01F02F0882D7A2D177D480006C6B746828C220A5D2B4805109004134CA01CFC400112F2C08A4D74A2980A5DC52A34518F1660C10A11C0045BB2134D81F060020ED0C523C4A8904E5C420EDC48010F4C91102D48028305D1C33AD061011FC8E31D5308C34714D709188C000A5BC0C01E7E600111F8E00498100528D867100D2035004E606A3E03310E3970E109A5C8270E2591D282D8A20F67E08714D6B1834AA8810614A8C41830B00101BC890C64B040024470031790430E99F844F5FED10A4A04C3134E588242FC818F00D0E00FBF689624F2609055FF68000644E0473864100E6B58E01E87380401E800861F18A00D3CBA0100202005E9300082392B080FAE30824D1C33B082C5832450B189710A040651F0E84036F1A710748108F740C33D0C41883D6C030B0078800B6CC08B5AB88113BEC000375070267F7862B43C7082E5244101BA5E2E7E40435C424640890B18E41301D0C42606B083AF72A10F6AA0400574F1893C7E2318C138402DE69ACCA27AAE165750492DB857902196D4C4042905079C7031826CA215B0F0042862300D62C06200B5804D8BDD22812568022ACABC0F273A00874A1E209E435670490D32A8261BC41F172086C174A1054E68E20F0B78634232E180091032C9024986692742090A88AFFF93075E6D1BAB79105504400B1AD040005A200B524481240801DA0024E01B260EA414C178448D2BE0841604EAD10C190510CA30DA4ABAA11530084027B4D0090938C10D5F5368274C718A4ED8E214A255E681B3210166A4F30329C0A7AAA74C6BC50DA0620B1945A651E3094404A06230D044317D086318FF43141C38C09BE3978C4770E0387880B4B107F2871450027E0AE1C426F0D00BF2C5A0D1D896329C07620A0E4CC00B078941C53AE18D82302E21C958C0233819E86A182F134E48CA7DBE66CAFB8482151D9840073311050AB0E3960F69DB7D2E008447CCA0219EB840C20AA2852A8E0011F1CB63A07A0A041A2764131390403BE4336BE655E51115C36848262A800452E4310055AC450A79C7BBE2B5A2162950F64232C10C4A0CA005B1480C9ADC30002438C1C10E81E03849F1084A708015A218380C169082B428A3D606F94319D4358211DCF909A4A0851B82C1811850421206568C3752C08209C460095E17C52738718BA277806CD33887443651E628A480031C180010A69102494C4012C9E84F82892181B04C80021440820E26408932C03A165CD1C42DA69116449DDD019817376126780A44F4C2130E20DB011E71800F482018BA48041E2868908000003B, N'frame_silver_small.gif', N'8ae32663-8d6f-457d-8343-5b181fec43a7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (782, N'Mountain-200 Black, 38', N'BK-M68B-38', N'Black', 1251.9813, 2294.9900, N'38', CAST(10591.33 AS Decimal(8, 2)), 5, 20, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700009A9CA3BEC2C79DA3ACF1F0F96566694D53647C8494E1DDE44D515C41454D444953B2B2BBF6F5FDEEF0F5F5F5F5EEEEEEC2C2C4EEEEF8D5D3D90B182A97999ED1D1D4E9E8F450545E3D43525D616AF0E7E0CBCBD3F5F5FADFDCEA83848A000204F0EEF8F0F0F0FEFEFEEDEDF6FCFCFCDBDAE3EAEAE91423343D404A6B717970737AA4A5ABABB0B6535662F2F2F45458638B8A92BBBDC0CBCBCD414653AAB3C1A9ABAEF7F7FBBCBBBC6C6D728987A4494B54F4F0EAFCFCFFFAFAFAC4C4C76A75825C6773E5E5E57A7C848D97A4EAE9EC43355C494D59E1E2E55B5B62EDEEF1012543F1F1FCE1E1E2E8E8EBB3BCC5F8F8F93C3C44EAE9F7EAE9F2D2D3E38C9197B0B2B6ABABB2010811DAD9DD444B59BFC7E3848B92DAD9DA393D48A2A3A6E7E6E9213346F6F8FBE1E0E9E5E4F02324284A4E62838790FBFCFEB0AFB1CBD4E3E6E5F6C2C6D2E9E7E85A5E67DEDDF261656FECEBF5D4DCE438373AF8F8FFD6D8DDE4E4F92B313AFAFAFE2229348478989599B37E7D8ADDDEDFF8F9FBEBEBEDB2AEC8323D4A676A70555C66BAB6C0E7E7F2CDCDDAC4CBD2F4F3FEDADCDD383E50B5B7BB554B55E1E0F2343641A3ADB9CFD2D7FEFEFD5B6882F9F8FCE5E3E5373A43424658F3F2F2ECEEEE9EA9B7C6C8CAE2E6ED9E9FA4FBFBF9AEAEBAF3F3F9F3F4F5F5F3FA131319EDEDFC2038535257696A6672E4E3F2352949A6ABAEE7E5EEE1E6EAE3E2E9FDFCFDFBFBFB3F5266BCB8D3777681FAF9FDB9BACCCECED1040E1CFDFEFEFDFDFD74787FF3F3F4484551A8A7A9E3E3E5636777FBFBFFF9FAFB8D8E99F9F9FAF9F9FE5F5D696F748B7B77818A9EB18B666DE3E1F3E8E8F6524A73A6A6BFA5A5AE6C6C7AFAF8FEA3B9D5353069DDDBDEABAAC86E7E933239483C3648393240F4F4F4CDCDE2C5C8DA352B5DBAC2DA75648CD7D6DA6D6B8A5A5662F8F8F77497B4575486F7F7F7EBE4E3FDFDFCEFE8E9ECECECD6D7D8E7E9E8D1D9EAE9E8F9D5D4E8AB9C9F868598D9D7E6BEC0C3E5E2EDEBEAF2ECECF5DFE0EC968993B0BFCCB6B6CEB9B8C6F8F9F9595F6FE5E0E2DDE2EEC9C8CF4E4A70ECECF8FFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C183026D7D1187B0A1C3871023460C4281800F8918336A84880B0001245E5A6D1C4912233008482825A852B2A54B844136B5402147D7CB9B372DA1C1014541061824700A1D29E2DF19693A025119CA74E3A3132784586A4A55A2B42BA36260DCB5C70C802AB3F81C0942E4C193AA198F9CF8406B0200891500102BB5A88D10185BA850D95301AD44331FAED0FAF0C1081F8C7E6EE04082040A945CD5DEFA7DF809CF870957087F08452123B16AA528405866A5C9E48702020BCEAC39818C886CBCA1C8745AE29D2E8169B1D61C18C754480D615012523B22831CA1AE84C2406B306FC2646E348C5646C7AEE20F6DBC4A76EA54BD7F3F7407FF7EFE2150887FB66A0D2C14EE593BEC10739C2A92038440209809EF860E81A09A6DD9F4A3CC59F021644E251314F14A2C029D21886E99ED47980A53FDB3C77C7A24516043040496471404F551C015247E600719CFE1E1031F9975334681B63C70041F4C3C10D43F6864464B1C067D928573B49891C173B4D86162030F89208E09410471093025915001052A08D2420B1764A0020037A0F801060825C19C66BA700105798138848E225BFC0004106FA4700B15019C87912DEFA460442E3AE432C30C28F0A9C35A819971907A4D00B29B4DBA78A91F01E618C4C4162D2070C105DE60D9C20B082000C4260F4484CE2D5D609A0B258D7481C2AA2A9DA0E3020E1DFF01C66ED289E34128E37D40061A0391B002025990428A113354A2C00C18A0A08337DE20F0467F0E55A0032517E88042069BBC43C70158CCB2097E6C918140000E21322B61A1406B0E0EFBB5610E304224424A0195B400C3025C4800CD066808A14325C2B4A0C0260D558042020A74810404D6F4E009037D1CE20024C5E86847170A5CD4D053242A37CB40E7E8C01B192F54424A25597801CF3F4B88800CCBB50CB08A190A5C3AF041E8E89000025DFCF24D080E3CC000C48784C0812B6C1100854A1760E190216B6546C66103F920076F7860204409FF7020CF127720C3CA00AD58C04330B35C60C40B46B054D02D94BC90C02687F0604910427BC2C31296A4FF31C107AEFCA348230A28A0420F0E05F0B7D4D70DD48322461236014B0CD8128528C144C143040C8C30020F3C4880E50B8220425026502090C01EE811C2C0037C78D240CC210C11580073CCA14B175960A0C8438AFC4D18019A6828903848E0C1DA152968184C1D7BDFE14F046A00134104FFCCA28320461037100E281881841F0BFD630103417C318008707C31641BBD58F00F03CCA080C11BF83CC4C2157874E2080D3408C00EFE0180469441014898C060F0E0887F608E01BD18401DFC11050EFCC3137300000674F69A7F98C95A2BF807097631950858800EF368C2141E81075A546009B1888208663103056080360FC10426C01189156CC1113728870AFFCA50860C24E0037800046132A0091010E1134B10853FFAF08F0180281E7243810704A20B28E8E0027E38843F5AF185508D600A0B78C71A60F0812C74AE0344608310158082A53C640D4E90862B0C300427D4831F3AE005023283002C1C60086B098501A6C08F47CC412011F00703D421020AA0204BE7F140E184F00013ACC21D7098C417B82006466CA0032DF800209650023658024A5E40C10C52F01012380113BF48410A78C10B2750C00E960985179E508E03E863036F18CC30EE718FD74C520D6A18402C3660844A55A0162A505D08C5618D1048C11DFC608119F6F00369E0AA0011780011BEA00F132CA00B3310042E1C0289003CE2082A50000C1651FF8F7C90680202D8471AD29186355861133038C10412F18B0530421403F0870D38D00B3F64400733508438088000055861095218C10096E08F0E386371E259819D06C20D14D4EC120F8983131E010B6AFC2213C5708E6656B3D32B9C801605F8C31418C083111C230A1190C71B40880F0210CB6D04F1030DAE30017AE0CA0EF710031C22308228F8831FAABA40A41CD20A3CF262149830842A2E800730B8E207F9E8A802B2000830FC54094AA0851E56C1833BF8B5173CB041207480012FFC23100813C0002C60014248C1146ED0C22826A0D00950A113EB1803083C61837F4080120A68C33C1B52145FA8E20D1360C72C5A41050C94C1000439C312B0418305FF4CA33991B00721FC1A064F7096086F30020A42E881C798811CBE98A82818E1861218421BB2B84700CEF18503A8C10D168003032880B114D842220698803134E00034B4211F29F84204E0600A3544C114FCE8C4304691880D704314EA1085273820895A48E002089881565640B80C34617AC720C40822C089125C430212C086861C300E0E20630087C5C00CB61091B3E4601AE3F8EE2C5CFB8677AC621E2300853FFEE1025900001366A0032482C18008B8211E5288450D1460840BA0C383E1D3C1EFA230000E80680EF370870B425081792CE11F0E980430E6508804080201EF88880974A18252BCE308FFB0461B7AF70B06B8A003EE3041034CD181770040FF1162604015E33149068082190840C12D0682582304C2027DE8C3CB6CE00F3E88A117C0D805160630827F24DA169A7CC11B46FB901EDCC00714A8011704F20B0C14201F4C38048693908A5594202E6BE08314EC038706442C0633B8000A7E57941B3442609D41862D80110517206200C158D201D8C08028046501A1CD022A30121412B4A228FF404416CA50003348A28A20E044071AE08727C4A309EAC3301C6C1002B5CDA00D0EF807B45590800B286019FF680532EEC08420ECB7077E78C0241E7007065480742D4801A54942014F936205CD38040982400871F8E11F2308011F8031024F541107332840177E879EEF3241013B4B80179E6C82B2706000E4FF3087251E600E56F8004BA4B840075B828B37B89614006045125C100107982366D668821F4460661C4C0301D3F05EC7BF9B094AB89412B790801F5A11823B0C0012360A01116080002C651427584040250A400A215420B0DDE4C1001C0E8C56F8C0081868C13432B05211D85D20EF484023844B095854E11C4D48452BB801010F6029030568DB502A7081B117E0051EF00113ACC1034F00831B83E04517A83D8D3704C121E768831DBA5E3804BC0009C1ED711B84E19399DF04384C084422CAC0B62C5CE0161E78C30B30300D23E4A3008910C24A1BE200005CA011B9C845A70A37031DE8200B82A08009AA828F5FCDA0C78248FC0C1020084E5522038A20C78841EC6E0B5BB402184131410D70A0BA1A3A1F0181580113D0D383567CF725E6EF013010B70B0064E04F7FA26118600429C0022EF00FB5600BD03610E4670B24A07F4FC00AFF800FE89009375003351003884045AC000C6D677F0B387E761782062102E6070CE2F0091C700649F008A8400566600654500574F00967100638D8073D40020AF80F0101003B, N'hotrodbike_black_small.gif', N'82cb8f9b-b8bb-4841-98d3-bcdb807c4dd8', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (822, N'ML Road Frame-W - Yellow, 38', N'FR-R72Y-38', N'Yellow', 360.9428, 594.8300, N'38', CAST(988.83 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'22976fa7-0ad0-40f9-b4f9-ba10279ea1a3', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (835, N'ML Road Frame-W - Yellow, 44', N'FR-R72Y-44', N'Yellow', 360.9428, 594.8300, N'44', CAST(1043.26 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'a0fad492-ac24-4fcf-8d2a-d21d06386ae1', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (836, N'ML Road Frame-W - Yellow, 48', N'FR-R72Y-48', N'Yellow', 360.9428, 594.8300, N'48', CAST(1061.40 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'8487bfe0-2138-471e-9c6d-fdb3a67e7d86', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (867, N'Women''s Mountain Shorts, S', N'SH-W890-S', N'Black', 26.1763, 69.9900, N'S', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'22616fd2-b99f-4f7d-acf6-33dff66d42d2', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (869, N'Women''s Mountain Shorts, L', N'SH-W890-L', N'Black', 26.1763, 69.9900, N'L', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'1a66b244-5ca0-4153-b539-ae048d14faec', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (874, N'Racing Socks, M', N'SO-R809-M', N'White', 3.3623, 8.9900, N'M', NULL, 27, 24, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9c7eb0a-1dd1-4a1d-b4c3-1dad83a8ea7e', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (883, N'Short-Sleeve Classic Jersey, L', N'SJ-0194-L', N'Yellow', 41.5723, 53.9900, N'L', NULL, 25, 32, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839614E003100F70000B3B257C3C361878787F2F007676559EBEE4C79784A8C8642696838B4B798B8B31C4E4B3970736FB4B4B426456EC9CAE19A9542363F607E7B51A4A4A4B1B1B16A662D929292333232E3E3E3ECECECDEDEDE817F49938C44BDBDBD56523533458F3137529797AA7C7B25D8D809E0E0EC7E7FA3424E88CBCA38AFAFAF989558646667D3D3E5AAAAAA333763C7C7B79A9767C2BE1AC2C2D9494B7DADAB4A58888B2C34664E757AA9A818474F52343548625E3EBEBEBE475284696994CCCB4C5B5C5BCACAAA9E9E9E9694824A47337C7C7C565877313284B9B9B8B3B4D49B9A3B99999985844BA8A758625F4DBEBF2A6465AB413F34575666313279494A4CB7B7B7868341A2A2A2BBBAB66F6D3B908C3DBABED63E3C366C6E4E6E6E5B3B39339899C72E3E84ADADAD45444EC5C4C4313272656347A7A7A743423B7D7B6C74703E7B7930868577827D2C8B8CC04441331C318E4C4B41BABABAFEFEFEE5E5E5DBDBDBE0E0E0D5D5D5D1D1D1777777E9E9E9D8D8D8C7C7C7CECECECBCBCBC2C2C2E7E7E7EBEBEBFFFF00EEEEEEEFEFEFF1F1F1F2F2F2F3F3F3F4F4F4D5D211DFDC10938C2DC5C143FDFC37CDC944FFFF19FDFDFDFFFF01777130FCFCFCF9F9F9FBFBFBF5F5F5F6F6F6313390F7F7F7F8F8F8979241FAFAFACCCB8CF8F7085F5B3B32343EBBBBBBCCCB0C588A9A1750A1FDFC2CA6A370BFBB703D3B32BEBFDCE5E5F1A8A8A8CBCCE35D5932E1E1E63033592D314ADDDDE97D7A45B3B040FEFE01DBDAADBAB84E97923D3D3B37EBEB2C454743E1E01B3E437E37387E686739989831D7D7D7798858929134CCCCCC777544B5B63DD6D637908C27706F4467673EE5E5126362322F425481968C575887EBEB17BCBCBC484765CFD146E4E407B9B86A7E849CA19E1DD0CD11B8BA41F2F21CB0B1C2AEB6C0ACADD0989842FFFFBFAFB0405755484E5148373B40ABAA93B2AF5EF2F2F8373632BFC086888523E5E5D16A724DDDDD50ADAC86746F2F5759A4587681CCCBCBCBCC6097974C514F2F7E7FB9BFBE0FC7C7CBA29F6B8E8D1E9091BF8688BC94947E595828808067BEBC54BFBFBFFFFFFF21F90400000000002C000000004E0031000008FF0083F81B48B0A0C1830677285CB8A383C387CF9E81021527CE918B54A834D848A1238A302C58A83233C14A90204A94585829A02511223FFCFD9B49B3A6CD9B36E5E8DCF9A8E72349402951DA346952264C962A1D325488D020411900E5F93307431D0D74F4D8B9C3A7CF1E3F3B403540C162021E9938D3AAFDB793A74FA0928412358A542953A750A552B58A552B57AF60E38C2D7B76ADE19C6DE5F8FC197468D1A34997367D1A756AD5AB59B776FDBA433059B3680F1F4EACF8ED200C721FD7958CB7F25ECC7E37071E0C5AB4E8B68442F49021A5990C23466484C8A03AF25DCA7A2FF7D50CB833EDC2B60DEBD493608611324576499152438A980560A8D5FF816C77725ECB7C33FFE5EC9970E8E869B531F396409D981646B2490A71894C16566FF020CD0BF518679E6BCAA9279B739F4107DF4D1DF0300A0DD724504B0A17D4D0822B35E4E04A15F2BCC2C32C2998B08E06AC21871E6CCCB1F7DC7B0FFE03840FA57C3021313870508C2C2D38B0CC1B3988308B35E59C314289F0D0600E1D0726975E6CCDB5575B8CFFE8B14627A4D4388A0DA728830D238D548143386EB09148208840514E054B98008F2805B843456B4EB2B8DE6C0DC268DB04603080658D0E5CB0CF008E80C9810EB778A0C89969A6C18E0232BC59800D5EA021CC79AF2D772783EE3D288C0419FA498A3D2A9CE1C599853672E8168A320AC50149C0FF700B137002E385046B609A20942EE6F9E00F9A5C008E9F4E1461CA19150C1048AAABB68AE6AB8BB0514E0DE944B3C4ADDFE8FA648B78761ADD1C3904AB860A917CC283295B44320024CCEAC0EAA2CF1EB0C8021942900B17B74EE10F82DB6E2AA583A25D0142B0062CC28AB92F5C10892ECEE0520000CDC29BA6BC0B0C510304E1E02BC11416F06BE782FFEAB99610035F30CC0C9E7CB2CB101710700200FA4CD34FC4AE52ACC3C550683C053F1E6B0AF28BF09551B201B6A48C0CCB043001403F018C4373BCF3561101041EE8DC851D75FA1C25D0B6ED90C5D0587852010C2CABCBAEA1EE3A3BF1BC100C6340193FE4DB8516592BB8B5AFB675F375B00418FFA0C608642BBC6EBBEFD6CCF6063D5CA2F825BCEC42F78A5AF7EAAD68E8FCB6F825DC8412B8D984AB0DED02106C00C71879C480043EF8B45237AFDD4E295A2A5F7C81CA2AE4FCE383E6650F8E76E150839E061C296AFBF1DD9353E9033D9BEBAE6ADA127F0E8132FA04DFB3DD92BB6EFC0DC99FBD3CEF6B83DE8B38D2AFCE2DA7D6C778BB02B96BFF74F71060414BF89053DF3AC0E68F604CFA9D374F31040800017FA6F2231FFD1E048F5954007FBBF3DCFEFAF7BF5D8D2F6454A20927022102046E4F816C63E0718417B9F9892C3A13ACA0E0D4C73CC3810E012E6860BF7E86B7084EF01E165C9FF350A8C2E1556F80F0996035B630C2FC99907F29DCE0F4FF5827C00FDA66823780420F13A8BF0C06B149F123220423F88F12244301A758E2059B78C231D4B08345A4E23F9EE0041878418B325CA01785283E7F712D82F3D8800294C83926FE100B6B842200A5F8462A7D6103E770031A4BD83B08A4E10E5F0CE01423880415C0208B75DCE20F63718444F2B185545A8523634848F66DC002967C601F63948A4B64CF8785DC400842E9464C52C9949CE49EF3BA900F56B2B078546A4716628941D0150116B6245EF962F4842AF0928B4B78C22182794323DAA60D0438A609A3B08DF2D0298AA274658CBE100541B22218BEE0463C24D08429E4400C4D3806017ED0026844A1059758813555B4C76CE23246A878C213DAF0688507F8F301AB00E83F1FB0027F9260122B588181AE59CF56DE3382A4590C5C52439785D2D3810E1D26441323D1C6CC853CCCF4A0186B12D1B778B438F3E4A0229F830284B8F4A52F6588421C12919A52C42218C9C8461AD0110A7C0424239940494E929295102120003B, N'awc_tee_male_yellow_small.gif', N'2d9f59b8-9f24-46eb-98ad-553e48bb9db9', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (907, N'Rear Brakes', N'RB-9231', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 128, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'5946f163-93f0-4141-b17e-55d9778cc274', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (936, N'ML Mountain Pedal', N'PD-M340', N'Silver/Black', 27.5680, 62.0900, NULL, CAST(215.00 AS Decimal(8, 2)), 17, 63, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839612D003200F700009C9B9B848283E9E3E4F6F5F6EDECEDC2BEC0E6E4E6E1E0E1DEDCDDF2F1F1FDB110D5D4D5FCFCFCFFFEFAD8D4D4FCFBF8D9D6D8D5D1D2FC6908DAD9DA919191FDB064D2CDCEF2210FFED69BC6C4C5FCF9F9CECCCEF94902FCB138C8C5C5B3ACACFFFDCAC0BDBDD2D0D1E5E3E4B1AEB2EAE9E9A29D9DAAA3A4BAAAABDDD9DAC4C1C2D0CFD0EFEEEDFFFEA8E8E6E8999595FCFEFE8A8989DFDEDEFFFDE4A1A1A1FFF98CBEBCBDFFFFB7CAC7C9F9F7F8C6C3C4C2C0C2898789FEFDEBBDB9BAA9A6A9C9C9C9B1B1B1E1E1DECDCACCFEFDFEFAFDFEF8F8F9959796AAA9A9B6B5B6DEDEE0CCC9CAA29EA2FED710918E8EDAD8D8BAB7B8BDBBBDF1EFF0ECEAEFADA8A9DCDADD8E8D8DE4E1E2C5BDBEFCFAFCB8B5B6E2DEDF837E82BAB8B8888486D4D2D4C3B6B6E2E2E3FEFDFCB5B2B2F4F3F2FBFAFAC1C1C4FEFEF9F0F1EFF2EBE3B8B0AFADABAC938E91DBCCCDC0B9B9F8F6F6EBE8E6CECDD0C2B6BAEAE9ECB5B3B88E908EFCFBFAFAF9F8FDFEFDF9FAFC8F8A8FB6B2B5E6DDDE949292D1CACAFD861BED00009CA09EBDAEB1A4A1A3F71700F34333B8B2B4D5CECE8F9190E1DED9ABA8ADCCBABF888A89A7A1A5DAD8DEC4BABB969394F9F8FAA6A4A4F20200F7F7F9B3A5A5B0B1B5BCB5B7878688C6C4C3FDFDFD929493F8F9F8F7F5F4BCB1B28B8D8DA6A5A8D6D5D78E898BFAFAF7AEAEAEE6E4E39C9898F4F3F4BAB5B3EFEEEFC4C0C0D0C6CAEFF1F3F3F2F37E7C7EECEBEAB7AFB1E1D3D3989797D1D0D4D1C9CCCBCACCC9C3C2BEBCBBBBBABBF7F8F6D7D8D8D6D4D2969493C9C2C5FFFFFDFEFFFFFFFEFFFFFFFBFEFEFDFFFEFDFFFEFEFFFEFCFEFEFFFAF9FAFEFFFE9F9F9FF9FAFADEDCDBFEFFFD989999FEFEFCBEB8B8FEFCFAFFEBC9A1A4A3C8C6C8BEB3B4FB8628FFDD7EFEED5CFEFF60E0D9DBE2DBDCFFE2B9FFE6AFE8DADDA99495FEEBE7CBC6C3A4A09FDBDCDBCCC6C58C8D8BFC6F5EC2B8BCB29F9FF8FAFAD8D1CBF2F4F18A8B8BB9A6A8BFBEC0F11410DEE4E69C9BA1DEB8B68F8D8FB0ACAD888888CDCCCBE6D1CFD1C7C7979897FDCCC4AD9898F4DDC6FFFFFEFEFEFEFFFEF8FFFFFF21F90400000000002C000000002D0032000008FF007DFDBB83E4D3A64D4768246B76E09FC3870F91FDB3D0A78E93100E1930E1222AC4330F4488E081D1AFDFBF7EFC1C8E0080E8203E1A0090A482F8B02430288810C558E0708E1E2EF274C08AF08F483F18BF4EA27C18A6591D0A145E3643D28AE6C97F524C209247E140997F57787091E501059F7FBF909574B8F4A13859502934A37164CD00ABFF1CF4F9C464C3AC1503A2B8E2920C8B1A16FFF0682A69126F28A89B281C611944D943226F3478780180CA0E3A2476800AE0459A216AA31E6AC20B7145CEC814367D4A92A0550A1C050A8470F3C8CD9820B8CC9821312F09AC67250E7C496160990C04CB5803A98308AA135E2778B7CBB061C3120FAA7AADFFB29104141D336B2E090297AB449857AD84C897C1FA5F864F14AC9842E5C64F0420328C0001155640F2C20F050C11052824B4338D206D40344C4A0EF992123F024164430C008CE141044B0CC2861B025C020B1B98D013000F3F6C9001148AA880422CFF08238C33FCACD54F033C3690A16A5D8CB1C40219F4E1441F54986308092A90204B1F6C482242281B9851801CDAD424CC3F8BFDE3CF970DB0F5D004215860810D8388120E0EB4D01242142B6061C30AE495B0C60EB3E02047049C70D94F97257DE94F31495DE6830E2ABCB0862986F8E1830990F040C325DE18828B0F2A8CC0032673CAA14A180C00D30F11C4F033CC30609EB49A435B84E00124A2ACFFA1820726F0B0CE3AF43861412C1FD003890E0EFC10803C71F46241020F0C1312110C4023C69784AEF54F0E054430C2207D84D08E2C5EC470EB3A4E2C604C323104A005014BE8E18519B4404046279DE49045161A6890C097BE18531211C0A4104218FF1880842086B0E105238C1C410A1410B8300823010CF10F04516082CB134F305094145744A00A2C27E0CBA526C410514F01044C1BC139282C6102004174810B1206E8908424EBB8609F07B274F1C5023A98488524C924238D34FEF8781211FF24A043040494908208F758D009013624C30B226BB8F0833C41EC3080149268810B146475214B206C0380CF2688249DD25A06ECF0C4041364A0CB3F13E8FFD009110B9010441C8E50E1453249E0224B0C4888206C12D3D4414E1D75F4614A38F3F8138C4344ACB6850E101060C41388895380245B6441402B2E74FC8215148C01C5185888F0821727F831CF07581C520A0B64DCD10085FDE001D634E2301089127785E2423DBC40304715A120E0820B5B1C00470E16E813C20F6A7892CD2814AA56FE51BFA4E08101C00CA08411FF88409F0A41B0F0452528A420450264BCF1C6168FB0802254310E08A8830165C8C131ECC0408868C2782928C00180B1BC01F4E339FD60000474A10A148081002EE84419EC90802C4C2303EDD0C2131C00875CA0E3188B698C4344653C01A84017C760C0085EF10F17ACE00E0438C02CFF48A08830C8E0151AB0C30156A08952D8800E1ED0C52ABAC10FA4E00518C43089143C20029D194006C05006804A400947D0C112B908036258908153F4701E6C1081389840857FC0A008E5A309D338918121406004131882010670857AC0211255D0411C9A4680016420653940802102A03700BC800CBFD04431A465154D8840070B004228BE10074F6061022B90C2170A108632106002A10018300E300215046009A148820912610C22146A556C598B1476B002371240049500C3001040802F64200C1958010266028CE99D02010080800E2CB0061FF4A30830F80703345613C63060033B30009704408D0DE4C00853184228D030C80940E0140698C01CFE61FF840588A011D3C80400B6C0250600B3260FC19A08A4309003B4A3162E18811946300022944007D4B0051010C0803718A00A05E0021326600A2AE48201C2F8853158C30F625C41150E70A3140E80802F3833151F5DC1235050851118511CA180001348B3842E04200576C4033058CA0F3B4420045F6041090CF0060464A01694F8CE0A22508A7132403906C84108B8C00524AC800DA860403857CA1A3C10E30E2250C106484900014471002E00E196C4E982508CC08DA9A0001730318D4B84430068F9852F8A41210CF1C319677046515210051DE060050218C21CD0508A27E46020AF98C0135CF0159308C615F048811A16A18122A023183C826D0392168C60FFFC080E99F0C1060C108A2CA8EF0B323880684B90806188810159C02B0D6830885DA4E303ABE08303662BA8EA26CD423DF00703827B802B944107B7C884073EB48B2794E277CBD8C2135AB18B3DFC800A89B0053B044009EA6ACE17BE0886A078D40361F0831FAD8000FF44B00B073820055718412908508637A06114C2F0450E1AC1850004010EB0588414A83B3C87F043BFF8520C6817408904D82143C380887FFFCB0C66FCE3003CF0821722608113B481BA3FFA872F5295C95F70220C0838462B8691D25F18B91FA5E207328C6C6489E8A0C26C00DA07700C911DFB43206B39C51F8D40861CF1C3478CCD2342EF20AC0004420058A0F243AC8CE52DB9E0FF0B25688511BCCCE1060443CC097D410002408A57F862B67904F1F08C5C8477288115ACC84385AC2B379A64F01F3210052602708B1D870922204E1A0866B08F78D8230D69E8410F66500C465FB7269A18E73FEA81894DFD39C510E1F03F6A700D0EB8E30285E8400BB071032F995A69AA698C0EBC8009BCF0034CFED806063A408849385B021D504005A2615FEB769826C02042010280171CCFE00F12200420C6ED6C0E70E00FDC2086A953A5C7A2ECC02A5FDE6F3ECA718171DB9B0312B086AFD7ED0F3187841876B04AA693F60D05344101E62E4435ACD1841AEC7BDD392E68971E126FEBF203042DB881C6FDB1E916CCA0DABFFE511EF19B5F900B6A860E14D95C8A4BCDEFFDD696471069B9CC67BEEE6B0704003B, N'pedal_small.gif', N'274c86dc-439e-4469-9de8-7e9bd6455d0d', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (945, N'Front Derailleur', N'FD-2342', N'Silver', 40.6216, 91.4900, NULL, CAST(88.00 AS Decimal(8, 2)), 13, 103, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'448e9e7b-9548-4a4c-abb3-853686aa7517', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (948, N'Front Brakes', N'FB-9873', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 102, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'c1813164-1b4b-42d1-9007-4e5f9aee0e19', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (953, N'Touring-2000 Blue, 60', N'BK-T44U-60', N'Blue', 755.1508, 1214.8500, N'60', CAST(12655.16 AS Decimal(8, 2)), 7, 35, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007477789EA4AA3B41442E3169C1C2C27877AF196EFBCACADACBCBCCBABCBBFDFDF17573F02F63EFFCFCFCF6F6F77182E2EDEDED65686954595A3056F6FAFAFA5072518E8AEDF5F4EDF8F8F8AAACAC27349B5471F0506AD4B2C0AFA7BCA1FEFEFEF6F6F95D6263B2B8ADEEEDF07C7DAD2F30F4A1A4A4575C6BB2B4B4201A70BEBEBFD9DAEEC0C0D9E9E9EAB8B5EBF4F4F4778876495BEC4B52548282847D838331383AF2F2F241474C929395445BCEF1EBF323272AE5E5E60E15F1999C9C8A8C8B525A8F303ACFFFFFF82B32371A2227F4F4F76D7272D3D2DC0044FAF2F2F36371DD8D95D084A87BC4C5C7282D32D9D9DA12181C9C9EA3C0C1CD8D93934A54B2D0D1D2BFC7BA3B449DE0E0E1B6B6D7FFFFFCEAEAEBD5D6D6969998A4A4AAC6CAE70C1317484C518D8E93A9A4E9CBD1C63E4ACD9BA8984B70A7174DF6195EFCA7A9A9AFADD9F8F8FAD9D7F57A7D7F161D21929B92E1DDD4F9F6F6F0F0F0A4A7A4B6B9B7CAC9C2F1F0F2024FFADEDEDFE6E5E8F4F2F497908D2F74CE8C948B6B6D710222FBABAFA8CED1D1E9EBE1838F81B8B7B9ECE9F69598B9AFB1AFE2E1E3B1AEED8689896A8595DAD9DBF8F8F1848689B3B0ABEEEFE801080BFFFCFCD7D9D6A8A8F2837EBB003CEB003DFE949598B7B1BF9FA39FE6E3F3C6C6C164706C1628F6F7F4F5ECE5F9FDFCFEDEE3E09C9B95060E11F6F6F1204AECD8D7DAE9ECEAE5E8E6F6F7F4F4F7F70043EFE7E2E2D2D3D3FDFDFDFCFAFDF9F9F9F7F7F7F2F2F0F4EFF3DFE0DB1538FEFBFCFD9F9FA1C8C9CB1E2121FBFBFBECECEDF9FAFAF9F9FAF1F1F3D3D4D4FAFBF7EFEFF0726D6E657691232EE4E1DADCA6AEB8F9FCFAC7C6C87E91920201D96681B6CECED0FCF9F95F7595747DA4717074D1D5D3D4D3D66F838ED0CCF2183CEC798B956A6F8E6868A2DCDBD5697186E6E5E1DADDD9C8CAC5DBDBDCF3F4F4C3BFB8F3F3F3BEBEFEF3F3F428303131392E1F42D70F62EDEAE3E4A9A4CCF2EFECD5CEE0E7E7E8C2BEF0A8BADE9D9CEEE4E4E5D0CDC6505152EDEFEEFDFEFE9FA0D7F5F6F56261F2F5F5F6F7F8F9918FA88E98B5A8A8ABFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33A11B8389C48B1A2431F35DE14B2C8B163C50619C0EC9090C1A3C99308B948901162532A5918500A8495449FCC8AA8C480734700472E4A9D24520CD665CA8F198B7EB811A362538457371DDA8025B05E1E4434FEC8ABA82C971A7F2670DC70428F5E0D1FF8A256A4F0E41E800427558409234F8550B515A518A3D2EE64AE1A51F076D462090F20341B2A85D26211D60C31823BC6E180A7C4063C78105732C4D861A230CA225B5CA5C9C0AD185CDE3D6080070962453A1A1EC8D64B74C56DC87A9430C04181161DAA59BB5602BBB3C10F87FAD9A6D8E200B72B16621878A040E06F17AB5B9F52E2A296C122D1582CFF7708ABC9216D0584BC9B60608910825A0C6167DD6ABB0B53023F203A816A7C432C645CC10F08FF6831461A0C647190169C28F2401A485C62CC035F38C28106E2F95750035409C40B024BF4F0C5405A586000034724C460251B7CC20C33C694D003391AFE030E1D6E8420810411B8910B24C8005242110461B0006FEE2CA4451E31008284906D184401178864F2C80C337451481E1DD511821344ECE08439643AB1C32E6700928F418648A7842309C931067D13C4C34A4110201282006012E16798358480484C0E0513C22E504031C40D37C8E0A800430CD1470F034062501BEC3DF05E41B5C433418465DCF3CC86FED033C41B50103144183BCA70C31044BCFF11860A0D65600E146F044A431775A84040028FFC71421ACCBCE1C40CB314E4027BF718178A05A76072490E6B5457D0167F38816A0D7F7851080255E892801A3F44700311503CD280425120BA83111938E340B21F08E40F31CD6092C22E6FEC20CD0BF0C583200B5AB4B1001AD2E690C5A605E5410FA24E00D0843C1F50F00F2CB17C300C3B76FC104629A518C10B4219202A4017CE50C04B030EC0320B87BDF0D1C7359ACC00A6BF160F24C4910C2C700B26AD70C002C305E97103185008E0450BFFCC82812C0DBC0C8B03FF14C1831A12802109000755E1041802D0210F05147C30CE2CBCCCF24103C32030DD3FB2FC00EB0E3814E4403E067C628C120710FF5DD02F11A04A0F02933CF3022C77C84201D5BC604041B2BD14120218A5F850902CF480614E2EFDFD334E03B2CCC18B031FFCE2083CE9F4A58F0D8F80E984330571225D19D6261445AC371020D00BE350F0C20B8FFFF3CB2F0EF07287F019C8500A1194104407AE3334F2CF1C1F7C508EC60E504D81230F7020C438360D23CD9921AC4B903513A4B3807106E921C01B437871B11C0DDC6103062360C0C63F4F17713806E1B8034624118281F8E206A5A0870AC6F1015ED8E01FBC2882037AB10F08DAE20AEB10464C1E578530F4AB0905D182222690060B24440C6F78030028A00F0CE0621693C8DE162AF80F07E86318BCD0873EEA458D08246A1A02690218FFDE2006A68D0316B21807FFCAD10B22FDA20911C002556471BC7F3C62076F9086414A940634B8E020771040D29AB032E06100141F90832BFC418016FC620BFA78812C2E96040798A0065B13080D24718304D4040336681CD526988817B4200A38D0430D19388B5938C383021886417666805344A9208548A1115496BD61CC620FA0F8C731A471033114A105B3A00A059230320448A01435509BF222F20FD04D3009896B4013501085000040028510053E7C97AC72B8214C20340830A43301437C801683A8C73F68B0BC5C1084021018C13020908110486208A8C8D93E8AD0000CBCC01DC784C234EA310430CC001C4E93052F78018C61F4A209096881344E10FF0109B821114518863E66A143139CCA720759410CD0A10D116CC2075168C21F042080045C20128EB880301470816E04C20F3030820C7090AC59CCAB1CA9FC4026CC510A4480038B38D842037E810193CEA21C7950813322300401D4E0062150463930B03281A8408C3348C8174250012674C00A3EF0C0390670850258E2AA562D0009B40184AE1603001128C4305AD00B60BC401FE578C11D25318557EC820899E8052C3A34904454C11FFD5AD50D50503A0C644F8204B80114B886105D9881103070AA09CC200122546019CBC04635AAC1084640030857D0408CAEE08945C80318E5700051EB85023CD2800B6FC5813CB2A74307ECA31C5C2884099CE00469FFF8231385152C610D020B1308A2032085830F0251810150A11967A00215CAC0DC2038F70A572841103C6182445CAC71FAA8893F0420091AF0C009E962DADA1AA08F5E6C411E09104417DCD0045F0D830D6CC0C0D3544600A4228402514800220811063F74C0031520C209A221063844C10B7478AA08E0008310C8A0023050012AF4415781FC85ADB21040C8AA70D67164730FC368403D10D1845734411773D0432F1CA0B2062C0E11358082350FF20113A8C1077558841A9CA10BEE8620120581C524FED1844CA080001948C03D5119C781BEE08A9250C33F2220090536ED0E64DB03555EC0056A54810031C1C01DEEF002F9C2621C3E085368108200136420FF106EA04306BEF107490840103A844503C631C70FE8C2C6E3720616B80081615080436C0901144A01BB0C94C2095DE0814D6661837AE9A3055B10881EA8F78F16CE6B9EA83042D280911058D421105D800301EAB00A4480810819A0DA2C8ED83459E842060848C42B54E00E0CFCC206662D072C12100649D4608EBDD8011822A00BCF29F1037770400B00D6805E8C80489E8B9A3E2870D4C12EE4170920C4263AD1020AE861089230020FB277B1DEED21113468DA3008058C33BFAC058BC0E36EDD606C1C60816A0D10DD1C80A1BD1740E0A617AB342CA841837E355B21F508C43760310C2CE4211146F8A91A482D0A9BFCE20E4708411E3EB06252F32209FFFFB8032F54E043460F040BCA26899E87313508C8C22630014623B5E78011C0180A1160082536010182C0820B3E8D0001AA800A7724421E18788424DCF08B170CD526FAA09A331681EEA013C407CB7B8B123100BED1D5DA01C21EE83F46A00209C04F7AA56E801AE87010372CAF0BE1DC421E2EEE0F23A0C001B20086F57ED1B43C6CE295E6484541EC118247CF20017BA0300327CD32DFF14F0F0408410AA5AC903920E207A49883419270B41D6C02157BA821040512351B7E00E58DC885A2A190CC82D403814E7043065C31D34E771A1636C140121AA1A7142675211FB08537EC408B833C6108A5D8415B2140F8B450B8654462BB09145D0ABA23640BF4589EFF0448218E634080D445F8003078F00A14FCE07D6F9841BD50828076BEE10F22B0832D98568E1ACA411DBBF47E48B3090BE10000000560E00412B008265008F360079D80083EE00661802E3B805037F1041F03064360047E306E2AD009900009814003324004A5600E70D110092058A5902B37400F2BC127A8B20311500582310B3FC052CB230032D02A7CA235446004AA807CB8400184B772005003940332600006BB200033808351513DB04001E1D00058300537F006A520096008866050036E2008C9E00B0D307F347685503310F59001601501113003083047FFB03637A167B2800FF5B005A9500FA3800239B22312E0095D4006AAE00EAA900AAB000B6A04F80F0101003B, N'julianax_r_02_blue_small.gif', N'f1bb3957-8d27-47f3-91ec-c71822d11436', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (954, N'Touring-1000 Yellow, 46', N'BK-T79Y-46', N'Yellow', 1481.9379, 2384.0700, N'46', CAST(11398.72 AS Decimal(8, 2)), 7, 34, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'83b77413-8c8a-4af1-93e4-136edb7ff15f', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (961, N'Touring-3000 Yellow, 44', N'BK-T18Y-44', N'Yellow', 461.4448, 742.3500, N'44', CAST(13049.78 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'5646c15a-68ad-4234-b328-254706cbccc5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (962, N'Touring-3000 Yellow, 50', N'BK-T18Y-50', N'Yellow', 461.4448, 742.3500, N'50', CAST(13213.08 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'df85e805-af87-4fab-a668-c80f2a5b8a69', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (981, N'Mountain-400-W Silver, 40', N'BK-M38S-40', N'Silver', 419.7784, 769.4900, N'40', CAST(12142.60 AS Decimal(8, 2)), 5, 22, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007A7B82383B463D404CCC2F2EBA878ACDBBC5898B94F4E7E5B903029A9CA4E9F4FD432F61F9F9FDBBC4CFF2BABDE2E1EB686974CD6E6DDBDADCC00A0A89666D912D30F1F0F9E3E2F2A6ABBB9BACBAEEEEF85E6169AC0101F1FBFEF5F5F5D4D4DA4D515CD9BFBFEC9594DDDEEBF6F5FD444953E6D7DAD8B5B6E7E5EA42444DFEFEFEE9E8F5FFF2F2EEEEEED0505050545ED1D2D4A4A5ACFCFCFCB3B5BA95999EF5F5FAC1C2C5EAEAE94E5365EDEDF66C70787F1114F0F0F19A010161656FDDDDE0F1F2F453586355556172757E404552EFEFF4B2747784868FDBE6E9A7B2C0C3C4C8DE8887E0DEE77D818ADCDDF2A04E4ECD8486FAFAFAFCFCFF484C54E5E6E6F8FEFFE8E7E9CCCDD0494E5ACCC9CCF9EFEAEAE9ECC9A5A6BEC0C2F8F7FCBD464795768A860203D1CDD2F8F8F95B5961AEB2B7EAEAF7EAE9F2AAABAFBBBBBEB0AFB5C31212C8B5BAB314148C9198F1F1FCE2E2E4562F3FA35458B3393AE1E1E2D1D3E378333CB3BCC4D00503A51418EDEEF2D29A9B7C3C65A2787E8A1919C091959F8994C0C8D1BF2424464957C6C7CAECEBF5CBD8E6E8E0DFE5E4F7E6EAF94A4E6234333F5B5D679A4546C0BEC8ECEBECE47271D71413CECDDAE7E6F3A0A1A7F7F8FBE5E3E5B2B2B6D6DBE1FCFFFF9A95B5A62322F4F3F4EBE3E6E7EDEDF4F3FEE6EFF8AA6868565C67FEFEFD70191EB6B8BC554B55CDD2D6B72B2D5157694E4671CC0F0EEBA6A6A53C44FBFBF9EFF7FBF5F3FAABACC8A6ABAED6D7DF9A1516FBFBFBF3F4F53F4658A19DA1EEEFFBFDFDFDF3F2F2484551A8A7AAE4E4E7B1B7C4FDFCFDF9FAFBEBEBFDAB0D0CF9F9FAC1CCDDF3F3FACCC2D3B76B6DB70D0BAF1F203F4E66A96E77AC3230E7E9E8BAB6C0A64851B1BFCAB7B7CCBA5E5F5F4673ECECF8FFF7F7F8F9F9BCA3A6575486E4E1E37A5F698E8BB08686A8DAACAFA65C5FC6ACAFF9C0C0C9C8D0BDBAD6654C56FAFAFEE8E8F9FCF9F9DAD9E5D6D9EED5D4E8955C62FDFEFEECECEEEBEAF2EBECF5BA6D71C2C5D8C6C6D3DECACE91182CE6C9C9EBECFBDD3738950B0CCDCEE5E0615EF7F7F7580E32D6D7D9595F6FFFFFFF21F904010000FF002C00000000500031000008FE00FF091C48B0A0C183027559D987B0A1C387102346A4426303218918336A84C809970F32946A6D1C491223311B8C02A4B854B2A54B8454700911B0A8D7CB9B3777A98110A0C4862332700A1DA942C53F1A2920B819CA74A3357D150000694A55A28855D03E6084D3E4488232577EC0F1B5A5C598AA19590C401021238C040020986204C0C011376E9AC0406B154F8F0A0C35B64BA3830C990001782D4AC037E23D043BC27CCB3412C02208096CC44063A5F1C3707886F9491626D4462B64045CF41C31933EC86192AD096344A3810000584734A6895E0F5272F04D985D5B622C4553E0E87EE8651CB5057142FC23D063C28430041AB21B2829DB8223CB21FE765BB0805B0E8146AA5FFFF370048405AA309C0D8F70940B7EAAC631109829548F55D771E1D03C7C2CA0891EF43524021E1C80910841327CF3DF75D221040902603C409F2E2DC0F1031D2D04F54F389184668241FB3CF11F64F31CE4C004AD04D6900AFBDC40852F2D1053920C30D0A083282F04F1C20643D0C0C63D78203007429C34B2A21F2712A4052A1C78E39033A51830840F5CEA30841B36F090912E5DE880052F53F042041102A049440578AC8200140751D64205FF71504127042D81000782B072101D47BC00C20B42249A68102080E003252D44E4CC100220CA0B620108A0A94A03ACB24A0FE038D4099EABE819A9407B0C93CC9F2E1C30900CFE318030482AA960B1E6206C0A30881064386AC343304C11C00B5308B0012E5DCCF283045724B04D24009282C5AF0D1D82E71A3D3422E30973A8CA411B22FCE3010002A482C32D38183083041F30AB0600530CC288102550D2100C02A4202C1936701285312430F089071D38006D188BF4A4844326F8D103B67288F8CF397B34330CAB14DC92CA2D8350A2E11B2A98F3CF1BBA5800C71183BCF04209B81CE4CC14298010800163F0E0410B2404FC090FAF4092240588A5F0820403FAC101B6A611C402149BACCA811DB70C81CE3F35BC934B39930063412D2B48C180182F60110416651804400041A480CB2752EC822309C648F1060F123CF6C53F332C5242FE094344E15008F81C4D9B410704B706027948F7892E66D8C3801952E442420E394821C5074204290AD1031112000829E4A6CB2424B4F083314594ECC909917050CF2B5EF41240B1333C7442181C5C870D12ED0C648B288B9032CC04082C714E150C20227739D5688008311A68F0CF15538882456E03E9200016643C8202432B9040050A16A85008122220304D152BFC4382F644F870CD435CE0D38A1A19249184125AFC93C0228AB8451F86C1010E0CC001FF1006034820050B20A21A66A8C13F8CC180040800665710880466278018FC430670D8C53F34B082593CC00A75E8C73D9261825C3C4E0557204209540311706000101488C11130908603E82080FE3AF8C23090F1050E200012BB00C5166CF1865C5443471630C33FDC21841408003CFF90DD145EF0884F54A3165688540EEA30832E34800008F842077230822D58E1113A98E1521ED2805F80811C4DA0C11DA2218E417089166D38810224B007542060007F3004213EB09F11568304E650010D2AB5013135616F0068C10D7C818E4258C20A12188113026188224EA303E8B0C22E744409011041070F91C11D32E0061DE800023E88060D1611871E08C204AFD0860430210623B4614E8EB843062139894958800157101B0860C08E2180CE83FBF0000FCE800E71A881000460063C92D1032380A2055B4081366E3083001041149C70C8281A700A380C611006FE304534B6410A0E0CC31B9D30010A26C18464B2A10203F88601D470016138D10B3590C21636300522CC601F3E004109D0F08633E4C0026FA8463A24210804B48178F80841EF08D20F0194E0052B6D0826EE708A212CC20D81A08432FE348C9EB641104045C51C5AF10554E4010CB1A803037370013368E01D3E28560CAEE1032C94A06C05A10249D700054164EB174C28840672B0826A882353307D482D02110D0AD8210381380005E210070A78630F50C86B04BE3087397CA10243C50013A4508EC25ACE0B10A8A8BD2090827A5960052B98C4192EE0847C7CA10DCAC8C326708101755CA008B0F0C23F6CD013514C6546FF080612D6410A5C88A1166E10FEC0329AC09F2A744001C5F84519EC400B54C8411A93286C256A40DC2D54B583FF6842628EA08B604054034E70023AB2708C0214200BFD40011310E1841514820434E8890E74211123EC800207F0801A18E10F1DA0400385B80022CC700171606008A4B0432066610F73E4C21835A8842E3E602822A4E11F3158C42036B085E65D601239D0802B30910F187C201E08F240276AB0020BFC03026B324044CE0288381C82BC3154840FBAF08011E40016D5F80710A491004A1C6116A3582074DD718672A0A10458788133FE21810B0EA214FF3083056A2045068C601640E0010C1EF006715982180C90440AACD78588DCA017B7EC82723CC08841DCC200240002FE13D07183225CA0A00928C50348F00F0BB8039224800504402080210C84B15880C00A18C080F679A11A3F7880148801070958E03C8CD6C5114A10041FC41322514883126880867E08C40044C0813FE8F0090F1761120FF8C15BE4F1833378B8104510581A88F00201D4CE28695844104A40837FAC4017C43003101CCD801AD1C10A243043502E51027F4C411618098A0C6A6114220F42113838C27E2C20E11114610B63708715AC6081577B8107612302233CF08F6AEB406825F020D7CA41072A00380A8F6881255A500E12C02008A208820E4E5B9249E220153110980C7C31897D3CE21F39E0C10F88910363D45907A10E0092FFA10BF2D2A104314B0125FEAA7C83B2D4C002BA78C42E5AD00E60282173A97841065DC2091F104111A94800305A00040D78A01D25F3C0161EA18234EBE073B81948C7C9EB39970660083078442D78500E0B8C22443CD882014020248BE244022040572A000003297881133C68A0C389510B25604100420840250752946A7721058B78FBD32FD18F74D6A21F363842E6368003B20D05062F40170E82700425D0C11652300631FAF10C9E603B003EA08243FAC18845707D6F5C17455583CC0846F864E63819C53FE800010128626C290340137C10042204000BFEC081000020A6877820012F58440A78D1A84194800853889728687083AA5C23564408B2280A4F0410043CEC1B9801790D8152948ED7821841B9011A74003A5E0C6210530001046240078E47A116DB77892E6A110562F8CD1709D8C09A88708BFD634107653015ECA00BD546772AD07132507F63000CFF700DCE900569800668900612303FC0400C6C077F05781075B781DC377FC4B00FB610517A700AB2E00647701765300B9057092E687F324080FF101000003B, N'hotrodbike_f_small.gif', N'0a72791c-a984-4733-ae4e-2b4373cfd7cd', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (984, N'Mountain-500 Silver, 40', N'BK-M18S-40', N'Silver', 308.2179, 564.9900, N'40', CAST(12405.69 AS Decimal(8, 2)), 5, 23, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b96c057b-6416-4851-8d59-bcb37c8e6e51', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (998, N'Road-750 Black, 48', N'BK-R19B-48', N'Black', 343.6496, 539.9900, N'48', CAST(9130.77 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'3de9a212-1d49-40b6-b10a-f564d981dbde', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +---------- , (999, N'Road-750 Black, 52', N'BK-R19B-52', N'Black', 343.6496, 539.9900, N'52', CAST(9262.31 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'ae638923-2b67-4679-b90e-abbab17dca31', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[Product] OFF +----------GO +----------SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] ON +----------GO +----------INSERT [SalesLT].[SalesOrderDetail] ([SalesOrderID], [SalesOrderDetailID], [OrderQty], [ProductID], [UnitPrice], [UnitPriceDiscount], [rowguid], [ModifiedDate]) +---------- VALUES (71774, 110562, 1, 836, 356.8980, 0.0000, N'e3a1994c-7a68-4ce8-96a3-77fdd3bbd730', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71774, 110563, 1, 822, 356.8980, 0.0000, N'5c77f557-fdb6-43ba-90b9-9a7aec55ca32', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71776, 110567, 1, 907, 63.9000, 0.0000, N'6dbfe398-d15d-425e-aa58-88178fe360e5', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71815, 111451, 1, 738, 202.3320, 0.0000, N'810e5535-2bdb-4d83-b26d-796e5cff1a1b', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71815, 111452, 2, 835, 356.8980, 0.0000, N'daeb0cfa-807c-46ac-8458-ffccef36b5b2', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71815, 111453, 2, 874, 5.3940, 0.0000, N'09f90eb4-24de-4812-825e-45520602b437', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71816, 111454, 1, 953, 728.9100, 0.0000, N'b8a9720f-1f6f-4fe1-ad4a-ac70d4c905bd', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71816, 111455, 1, 954, 1430.4420, 0.0000, N'edc86c40-ecbd-45af-912b-ae37d177821a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71816, 111456, 2, 715, 29.9940, 0.0000, N'9f7406e4-25c9-431a-9891-f419e3f5253d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71816, 111457, 4, 712, 5.3940, 0.0000, N'ee2ce69c-24eb-47ff-ab6c-bd5aabdcd6e9', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71816, 111458, 3, 883, 32.3940, 0.0000, N'affbb13e-55a8-4fa8-9cd7-809b1816c30d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71816, 111459, 1, 961, 445.4100, 0.0000, N'b4e5503b-0fd8-4f2f-8675-e899db180280', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71816, 111460, 1, 948, 63.9000, 0.0000, N'5f4f0aa9-acc6-4ef7-ab68-17d0748a5512', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71831, 111790, 2, 869, 41.9940, 0.0000, N'73bc96fd-863b-441c-aeea-25387c2d17ac', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71831, 111791, 1, 782, 1376.9940, 0.0000, N'a5f59647-47b7-48fc-9000-0830e623981a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71831, 111792, 6, 867, 41.9940, 0.0000, N'14f64fdc-4405-47b4-965c-b4f506515e8a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71846, 112149, 2, 936, 37.2540, 0.0000, N'7232fd67-8db7-42f8-ad0d-6185299430f1', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71846, 112150, 1, 739, 818.7000, 0.0000, N'9a32772b-9b98-4b22-aa2b-f4e5ffd2a23e', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71846, 112151, 1, 984, 112.9980, 0.4000, N'78557d82-1267-4f7c-93a7-e53ae2a3a85c', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71846, 112152, 2, 981, 461.6940, 0.0000, N'3a26f840-c413-4bef-aeff-b8d6218698e6', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71856, 112331, 1, 962, 445.4100, 0.0000, N'62b3d72f-3586-40ac-a24e-a6f07eb7ca4a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +---------- , (71856, 112332, 1, 945, 54.8940, 0.0000, N'4733918f-da34-4d30-b5b4-32f7537e609d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] OFF +----------GO +----------SET IDENTITY_INSERT [SalesLT].[ProductDescription] ON +----------GO +----------INSERT [SalesLT].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate]) +---------- VALUES (8, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (64, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (128, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) +---------- , (209, N'Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (513, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (554, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (594, N'Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.', N'32b82c92-e545-4da0-a175-0be710b482fe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (627, N'All-weather brake pads; provides superior stopping by applying more surface to the rim.', N'ebf2f0a4-89f2-4d31-be48-d8fd278f3024', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (630, N'Wide-link design.', N'28c4682c-38b2-4b61-a2ae-bcac7c7ce29b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (647, N'Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.', N'7ad9e29f-16cf-4db0-b073-cc62d501b61a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (661, N'Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women''s version.', N'd61c9d54-22c3-4563-a418-0b9dc7e03850', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (848, N'Lightweight, durable, clipless pedal with adjustable tension.', N'03acbb19-749a-48a1-b77e-5d2a48e8dc3a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1020, N'The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.', N'f4c70a6b-bbe8-4774-9d75-393d3f315e9b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1196, N'Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.', N'c65bee64-4dba-47ec-91cd-31356ba379e1', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1205, N'Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.', N'58d86ede-0519-4263-a264-a2b5b01a6c7b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1208, N'Thin, lightweight and durable with cuffs that stay up.', N'9f436663-525d-4cc2-85ba-47d20bcea0ec', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1210, N'Traditional style with a flip-up brim; one-size fits all.', N'66f84b21-1a43-49d3-8883-09cdb77fffef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1211, N'Unisex long-sleeve AWC logo microfiber cycling jersey', N'12f60253-f8e1-4f76-8142-6232396b8f17', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1487, N'Adapté à tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable.', N'5c1dab3a-4b31-4d9d-a14f-3cb61949b79b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1488, N'Ce vélo offre un excellent rapport qualité-prix. Vif et facile à manœuvrer, il se conduit en toute tranquillité sur les chemins et les sentiers.', N'79065ec8-2080-4120-a4ea-bfa7ea1f1f9d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1490, N'Conduite sur terrains très accidentés. Idéal pour tous les niveaux de compétition. Utilise le même cadre HL que le Montain-100.', N'2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) +---------- , (1493, N'Vélo d''adulte d''entrée de gamme ; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons à blocage rapide.', N'7943455f-3fbe-44c0-9ac2-7ee642d3944b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1502, N'Vélo de qualité pour tous usages, doté d''un bon niveau de confort et de sécurité. Présente des pneus plus larges et plus stables pour les sorties en ville ou les randonnées du week-end.', N'e5288050-bc5b-45cc-8849-c7d4af2fe2b6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1503, N'La selle rembourrée offre un confort optimal. Le porte-bagages nouvellement remanié offre diverses possibilités d''ajout de paniers ou de sacoches. Ce vélo reste parfaitement stable une fois chargé.', N'28b132c3-108c-412d-9918-a8c9297dfb73', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1504, N'Voyagez confortablement et avec élégance. Confort et sécurité maximum. Large éventail de vitesses pour gravir toutes les côtes. Sa fabrication en alliage d''aluminium haute technologie est synonyme de robustesse, sans ajout de poids.', N'e3bac4a6-220c-4e5e-8261-51e08906c0e8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1509, N'Patins de freinage pour tous les temps ; freinage renforcé par l''application d''une plus grande surface sur la jante.', N'5ed8186a-6049-42b1-b1b0-3b1f899c538b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1510, N'Conception liaison large.', N'64723c0c-09d5-497d-83a3-4561818a8f1c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1517, N'Doté du même alliage en aluminium que notre cadre HL haut de gamme, le ML possède un tube léger dont le diamètre est prévu pour offrir une résistance optimale. Version femmes.', N'f3cd990a-b70d-43c8-a075-934a3e98b5aa', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1537, N'Pédales automatiques légères et robustes avec tension réglable.', N'6a60e7f6-a5cd-4e7b-8612-9340e46bf66d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1571, N'Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un très bon rapport qualité-prix.', N'e95e1259-b822-40ee-aa86-7de9f9e0f0ea', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1587, N'Cuissards résistants à l''usure pour utilisation intensive, doublés à l''intérieur en Spandex, sans couture, peau de chamois anti-bactérie pour un meilleur confort.', N'e11a3c2a-b074-48f9-8226-16d65c2f91c2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1594, N'Maillot manches courtes classique et anti-transpiration avec contrôle de l''humidité, fermeture avant à glissière et 3 poches arrière.', N'fb2a5474-9d83-4a9b-bbbd-8ffc9036866e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1596, N'Fin, léger et résistant avec des poignets qui restent en place.', N'31d4905c-d37c-4128-bcff-4a35da9c1bb7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1598, N'Style classique avec une visière relevable ; taille unique.', N'fb627d1b-2933-4fbe-a6a4-bf69f2814ec2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1599, N'Maillot de cycliste en microfibre avec le logo de l''équipe AWV, manches longues, unisexe.', N'4aae6d4f-8320-4f32-99de-bb3b1b13f1ef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (1600, N'Orphan record to deletion test', N'4aae6d4f-1111-4f32-99de-bb3b1b13f1ef', CAST(N'2020-06-01T00:00:00.000' AS DateTime)) +---------- , (1605, N'Chaque cadre est fabriqué artisanalement dans notre atelier de Bordeaux afin d''obtenir le diamètre et l''épaisseur adaptés à un vélo tout-terrain de premier choix. Le cadre en aluminium soudé à chaud présente un tube d''un plus grand diamètre, afin d''absorber les bosses.', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [SalesLT].[ProductDescription] OFF +----------GO +----------INSERT [SalesLT].[ProductModelProductDescription] ([ProductModelID], [ProductDescriptionID], [Culture], [rowguid], [ModifiedDate]) +---------- VALUES (2, 1210, N'en ', N'623741c2-74bd-4ce1-a554-1fe8c0606b4b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (2, 1598, N'fr ', N'6d7b1148-6159-4ec5-b469-d106ffef6ca5', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (5, 647, N'en ', N'56b6b980-c1ca-4545-a5ba-edc4c14bdcf9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (5, 1605, N'fr ', N'6cc243bc-b8fa-4bd2-9392-8ead11c55406', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (9, 1020, N'en ', N'14c44869-3696-4b30-929a-3adffc8243de', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (9, 1571, N'fr ', N'649557cd-028e-4a1f-b5d5-71c09a6ae268', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (11, 1211, N'en ', N'03c12575-f1bf-48ad-a483-d1185d24ce2c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (11, 1599, N'fr ', N'000aa434-8c55-4a8e-a850-9ae32edf537b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (17, 661, N'en ', N'd91f0507-baa5-4b44-a0e6-a6acef29f066', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (17, 1517, N'fr ', N'87365776-a0a1-4580-b080-b18f21d8cb1e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (20, 128, N'en ', N'f57a0614-ec87-4f51-ab3e-f889d37440f6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (20, 1490, N'fr ', N'70b555e3-ac30-4a42-8959-339738dac806', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (22, 64, N'en ', N'b301b583-2d7f-4c19-afa9-01d142f8ae2d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (22, 1488, N'fr ', N'a73f5bf1-ad79-4703-9bfe-5f6f87705516', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (23, 8, N'en ', N'397fa9e9-eef0-42dc-b27a-5b9a717bb237', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (23, 1487, N'fr ', N'a96e7527-4414-43a3-b52d-26a57d0ae88f', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (24, 1208, N'en ', N'2d4d6267-b8d4-4345-ba19-9334b6bc7055', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (24, 1596, N'fr ', N'984a725c-9095-47e3-8a2f-8be4ff45d2c0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (31, 209, N'en ', N'c44f974f-ffb2-44fe-abac-fab53e7a896a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (31, 1493, N'fr ', N'67a11e38-08f8-43cf-a6ec-b832a9b34d58', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (32, 1205, N'en ', N'7dd01ecf-d739-4fdf-8574-aec55267323c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (32, 1594, N'fr ', N'71123dec-1396-4c4e-80c8-3efd3d5c13d9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (34, 594, N'en ', N'49ece470-9fdb-48fb-9d80-46ae0e3ef8fc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (34, 1504, N'fr ', N'c7deacd9-f36d-467e-9159-ea8e0b705dbf', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (35, 554, N'en ', N'8d57b85b-1c3d-4773-b326-a62fdd1cd378', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (35, 1503, N'fr ', N'220652e7-47ee-4f99-9eb1-f3597520ffbc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (36, 513, N'en ', N'f35f7fac-4479-4748-81d1-7adec2de9917', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (36, 1502, N'fr ', N'5c1d62aa-c221-4090-b7de-15c5f976d379', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (37, 1196, N'en ', N'46f1f2f9-33dc-4384-baa9-9c70d83a44ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (37, 1587, N'fr ', N'2691d6fd-b45e-4604-b2ef-61d5accf47ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (63, 848, N'en ', N'9e7855e4-3c99-460a-bba5-9b45486b8fbe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (63, 1537, N'fr ', N'62ebf8f0-bc2c-4726-bca0-2c7f4aee336b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (102, 627, N'en ', N'5b74c2c4-d71a-4d8d-9ddb-e376816fbf21', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (102, 1509, N'fr ', N'a72f9088-ef86-4fd2-aa13-efbb1aac404b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (103, 630, N'en ', N'035f5b8e-7728-4412-ba63-0cea7cd79a6c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +---------- , (103, 1510, N'fr ', N'83b25658-4554-4679-ae8d-f31a506356eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [dbo].[BuildVersion] ON +----------GO +----------INSERT [dbo].[BuildVersion] ([SystemInformationID], [Database Version], [VersionDate], [ModifiedDate]) VALUES (1, N'10.50.91013.00', CAST(N'2009-10-13T00:00:00.000' AS DateTime), CAST(N'2009-10-13T00:00:00.000' AS DateTime)) +----------GO +----------SET IDENTITY_INSERT [dbo].[BuildVersion] OFF +----------GO +----------DBCC CHECKIDENT ('[SalesLT].[Address]' , RESEED, 5000); +----------DBCC CHECKIDENT ('[SalesLT].[ProductCategory]' , RESEED, 5000); +----------DBCC CHECKIDENT ('[SalesLT].[ProductDescription]', RESEED, 5000); diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL index 696d2f4..a4e0403 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL @@ -1,8 +1,8 @@  USE [master]; RESTORE DATABASE [$TARGET_DB_NAME] FROM DISK = N'/var/opt/mssql/backup/$BackupFileName' WITH FILE = 1, - MOVE N'AdventureWorksLT2022_Data' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME".mdf', - MOVE N'AdventureWorksLT2022_Log' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME"_log.ldf', + MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME".mdf', + MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME"_log.ldf', NOUNLOAD, STATS = 5 ; \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs b/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs index 15b387b..4c9930d 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs +++ b/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs @@ -34,8 +34,10 @@ public DockerMsSqlServerDatabase(string databaseName) } public readonly string DatabaseName; + // internal Microsoft.Extensions.Configuration.IConfiguration? configuration; private const string Image = "mcr.microsoft.com/mssql/server"; + private const string Password = "!Passw0rd"; private const string Tag = "latest"; private static readonly int ContainerPort = 1433; @@ -136,19 +138,33 @@ private static async Task HealthCheck(CancellationToken cancellationToken) return false; } - private void CloneBackUpFile() + private async Task CloneBackUpFileAsync() { var url = AppSettings["GitHub:BackUpFile"]; - if (!Directory.Exists(GetBackupLocation)) { Directory.CreateDirectory(GetBackupLocation!); } - using WebClient wc = new WebClient(); - wc.Headers.Add("a", "a"); + if (string.IsNullOrWhiteSpace(url)) + { + Console.WriteLine("Backup URL is not configured."); + return; + } + + var backupLocation = GetBackupLocation; + var backupFileName = GetBackupFullName; + try { - wc.DownloadFile(url!, GetBackupFullName!); + Directory.CreateDirectory(backupLocation); + + using HttpClient client = new(); + client.DefaultRequestHeaders.Add("a", "a"); + + byte[] fileBytes = await client.GetByteArrayAsync(url); + await File.WriteAllBytesAsync(backupFileName, fileBytes); + + Console.WriteLine("Backup downloaded successfully."); } catch (Exception ex) { - Console.WriteLine(ex.ToString()); + Console.WriteLine($"Error downloading backup: {ex}"); } } @@ -158,7 +174,7 @@ private async Task CreateAndStartContainer() { try { - CloneBackUpFile(); + await CloneBackUpFileAsync(); await semaphore.WaitAsync(); if (_sqlServerContainer == null) diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj index 4967cef..6a7a2b7 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj @@ -15,17 +15,18 @@ - - - - - - + + + + + + - - - - + + + + + diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature index ec8299b..17affc1 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature @@ -8,13 +8,11 @@ Background: Given The service to test is 'AdventureWorksDemo.Data.Services.IAddressService' And I don't reset the database after the scenario - - Scenario: AddAsync Given I reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | Rowguid | - | Wind in the Willow | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000001 | + | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | Rowguid | + | Wind in the Willow | | Fiction | 1 | AB11 1XX | 00000000-0000-0000-0000-000000000001 | And I call the method 'AddAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -25,19 +23,19 @@ Scenario: AddAsync | IsFailure | IsSuccess | Message | | False | True | | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | Wind in the Willow | | Fiction | United Kingdom | AB11 1XX | England | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | + | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | Wind in the Willow | | Fiction | 1 | AB11 1XX | And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | - | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | Wind in the Willow | | Fiction | United Kingdom | AB11 1XX | England | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | + | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | 1 | RG41 1QW | + | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | 1 | MK8 8DF | + | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | 1 | CB4 4BZ | + | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | 2 | 93030 | + | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | 2 | 93030 | + | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | 2 | 84070 | + | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | 2 | 95603 | + | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | 2 | 95603 | + | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | Wind in the Willow | | Fiction | 3 | AB11 1XX | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json index 1de1ff2..561cbbb 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json @@ -4,13 +4,13 @@ }, "Database": { "Location": "<>\\..\\Configuration\\backup\\", - "FileName": "AdventureWorksLT2022.bak", + "FileName": "AdventureWorks.bak", "TestDbPrefix": "aw-", "RestoreScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\RestoreDatabase.SQL", "ResetDataScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\PrepareTablesForTesting.SQL" }, "GitHub": { - "BackUpFile": "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorksLT2022.bak" + "BackUpFile": "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2022.bak" }, "Docker": { "BindLocation": "/var/opt/mssql/backup" diff --git a/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj b/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj index 97116e7..fdd1c30 100644 --- a/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj +++ b/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj @@ -23,26 +23,27 @@ - - + + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + diff --git a/src/API/AdventureWorksDemo.Data.Tests/Fakes/FakeDbContext_Address.cs b/src/API/AdventureWorksDemo.Data.Tests/Fakes/FakeDbContext_Address.cs index ec5087c..7e5465b 100644 --- a/src/API/AdventureWorksDemo.Data.Tests/Fakes/FakeDbContext_Address.cs +++ b/src/API/AdventureWorksDemo.Data.Tests/Fakes/FakeDbContext_Address.cs @@ -23,8 +23,7 @@ internal static List
FakeAddresses AddressId = 1, AddressLine1 = "2564 S. Redwood Rd.", City = "Riverton", - StateProvince = "Utah", - CountryRegion = "United States", + StateProvinceId = 1, PostalCode = "84065", Rowguid = new Guid("E299E96D-63CB-4ACC-9BFD-5F0C23AE5820"), ModifiedDate = Convert.ToDateTime("12 May 2005 01:52:23") @@ -34,8 +33,7 @@ internal static List
FakeAddresses AddressId = 2, AddressLine1 = "9905 Three Rivers Drive", City = "Kelso", - StateProvince = "Washington", - CountryRegion = "United States", + StateProvinceId = 2, PostalCode = "98626", Rowguid = new Guid("01A85112-6EE1-4F2C-9212-1C2ABC612E67"), ModifiedDate = Convert.ToDateTime("12 May 2005 01:52:23") @@ -45,8 +43,7 @@ internal static List
FakeAddresses AddressId = 3, AddressLine1 = "25 First Canadian Place", City = "Toronto", - StateProvince = "Ontario", - CountryRegion = "Canada", + StateProvinceId = 3, PostalCode = "M4B 1V5", Rowguid = new Guid("07A009B2-1421-4597-AB85-22BCE3C82B2C"), ModifiedDate = Convert.ToDateTime("12 May 2005 01:52:24") @@ -56,8 +53,7 @@ internal static List
FakeAddresses AddressId = 4, AddressLine1 = "2560 Bay Street", City = "Toronto", - StateProvince = "Ontario", - CountryRegion = "Canada", + StateProvinceId = 4, PostalCode = "M4B 1V7", Rowguid = new Guid("726819A8-1B02-4EFD-AEB9-3FD801D9F153"), ModifiedDate = Convert.ToDateTime("13 May 2005 01:45:23") @@ -67,8 +63,7 @@ internal static List
FakeAddresses AddressId = 5, AddressLine1 = "9992 Whipple Rd", City = "Union City", - StateProvince = "California", - CountryRegion = "United States", + StateProvinceId = 5, PostalCode = "94587", Rowguid = new Guid("88258A1B-B50F-440F-93B9-5D7AF831D5FC"), ModifiedDate = Convert.ToDateTime("14 May 2005 06:52:23") @@ -78,8 +73,7 @@ internal static List
FakeAddresses AddressId = 6, AddressLine1 = "25915 140th Ave Ne", City = "Bellevue", - StateProvince = "Washington", - CountryRegion = "United States", + StateProvinceId = 6, PostalCode = "98004", Rowguid = new Guid("0D46F203-CDB6-4495-83F5-A97FF0CEC174"), ModifiedDate = Convert.ToDateTime("28 May 2005 22:52:23") @@ -89,8 +83,7 @@ internal static List
FakeAddresses AddressId = 7, AddressLine1 = "2574 Milton Park", City = "Oxford", - StateProvince = "England", - CountryRegion = "United Kingdom", + StateProvinceId = 7, PostalCode = "OX14 4SE", Rowguid = new Guid("62D0C689-CF44-4AB3-9C3E-6142F4E0101C"), ModifiedDate = Convert.ToDateTime("12 June 2005 01:52:23") @@ -104,8 +97,7 @@ internal static List
FakeAddresses AddressLine1 = "Ping", AddressLine2 = "Pong", City = "Ping Pong", - StateProvince = "Foo", - CountryRegion = "Bar", + StateProvinceId = 1, PostalCode = "98765", }; } diff --git a/src/API/AdventureWorksDemo.Data.Tests/Fakes/MockedDbContext.cs b/src/API/AdventureWorksDemo.Data.Tests/Fakes/MockedDbContext.cs index 44445cd..3e920bb 100644 --- a/src/API/AdventureWorksDemo.Data.Tests/Fakes/MockedDbContext.cs +++ b/src/API/AdventureWorksDemo.Data.Tests/Fakes/MockedDbContext.cs @@ -8,9 +8,9 @@ namespace AdventureWorksDemo.Data.Tests.Fakes { internal static class MockedDbContext { - internal static Mock MockedDbContextAllData() + internal static Mock MockedDbContextAllData() { - Mock dbContext = new(); + Mock dbContext = new(); // // dbContext.Setup(m => m.Set
()).Returns(FakeDbContext.FakeAddresses.BuildMockDbSet
().Object); diff --git a/src/API/AdventureWorksDemo.Data.Tests/Validaton/AddressValidatorTests.cs b/src/API/AdventureWorksDemo.Data.Tests/Validaton/AddressValidatorTests.cs index 37eb6c6..fb60f51 100644 --- a/src/API/AdventureWorksDemo.Data.Tests/Validaton/AddressValidatorTests.cs +++ b/src/API/AdventureWorksDemo.Data.Tests/Validaton/AddressValidatorTests.cs @@ -111,38 +111,22 @@ public void City_Should_Not_Have_Length_Between_3_And_30(string value) result.ShouldHaveValidationErrorFor(m => m.City); } - [DataRow("{{PadRight:X:3}}")] - [DataRow("{{PadRight:X:4}}")] - [DataRow("{{PadRight:X:49}}")] - [DataRow("{{PadRight:X:50}}")] - [TestMethod] - public void CountryRegion_Should_Have_Length_Between_3_And_50(string value) - { - // arrange - var entity = _address; - entity!.CountryRegion = value.InterpretValue(); - //act - var result = _validator.TestValidate(entity); - //assert - result.ShouldNotHaveValidationErrorFor(m => m.CountryRegion); - } - - [DataRow("")] - [DataRow("1")] - [DataRow("12")] - [DataRow("66")] - [DataRow("{{PadRight:X:51}}")] - [TestMethod] - public void CountryRegion_Should_NotHave_Length_Between_3_And_50(string value) - { - // arrange - var entity = _address; - entity!.CountryRegion = value.InterpretValue(); - //act - var result = _validator.TestValidate(entity); - //assert - result.ShouldHaveValidationErrorFor(m => m.CountryRegion); - } + //[DataRow("")] + //[DataRow("1")] + //[DataRow("12")] + //[DataRow("66")] + //[DataRow("{{PadRight:X:51}}")] + //[TestMethod] + //public void CountryRegion_Should_NotHave_Length_Between_3_And_50(string value) + //{ + // // arrange + // var entity = _address; + // entity!.CountryRegion = value.InterpretValue(); + // //act + // var result = _validator.TestValidate(entity); + // //assert + // result.ShouldHaveValidationErrorFor(m => m.CountryRegion); + //} [DataRow("{{PadRight:X:3}}")] [DataRow("{{PadRight:X:4}}")] @@ -177,38 +161,38 @@ public void PostalCode_Should_NotHave_Length_Between_3_And_15(string value) result.ShouldHaveValidationErrorFor(m => m.PostalCode); } - [DataRow("{{PadRight:X:3}}")] - [DataRow("{{PadRight:X:4}}")] - [DataRow("{{PadRight:X:49}}")] - [DataRow("{{PadRight:X:50}}")] - [TestMethod] - public void StateProvince_Should_Have_Length_Between_3_And_50(string value) - { - // arrange - var entity = _address; - entity!.StateProvince = value.InterpretValue(); - //act - var result = _validator.TestValidate(entity); - //assert - result.ShouldNotHaveValidationErrorFor(m => m.StateProvince); - } - - [DataRow("")] - [DataRow("1")] - [DataRow("12")] - [DataRow("66")] - [DataRow("{{PadRight:X:51}}")] - [TestMethod] - public void StateProvince_Should_NotHave_Length_Between_3_And_50(string value) - { - // arrange - var entity = _address; - entity!.StateProvince = value.InterpretValue(); - //act - var result = _validator.TestValidate(entity); - //assert - result.ShouldHaveValidationErrorFor(m => m.StateProvince); - } + //[DataRow("{{PadRight:X:3}}")] + //[DataRow("{{PadRight:X:4}}")] + //[DataRow("{{PadRight:X:49}}")] + //[DataRow("{{PadRight:X:50}}")] + //[TestMethod] + //public void StateProvince_Should_Have_Length_Between_3_And_50(string value) + //{ + // // arrange + // var entity = _address; + // entity!.StateProvince = value.InterpretValue(); + // //act + // var result = _validator.TestValidate(entity); + // //assert + // result.ShouldNotHaveValidationErrorFor(m => m.StateProvince); + //} + + //[DataRow("")] + //[DataRow("1")] + //[DataRow("12")] + //[DataRow("66")] + //[DataRow("{{PadRight:X:51}}")] + //[TestMethod] + //public void StateProvince_Should_NotHave_Length_Between_3_And_50(string value) + //{ + // // arrange + // var entity = _address; + // entity!.StateProvince = value.InterpretValue(); + // //act + // var result = _validator.TestValidate(entity); + // //assert + // result.ShouldHaveValidationErrorFor(m => m.StateProvince); + //} [TestInitialize] public void TestInitialize() @@ -220,7 +204,7 @@ public void TestInitialize() AddressLine1 = "12345", AddressLine2 = "12345", City = "12345", - CountryRegion = "12345", + StateProvinceId = 12345, PostalCode = "12345" }; } diff --git a/src/API/AdventureWorksDemo.Data/AdventureWorksDemo.Data.csproj b/src/API/AdventureWorksDemo.Data/AdventureWorksDemo.Data.csproj index f2fca96..5c71eb8 100644 --- a/src/API/AdventureWorksDemo.Data/AdventureWorksDemo.Data.csproj +++ b/src/API/AdventureWorksDemo.Data/AdventureWorksDemo.Data.csproj @@ -12,9 +12,10 @@ - + - + + diff --git a/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs b/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs index 0f5fc06..c50d504 100644 --- a/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs +++ b/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs @@ -7,46 +7,159 @@ namespace AdventureWorksDemo.Data.DbContexts; -public partial class AdventureWorksDbContext : DbContext +public partial class AdventureWorksContext : DbContext { - public AdventureWorksDbContext() - { } - public AdventureWorksDbContext(DbContextOptions options) + public AdventureWorksContext(DbContextOptions options) : base(options) { } public virtual DbSet
Addresses { get; set; } - public virtual DbSet BuildVersions { get; set; } + public virtual DbSet AddressTypes { get; set; } + + public virtual DbSet AwbuildVersions { get; set; } + + public virtual DbSet BillOfMaterials { get; set; } + + public virtual DbSet BusinessEntities { get; set; } + + public virtual DbSet BusinessEntityAddresses { get; set; } + + public virtual DbSet BusinessEntityContacts { get; set; } + + public virtual DbSet ContactTypes { get; set; } + + public virtual DbSet CountryRegions { get; set; } + + public virtual DbSet CountryRegionCurrencies { get; set; } + + public virtual DbSet CreditCards { get; set; } + + public virtual DbSet Cultures { get; set; } + + public virtual DbSet Currencies { get; set; } + + public virtual DbSet CurrencyRates { get; set; } public virtual DbSet Customers { get; set; } - public virtual DbSet CustomerAddresses { get; set; } + public virtual DbSet DatabaseLogs { get; set; } + + public virtual DbSet Departments { get; set; } + + public virtual DbSet EmailAddresses { get; set; } + + public virtual DbSet Employees { get; set; } + + public virtual DbSet EmployeeDepartmentHistories { get; set; } + + public virtual DbSet EmployeePayHistories { get; set; } public virtual DbSet ErrorLogs { get; set; } + public virtual DbSet Illustrations { get; set; } + + public virtual DbSet JobCandidates { get; set; } + + public virtual DbSet Locations { get; set; } + + public virtual DbSet Passwords { get; set; } + + public virtual DbSet People { get; set; } + + public virtual DbSet PersonCreditCards { get; set; } + + public virtual DbSet PersonPhones { get; set; } + + public virtual DbSet PhoneNumberTypes { get; set; } + public virtual DbSet Products { get; set; } public virtual DbSet ProductCategories { get; set; } + public virtual DbSet ProductCostHistories { get; set; } + public virtual DbSet ProductDescriptions { get; set; } + public virtual DbSet ProductInventories { get; set; } + + public virtual DbSet ProductListPriceHistories { get; set; } + public virtual DbSet ProductModels { get; set; } - public virtual DbSet ProductModelProductDescriptions { get; set; } + public virtual DbSet ProductModelIllustrations { get; set; } + + public virtual DbSet ProductModelProductDescriptionCultures { get; set; } + + public virtual DbSet ProductPhotos { get; set; } + + public virtual DbSet ProductProductPhotos { get; set; } + + public virtual DbSet ProductReviews { get; set; } + + public virtual DbSet ProductSubcategories { get; set; } + + public virtual DbSet ProductVendors { get; set; } + + public virtual DbSet PurchaseOrderDetails { get; set; } + + public virtual DbSet PurchaseOrderHeaders { get; set; } public virtual DbSet SalesOrderDetails { get; set; } public virtual DbSet SalesOrderHeaders { get; set; } + public virtual DbSet SalesOrderHeaderSalesReasons { get; set; } + + public virtual DbSet SalesPeople { get; set; } + + public virtual DbSet SalesPersonQuotaHistories { get; set; } + + public virtual DbSet SalesReasons { get; set; } + + public virtual DbSet SalesTaxRates { get; set; } + + public virtual DbSet SalesTerritories { get; set; } + + public virtual DbSet SalesTerritoryHistories { get; set; } + + public virtual DbSet ScrapReasons { get; set; } + + public virtual DbSet Shifts { get; set; } + + public virtual DbSet ShipMethods { get; set; } + + public virtual DbSet ShoppingCartItems { get; set; } + + public virtual DbSet SpecialOffers { get; set; } + + public virtual DbSet SpecialOfferProducts { get; set; } + + public virtual DbSet StateProvinces { get; set; } + + public virtual DbSet Stores { get; set; } + + public virtual DbSet TransactionHistories { get; set; } + + public virtual DbSet TransactionHistoryArchives { get; set; } + + public virtual DbSet UnitMeasures { get; set; } + + public virtual DbSet Vendors { get; set; } + + public virtual DbSet WorkOrders { get; set; } + + public virtual DbSet WorkOrderRoutings { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity
(entity => { entity.HasKey(e => e.AddressId).HasName("PK_Address_AddressID"); - entity.ToTable("Address", "SalesLT", tb => tb.HasComment("Street address information for customers.")); + entity.ToTable("Address", "Person", tb => tb.HasComment("Street address information for customers, employees, and vendors.")); entity.Property(e => e.AddressId).HasComment("Primary key for Address records."); entity.Property(e => e.AddressLine1).HasComment("First street address line."); @@ -59,59 +172,102 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) entity.Property(e => e.Rowguid) .HasDefaultValueSql("(newid())") .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); - entity.Property(e => e.StateProvince).HasComment("Name of state or province."); + entity.Property(e => e.StateProvinceId).HasComment("Unique identification number for the state or province. Foreign key to StateProvince table."); + + entity.HasOne(d => d.StateProvince).WithMany(p => p.Addresses).OnDelete(DeleteBehavior.ClientSetNull); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.ToTable("BuildVersion", tb => tb.HasComment("Current version number of the AdventureWorksLT 2012 sample database. ")); + entity.HasKey(e => e.AddressTypeId).HasName("PK_AddressType_AddressTypeID"); - entity.Property(e => e.DatabaseVersion).HasComment("Version number of the database in 9.yy.mm.dd.00 format."); + entity.ToTable("AddressType", "Person", tb => tb.HasComment("Types of addresses stored in the Address table. ")); + + entity.Property(e => e.AddressTypeId).HasComment("Primary key for AddressType records."); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Address type description. For example, Billing, Home, or Shipping."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.SystemInformationId).HasName("PK_AWBuildVersion_SystemInformationID"); + + entity.ToTable("AWBuildVersion", tb => tb.HasComment("Current version number of the AdventureWorks 2016 sample database. ")); + entity.Property(e => e.SystemInformationId) .ValueGeneratedOnAdd() - .HasComment("Primary key for BuildVersion records."); + .HasComment("Primary key for AWBuildVersion records."); + entity.Property(e => e.DatabaseVersion).HasComment("Version number of the database in 9.yy.mm.dd.00 format."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); entity.Property(e => e.VersionDate).HasComment("Date and time the record was last updated."); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => e.CustomerId).HasName("PK_Customer_CustomerID"); + entity.HasKey(e => e.BillOfMaterialsId) + .HasName("PK_BillOfMaterials_BillOfMaterialsID") + .IsClustered(false); - entity.ToTable("Customer", "SalesLT", tb => tb.HasComment("Customer information.")); + entity.ToTable("BillOfMaterials", "Production", tb => tb.HasComment("Items required to make bicycles and bicycle subassemblies. It identifies the heirarchical relationship between a parent product and its components.")); - entity.Property(e => e.CustomerId).HasComment("Primary key for Customer records."); - entity.Property(e => e.CompanyName).HasComment("The customer's organization."); - entity.Property(e => e.EmailAddress).HasComment("E-mail address for the person."); - entity.Property(e => e.FirstName).HasComment("First name of the person."); - entity.Property(e => e.LastName).HasComment("Last name of the person."); - entity.Property(e => e.MiddleName).HasComment("Middle name or middle initial of the person."); + entity.HasIndex(e => new { e.ProductAssemblyId, e.ComponentId, e.StartDate }, "AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate") + .IsUnique() + .IsClustered(); + + entity.Property(e => e.BillOfMaterialsId).HasComment("Primary key for BillOfMaterials records."); + entity.Property(e => e.Bomlevel).HasComment("Indicates the depth the component is from its parent (AssemblyID)."); + entity.Property(e => e.ComponentId).HasComment("Component identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.EndDate).HasComment("Date the component stopped being used in the assembly item."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.PerAssemblyQty) + .HasDefaultValue(1.00m) + .HasComment("Quantity of the component needed to create the assembly."); + entity.Property(e => e.ProductAssemblyId).HasComment("Parent product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.StartDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date the component started being used in the assembly item."); + entity.Property(e => e.UnitMeasureCode) + .IsFixedLength() + .HasComment("Standard code identifying the unit of measure for the quantity."); + + entity.HasOne(d => d.Component).WithMany(p => p.BillOfMaterialComponents).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.UnitMeasureCodeNavigation).WithMany(p => p.BillOfMaterials).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.BusinessEntityId).HasName("PK_BusinessEntity_BusinessEntityID"); + + entity.ToTable("BusinessEntity", "Person", tb => tb.HasComment("Source of the ID that connects vendors, customers, and employees with address and contact information.")); + + entity.Property(e => e.BusinessEntityId).HasComment("Primary key for all customers, vendors, and employees."); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); - entity.Property(e => e.NameStyle).HasComment("0 = The data in FirstName and LastName are stored in western style (first name, last name) order. 1 = Eastern style (last name, first name) order."); - entity.Property(e => e.PasswordHash).HasComment("Password for the e-mail account."); - entity.Property(e => e.PasswordSalt).HasComment("Random value concatenated with the password string before the password is hashed."); - entity.Property(e => e.Phone).HasComment("Phone number associated with the person."); entity.Property(e => e.Rowguid) .HasDefaultValueSql("(newid())") .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); - entity.Property(e => e.SalesPerson).HasComment("The customer's sales person, an employee of AdventureWorks Cycles."); - entity.Property(e => e.Suffix).HasComment("Surname suffix. For example, Sr. or Jr."); - entity.Property(e => e.Title).HasComment("A courtesy title. For example, Mr. or Ms."); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.CustomerId, e.AddressId }).HasName("PK_CustomerAddress_CustomerID_AddressID"); + entity.HasKey(e => new { e.BusinessEntityId, e.AddressId, e.AddressTypeId }).HasName("PK_BusinessEntityAddress_BusinessEntityID_AddressID_AddressTypeID"); - entity.ToTable("CustomerAddress", "SalesLT", tb => tb.HasComment("Cross-reference table mapping customers to their address(es).")); + entity.ToTable("BusinessEntityAddress", "Person", tb => tb.HasComment("Cross-reference table mapping customers, vendors, and employees to their addresses.")); - entity.Property(e => e.CustomerId).HasComment("Primary key. Foreign key to Customer.CustomerID."); + entity.Property(e => e.BusinessEntityId).HasComment("Primary key. Foreign key to BusinessEntity.BusinessEntityID."); entity.Property(e => e.AddressId).HasComment("Primary key. Foreign key to Address.AddressID."); - entity.Property(e => e.AddressType).HasComment("The kind of Address. One of: Archive, Billing, Home, Main Office, Primary, Shipping"); + entity.Property(e => e.AddressTypeId).HasComment("Primary key. Foreign key to AddressType.AddressTypeID."); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); @@ -119,206 +275,1397 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasDefaultValueSql("(newid())") .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); - entity.HasOne(d => d.Address).WithMany(p => p.CustomerAddresses).OnDelete(DeleteBehavior.ClientSetNull); + entity.HasOne(d => d.Address).WithMany(p => p.BusinessEntityAddresses).OnDelete(DeleteBehavior.ClientSetNull); - entity.HasOne(d => d.Customer).WithMany(p => p.CustomerAddresses).OnDelete(DeleteBehavior.ClientSetNull); + entity.HasOne(d => d.AddressType).WithMany(p => p.BusinessEntityAddresses).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.BusinessEntityAddresses).OnDelete(DeleteBehavior.ClientSetNull); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => e.ErrorLogId).HasName("PK_ErrorLog_ErrorLogID"); + entity.HasKey(e => new { e.BusinessEntityId, e.PersonId, e.ContactTypeId }).HasName("PK_BusinessEntityContact_BusinessEntityID_PersonID_ContactTypeID"); - entity.ToTable("ErrorLog", tb => tb.HasComment("Audit table tracking errors in the the AdventureWorks database that are caught by the CATCH block of a TRY...CATCH construct. Data is inserted by stored procedure dbo.uspLogError when it is executed from inside the CATCH block of a TRY...CATCH construct.")); + entity.ToTable("BusinessEntityContact", "Person", tb => tb.HasComment("Cross-reference table mapping stores, vendors, and employees to people")); - entity.Property(e => e.ErrorLogId).HasComment("Primary key for ErrorLog records."); - entity.Property(e => e.ErrorLine).HasComment("The line number at which the error occurred."); - entity.Property(e => e.ErrorMessage).HasComment("The message text of the error that occurred."); - entity.Property(e => e.ErrorNumber).HasComment("The error number of the error that occurred."); - entity.Property(e => e.ErrorProcedure).HasComment("The name of the stored procedure or trigger where the error occurred."); - entity.Property(e => e.ErrorSeverity).HasComment("The severity of the error that occurred."); - entity.Property(e => e.ErrorState).HasComment("The state number of the error that occurred."); - entity.Property(e => e.ErrorTime) + entity.Property(e => e.BusinessEntityId).HasComment("Primary key. Foreign key to BusinessEntity.BusinessEntityID."); + entity.Property(e => e.PersonId).HasComment("Primary key. Foreign key to Person.BusinessEntityID."); + entity.Property(e => e.ContactTypeId).HasComment("Primary key. Foreign key to ContactType.ContactTypeID."); + entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") - .HasComment("The date and time at which the error occurred."); - entity.Property(e => e.UserName).HasComment("The user who executed the batch in which the error occurred."); + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.BusinessEntityContacts).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.ContactType).WithMany(p => p.BusinessEntityContacts).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.Person).WithMany(p => p.BusinessEntityContacts).OnDelete(DeleteBehavior.ClientSetNull); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => e.ProductId).HasName("PK_Product_ProductID"); + entity.HasKey(e => e.ContactTypeId).HasName("PK_ContactType_ContactTypeID"); - entity.ToTable("Product", "SalesLT", tb => tb.HasComment("Products sold or used in the manfacturing of sold products.")); + entity.ToTable("ContactType", "Person", tb => tb.HasComment("Lookup table containing the types of business entity contacts.")); - entity.Property(e => e.ProductId).HasComment("Primary key for Product records."); - entity.Property(e => e.Color).HasComment("Product color."); - entity.Property(e => e.DiscontinuedDate).HasComment("Date the product was discontinued."); - entity.Property(e => e.ListPrice).HasComment("Selling price."); + entity.Property(e => e.ContactTypeId).HasComment("Primary key for ContactType records."); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); - entity.Property(e => e.Name).HasComment("Name of the product."); - entity.Property(e => e.ProductCategoryId).HasComment("Product is a member of this product category. Foreign key to ProductCategory.ProductCategoryID. "); - entity.Property(e => e.ProductModelId).HasComment("Product is a member of this product model. Foreign key to ProductModel.ProductModelID."); - entity.Property(e => e.ProductNumber).HasComment("Unique product identification number."); - entity.Property(e => e.Rowguid) - .HasDefaultValueSql("(newid())") - .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); - entity.Property(e => e.SellEndDate).HasComment("Date the product was no longer available for sale."); - entity.Property(e => e.SellStartDate).HasComment("Date the product was available for sale."); - entity.Property(e => e.Size).HasComment("Product size."); - entity.Property(e => e.StandardCost).HasComment("Standard cost of the product."); - entity.Property(e => e.ThumbNailPhoto).HasComment("Small image of the product."); - entity.Property(e => e.ThumbnailPhotoFileName).HasComment("Small image file name."); - entity.Property(e => e.Weight).HasComment("Product weight."); + entity.Property(e => e.Name).HasComment("Contact type description."); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => e.ProductCategoryId).HasName("PK_ProductCategory_ProductCategoryID"); + entity.HasKey(e => e.CountryRegionCode).HasName("PK_CountryRegion_CountryRegionCode"); - entity.ToTable("ProductCategory", "SalesLT", tb => tb.HasComment("High-level product categorization.")); + entity.ToTable("CountryRegion", "Person", tb => tb.HasComment("Lookup table containing the ISO standard codes for countries and regions.")); - entity.Property(e => e.ProductCategoryId).HasComment("Primary key for ProductCategory records."); + entity.Property(e => e.CountryRegionCode).HasComment("ISO standard code for countries and regions."); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); - entity.Property(e => e.Name).HasComment("Category description."); - entity.Property(e => e.ParentProductCategoryId).HasComment("Product category identification number of immediate ancestor category. Foreign key to ProductCategory.ProductCategoryID."); - entity.Property(e => e.Rowguid) - .HasDefaultValueSql("(newid())") - .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.Name).HasComment("Country or region name."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.CountryRegionCode, e.CurrencyCode }).HasName("PK_CountryRegionCurrency_CountryRegionCode_CurrencyCode"); + + entity.ToTable("CountryRegionCurrency", "Sales", tb => tb.HasComment("Cross-reference table mapping ISO currency codes to a country or region.")); + + entity.Property(e => e.CountryRegionCode).HasComment("ISO code for countries and regions. Foreign key to CountryRegion.CountryRegionCode."); + entity.Property(e => e.CurrencyCode) + .IsFixedLength() + .HasComment("ISO standard currency code. Foreign key to Currency.CurrencyCode."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + + entity.HasOne(d => d.CountryRegionCodeNavigation).WithMany(p => p.CountryRegionCurrencies).OnDelete(DeleteBehavior.ClientSetNull); - entity.HasOne(d => d.ParentProductCategory).WithMany(p => p.InverseParentProductCategory).HasConstraintName("FK_ProductCategory_ProductCategory_ParentProductCategoryID_ProductCategoryID"); + entity.HasOne(d => d.CurrencyCodeNavigation).WithMany(p => p.CountryRegionCurrencies).OnDelete(DeleteBehavior.ClientSetNull); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => e.ProductDescriptionId).HasName("PK_ProductDescription_ProductDescriptionID"); + entity.HasKey(e => e.CreditCardId).HasName("PK_CreditCard_CreditCardID"); - entity.ToTable("ProductDescription", "SalesLT", tb => tb.HasComment("Product descriptions in several languages.")); + entity.ToTable("CreditCard", "Sales", tb => tb.HasComment("Customer credit card information.")); - entity.Property(e => e.ProductDescriptionId).HasComment("Primary key for ProductDescription records."); - entity.Property(e => e.Description).HasComment("Description of the product."); + entity.Property(e => e.CreditCardId).HasComment("Primary key for CreditCard records."); + entity.Property(e => e.CardNumber).HasComment("Credit card number."); + entity.Property(e => e.CardType).HasComment("Credit card name."); + entity.Property(e => e.ExpMonth).HasComment("Credit card expiration month."); + entity.Property(e => e.ExpYear).HasComment("Credit card expiration year."); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); - entity.Property(e => e.Rowguid) - .HasDefaultValueSql("(newid())") - .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => e.ProductModelId).HasName("PK_ProductModel_ProductModelID"); + entity.HasKey(e => e.CultureId).HasName("PK_Culture_CultureID"); + + entity.ToTable("Culture", "Production", tb => tb.HasComment("Lookup table containing the languages in which some AdventureWorks data is stored.")); - entity.Property(e => e.ModifiedDate).HasDefaultValueSql("(getdate())"); - entity.Property(e => e.Rowguid).HasDefaultValueSql("(newid())"); + entity.Property(e => e.CultureId) + .IsFixedLength() + .HasComment("Primary key for Culture records."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Culture description."); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.ProductModelId, e.ProductDescriptionId, e.Culture }).HasName("PK_ProductModelProductDescription_ProductModelID_ProductDescriptionID_Culture"); + entity.HasKey(e => e.CurrencyCode).HasName("PK_Currency_CurrencyCode"); - entity.ToTable("ProductModelProductDescription", "SalesLT", tb => tb.HasComment("Cross-reference table mapping product descriptions and the language the description is written in.")); + entity.ToTable("Currency", "Sales", tb => tb.HasComment("Lookup table containing standard ISO currencies.")); - entity.Property(e => e.ProductModelId).HasComment("Primary key. Foreign key to ProductModel.ProductModelID."); - entity.Property(e => e.ProductDescriptionId).HasComment("Primary key. Foreign key to ProductDescription.ProductDescriptionID."); - entity.Property(e => e.Culture) + entity.Property(e => e.CurrencyCode) + .IsFixedLength() + .HasComment("The ISO code for the Currency."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Currency name."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.CurrencyRateId).HasName("PK_CurrencyRate_CurrencyRateID"); + + entity.ToTable("CurrencyRate", "Sales", tb => tb.HasComment("Currency exchange rates.")); + + entity.Property(e => e.CurrencyRateId).HasComment("Primary key for CurrencyRate records."); + entity.Property(e => e.AverageRate).HasComment("Average exchange rate for the day."); + entity.Property(e => e.CurrencyRateDate).HasComment("Date and time the exchange rate was obtained."); + entity.Property(e => e.EndOfDayRate).HasComment("Final exchange rate for the day."); + entity.Property(e => e.FromCurrencyCode) .IsFixedLength() - .HasComment("The culture for which the description is written"); + .HasComment("Exchange rate was converted from this currency code."); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); - entity.Property(e => e.Rowguid).HasDefaultValueSql("(newid())"); + entity.Property(e => e.ToCurrencyCode) + .IsFixedLength() + .HasComment("Exchange rate was converted to this currency code."); - entity.HasOne(d => d.ProductDescription).WithMany(p => p.ProductModelProductDescriptions).OnDelete(DeleteBehavior.ClientSetNull); + entity.HasOne(d => d.FromCurrencyCodeNavigation).WithMany(p => p.CurrencyRateFromCurrencyCodeNavigations).OnDelete(DeleteBehavior.ClientSetNull); - entity.HasOne(d => d.ProductModel).WithMany(p => p.ProductModelProductDescriptions).OnDelete(DeleteBehavior.ClientSetNull); + entity.HasOne(d => d.ToCurrencyCodeNavigation).WithMany(p => p.CurrencyRateToCurrencyCodeNavigations).OnDelete(DeleteBehavior.ClientSetNull); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.SalesOrderId, e.SalesOrderDetailId }).HasName("PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID"); + entity.HasKey(e => e.CustomerId).HasName("PK_Customer_CustomerID"); - entity.ToTable("SalesOrderDetail", "SalesLT", tb => - { - tb.HasComment("Individual products associated with a specific sales order. See SalesOrderHeader."); - tb.HasTrigger("iduSalesOrderDetail"); - }); + entity.ToTable("Customer", "Sales", tb => tb.HasComment("Current customer information. Also see the Person and Store tables.")); - entity.Property(e => e.SalesOrderId).HasComment("Primary key. Foreign key to SalesOrderHeader.SalesOrderID."); - entity.Property(e => e.SalesOrderDetailId) + entity.Property(e => e.CustomerId).HasComment("Primary key."); + entity.Property(e => e.AccountNumber) + .HasComputedColumnSql("(isnull('AW'+[dbo].[ufnLeadingZeros]([CustomerID]),''))", false) + .HasComment("Unique number identifying the customer assigned by the accounting system."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.PersonId).HasComment("Foreign key to Person.BusinessEntityID"); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.StoreId).HasComment("Foreign key to Store.BusinessEntityID"); + entity.Property(e => e.TerritoryId).HasComment("ID of the territory in which the customer is located. Foreign key to SalesTerritory.SalesTerritoryID."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.DatabaseLogId) + .HasName("PK_DatabaseLog_DatabaseLogID") + .IsClustered(false); + + entity.ToTable("DatabaseLog", tb => tb.HasComment("Audit table tracking all DDL changes made to the AdventureWorks database. Data is captured by the database trigger ddlDatabaseTriggerLog.")); + + entity.Property(e => e.DatabaseLogId).HasComment("Primary key for DatabaseLog records."); + entity.Property(e => e.DatabaseUser).HasComment("The user who implemented the DDL change."); + entity.Property(e => e.Event).HasComment("The type of DDL statement that was executed."); + entity.Property(e => e.Object).HasComment("The object that was changed by the DDL statment."); + entity.Property(e => e.PostTime).HasComment("The date and time the DDL change occurred."); + entity.Property(e => e.Schema).HasComment("The schema to which the changed object belongs."); + entity.Property(e => e.Tsql).HasComment("The exact Transact-SQL statement that was executed."); + entity.Property(e => e.XmlEvent).HasComment("The raw XML data generated by database trigger."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.DepartmentId).HasName("PK_Department_DepartmentID"); + + entity.ToTable("Department", "HumanResources", tb => tb.HasComment("Lookup table containing the departments within the Adventure Works Cycles company.")); + + entity.Property(e => e.DepartmentId).HasComment("Primary key for Department records."); + entity.Property(e => e.GroupName).HasComment("Name of the group to which the department belongs."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Name of the department."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.BusinessEntityId, e.EmailAddressId }).HasName("PK_EmailAddress_BusinessEntityID_EmailAddressID"); + + entity.ToTable("EmailAddress", "Person", tb => tb.HasComment("Where to send a person email.")); + + entity.Property(e => e.BusinessEntityId).HasComment("Primary key. Person associated with this email address. Foreign key to Person.BusinessEntityID"); + entity.Property(e => e.EmailAddressId) .ValueGeneratedOnAdd() - .HasComment("Primary key. One incremental unique number per product sold."); - entity.Property(e => e.LineTotal) - .HasComputedColumnSql("(isnull(([UnitPrice]*((1.0)-[UnitPriceDiscount]))*[OrderQty],(0.0)))", false) - .HasComment("Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty."); + .HasComment("Primary key. ID of this email address."); + entity.Property(e => e.EmailAddress1).HasComment("E-mail address for the person."); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); - entity.Property(e => e.OrderQty).HasComment("Quantity ordered per product."); - entity.Property(e => e.ProductId).HasComment("Product sold to customer. Foreign key to Product.ProductID."); entity.Property(e => e.Rowguid) .HasDefaultValueSql("(newid())") .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); - entity.Property(e => e.UnitPrice).HasComment("Selling price of a single product."); - entity.Property(e => e.UnitPriceDiscount).HasComment("Discount amount."); - entity.HasOne(d => d.Product).WithMany(p => p.SalesOrderDetails).OnDelete(DeleteBehavior.ClientSetNull); + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.EmailAddresses).OnDelete(DeleteBehavior.ClientSetNull); }); - modelBuilder.Entity(entity => + modelBuilder.Entity(entity => { - entity.HasKey(e => e.SalesOrderId).HasName("PK_SalesOrderHeader_SalesOrderID"); + entity.HasKey(e => e.BusinessEntityId).HasName("PK_Employee_BusinessEntityID"); - entity.ToTable("SalesOrderHeader", "SalesLT", tb => + entity.ToTable("Employee", "HumanResources", tb => { - tb.HasComment("General sales order information."); - tb.HasTrigger("uSalesOrderHeader"); + tb.HasComment("Employee information such as salary, department, and title."); + tb.HasTrigger("dEmployee"); }); - entity.Property(e => e.SalesOrderId).HasComment("Primary key."); - entity.Property(e => e.AccountNumber).HasComment("Financial accounting number reference."); - entity.Property(e => e.BillToAddressId).HasComment("The ID of the location to send invoices. Foreign key to the Address table."); - entity.Property(e => e.Comment).HasComment("Sales representative comments."); - entity.Property(e => e.CreditCardApprovalCode).HasComment("Approval code provided by the credit card company."); - entity.Property(e => e.CustomerId).HasComment("Customer identification number. Foreign key to Customer.CustomerID."); - entity.Property(e => e.DueDate).HasComment("Date the order is due to the customer."); - entity.Property(e => e.Freight).HasComment("Shipping cost."); + entity.Property(e => e.BusinessEntityId) + .ValueGeneratedNever() + .HasComment("Primary key for Employee records. Foreign key to BusinessEntity.BusinessEntityID."); + entity.Property(e => e.BirthDate).HasComment("Date of birth."); + entity.Property(e => e.CurrentFlag) + .HasDefaultValue(true) + .HasComment("0 = Inactive, 1 = Active"); + entity.Property(e => e.Gender) + .IsFixedLength() + .HasComment("M = Male, F = Female"); + entity.Property(e => e.HireDate).HasComment("Employee hired on this date."); + entity.Property(e => e.JobTitle).HasComment("Work title such as Buyer or Sales Representative."); + entity.Property(e => e.LoginId).HasComment("Network login."); + entity.Property(e => e.MaritalStatus) + .IsFixedLength() + .HasComment("M = Married, S = Single"); entity.Property(e => e.ModifiedDate) .HasDefaultValueSql("(getdate())") .HasComment("Date and time the record was last updated."); - entity.Property(e => e.OnlineOrderFlag) - .HasDefaultValue(true) - .HasComment("0 = Order placed by sales person. 1 = Order placed online by customer."); - entity.Property(e => e.OrderDate) - .HasDefaultValueSql("(getdate())") - .HasComment("Dates the sales order was created."); - entity.Property(e => e.PurchaseOrderNumber).HasComment("Customer purchase order number reference. "); - entity.Property(e => e.RevisionNumber).HasComment("Incremental number to track changes to the sales order over time."); + entity.Property(e => e.NationalIdnumber).HasComment("Unique national identification number such as a social security number."); + entity.Property(e => e.OrganizationLevel) + .HasComputedColumnSql("([OrganizationNode].[GetLevel]())", false) + .HasComment("The depth of the employee in the corporate hierarchy."); entity.Property(e => e.Rowguid) .HasDefaultValueSql("(newid())") .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); - entity.Property(e => e.SalesOrderNumber) - .HasComputedColumnSql("(isnull(N'SO'+CONVERT([nvarchar](23),[SalesOrderID]),N'*** ERROR ***'))", false) - .HasComment("Unique sales order identification number."); - entity.Property(e => e.ShipDate).HasComment("Date the order was shipped to the customer."); - entity.Property(e => e.ShipMethod).HasComment("Shipping method. Foreign key to ShipMethod.ShipMethodID."); - entity.Property(e => e.ShipToAddressId).HasComment("The ID of the location to send goods. Foreign key to the Address table."); - entity.Property(e => e.Status) - .HasDefaultValue((byte)1) - .HasComment("Order current status. 1 = In process; 2 = Approved; 3 = Backordered; 4 = Rejected; 5 = Shipped; 6 = Cancelled"); - entity.Property(e => e.SubTotal).HasComment("Sales subtotal. Computed as SUM(SalesOrderDetail.LineTotal)for the appropriate SalesOrderID."); - entity.Property(e => e.TaxAmt).HasComment("Tax amount."); - entity.Property(e => e.TotalDue) - .HasComputedColumnSql("(isnull(([SubTotal]+[TaxAmt])+[Freight],(0)))", false) - .HasComment("Total due from customer. Computed as Subtotal + TaxAmt + Freight."); + entity.Property(e => e.SalariedFlag) + .HasDefaultValue(true) + .HasComment("Job classification. 0 = Hourly, not exempt from collective bargaining. 1 = Salaried, exempt from collective bargaining."); + entity.Property(e => e.SickLeaveHours).HasComment("Number of available sick leave hours."); + entity.Property(e => e.VacationHours).HasComment("Number of available vacation hours."); - entity.HasOne(d => d.BillToAddress).WithMany(p => p.SalesOrderHeaderBillToAddresses).HasConstraintName("FK_SalesOrderHeader_Address_BillTo_AddressID"); + entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Employee).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.BusinessEntityId, e.StartDate, e.DepartmentId, e.ShiftId }).HasName("PK_EmployeeDepartmentHistory_BusinessEntityID_StartDate_DepartmentID"); + + entity.ToTable("EmployeeDepartmentHistory", "HumanResources", tb => tb.HasComment("Employee department transfers.")); + + entity.Property(e => e.BusinessEntityId).HasComment("Employee identification number. Foreign key to Employee.BusinessEntityID."); + entity.Property(e => e.StartDate).HasComment("Date the employee started work in the department."); + entity.Property(e => e.DepartmentId).HasComment("Department in which the employee worked including currently. Foreign key to Department.DepartmentID."); + entity.Property(e => e.ShiftId).HasComment("Identifies which 8-hour shift the employee works. Foreign key to Shift.Shift.ID."); + entity.Property(e => e.EndDate).HasComment("Date the employee left the department. NULL = Current department."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.EmployeeDepartmentHistories).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.Department).WithMany(p => p.EmployeeDepartmentHistories).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.Shift).WithMany(p => p.EmployeeDepartmentHistories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.BusinessEntityId, e.RateChangeDate }).HasName("PK_EmployeePayHistory_BusinessEntityID_RateChangeDate"); + + entity.ToTable("EmployeePayHistory", "HumanResources", tb => tb.HasComment("Employee pay history.")); + + entity.Property(e => e.BusinessEntityId).HasComment("Employee identification number. Foreign key to Employee.BusinessEntityID."); + entity.Property(e => e.RateChangeDate).HasComment("Date the change in pay is effective"); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.PayFrequency).HasComment("1 = Salary received monthly, 2 = Salary received biweekly"); + entity.Property(e => e.Rate).HasComment("Salary hourly rate."); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.EmployeePayHistories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ErrorLogId).HasName("PK_ErrorLog_ErrorLogID"); + + entity.ToTable("ErrorLog", tb => tb.HasComment("Audit table tracking errors in the the AdventureWorks database that are caught by the CATCH block of a TRY...CATCH construct. Data is inserted by stored procedure dbo.uspLogError when it is executed from inside the CATCH block of a TRY...CATCH construct.")); + + entity.Property(e => e.ErrorLogId).HasComment("Primary key for ErrorLog records."); + entity.Property(e => e.ErrorLine).HasComment("The line number at which the error occurred."); + entity.Property(e => e.ErrorMessage).HasComment("The message text of the error that occurred."); + entity.Property(e => e.ErrorNumber).HasComment("The error number of the error that occurred."); + entity.Property(e => e.ErrorProcedure).HasComment("The name of the stored procedure or trigger where the error occurred."); + entity.Property(e => e.ErrorSeverity).HasComment("The severity of the error that occurred."); + entity.Property(e => e.ErrorState).HasComment("The state number of the error that occurred."); + entity.Property(e => e.ErrorTime) + .HasDefaultValueSql("(getdate())") + .HasComment("The date and time at which the error occurred."); + entity.Property(e => e.UserName).HasComment("The user who executed the batch in which the error occurred."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.IllustrationId).HasName("PK_Illustration_IllustrationID"); + + entity.ToTable("Illustration", "Production", tb => tb.HasComment("Bicycle assembly diagrams.")); + + entity.Property(e => e.IllustrationId).HasComment("Primary key for Illustration records."); + entity.Property(e => e.Diagram).HasComment("Illustrations used in manufacturing instructions. Stored as XML."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.JobCandidateId).HasName("PK_JobCandidate_JobCandidateID"); + + entity.ToTable("JobCandidate", "HumanResources", tb => tb.HasComment("Résumés submitted to Human Resources by job applicants.")); + + entity.Property(e => e.JobCandidateId).HasComment("Primary key for JobCandidate records."); + entity.Property(e => e.BusinessEntityId).HasComment("Employee identification number if applicant was hired. Foreign key to Employee.BusinessEntityID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Resume).HasComment("Résumé in XML format."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.LocationId).HasName("PK_Location_LocationID"); + + entity.ToTable("Location", "Production", tb => tb.HasComment("Product inventory and manufacturing locations.")); + + entity.Property(e => e.LocationId).HasComment("Primary key for Location records."); + entity.Property(e => e.Availability).HasComment("Work capacity (in hours) of the manufacturing location."); + entity.Property(e => e.CostRate).HasComment("Standard hourly cost of the manufacturing location."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Location description."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.BusinessEntityId).HasName("PK_Password_BusinessEntityID"); + + entity.ToTable("Password", "Person", tb => tb.HasComment("One way hashed authentication information")); + + entity.Property(e => e.BusinessEntityId).ValueGeneratedNever(); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.PasswordHash).HasComment("Password for the e-mail account."); + entity.Property(e => e.PasswordSalt).HasComment("Random value concatenated with the password string before the password is hashed."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + + entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Password).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.BusinessEntityId).HasName("PK_Person_BusinessEntityID"); + + entity.ToTable("Person", "Person", tb => + { + tb.HasComment("Human beings involved with AdventureWorks: employees, customer contacts, and vendor contacts."); + tb.HasTrigger("iuPerson"); + }); + + entity.Property(e => e.BusinessEntityId) + .ValueGeneratedNever() + .HasComment("Primary key for Person records."); + entity.Property(e => e.AdditionalContactInfo).HasComment("Additional contact information about the person stored in xml format. "); + entity.Property(e => e.Demographics).HasComment("Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis."); + entity.Property(e => e.EmailPromotion).HasComment("0 = Contact does not wish to receive e-mail promotions, 1 = Contact does wish to receive e-mail promotions from AdventureWorks, 2 = Contact does wish to receive e-mail promotions from AdventureWorks and selected partners. "); + entity.Property(e => e.FirstName).HasComment("First name of the person."); + entity.Property(e => e.LastName).HasComment("Last name of the person."); + entity.Property(e => e.MiddleName).HasComment("Middle name or middle initial of the person."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.NameStyle).HasComment("0 = The data in FirstName and LastName are stored in western style (first name, last name) order. 1 = Eastern style (last name, first name) order."); + entity.Property(e => e.PersonType) + .IsFixedLength() + .HasComment("Primary type of person: SC = Store Contact, IN = Individual (retail) customer, SP = Sales person, EM = Employee (non-sales), VC = Vendor contact, GC = General contact"); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.Suffix).HasComment("Surname suffix. For example, Sr. or Jr."); + entity.Property(e => e.Title).HasComment("A courtesy title. For example, Mr. or Ms."); + + entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Person).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.BusinessEntityId, e.CreditCardId }).HasName("PK_PersonCreditCard_BusinessEntityID_CreditCardID"); + + entity.ToTable("PersonCreditCard", "Sales", tb => tb.HasComment("Cross-reference table mapping people to their credit card information in the CreditCard table. ")); + + entity.Property(e => e.BusinessEntityId).HasComment("Business entity identification number. Foreign key to Person.BusinessEntityID."); + entity.Property(e => e.CreditCardId).HasComment("Credit card identification number. Foreign key to CreditCard.CreditCardID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.PersonCreditCards).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.CreditCard).WithMany(p => p.PersonCreditCards).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.BusinessEntityId, e.PhoneNumber, e.PhoneNumberTypeId }).HasName("PK_PersonPhone_BusinessEntityID_PhoneNumber_PhoneNumberTypeID"); + + entity.ToTable("PersonPhone", "Person", tb => tb.HasComment("Telephone number and type of a person.")); + + entity.Property(e => e.BusinessEntityId).HasComment("Business entity identification number. Foreign key to Person.BusinessEntityID."); + entity.Property(e => e.PhoneNumber).HasComment("Telephone number identification number."); + entity.Property(e => e.PhoneNumberTypeId).HasComment("Kind of phone number. Foreign key to PhoneNumberType.PhoneNumberTypeID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.PersonPhones).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.PhoneNumberType).WithMany(p => p.PersonPhones).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.PhoneNumberTypeId).HasName("PK_PhoneNumberType_PhoneNumberTypeID"); + + entity.ToTable("PhoneNumberType", "Person", tb => tb.HasComment("Type of phone number of a person.")); + + entity.Property(e => e.PhoneNumberTypeId).HasComment("Primary key for telephone number type records."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Name of the telephone number type"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProductId).HasName("PK_Product_ProductID"); + + entity.ToTable("Product", "Production", tb => tb.HasComment("Products sold or used in the manfacturing of sold products.")); + + entity.Property(e => e.ProductId).HasComment("Primary key for Product records."); + entity.Property(e => e.Class) + .IsFixedLength() + .HasComment("H = High, M = Medium, L = Low"); + entity.Property(e => e.Color).HasComment("Product color."); + entity.Property(e => e.DaysToManufacture).HasComment("Number of days required to manufacture the product."); + entity.Property(e => e.DiscontinuedDate).HasComment("Date the product was discontinued."); + entity.Property(e => e.FinishedGoodsFlag) + .HasDefaultValue(true) + .HasComment("0 = Product is not a salable item. 1 = Product is salable."); + entity.Property(e => e.ListPrice).HasComment("Selling price."); + entity.Property(e => e.MakeFlag) + .HasDefaultValue(true) + .HasComment("0 = Product is purchased, 1 = Product is manufactured in-house."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Name of the product."); + entity.Property(e => e.ProductLine) + .IsFixedLength() + .HasComment("R = Road, M = Mountain, T = Touring, S = Standard"); + entity.Property(e => e.ProductModelId).HasComment("Product is a member of this product model. Foreign key to ProductModel.ProductModelID."); + entity.Property(e => e.ProductNumber).HasComment("Unique product identification number."); + entity.Property(e => e.ProductSubcategoryId).HasComment("Product is a member of this product subcategory. Foreign key to ProductSubCategory.ProductSubCategoryID. "); + entity.Property(e => e.ReorderPoint).HasComment("Inventory level that triggers a purchase order or work order. "); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.SafetyStockLevel).HasComment("Minimum inventory quantity. "); + entity.Property(e => e.SellEndDate).HasComment("Date the product was no longer available for sale."); + entity.Property(e => e.SellStartDate).HasComment("Date the product was available for sale."); + entity.Property(e => e.Size).HasComment("Product size."); + entity.Property(e => e.SizeUnitMeasureCode) + .IsFixedLength() + .HasComment("Unit of measure for Size column."); + entity.Property(e => e.StandardCost).HasComment("Standard cost of the product."); + entity.Property(e => e.Style) + .IsFixedLength() + .HasComment("W = Womens, M = Mens, U = Universal"); + entity.Property(e => e.Weight).HasComment("Product weight."); + entity.Property(e => e.WeightUnitMeasureCode) + .IsFixedLength() + .HasComment("Unit of measure for Weight column."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProductCategoryId).HasName("PK_ProductCategory_ProductCategoryID"); + + entity.ToTable("ProductCategory", "Production", tb => tb.HasComment("High-level product categorization.")); + + entity.Property(e => e.ProductCategoryId).HasComment("Primary key for ProductCategory records."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Category description."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.ProductId, e.StartDate }).HasName("PK_ProductCostHistory_ProductID_StartDate"); + + entity.ToTable("ProductCostHistory", "Production", tb => tb.HasComment("Changes in the cost of a product over time.")); + + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID"); + entity.Property(e => e.StartDate).HasComment("Product cost start date."); + entity.Property(e => e.EndDate).HasComment("Product cost end date."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.StandardCost).HasComment("Standard cost of the product."); + + entity.HasOne(d => d.Product).WithMany(p => p.ProductCostHistories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProductDescriptionId).HasName("PK_ProductDescription_ProductDescriptionID"); + + entity.ToTable("ProductDescription", "Production", tb => tb.HasComment("Product descriptions in several languages.")); + + entity.Property(e => e.ProductDescriptionId).HasComment("Primary key for ProductDescription records."); + entity.Property(e => e.Description).HasComment("Description of the product."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.ProductId, e.LocationId }).HasName("PK_ProductInventory_ProductID_LocationID"); + + entity.ToTable("ProductInventory", "Production", tb => tb.HasComment("Product inventory information.")); + + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.LocationId).HasComment("Inventory location identification number. Foreign key to Location.LocationID. "); + entity.Property(e => e.Bin).HasComment("Storage container on a shelf in an inventory location."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Quantity).HasComment("Quantity of products in the inventory location."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.Shelf).HasComment("Storage compartment within an inventory location."); + + entity.HasOne(d => d.Location).WithMany(p => p.ProductInventories).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.Product).WithMany(p => p.ProductInventories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.ProductId, e.StartDate }).HasName("PK_ProductListPriceHistory_ProductID_StartDate"); + + entity.ToTable("ProductListPriceHistory", "Production", tb => tb.HasComment("Changes in the list price of a product over time.")); + + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID"); + entity.Property(e => e.StartDate).HasComment("List price start date."); + entity.Property(e => e.EndDate).HasComment("List price end date"); + entity.Property(e => e.ListPrice).HasComment("Product list price."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + + entity.HasOne(d => d.Product).WithMany(p => p.ProductListPriceHistories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProductModelId).HasName("PK_ProductModel_ProductModelID"); + + entity.ToTable("ProductModel", "Production", tb => tb.HasComment("Product model classification.")); + + entity.Property(e => e.ProductModelId).HasComment("Primary key for ProductModel records."); + entity.Property(e => e.CatalogDescription).HasComment("Detailed product catalog information in xml format."); + entity.Property(e => e.Instructions).HasComment("Manufacturing instructions in xml format."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Product model description."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.ProductModelId, e.IllustrationId }).HasName("PK_ProductModelIllustration_ProductModelID_IllustrationID"); + + entity.ToTable("ProductModelIllustration", "Production", tb => tb.HasComment("Cross-reference table mapping product models and illustrations.")); + + entity.Property(e => e.ProductModelId).HasComment("Primary key. Foreign key to ProductModel.ProductModelID."); + entity.Property(e => e.IllustrationId).HasComment("Primary key. Foreign key to Illustration.IllustrationID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + + entity.HasOne(d => d.Illustration).WithMany(p => p.ProductModelIllustrations).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.ProductModel).WithMany(p => p.ProductModelIllustrations).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.ProductModelId, e.ProductDescriptionId, e.CultureId }).HasName("PK_ProductModelProductDescriptionCulture_ProductModelID_ProductDescriptionID_CultureID"); + + entity.ToTable("ProductModelProductDescriptionCulture", "Production", tb => tb.HasComment("Cross-reference table mapping product descriptions and the language the description is written in.")); + + entity.Property(e => e.ProductModelId).HasComment("Primary key. Foreign key to ProductModel.ProductModelID."); + entity.Property(e => e.ProductDescriptionId).HasComment("Primary key. Foreign key to ProductDescription.ProductDescriptionID."); + entity.Property(e => e.CultureId) + .IsFixedLength() + .HasComment("Culture identification number. Foreign key to Culture.CultureID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + + entity.HasOne(d => d.Culture).WithMany(p => p.ProductModelProductDescriptionCultures).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.ProductDescription).WithMany(p => p.ProductModelProductDescriptionCultures).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.ProductModel).WithMany(p => p.ProductModelProductDescriptionCultures).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProductPhotoId).HasName("PK_ProductPhoto_ProductPhotoID"); + + entity.ToTable("ProductPhoto", "Production", tb => tb.HasComment("Product images.")); + + entity.Property(e => e.ProductPhotoId).HasComment("Primary key for ProductPhoto records."); + entity.Property(e => e.LargePhoto).HasComment("Large image of the product."); + entity.Property(e => e.LargePhotoFileName).HasComment("Large image file name."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.ThumbNailPhoto).HasComment("Small image of the product."); + entity.Property(e => e.ThumbnailPhotoFileName).HasComment("Small image file name."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.ProductId, e.ProductPhotoId }) + .HasName("PK_ProductProductPhoto_ProductID_ProductPhotoID") + .IsClustered(false); + + entity.ToTable("ProductProductPhoto", "Production", tb => tb.HasComment("Cross-reference table mapping products and product photos.")); + + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.ProductPhotoId).HasComment("Product photo identification number. Foreign key to ProductPhoto.ProductPhotoID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Primary).HasComment("0 = Photo is not the principal image. 1 = Photo is the principal image."); + + entity.HasOne(d => d.Product).WithMany(p => p.ProductProductPhotos).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.ProductPhoto).WithMany(p => p.ProductProductPhotos).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProductReviewId).HasName("PK_ProductReview_ProductReviewID"); + + entity.ToTable("ProductReview", "Production", tb => tb.HasComment("Customer reviews of products they have purchased.")); + + entity.Property(e => e.ProductReviewId).HasComment("Primary key for ProductReview records."); + entity.Property(e => e.Comments).HasComment("Reviewer's comments"); + entity.Property(e => e.EmailAddress).HasComment("Reviewer's e-mail address."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.Rating).HasComment("Product rating given by the reviewer. Scale is 1 to 5 with 5 as the highest rating."); + entity.Property(e => e.ReviewDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date review was submitted."); + entity.Property(e => e.ReviewerName).HasComment("Name of the reviewer."); + + entity.HasOne(d => d.Product).WithMany(p => p.ProductReviews).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProductSubcategoryId).HasName("PK_ProductSubcategory_ProductSubcategoryID"); + + entity.ToTable("ProductSubcategory", "Production", tb => tb.HasComment("Product subcategories. See ProductCategory table.")); + + entity.Property(e => e.ProductSubcategoryId).HasComment("Primary key for ProductSubcategory records."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Subcategory description."); + entity.Property(e => e.ProductCategoryId).HasComment("Product category identification number. Foreign key to ProductCategory.ProductCategoryID."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + + entity.HasOne(d => d.ProductCategory).WithMany(p => p.ProductSubcategories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.ProductId, e.BusinessEntityId }).HasName("PK_ProductVendor_ProductID_BusinessEntityID"); + + entity.ToTable("ProductVendor", "Purchasing", tb => tb.HasComment("Cross-reference table mapping vendors with the products they supply.")); + + entity.Property(e => e.ProductId).HasComment("Primary key. Foreign key to Product.ProductID."); + entity.Property(e => e.BusinessEntityId).HasComment("Primary key. Foreign key to Vendor.BusinessEntityID."); + entity.Property(e => e.AverageLeadTime).HasComment("The average span of time (in days) between placing an order with the vendor and receiving the purchased product."); + entity.Property(e => e.LastReceiptCost).HasComment("The selling price when last purchased."); + entity.Property(e => e.LastReceiptDate).HasComment("Date the product was last received by the vendor."); + entity.Property(e => e.MaxOrderQty).HasComment("The minimum quantity that should be ordered."); + entity.Property(e => e.MinOrderQty).HasComment("The maximum quantity that should be ordered."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.OnOrderQty).HasComment("The quantity currently on order."); + entity.Property(e => e.StandardPrice).HasComment("The vendor's usual selling price."); + entity.Property(e => e.UnitMeasureCode) + .IsFixedLength() + .HasComment("The product's unit of measure."); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.ProductVendors).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.Product).WithMany(p => p.ProductVendors).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.UnitMeasureCodeNavigation).WithMany(p => p.ProductVendors).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.PurchaseOrderId, e.PurchaseOrderDetailId }).HasName("PK_PurchaseOrderDetail_PurchaseOrderID_PurchaseOrderDetailID"); + + entity.ToTable("PurchaseOrderDetail", "Purchasing", tb => + { + tb.HasComment("Individual products associated with a specific purchase order. See PurchaseOrderHeader."); + tb.HasTrigger("iPurchaseOrderDetail"); + tb.HasTrigger("uPurchaseOrderDetail"); + }); + + entity.Property(e => e.PurchaseOrderId).HasComment("Primary key. Foreign key to PurchaseOrderHeader.PurchaseOrderID."); + entity.Property(e => e.PurchaseOrderDetailId) + .ValueGeneratedOnAdd() + .HasComment("Primary key. One line number per purchased product."); + entity.Property(e => e.DueDate).HasComment("Date the product is expected to be received."); + entity.Property(e => e.LineTotal) + .HasComputedColumnSql("(isnull([OrderQty]*[UnitPrice],(0.00)))", false) + .HasComment("Per product subtotal. Computed as OrderQty * UnitPrice."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.OrderQty).HasComment("Quantity ordered."); + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.ReceivedQty).HasComment("Quantity actually received from the vendor."); + entity.Property(e => e.RejectedQty).HasComment("Quantity rejected during inspection."); + entity.Property(e => e.StockedQty) + .HasComputedColumnSql("(isnull([ReceivedQty]-[RejectedQty],(0.00)))", false) + .HasComment("Quantity accepted into inventory. Computed as ReceivedQty - RejectedQty."); + entity.Property(e => e.UnitPrice).HasComment("Vendor's selling price of a single product."); + + entity.HasOne(d => d.Product).WithMany(p => p.PurchaseOrderDetails).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.PurchaseOrder).WithMany(p => p.PurchaseOrderDetails).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.PurchaseOrderId).HasName("PK_PurchaseOrderHeader_PurchaseOrderID"); + + entity.ToTable("PurchaseOrderHeader", "Purchasing", tb => + { + tb.HasComment("General purchase order information. See PurchaseOrderDetail."); + tb.HasTrigger("uPurchaseOrderHeader"); + }); + + entity.Property(e => e.PurchaseOrderId).HasComment("Primary key."); + entity.Property(e => e.EmployeeId).HasComment("Employee who created the purchase order. Foreign key to Employee.BusinessEntityID."); + entity.Property(e => e.Freight).HasComment("Shipping cost."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.OrderDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Purchase order creation date."); + entity.Property(e => e.RevisionNumber).HasComment("Incremental number to track changes to the purchase order over time."); + entity.Property(e => e.ShipDate).HasComment("Estimated shipment date from the vendor."); + entity.Property(e => e.ShipMethodId).HasComment("Shipping method. Foreign key to ShipMethod.ShipMethodID."); + entity.Property(e => e.Status) + .HasDefaultValue((byte)1) + .HasComment("Order current status. 1 = Pending; 2 = Approved; 3 = Rejected; 4 = Complete"); + entity.Property(e => e.SubTotal).HasComment("Purchase order subtotal. Computed as SUM(PurchaseOrderDetail.LineTotal)for the appropriate PurchaseOrderID."); + entity.Property(e => e.TaxAmt).HasComment("Tax amount."); + entity.Property(e => e.TotalDue) + .HasComputedColumnSql("(isnull(([SubTotal]+[TaxAmt])+[Freight],(0)))", true) + .HasComment("Total due to vendor. Computed as Subtotal + TaxAmt + Freight."); + entity.Property(e => e.VendorId).HasComment("Vendor with whom the purchase order is placed. Foreign key to Vendor.BusinessEntityID."); + + entity.HasOne(d => d.Employee).WithMany(p => p.PurchaseOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.ShipMethod).WithMany(p => p.PurchaseOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.Vendor).WithMany(p => p.PurchaseOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.SalesOrderId, e.SalesOrderDetailId }).HasName("PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID"); + + entity.ToTable("SalesOrderDetail", "Sales", tb => + { + tb.HasComment("Individual products associated with a specific sales order. See SalesOrderHeader."); + tb.HasTrigger("iduSalesOrderDetail"); + }); + + entity.Property(e => e.SalesOrderId).HasComment("Primary key. Foreign key to SalesOrderHeader.SalesOrderID."); + entity.Property(e => e.SalesOrderDetailId) + .ValueGeneratedOnAdd() + .HasComment("Primary key. One incremental unique number per product sold."); + entity.Property(e => e.CarrierTrackingNumber).HasComment("Shipment tracking number supplied by the shipper."); + entity.Property(e => e.LineTotal) + .HasComputedColumnSql("(isnull(([UnitPrice]*((1.0)-[UnitPriceDiscount]))*[OrderQty],(0.0)))", false) + .HasComment("Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.OrderQty).HasComment("Quantity ordered per product."); + entity.Property(e => e.ProductId).HasComment("Product sold to customer. Foreign key to Product.ProductID."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.SpecialOfferId).HasComment("Promotional code. Foreign key to SpecialOffer.SpecialOfferID."); + entity.Property(e => e.UnitPrice).HasComment("Selling price of a single product."); + entity.Property(e => e.UnitPriceDiscount).HasComment("Discount amount."); + + entity.HasOne(d => d.SpecialOfferProduct).WithMany(p => p.SalesOrderDetails) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.SalesOrderId).HasName("PK_SalesOrderHeader_SalesOrderID"); + + entity.ToTable("SalesOrderHeader", "Sales", tb => + { + tb.HasComment("General sales order information."); + tb.HasTrigger("uSalesOrderHeader"); + }); + + entity.Property(e => e.SalesOrderId).HasComment("Primary key."); + entity.Property(e => e.AccountNumber).HasComment("Financial accounting number reference."); + entity.Property(e => e.BillToAddressId).HasComment("Customer billing address. Foreign key to Address.AddressID."); + entity.Property(e => e.Comment).HasComment("Sales representative comments."); + entity.Property(e => e.CreditCardApprovalCode).HasComment("Approval code provided by the credit card company."); + entity.Property(e => e.CreditCardId).HasComment("Credit card identification number. Foreign key to CreditCard.CreditCardID."); + entity.Property(e => e.CurrencyRateId).HasComment("Currency exchange rate used. Foreign key to CurrencyRate.CurrencyRateID."); + entity.Property(e => e.CustomerId).HasComment("Customer identification number. Foreign key to Customer.BusinessEntityID."); + entity.Property(e => e.DueDate).HasComment("Date the order is due to the customer."); + entity.Property(e => e.Freight).HasComment("Shipping cost."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.OnlineOrderFlag) + .HasDefaultValue(true) + .HasComment("0 = Order placed by sales person. 1 = Order placed online by customer."); + entity.Property(e => e.OrderDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Dates the sales order was created."); + entity.Property(e => e.PurchaseOrderNumber).HasComment("Customer purchase order number reference. "); + entity.Property(e => e.RevisionNumber).HasComment("Incremental number to track changes to the sales order over time."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.SalesOrderNumber) + .HasComputedColumnSql("(isnull(N'SO'+CONVERT([nvarchar](23),[SalesOrderID]),N'*** ERROR ***'))", false) + .HasComment("Unique sales order identification number."); + entity.Property(e => e.SalesPersonId).HasComment("Sales person who created the sales order. Foreign key to SalesPerson.BusinessEntityID."); + entity.Property(e => e.ShipDate).HasComment("Date the order was shipped to the customer."); + entity.Property(e => e.ShipMethodId).HasComment("Shipping method. Foreign key to ShipMethod.ShipMethodID."); + entity.Property(e => e.ShipToAddressId).HasComment("Customer shipping address. Foreign key to Address.AddressID."); + entity.Property(e => e.Status) + .HasDefaultValue((byte)1) + .HasComment("Order current status. 1 = In process; 2 = Approved; 3 = Backordered; 4 = Rejected; 5 = Shipped; 6 = Cancelled"); + entity.Property(e => e.SubTotal).HasComment("Sales subtotal. Computed as SUM(SalesOrderDetail.LineTotal)for the appropriate SalesOrderID."); + entity.Property(e => e.TaxAmt).HasComment("Tax amount."); + entity.Property(e => e.TerritoryId).HasComment("Territory in which the sale was made. Foreign key to SalesTerritory.SalesTerritoryID."); + entity.Property(e => e.TotalDue) + .HasComputedColumnSql("(isnull(([SubTotal]+[TaxAmt])+[Freight],(0)))", false) + .HasComment("Total due from customer. Computed as Subtotal + TaxAmt + Freight."); + + entity.HasOne(d => d.BillToAddress).WithMany(p => p.SalesOrderHeaderBillToAddresses).OnDelete(DeleteBehavior.ClientSetNull); entity.HasOne(d => d.Customer).WithMany(p => p.SalesOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull); - entity.HasOne(d => d.ShipToAddress).WithMany(p => p.SalesOrderHeaderShipToAddresses).HasConstraintName("FK_SalesOrderHeader_Address_ShipTo_AddressID"); + entity.HasOne(d => d.ShipMethod).WithMany(p => p.SalesOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.ShipToAddress).WithMany(p => p.SalesOrderHeaderShipToAddresses).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.SalesOrderId, e.SalesReasonId }).HasName("PK_SalesOrderHeaderSalesReason_SalesOrderID_SalesReasonID"); + + entity.ToTable("SalesOrderHeaderSalesReason", "Sales", tb => tb.HasComment("Cross-reference table mapping sales orders to sales reason codes.")); + + entity.Property(e => e.SalesOrderId).HasComment("Primary key. Foreign key to SalesOrderHeader.SalesOrderID."); + entity.Property(e => e.SalesReasonId).HasComment("Primary key. Foreign key to SalesReason.SalesReasonID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + + entity.HasOne(d => d.SalesReason).WithMany(p => p.SalesOrderHeaderSalesReasons).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.BusinessEntityId).HasName("PK_SalesPerson_BusinessEntityID"); + + entity.ToTable("SalesPerson", "Sales", tb => tb.HasComment("Sales representative current information.")); + + entity.Property(e => e.BusinessEntityId) + .ValueGeneratedNever() + .HasComment("Primary key for SalesPerson records. Foreign key to Employee.BusinessEntityID"); + entity.Property(e => e.Bonus).HasComment("Bonus due if quota is met."); + entity.Property(e => e.CommissionPct).HasComment("Commision percent received per sale."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.SalesLastYear).HasComment("Sales total of previous year."); + entity.Property(e => e.SalesQuota).HasComment("Projected yearly sales."); + entity.Property(e => e.SalesYtd).HasComment("Sales total year to date."); + entity.Property(e => e.TerritoryId).HasComment("Territory currently assigned to. Foreign key to SalesTerritory.SalesTerritoryID."); + + entity.HasOne(d => d.BusinessEntity).WithOne(p => p.SalesPerson).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.BusinessEntityId, e.QuotaDate }).HasName("PK_SalesPersonQuotaHistory_BusinessEntityID_QuotaDate"); + + entity.ToTable("SalesPersonQuotaHistory", "Sales", tb => tb.HasComment("Sales performance tracking.")); + + entity.Property(e => e.BusinessEntityId).HasComment("Sales person identification number. Foreign key to SalesPerson.BusinessEntityID."); + entity.Property(e => e.QuotaDate).HasComment("Sales quota date."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.SalesQuota).HasComment("Sales quota amount."); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.SalesPersonQuotaHistories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.SalesReasonId).HasName("PK_SalesReason_SalesReasonID"); + + entity.ToTable("SalesReason", "Sales", tb => tb.HasComment("Lookup table of customer purchase reasons.")); + + entity.Property(e => e.SalesReasonId).HasComment("Primary key for SalesReason records."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Sales reason description."); + entity.Property(e => e.ReasonType).HasComment("Category the sales reason belongs to."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.SalesTaxRateId).HasName("PK_SalesTaxRate_SalesTaxRateID"); + + entity.ToTable("SalesTaxRate", "Sales", tb => tb.HasComment("Tax rate lookup table.")); + + entity.Property(e => e.SalesTaxRateId).HasComment("Primary key for SalesTaxRate records."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Tax rate description."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.StateProvinceId).HasComment("State, province, or country/region the sales tax applies to."); + entity.Property(e => e.TaxRate).HasComment("Tax rate amount."); + entity.Property(e => e.TaxType).HasComment("1 = Tax applied to retail transactions, 2 = Tax applied to wholesale transactions, 3 = Tax applied to all sales (retail and wholesale) transactions."); + + entity.HasOne(d => d.StateProvince).WithMany(p => p.SalesTaxRates).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.TerritoryId).HasName("PK_SalesTerritory_TerritoryID"); + + entity.ToTable("SalesTerritory", "Sales", tb => tb.HasComment("Sales territory lookup table.")); + + entity.Property(e => e.TerritoryId).HasComment("Primary key for SalesTerritory records."); + entity.Property(e => e.CostLastYear).HasComment("Business costs in the territory the previous year."); + entity.Property(e => e.CostYtd).HasComment("Business costs in the territory year to date."); + entity.Property(e => e.CountryRegionCode).HasComment("ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode. "); + entity.Property(e => e.Group).HasComment("Geographic area to which the sales territory belong."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Sales territory description"); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.SalesLastYear).HasComment("Sales in the territory the previous year."); + entity.Property(e => e.SalesYtd).HasComment("Sales in the territory year to date."); + + entity.HasOne(d => d.CountryRegionCodeNavigation).WithMany(p => p.SalesTerritories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.BusinessEntityId, e.StartDate, e.TerritoryId }).HasName("PK_SalesTerritoryHistory_BusinessEntityID_StartDate_TerritoryID"); + + entity.ToTable("SalesTerritoryHistory", "Sales", tb => tb.HasComment("Sales representative transfers to other sales territories.")); + + entity.Property(e => e.BusinessEntityId).HasComment("Primary key. The sales rep. Foreign key to SalesPerson.BusinessEntityID."); + entity.Property(e => e.StartDate).HasComment("Primary key. Date the sales representive started work in the territory."); + entity.Property(e => e.TerritoryId).HasComment("Primary key. Territory identification number. Foreign key to SalesTerritory.SalesTerritoryID."); + entity.Property(e => e.EndDate).HasComment("Date the sales representative left work in the territory."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + + entity.HasOne(d => d.BusinessEntity).WithMany(p => p.SalesTerritoryHistories).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.Territory).WithMany(p => p.SalesTerritoryHistories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ScrapReasonId).HasName("PK_ScrapReason_ScrapReasonID"); + + entity.ToTable("ScrapReason", "Production", tb => tb.HasComment("Manufacturing failure reasons lookup table.")); + + entity.Property(e => e.ScrapReasonId).HasComment("Primary key for ScrapReason records."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Failure description."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ShiftId).HasName("PK_Shift_ShiftID"); + + entity.ToTable("Shift", "HumanResources", tb => tb.HasComment("Work shift lookup table.")); + + entity.Property(e => e.ShiftId) + .ValueGeneratedOnAdd() + .HasComment("Primary key for Shift records."); + entity.Property(e => e.EndTime).HasComment("Shift end time."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Shift description."); + entity.Property(e => e.StartTime).HasComment("Shift start time."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ShipMethodId).HasName("PK_ShipMethod_ShipMethodID"); + + entity.ToTable("ShipMethod", "Purchasing", tb => tb.HasComment("Shipping company lookup table.")); + + entity.Property(e => e.ShipMethodId).HasComment("Primary key for ShipMethod records."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Shipping company name."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.ShipBase).HasComment("Minimum shipping charge."); + entity.Property(e => e.ShipRate).HasComment("Shipping charge per pound."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ShoppingCartItemId).HasName("PK_ShoppingCartItem_ShoppingCartItemID"); + + entity.ToTable("ShoppingCartItem", "Sales", tb => tb.HasComment("Contains online customer orders until the order is submitted or cancelled.")); + + entity.Property(e => e.ShoppingCartItemId).HasComment("Primary key for ShoppingCartItem records."); + entity.Property(e => e.DateCreated) + .HasDefaultValueSql("(getdate())") + .HasComment("Date the time the record was created."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.ProductId).HasComment("Product ordered. Foreign key to Product.ProductID."); + entity.Property(e => e.Quantity) + .HasDefaultValue(1) + .HasComment("Product quantity ordered."); + entity.Property(e => e.ShoppingCartId).HasComment("Shopping cart identification number."); + + entity.HasOne(d => d.Product).WithMany(p => p.ShoppingCartItems).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.SpecialOfferId).HasName("PK_SpecialOffer_SpecialOfferID"); + + entity.ToTable("SpecialOffer", "Sales", tb => tb.HasComment("Sale discounts lookup table.")); + + entity.Property(e => e.SpecialOfferId).HasComment("Primary key for SpecialOffer records."); + entity.Property(e => e.Category).HasComment("Group the discount applies to such as Reseller or Customer."); + entity.Property(e => e.Description).HasComment("Discount description."); + entity.Property(e => e.DiscountPct).HasComment("Discount precentage."); + entity.Property(e => e.EndDate).HasComment("Discount end date."); + entity.Property(e => e.MaxQty).HasComment("Maximum discount percent allowed."); + entity.Property(e => e.MinQty).HasComment("Minimum discount percent allowed."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.StartDate).HasComment("Discount start date."); + entity.Property(e => e.Type).HasComment("Discount type category."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.SpecialOfferId, e.ProductId }).HasName("PK_SpecialOfferProduct_SpecialOfferID_ProductID"); + + entity.ToTable("SpecialOfferProduct", "Sales", tb => tb.HasComment("Cross-reference table mapping products to special offer discounts.")); + + entity.Property(e => e.SpecialOfferId).HasComment("Primary key for SpecialOfferProduct records."); + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + + entity.HasOne(d => d.Product).WithMany(p => p.SpecialOfferProducts).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.SpecialOffer).WithMany(p => p.SpecialOfferProducts).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.StateProvinceId).HasName("PK_StateProvince_StateProvinceID"); + + entity.ToTable("StateProvince", "Person", tb => tb.HasComment("State and province lookup table.")); + + entity.Property(e => e.StateProvinceId).HasComment("Primary key for StateProvince records."); + entity.Property(e => e.CountryRegionCode).HasComment("ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode. "); + entity.Property(e => e.IsOnlyStateProvinceFlag) + .HasDefaultValue(true) + .HasComment("0 = StateProvinceCode exists. 1 = StateProvinceCode unavailable, using CountryRegionCode."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("State or province description."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.StateProvinceCode) + .IsFixedLength() + .HasComment("ISO standard state or province code."); + entity.Property(e => e.TerritoryId).HasComment("ID of the territory in which the state or province is located. Foreign key to SalesTerritory.SalesTerritoryID."); + + entity.HasOne(d => d.CountryRegionCodeNavigation).WithMany(p => p.StateProvinces).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.Territory).WithMany(p => p.StateProvinces).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.BusinessEntityId).HasName("PK_Store_BusinessEntityID"); + + entity.ToTable("Store", "Sales", tb => tb.HasComment("Customers (resellers) of Adventure Works products.")); + + entity.Property(e => e.BusinessEntityId) + .ValueGeneratedNever() + .HasComment("Primary key. Foreign key to Customer.BusinessEntityID."); + entity.Property(e => e.Demographics).HasComment("Demographic informationg about the store such as the number of employees, annual sales and store type."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Name of the store."); + entity.Property(e => e.Rowguid) + .HasDefaultValueSql("(newid())") + .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample."); + entity.Property(e => e.SalesPersonId).HasComment("ID of the sales person assigned to the customer. Foreign key to SalesPerson.BusinessEntityID."); + + entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Store).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.TransactionId).HasName("PK_TransactionHistory_TransactionID"); + + entity.ToTable("TransactionHistory", "Production", tb => tb.HasComment("Record of each purchase order, sales order, or work order transaction year to date.")); + + entity.Property(e => e.TransactionId).HasComment("Primary key for TransactionHistory records."); + entity.Property(e => e.ActualCost).HasComment("Product cost."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.Quantity).HasComment("Product quantity."); + entity.Property(e => e.ReferenceOrderId).HasComment("Purchase order, sales order, or work order identification number."); + entity.Property(e => e.ReferenceOrderLineId).HasComment("Line number associated with the purchase order, sales order, or work order."); + entity.Property(e => e.TransactionDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time of the transaction."); + entity.Property(e => e.TransactionType) + .IsFixedLength() + .HasComment("W = WorkOrder, S = SalesOrder, P = PurchaseOrder"); + + entity.HasOne(d => d.Product).WithMany(p => p.TransactionHistories).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.TransactionId).HasName("PK_TransactionHistoryArchive_TransactionID"); + + entity.ToTable("TransactionHistoryArchive", "Production", tb => tb.HasComment("Transactions for previous years.")); + + entity.Property(e => e.TransactionId) + .ValueGeneratedNever() + .HasComment("Primary key for TransactionHistoryArchive records."); + entity.Property(e => e.ActualCost).HasComment("Product cost."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.Quantity).HasComment("Product quantity."); + entity.Property(e => e.ReferenceOrderId).HasComment("Purchase order, sales order, or work order identification number."); + entity.Property(e => e.ReferenceOrderLineId).HasComment("Line number associated with the purchase order, sales order, or work order."); + entity.Property(e => e.TransactionDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time of the transaction."); + entity.Property(e => e.TransactionType) + .IsFixedLength() + .HasComment("W = Work Order, S = Sales Order, P = Purchase Order"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.UnitMeasureCode).HasName("PK_UnitMeasure_UnitMeasureCode"); + + entity.ToTable("UnitMeasure", "Production", tb => tb.HasComment("Unit of measure lookup table.")); + + entity.Property(e => e.UnitMeasureCode) + .IsFixedLength() + .HasComment("Primary key."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Unit of measure description."); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.BusinessEntityId).HasName("PK_Vendor_BusinessEntityID"); + + entity.ToTable("Vendor", "Purchasing", tb => + { + tb.HasComment("Companies from whom Adventure Works Cycles purchases parts or other goods."); + tb.HasTrigger("dVendor"); + }); + + entity.Property(e => e.BusinessEntityId) + .ValueGeneratedNever() + .HasComment("Primary key for Vendor records. Foreign key to BusinessEntity.BusinessEntityID"); + entity.Property(e => e.AccountNumber).HasComment("Vendor account (identification) number."); + entity.Property(e => e.ActiveFlag) + .HasDefaultValue(true) + .HasComment("0 = Vendor no longer used. 1 = Vendor is actively used."); + entity.Property(e => e.CreditRating).HasComment("1 = Superior, 2 = Excellent, 3 = Above average, 4 = Average, 5 = Below average"); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.Name).HasComment("Company name."); + entity.Property(e => e.PreferredVendorStatus) + .HasDefaultValue(true) + .HasComment("0 = Do not use if another vendor is available. 1 = Preferred over other vendors supplying the same product."); + entity.Property(e => e.PurchasingWebServiceUrl).HasComment("Vendor URL."); + + entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Vendor).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.WorkOrderId).HasName("PK_WorkOrder_WorkOrderID"); + + entity.ToTable("WorkOrder", "Production", tb => + { + tb.HasComment("Manufacturing work orders."); + tb.HasTrigger("iWorkOrder"); + tb.HasTrigger("uWorkOrder"); + }); + + entity.Property(e => e.WorkOrderId).HasComment("Primary key for WorkOrder records."); + entity.Property(e => e.DueDate).HasComment("Work order due date."); + entity.Property(e => e.EndDate).HasComment("Work order end date."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.OrderQty).HasComment("Product quantity to build."); + entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID."); + entity.Property(e => e.ScrapReasonId).HasComment("Reason for inspection failure."); + entity.Property(e => e.ScrappedQty).HasComment("Quantity that failed inspection."); + entity.Property(e => e.StartDate).HasComment("Work order start date."); + entity.Property(e => e.StockedQty) + .HasComputedColumnSql("(isnull([OrderQty]-[ScrappedQty],(0)))", false) + .HasComment("Quantity built and put in inventory."); + + entity.HasOne(d => d.Product).WithMany(p => p.WorkOrders).OnDelete(DeleteBehavior.ClientSetNull); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.WorkOrderId, e.ProductId, e.OperationSequence }).HasName("PK_WorkOrderRouting_WorkOrderID_ProductID_OperationSequence"); + + entity.ToTable("WorkOrderRouting", "Production", tb => tb.HasComment("Work order details.")); + + entity.Property(e => e.WorkOrderId).HasComment("Primary key. Foreign key to WorkOrder.WorkOrderID."); + entity.Property(e => e.ProductId).HasComment("Primary key. Foreign key to Product.ProductID."); + entity.Property(e => e.OperationSequence).HasComment("Primary key. Indicates the manufacturing process sequence."); + entity.Property(e => e.ActualCost).HasComment("Actual manufacturing cost."); + entity.Property(e => e.ActualEndDate).HasComment("Actual end date."); + entity.Property(e => e.ActualResourceHrs).HasComment("Number of manufacturing hours used."); + entity.Property(e => e.ActualStartDate).HasComment("Actual start date."); + entity.Property(e => e.LocationId).HasComment("Manufacturing location where the part is processed. Foreign key to Location.LocationID."); + entity.Property(e => e.ModifiedDate) + .HasDefaultValueSql("(getdate())") + .HasComment("Date and time the record was last updated."); + entity.Property(e => e.PlannedCost).HasComment("Estimated manufacturing cost."); + entity.Property(e => e.ScheduledEndDate).HasComment("Planned manufacturing end date."); + entity.Property(e => e.ScheduledStartDate).HasComment("Planned manufacturing start date."); + + entity.HasOne(d => d.Location).WithMany(p => p.WorkOrderRoutings).OnDelete(DeleteBehavior.ClientSetNull); + + entity.HasOne(d => d.WorkOrder).WithMany(p => p.WorkOrderRoutings).OnDelete(DeleteBehavior.ClientSetNull); }); OnModelCreatingPartial(modelBuilder); diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs new file mode 100644 index 0000000..da3b72f --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs @@ -0,0 +1,47 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Lookup table containing the departments within the Adventure Works Cycles company. +/// +[Table("Department", Schema = "HumanResources")] +[Index("Name", Name = "AK_Department_Name", IsUnique = true)] +public partial class Department +{ + /// + /// Primary key for Department records. + /// + [Key] + [Column("DepartmentID")] + public short DepartmentId { get; set; } + + /// + /// Name of the department. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Name of the group to which the department belongs. + /// + [Required] + [StringLength(50)] + public string GroupName { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("Department")] + public virtual ICollection EmployeeDepartmentHistories { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs new file mode 100644 index 0000000..289f51e --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs @@ -0,0 +1,129 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Employee information such as salary, department, and title. +/// +[Table("Employee", Schema = "HumanResources")] +[Index("LoginId", Name = "AK_Employee_LoginID", IsUnique = true)] +[Index("NationalIdnumber", Name = "AK_Employee_NationalIDNumber", IsUnique = true)] +[Index("Rowguid", Name = "AK_Employee_rowguid", IsUnique = true)] +public partial class Employee +{ + /// + /// Primary key for Employee records. Foreign key to BusinessEntity.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Unique national identification number such as a social security number. + /// + [Required] + [Column("NationalIDNumber")] + [StringLength(15)] + public string NationalIdnumber { get; set; } + + /// + /// Network login. + /// + [Required] + [Column("LoginID")] + [StringLength(256)] + public string LoginId { get; set; } + + /// + /// The depth of the employee in the corporate hierarchy. + /// + public short? OrganizationLevel { get; set; } + + /// + /// Work title such as Buyer or Sales Representative. + /// + [Required] + [StringLength(50)] + public string JobTitle { get; set; } + + /// + /// Date of birth. + /// + public DateOnly BirthDate { get; set; } + + /// + /// M = Married, S = Single + /// + [Required] + [StringLength(1)] + public string MaritalStatus { get; set; } + + /// + /// M = Male, F = Female + /// + [Required] + [StringLength(1)] + public string Gender { get; set; } + + /// + /// Employee hired on this date. + /// + public DateOnly HireDate { get; set; } + + /// + /// Job classification. 0 = Hourly, not exempt from collective bargaining. 1 = Salaried, exempt from collective bargaining. + /// + public bool SalariedFlag { get; set; } + + /// + /// Number of available vacation hours. + /// + public short VacationHours { get; set; } + + /// + /// Number of available sick leave hours. + /// + public short SickLeaveHours { get; set; } + + /// + /// 0 = Inactive, 1 = Active + /// + public bool CurrentFlag { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("Employee")] + public virtual Person BusinessEntity { get; set; } + + [InverseProperty("BusinessEntity")] + public virtual ICollection EmployeeDepartmentHistories { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual ICollection EmployeePayHistories { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual ICollection JobCandidates { get; set; } = new List(); + + [InverseProperty("Employee")] + public virtual ICollection PurchaseOrderHeaders { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual SalesPerson SalesPerson { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs new file mode 100644 index 0000000..860fff5 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs @@ -0,0 +1,69 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Employee department transfers. +/// +[PrimaryKey("BusinessEntityId", "StartDate", "DepartmentId", "ShiftId")] +[Table("EmployeeDepartmentHistory", Schema = "HumanResources")] +[Index("DepartmentId", Name = "IX_EmployeeDepartmentHistory_DepartmentID")] +[Index("ShiftId", Name = "IX_EmployeeDepartmentHistory_ShiftID")] +public partial class EmployeeDepartmentHistory +{ + /// + /// Employee identification number. Foreign key to Employee.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Department in which the employee worked including currently. Foreign key to Department.DepartmentID. + /// + [Key] + [Column("DepartmentID")] + public short DepartmentId { get; set; } + + /// + /// Identifies which 8-hour shift the employee works. Foreign key to Shift.Shift.ID. + /// + [Key] + [Column("ShiftID")] + public byte ShiftId { get; set; } + + /// + /// Date the employee started work in the department. + /// + [Key] + public DateOnly StartDate { get; set; } + + /// + /// Date the employee left the department. NULL = Current department. + /// + public DateOnly? EndDate { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("EmployeeDepartmentHistories")] + public virtual Employee BusinessEntity { get; set; } + + [ForeignKey("DepartmentId")] + [InverseProperty("EmployeeDepartmentHistories")] + public virtual Department Department { get; set; } + + [ForeignKey("ShiftId")] + [InverseProperty("EmployeeDepartmentHistories")] + public virtual Shift Shift { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs new file mode 100644 index 0000000..c48a518 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs @@ -0,0 +1,52 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Employee pay history. +/// +[PrimaryKey("BusinessEntityId", "RateChangeDate")] +[Table("EmployeePayHistory", Schema = "HumanResources")] +public partial class EmployeePayHistory +{ + /// + /// Employee identification number. Foreign key to Employee.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Date the change in pay is effective + /// + [Key] + [Column(TypeName = "datetime")] + public DateTime RateChangeDate { get; set; } + + /// + /// Salary hourly rate. + /// + [Column(TypeName = "money")] + public decimal Rate { get; set; } + + /// + /// 1 = Salary received monthly, 2 = Salary received biweekly + /// + public byte PayFrequency { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("EmployeePayHistories")] + public virtual Employee BusinessEntity { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs new file mode 100644 index 0000000..c84aeaf --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs @@ -0,0 +1,46 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Résumés submitted to Human Resources by job applicants. +/// +[Table("JobCandidate", Schema = "HumanResources")] +[Index("BusinessEntityId", Name = "IX_JobCandidate_BusinessEntityID")] +public partial class JobCandidate +{ + /// + /// Primary key for JobCandidate records. + /// + [Key] + [Column("JobCandidateID")] + public int JobCandidateId { get; set; } + + /// + /// Employee identification number if applicant was hired. Foreign key to Employee.BusinessEntityID. + /// + [Column("BusinessEntityID")] + public int? BusinessEntityId { get; set; } + + /// + /// Résumé in XML format. + /// + [Column(TypeName = "xml")] + public string Resume { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("JobCandidates")] + public virtual Employee BusinessEntity { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs new file mode 100644 index 0000000..5545e8a --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs @@ -0,0 +1,51 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Work shift lookup table. +/// +[Table("Shift", Schema = "HumanResources")] +[Index("Name", Name = "AK_Shift_Name", IsUnique = true)] +[Index("StartTime", "EndTime", Name = "AK_Shift_StartTime_EndTime", IsUnique = true)] +public partial class Shift +{ + /// + /// Primary key for Shift records. + /// + [Key] + [Column("ShiftID")] + public byte ShiftId { get; set; } + + /// + /// Shift description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Shift start time. + /// + public TimeOnly StartTime { get; set; } + + /// + /// Shift end time. + /// + public TimeOnly EndTime { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("Shift")] + public virtual ICollection EmployeeDepartmentHistories { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Address.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs similarity index 71% rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/Address.cs rename to src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs index 646c1f0..26e581f 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Address.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs @@ -9,12 +9,12 @@ namespace AdventureWorksDemo.Data.Entities; /// -/// Street address information for customers. +/// Street address information for customers, employees, and vendors. /// -[Table("Address", Schema = "SalesLT")] +[Table("Address", Schema = "Person")] [Index("Rowguid", Name = "AK_Address_rowguid", IsUnique = true)] -[Index("AddressLine1", "AddressLine2", "City", "StateProvince", "PostalCode", "CountryRegion", Name = "IX_Address_AddressLine1_AddressLine2_City_StateProvince_PostalCode_CountryRegion")] -[Index("StateProvince", Name = "IX_Address_StateProvince")] +[Index("AddressLine1", "AddressLine2", "City", "StateProvinceId", "PostalCode", Name = "IX_Address_AddressLine1_AddressLine2_City_StateProvinceID_PostalCode", IsUnique = true)] +[Index("StateProvinceId", Name = "IX_Address_StateProvinceID")] public partial class Address { /// @@ -45,15 +45,10 @@ public partial class Address public string City { get; set; } /// - /// Name of state or province. + /// Unique identification number for the state or province. Foreign key to StateProvince table. /// - [Required] - [StringLength(50)] - public string StateProvince { get; set; } - - [Required] - [StringLength(50)] - public string CountryRegion { get; set; } + [Column("StateProvinceID")] + public int StateProvinceId { get; set; } /// /// Postal code for the street address. @@ -75,11 +70,15 @@ public partial class Address public DateTime ModifiedDate { get; set; } [InverseProperty("Address")] - public virtual ICollection CustomerAddresses { get; set; } = new List(); + public virtual ICollection BusinessEntityAddresses { get; set; } = new List(); [InverseProperty("BillToAddress")] public virtual ICollection SalesOrderHeaderBillToAddresses { get; set; } = new List(); [InverseProperty("ShipToAddress")] public virtual ICollection SalesOrderHeaderShipToAddresses { get; set; } = new List(); + + [ForeignKey("StateProvinceId")] + [InverseProperty("Addresses")] + public virtual StateProvince StateProvince { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs new file mode 100644 index 0000000..645c647 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs @@ -0,0 +1,47 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Types of addresses stored in the Address table. +/// +[Table("AddressType", Schema = "Person")] +[Index("Name", Name = "AK_AddressType_Name", IsUnique = true)] +[Index("Rowguid", Name = "AK_AddressType_rowguid", IsUnique = true)] +public partial class AddressType +{ + /// + /// Primary key for AddressType records. + /// + [Key] + [Column("AddressTypeID")] + public int AddressTypeId { get; set; } + + /// + /// Address type description. For example, Billing, Home, or Shipping. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("AddressType")] + public virtual ICollection BusinessEntityAddresses { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs new file mode 100644 index 0000000..df9ffa7 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs @@ -0,0 +1,51 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Source of the ID that connects vendors, customers, and employees with address and contact information. +/// +[Table("BusinessEntity", Schema = "Person")] +[Index("Rowguid", Name = "AK_BusinessEntity_rowguid", IsUnique = true)] +public partial class BusinessEntity +{ + /// + /// Primary key for all customers, vendors, and employees. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("BusinessEntity")] + public virtual ICollection BusinessEntityAddresses { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual ICollection BusinessEntityContacts { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual Person Person { get; set; } + + [InverseProperty("BusinessEntity")] + public virtual Store Store { get; set; } + + [InverseProperty("BusinessEntity")] + public virtual Vendor Vendor { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs new file mode 100644 index 0000000..586f3b4 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs @@ -0,0 +1,65 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping customers, vendors, and employees to their addresses. +/// +[PrimaryKey("BusinessEntityId", "AddressId", "AddressTypeId")] +[Table("BusinessEntityAddress", Schema = "Person")] +[Index("Rowguid", Name = "AK_BusinessEntityAddress_rowguid", IsUnique = true)] +[Index("AddressId", Name = "IX_BusinessEntityAddress_AddressID")] +[Index("AddressTypeId", Name = "IX_BusinessEntityAddress_AddressTypeID")] +public partial class BusinessEntityAddress +{ + /// + /// Primary key. Foreign key to BusinessEntity.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Primary key. Foreign key to Address.AddressID. + /// + [Key] + [Column("AddressID")] + public int AddressId { get; set; } + + /// + /// Primary key. Foreign key to AddressType.AddressTypeID. + /// + [Key] + [Column("AddressTypeID")] + public int AddressTypeId { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("AddressId")] + [InverseProperty("BusinessEntityAddresses")] + public virtual Address Address { get; set; } + + [ForeignKey("AddressTypeId")] + [InverseProperty("BusinessEntityAddresses")] + public virtual AddressType AddressType { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("BusinessEntityAddresses")] + public virtual BusinessEntity BusinessEntity { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs new file mode 100644 index 0000000..6fab40d --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs @@ -0,0 +1,65 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping stores, vendors, and employees to people +/// +[PrimaryKey("BusinessEntityId", "PersonId", "ContactTypeId")] +[Table("BusinessEntityContact", Schema = "Person")] +[Index("Rowguid", Name = "AK_BusinessEntityContact_rowguid", IsUnique = true)] +[Index("ContactTypeId", Name = "IX_BusinessEntityContact_ContactTypeID")] +[Index("PersonId", Name = "IX_BusinessEntityContact_PersonID")] +public partial class BusinessEntityContact +{ + /// + /// Primary key. Foreign key to BusinessEntity.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Primary key. Foreign key to Person.BusinessEntityID. + /// + [Key] + [Column("PersonID")] + public int PersonId { get; set; } + + /// + /// Primary key. Foreign key to ContactType.ContactTypeID. + /// + [Key] + [Column("ContactTypeID")] + public int ContactTypeId { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("BusinessEntityContacts")] + public virtual BusinessEntity BusinessEntity { get; set; } + + [ForeignKey("ContactTypeId")] + [InverseProperty("BusinessEntityContacts")] + public virtual ContactType ContactType { get; set; } + + [ForeignKey("PersonId")] + [InverseProperty("BusinessEntityContacts")] + public virtual Person Person { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs new file mode 100644 index 0000000..1b1578c --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs @@ -0,0 +1,40 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Lookup table containing the types of business entity contacts. +/// +[Table("ContactType", Schema = "Person")] +[Index("Name", Name = "AK_ContactType_Name", IsUnique = true)] +public partial class ContactType +{ + /// + /// Primary key for ContactType records. + /// + [Key] + [Column("ContactTypeID")] + public int ContactTypeId { get; set; } + + /// + /// Contact type description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("ContactType")] + public virtual ICollection BusinessEntityContacts { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs new file mode 100644 index 0000000..e28e91c --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs @@ -0,0 +1,46 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Lookup table containing the ISO standard codes for countries and regions. +/// +[Table("CountryRegion", Schema = "Person")] +[Index("Name", Name = "AK_CountryRegion_Name", IsUnique = true)] +public partial class CountryRegion +{ + /// + /// ISO standard code for countries and regions. + /// + [Key] + [StringLength(3)] + public string CountryRegionCode { get; set; } + + /// + /// Country or region name. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("CountryRegionCodeNavigation")] + public virtual ICollection CountryRegionCurrencies { get; set; } = new List(); + + [InverseProperty("CountryRegionCodeNavigation")] + public virtual ICollection SalesTerritories { get; set; } = new List(); + + [InverseProperty("CountryRegionCodeNavigation")] + public virtual ICollection StateProvinces { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/CustomerAddress.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs similarity index 50% rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/CustomerAddress.cs rename to src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs index 5a649db..7621bec 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/CustomerAddress.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs @@ -9,33 +9,33 @@ namespace AdventureWorksDemo.Data.Entities; /// -/// Cross-reference table mapping customers to their address(es). +/// Where to send a person email. /// -[PrimaryKey("CustomerId", "AddressId")] -[Table("CustomerAddress", Schema = "SalesLT")] -[Index("Rowguid", Name = "AK_CustomerAddress_rowguid", IsUnique = true)] -public partial class CustomerAddress +[PrimaryKey("BusinessEntityId", "EmailAddressId")] +[Table("EmailAddress", Schema = "Person")] +[Index("EmailAddress1", Name = "IX_EmailAddress_EmailAddress")] +public partial class EmailAddress { /// - /// Primary key. Foreign key to Customer.CustomerID. + /// Primary key. Person associated with this email address. Foreign key to Person.BusinessEntityID /// [Key] - [Column("CustomerID")] - public int CustomerId { get; set; } + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } /// - /// Primary key. Foreign key to Address.AddressID. + /// Primary key. ID of this email address. /// [Key] - [Column("AddressID")] - public int AddressId { get; set; } + [Column("EmailAddressID")] + public int EmailAddressId { get; set; } /// - /// The kind of Address. One of: Archive, Billing, Home, Main Office, Primary, Shipping + /// E-mail address for the person. /// - [Required] + [Column("EmailAddress")] [StringLength(50)] - public string AddressType { get; set; } + public string EmailAddress1 { get; set; } /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -49,11 +49,7 @@ public partial class CustomerAddress [Column(TypeName = "datetime")] public DateTime ModifiedDate { get; set; } - [ForeignKey("AddressId")] - [InverseProperty("CustomerAddresses")] - public virtual Address Address { get; set; } - - [ForeignKey("CustomerId")] - [InverseProperty("CustomerAddresses")] - public virtual Customer Customer { get; set; } + [ForeignKey("BusinessEntityId")] + [InverseProperty("EmailAddresses")] + public virtual Person BusinessEntity { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs new file mode 100644 index 0000000..3516691 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs @@ -0,0 +1,52 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// One way hashed authentication information +/// +[Table("Password", Schema = "Person")] +public partial class Password +{ + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Password for the e-mail account. + /// + [Required] + [StringLength(128)] + [Unicode(false)] + public string PasswordHash { get; set; } + + /// + /// Random value concatenated with the password string before the password is hashed. + /// + [Required] + [StringLength(10)] + [Unicode(false)] + public string PasswordSalt { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("Password")] + public virtual Person BusinessEntity { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs new file mode 100644 index 0000000..7a67fbf --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs @@ -0,0 +1,128 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Human beings involved with AdventureWorks: employees, customer contacts, and vendor contacts. +/// +[Table("Person", Schema = "Person")] +[Index("Rowguid", Name = "AK_Person_rowguid", IsUnique = true)] +[Index("LastName", "FirstName", "MiddleName", Name = "IX_Person_LastName_FirstName_MiddleName")] +[Index("AdditionalContactInfo", Name = "PXML_Person_AddContact")] +[Index("Demographics", Name = "PXML_Person_Demographics")] +[Index("Demographics", Name = "XMLPATH_Person_Demographics")] +[Index("Demographics", Name = "XMLPROPERTY_Person_Demographics")] +[Index("Demographics", Name = "XMLVALUE_Person_Demographics")] +public partial class Person +{ + /// + /// Primary key for Person records. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Primary type of person: SC = Store Contact, IN = Individual (retail) customer, SP = Sales person, EM = Employee (non-sales), VC = Vendor contact, GC = General contact + /// + [Required] + [StringLength(2)] + public string PersonType { get; set; } + + /// + /// 0 = The data in FirstName and LastName are stored in western style (first name, last name) order. 1 = Eastern style (last name, first name) order. + /// + public bool NameStyle { get; set; } + + /// + /// A courtesy title. For example, Mr. or Ms. + /// + [StringLength(8)] + public string Title { get; set; } + + /// + /// First name of the person. + /// + [Required] + [StringLength(50)] + public string FirstName { get; set; } + + /// + /// Middle name or middle initial of the person. + /// + [StringLength(50)] + public string MiddleName { get; set; } + + /// + /// Last name of the person. + /// + [Required] + [StringLength(50)] + public string LastName { get; set; } + + /// + /// Surname suffix. For example, Sr. or Jr. + /// + [StringLength(10)] + public string Suffix { get; set; } + + /// + /// 0 = Contact does not wish to receive e-mail promotions, 1 = Contact does wish to receive e-mail promotions from AdventureWorks, 2 = Contact does wish to receive e-mail promotions from AdventureWorks and selected partners. + /// + public int EmailPromotion { get; set; } + + /// + /// Additional contact information about the person stored in xml format. + /// + [Column(TypeName = "xml")] + public string AdditionalContactInfo { get; set; } + + /// + /// Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis. + /// + [Column(TypeName = "xml")] + public string Demographics { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("Person")] + public virtual BusinessEntity BusinessEntity { get; set; } + + [InverseProperty("Person")] + public virtual ICollection BusinessEntityContacts { get; set; } = new List(); + + [InverseProperty("Person")] + public virtual ICollection Customers { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual ICollection EmailAddresses { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual Employee Employee { get; set; } + + [InverseProperty("BusinessEntity")] + public virtual Password Password { get; set; } + + [InverseProperty("BusinessEntity")] + public virtual ICollection PersonCreditCards { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual ICollection PersonPhones { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs new file mode 100644 index 0000000..723fbc5 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs @@ -0,0 +1,53 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Telephone number and type of a person. +/// +[PrimaryKey("BusinessEntityId", "PhoneNumber", "PhoneNumberTypeId")] +[Table("PersonPhone", Schema = "Person")] +[Index("PhoneNumber", Name = "IX_PersonPhone_PhoneNumber")] +public partial class PersonPhone +{ + /// + /// Business entity identification number. Foreign key to Person.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Telephone number identification number. + /// + [Key] + [StringLength(25)] + public string PhoneNumber { get; set; } + + /// + /// Kind of phone number. Foreign key to PhoneNumberType.PhoneNumberTypeID. + /// + [Key] + [Column("PhoneNumberTypeID")] + public int PhoneNumberTypeId { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("PersonPhones")] + public virtual Person BusinessEntity { get; set; } + + [ForeignKey("PhoneNumberTypeId")] + [InverseProperty("PersonPhones")] + public virtual PhoneNumberType PhoneNumberType { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs new file mode 100644 index 0000000..2a2f287 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs @@ -0,0 +1,39 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Type of phone number of a person. +/// +[Table("PhoneNumberType", Schema = "Person")] +public partial class PhoneNumberType +{ + /// + /// Primary key for telephone number type records. + /// + [Key] + [Column("PhoneNumberTypeID")] + public int PhoneNumberTypeId { get; set; } + + /// + /// Name of the telephone number type + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("PhoneNumberType")] + public virtual ICollection PersonPhones { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs new file mode 100644 index 0000000..3cfd5b1 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs @@ -0,0 +1,84 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// State and province lookup table. +/// +[Table("StateProvince", Schema = "Person")] +[Index("Name", Name = "AK_StateProvince_Name", IsUnique = true)] +[Index("StateProvinceCode", "CountryRegionCode", Name = "AK_StateProvince_StateProvinceCode_CountryRegionCode", IsUnique = true)] +[Index("Rowguid", Name = "AK_StateProvince_rowguid", IsUnique = true)] +public partial class StateProvince +{ + /// + /// Primary key for StateProvince records. + /// + [Key] + [Column("StateProvinceID")] + public int StateProvinceId { get; set; } + + /// + /// ISO standard state or province code. + /// + [Required] + [StringLength(3)] + public string StateProvinceCode { get; set; } + + /// + /// ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode. + /// + [Required] + [StringLength(3)] + public string CountryRegionCode { get; set; } + + /// + /// 0 = StateProvinceCode exists. 1 = StateProvinceCode unavailable, using CountryRegionCode. + /// + public bool IsOnlyStateProvinceFlag { get; set; } + + /// + /// State or province description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// ID of the territory in which the state or province is located. Foreign key to SalesTerritory.SalesTerritoryID. + /// + [Column("TerritoryID")] + public int TerritoryId { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("StateProvince")] + public virtual ICollection
Addresses { get; set; } = new List
(); + + [ForeignKey("CountryRegionCode")] + [InverseProperty("StateProvinces")] + public virtual CountryRegion CountryRegionCodeNavigation { get; set; } + + [InverseProperty("StateProvince")] + public virtual ICollection SalesTaxRates { get; set; } = new List(); + + [ForeignKey("TerritoryId")] + [InverseProperty("StateProvinces")] + public virtual SalesTerritory Territory { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs new file mode 100644 index 0000000..8f56737 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs @@ -0,0 +1,85 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Items required to make bicycles and bicycle subassemblies. It identifies the heirarchical relationship between a parent product and its components. +/// +[Table("BillOfMaterials", Schema = "Production")] +[Index("UnitMeasureCode", Name = "IX_BillOfMaterials_UnitMeasureCode")] +public partial class BillOfMaterial +{ + /// + /// Primary key for BillOfMaterials records. + /// + [Key] + [Column("BillOfMaterialsID")] + public int BillOfMaterialsId { get; set; } + + /// + /// Parent product identification number. Foreign key to Product.ProductID. + /// + [Column("ProductAssemblyID")] + public int? ProductAssemblyId { get; set; } + + /// + /// Component identification number. Foreign key to Product.ProductID. + /// + [Column("ComponentID")] + public int ComponentId { get; set; } + + /// + /// Date the component started being used in the assembly item. + /// + [Column(TypeName = "datetime")] + public DateTime StartDate { get; set; } + + /// + /// Date the component stopped being used in the assembly item. + /// + [Column(TypeName = "datetime")] + public DateTime? EndDate { get; set; } + + /// + /// Standard code identifying the unit of measure for the quantity. + /// + [Required] + [StringLength(3)] + public string UnitMeasureCode { get; set; } + + /// + /// Indicates the depth the component is from its parent (AssemblyID). + /// + [Column("BOMLevel")] + public short Bomlevel { get; set; } + + /// + /// Quantity of the component needed to create the assembly. + /// + [Column(TypeName = "decimal(8, 2)")] + public decimal PerAssemblyQty { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ComponentId")] + [InverseProperty("BillOfMaterialComponents")] + public virtual Product Component { get; set; } + + [ForeignKey("ProductAssemblyId")] + [InverseProperty("BillOfMaterialProductAssemblies")] + public virtual Product ProductAssembly { get; set; } + + [ForeignKey("UnitMeasureCode")] + [InverseProperty("BillOfMaterials")] + public virtual UnitMeasure UnitMeasureCodeNavigation { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs new file mode 100644 index 0000000..a1dde2d --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs @@ -0,0 +1,41 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Lookup table containing the languages in which some AdventureWorks data is stored. +/// +[Table("Culture", Schema = "Production")] +[Index("Name", Name = "AK_Culture_Name", IsUnique = true)] +public partial class Culture +{ + /// + /// Primary key for Culture records. + /// + [Key] + [Column("CultureID")] + [StringLength(6)] + public string CultureId { get; set; } + + /// + /// Culture description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("Culture")] + public virtual ICollection ProductModelProductDescriptionCultures { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs new file mode 100644 index 0000000..c546e68 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs @@ -0,0 +1,38 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Bicycle assembly diagrams. +/// +[Table("Illustration", Schema = "Production")] +public partial class Illustration +{ + /// + /// Primary key for Illustration records. + /// + [Key] + [Column("IllustrationID")] + public int IllustrationId { get; set; } + + /// + /// Illustrations used in manufacturing instructions. Stored as XML. + /// + [Column(TypeName = "xml")] + public string Diagram { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("Illustration")] + public virtual ICollection ProductModelIllustrations { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs new file mode 100644 index 0000000..9c41e73 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs @@ -0,0 +1,55 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Product inventory and manufacturing locations. +/// +[Table("Location", Schema = "Production")] +[Index("Name", Name = "AK_Location_Name", IsUnique = true)] +public partial class Location +{ + /// + /// Primary key for Location records. + /// + [Key] + [Column("LocationID")] + public short LocationId { get; set; } + + /// + /// Location description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Standard hourly cost of the manufacturing location. + /// + [Column(TypeName = "smallmoney")] + public decimal CostRate { get; set; } + + /// + /// Work capacity (in hours) of the manufacturing location. + /// + [Column(TypeName = "decimal(8, 2)")] + public decimal Availability { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("Location")] + public virtual ICollection ProductInventories { get; set; } = new List(); + + [InverseProperty("Location")] + public virtual ICollection WorkOrderRoutings { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs new file mode 100644 index 0000000..e2c2676 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs @@ -0,0 +1,222 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Products sold or used in the manfacturing of sold products. +/// +[Table("Product", Schema = "Production")] +[Index("Name", Name = "AK_Product_Name", IsUnique = true)] +[Index("ProductNumber", Name = "AK_Product_ProductNumber", IsUnique = true)] +[Index("Rowguid", Name = "AK_Product_rowguid", IsUnique = true)] +public partial class Product +{ + /// + /// Primary key for Product records. + /// + [Key] + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Name of the product. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Unique product identification number. + /// + [Required] + [StringLength(25)] + public string ProductNumber { get; set; } + + /// + /// 0 = Product is purchased, 1 = Product is manufactured in-house. + /// + public bool MakeFlag { get; set; } + + /// + /// 0 = Product is not a salable item. 1 = Product is salable. + /// + public bool FinishedGoodsFlag { get; set; } + + /// + /// Product color. + /// + [StringLength(15)] + public string Color { get; set; } + + /// + /// Minimum inventory quantity. + /// + public short SafetyStockLevel { get; set; } + + /// + /// Inventory level that triggers a purchase order or work order. + /// + public short ReorderPoint { get; set; } + + /// + /// Standard cost of the product. + /// + [Column(TypeName = "money")] + public decimal StandardCost { get; set; } + + /// + /// Selling price. + /// + [Column(TypeName = "money")] + public decimal ListPrice { get; set; } + + /// + /// Product size. + /// + [StringLength(5)] + public string Size { get; set; } + + /// + /// Unit of measure for Size column. + /// + [StringLength(3)] + public string SizeUnitMeasureCode { get; set; } + + /// + /// Unit of measure for Weight column. + /// + [StringLength(3)] + public string WeightUnitMeasureCode { get; set; } + + /// + /// Product weight. + /// + [Column(TypeName = "decimal(8, 2)")] + public decimal? Weight { get; set; } + + /// + /// Number of days required to manufacture the product. + /// + public int DaysToManufacture { get; set; } + + /// + /// R = Road, M = Mountain, T = Touring, S = Standard + /// + [StringLength(2)] + public string ProductLine { get; set; } + + /// + /// H = High, M = Medium, L = Low + /// + [StringLength(2)] + public string Class { get; set; } + + /// + /// W = Womens, M = Mens, U = Universal + /// + [StringLength(2)] + public string Style { get; set; } + + /// + /// Product is a member of this product subcategory. Foreign key to ProductSubCategory.ProductSubCategoryID. + /// + [Column("ProductSubcategoryID")] + public int? ProductSubcategoryId { get; set; } + + /// + /// Product is a member of this product model. Foreign key to ProductModel.ProductModelID. + /// + [Column("ProductModelID")] + public int? ProductModelId { get; set; } + + /// + /// Date the product was available for sale. + /// + [Column(TypeName = "datetime")] + public DateTime SellStartDate { get; set; } + + /// + /// Date the product was no longer available for sale. + /// + [Column(TypeName = "datetime")] + public DateTime? SellEndDate { get; set; } + + /// + /// Date the product was discontinued. + /// + [Column(TypeName = "datetime")] + public DateTime? DiscontinuedDate { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("Component")] + public virtual ICollection BillOfMaterialComponents { get; set; } = new List(); + + [InverseProperty("ProductAssembly")] + public virtual ICollection BillOfMaterialProductAssemblies { get; set; } = new List(); + + [InverseProperty("Product")] + public virtual ICollection ProductCostHistories { get; set; } = new List(); + + [InverseProperty("Product")] + public virtual ICollection ProductInventories { get; set; } = new List(); + + [InverseProperty("Product")] + public virtual ICollection ProductListPriceHistories { get; set; } = new List(); + + [ForeignKey("ProductModelId")] + [InverseProperty("Products")] + public virtual ProductModel ProductModel { get; set; } + + [InverseProperty("Product")] + public virtual ICollection ProductProductPhotos { get; set; } = new List(); + + [InverseProperty("Product")] + public virtual ICollection ProductReviews { get; set; } = new List(); + + [ForeignKey("ProductSubcategoryId")] + [InverseProperty("Products")] + public virtual ProductSubcategory ProductSubcategory { get; set; } + + [InverseProperty("Product")] + public virtual ICollection ProductVendors { get; set; } = new List(); + + [InverseProperty("Product")] + public virtual ICollection PurchaseOrderDetails { get; set; } = new List(); + + [InverseProperty("Product")] + public virtual ICollection ShoppingCartItems { get; set; } = new List(); + + [ForeignKey("SizeUnitMeasureCode")] + [InverseProperty("ProductSizeUnitMeasureCodeNavigations")] + public virtual UnitMeasure SizeUnitMeasureCodeNavigation { get; set; } + + [InverseProperty("Product")] + public virtual ICollection SpecialOfferProducts { get; set; } = new List(); + + [InverseProperty("Product")] + public virtual ICollection TransactionHistories { get; set; } = new List(); + + [ForeignKey("WeightUnitMeasureCode")] + [InverseProperty("ProductWeightUnitMeasureCodeNavigations")] + public virtual UnitMeasure WeightUnitMeasureCodeNavigation { get; set; } + + [InverseProperty("Product")] + public virtual ICollection WorkOrders { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductCategory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs similarity index 64% rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductCategory.cs rename to src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs index ee5fb2b..cd871b8 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductCategory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs @@ -11,7 +11,7 @@ namespace AdventureWorksDemo.Data.Entities; /// /// High-level product categorization. /// -[Table("ProductCategory", Schema = "SalesLT")] +[Table("ProductCategory", Schema = "Production")] [Index("Name", Name = "AK_ProductCategory_Name", IsUnique = true)] [Index("Rowguid", Name = "AK_ProductCategory_rowguid", IsUnique = true)] public partial class ProductCategory @@ -23,12 +23,6 @@ public partial class ProductCategory [Column("ProductCategoryID")] public int ProductCategoryId { get; set; } - /// - /// Product category identification number of immediate ancestor category. Foreign key to ProductCategory.ProductCategoryID. - /// - [Column("ParentProductCategoryID")] - public int? ParentProductCategoryId { get; set; } - /// /// Category description. /// @@ -48,13 +42,6 @@ public partial class ProductCategory [Column(TypeName = "datetime")] public DateTime ModifiedDate { get; set; } - [InverseProperty("ParentProductCategory")] - public virtual ICollection InverseParentProductCategory { get; set; } = new List(); - - [ForeignKey("ParentProductCategoryId")] - [InverseProperty("InverseParentProductCategory")] - public virtual ProductCategory ParentProductCategory { get; set; } - [InverseProperty("ProductCategory")] - public virtual ICollection Products { get; set; } = new List(); + public virtual ICollection ProductSubcategories { get; set; } = new List(); } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCostHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCostHistory.cs new file mode 100644 index 0000000..432ebce --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCostHistory.cs @@ -0,0 +1,53 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Changes in the cost of a product over time. +/// +[PrimaryKey("ProductId", "StartDate")] +[Table("ProductCostHistory", Schema = "Production")] +public partial class ProductCostHistory +{ + /// + /// Product identification number. Foreign key to Product.ProductID + /// + [Key] + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Product cost start date. + /// + [Key] + [Column(TypeName = "datetime")] + public DateTime StartDate { get; set; } + + /// + /// Product cost end date. + /// + [Column(TypeName = "datetime")] + public DateTime? EndDate { get; set; } + + /// + /// Standard cost of the product. + /// + [Column(TypeName = "money")] + public decimal StandardCost { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("ProductCostHistories")] + public virtual Product Product { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductDescription.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductDescription.cs similarity index 85% rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductDescription.cs rename to src/API/AdventureWorksDemo.Data/Entities/Production/ProductDescription.cs index 260fb90..03779dc 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductDescription.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductDescription.cs @@ -11,7 +11,7 @@ namespace AdventureWorksDemo.Data.Entities; /// /// Product descriptions in several languages. /// -[Table("ProductDescription", Schema = "SalesLT")] +[Table("ProductDescription", Schema = "Production")] [Index("Rowguid", Name = "AK_ProductDescription_rowguid", IsUnique = true)] public partial class ProductDescription { @@ -42,5 +42,5 @@ public partial class ProductDescription public DateTime ModifiedDate { get; set; } [InverseProperty("ProductDescription")] - public virtual ICollection ProductModelProductDescriptions { get; set; } = new List(); + public virtual ICollection ProductModelProductDescriptionCultures { get; set; } = new List(); } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductInventory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductInventory.cs new file mode 100644 index 0000000..7ad9265 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductInventory.cs @@ -0,0 +1,68 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Product inventory information. +/// +[PrimaryKey("ProductId", "LocationId")] +[Table("ProductInventory", Schema = "Production")] +public partial class ProductInventory +{ + /// + /// Product identification number. Foreign key to Product.ProductID. + /// + [Key] + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Inventory location identification number. Foreign key to Location.LocationID. + /// + [Key] + [Column("LocationID")] + public short LocationId { get; set; } + + /// + /// Storage compartment within an inventory location. + /// + [Required] + [StringLength(10)] + public string Shelf { get; set; } + + /// + /// Storage container on a shelf in an inventory location. + /// + public byte Bin { get; set; } + + /// + /// Quantity of products in the inventory location. + /// + public short Quantity { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("LocationId")] + [InverseProperty("ProductInventories")] + public virtual Location Location { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("ProductInventories")] + public virtual Product Product { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductListPriceHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductListPriceHistory.cs new file mode 100644 index 0000000..bf35922 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductListPriceHistory.cs @@ -0,0 +1,53 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Changes in the list price of a product over time. +/// +[PrimaryKey("ProductId", "StartDate")] +[Table("ProductListPriceHistory", Schema = "Production")] +public partial class ProductListPriceHistory +{ + /// + /// Product identification number. Foreign key to Product.ProductID + /// + [Key] + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// List price start date. + /// + [Key] + [Column(TypeName = "datetime")] + public DateTime StartDate { get; set; } + + /// + /// List price end date + /// + [Column(TypeName = "datetime")] + public DateTime? EndDate { get; set; } + + /// + /// Product list price. + /// + [Column(TypeName = "money")] + public decimal ListPrice { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("ProductListPriceHistories")] + public virtual Product Product { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModel.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModel.cs new file mode 100644 index 0000000..7693674 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModel.cs @@ -0,0 +1,67 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Product model classification. +/// +[Table("ProductModel", Schema = "Production")] +[Index("Name", Name = "AK_ProductModel_Name", IsUnique = true)] +[Index("Rowguid", Name = "AK_ProductModel_rowguid", IsUnique = true)] +[Index("CatalogDescription", Name = "PXML_ProductModel_CatalogDescription")] +[Index("Instructions", Name = "PXML_ProductModel_Instructions")] +public partial class ProductModel +{ + /// + /// Primary key for ProductModel records. + /// + [Key] + [Column("ProductModelID")] + public int ProductModelId { get; set; } + + /// + /// Product model description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Detailed product catalog information in xml format. + /// + [Column(TypeName = "xml")] + public string CatalogDescription { get; set; } + + /// + /// Manufacturing instructions in xml format. + /// + [Column(TypeName = "xml")] + public string Instructions { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("ProductModel")] + public virtual ICollection ProductModelIllustrations { get; set; } = new List(); + + [InverseProperty("ProductModel")] + public virtual ICollection ProductModelProductDescriptionCultures { get; set; } = new List(); + + [InverseProperty("ProductModel")] + public virtual ICollection Products { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelIllustration.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelIllustration.cs new file mode 100644 index 0000000..58b171f --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelIllustration.cs @@ -0,0 +1,45 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping product models and illustrations. +/// +[PrimaryKey("ProductModelId", "IllustrationId")] +[Table("ProductModelIllustration", Schema = "Production")] +public partial class ProductModelIllustration +{ + /// + /// Primary key. Foreign key to ProductModel.ProductModelID. + /// + [Key] + [Column("ProductModelID")] + public int ProductModelId { get; set; } + + /// + /// Primary key. Foreign key to Illustration.IllustrationID. + /// + [Key] + [Column("IllustrationID")] + public int IllustrationId { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("IllustrationId")] + [InverseProperty("ProductModelIllustrations")] + public virtual Illustration Illustration { get; set; } + + [ForeignKey("ProductModelId")] + [InverseProperty("ProductModelIllustrations")] + public virtual ProductModel ProductModel { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductModelProductDescription.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelProductDescriptionCulture.cs similarity index 68% rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductModelProductDescription.cs rename to src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelProductDescriptionCulture.cs index 8ee9423..aab1cad 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductModelProductDescription.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelProductDescriptionCulture.cs @@ -11,10 +11,9 @@ namespace AdventureWorksDemo.Data.Entities; /// /// Cross-reference table mapping product descriptions and the language the description is written in. /// -[PrimaryKey("ProductModelId", "ProductDescriptionId", "Culture")] -[Table("ProductModelProductDescription", Schema = "SalesLT")] -[Index("Rowguid", Name = "AK_ProductModelProductDescription_rowguid", IsUnique = true)] -public partial class ProductModelProductDescription +[PrimaryKey("ProductModelId", "ProductDescriptionId", "CultureId")] +[Table("ProductModelProductDescriptionCulture", Schema = "Production")] +public partial class ProductModelProductDescriptionCulture { /// /// Primary key. Foreign key to ProductModel.ProductModelID. @@ -31,14 +30,12 @@ public partial class ProductModelProductDescription public int ProductDescriptionId { get; set; } /// - /// The culture for which the description is written + /// Culture identification number. Foreign key to Culture.CultureID. /// [Key] + [Column("CultureID")] [StringLength(6)] - public string Culture { get; set; } - - [Column("rowguid")] - public Guid Rowguid { get; set; } + public string CultureId { get; set; } /// /// Date and time the record was last updated. @@ -46,11 +43,15 @@ public partial class ProductModelProductDescription [Column(TypeName = "datetime")] public DateTime ModifiedDate { get; set; } + [ForeignKey("CultureId")] + [InverseProperty("ProductModelProductDescriptionCultures")] + public virtual Culture Culture { get; set; } + [ForeignKey("ProductDescriptionId")] - [InverseProperty("ProductModelProductDescriptions")] + [InverseProperty("ProductModelProductDescriptionCultures")] public virtual ProductDescription ProductDescription { get; set; } [ForeignKey("ProductModelId")] - [InverseProperty("ProductModelProductDescriptions")] + [InverseProperty("ProductModelProductDescriptionCultures")] public virtual ProductModel ProductModel { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductPhoto.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductPhoto.cs new file mode 100644 index 0000000..328b984 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductPhoto.cs @@ -0,0 +1,54 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Product images. +/// +[Table("ProductPhoto", Schema = "Production")] +public partial class ProductPhoto +{ + /// + /// Primary key for ProductPhoto records. + /// + [Key] + [Column("ProductPhotoID")] + public int ProductPhotoId { get; set; } + + /// + /// Small image of the product. + /// + public byte[] ThumbNailPhoto { get; set; } + + /// + /// Small image file name. + /// + [StringLength(50)] + public string ThumbnailPhotoFileName { get; set; } + + /// + /// Large image of the product. + /// + public byte[] LargePhoto { get; set; } + + /// + /// Large image file name. + /// + [StringLength(50)] + public string LargePhotoFileName { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("ProductPhoto")] + public virtual ICollection ProductProductPhotos { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductProductPhoto.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductProductPhoto.cs new file mode 100644 index 0000000..c4dfb27 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductProductPhoto.cs @@ -0,0 +1,50 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping products and product photos. +/// +[PrimaryKey("ProductId", "ProductPhotoId")] +[Table("ProductProductPhoto", Schema = "Production")] +public partial class ProductProductPhoto +{ + /// + /// Product identification number. Foreign key to Product.ProductID. + /// + [Key] + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Product photo identification number. Foreign key to ProductPhoto.ProductPhotoID. + /// + [Key] + [Column("ProductPhotoID")] + public int ProductPhotoId { get; set; } + + /// + /// 0 = Photo is not the principal image. 1 = Photo is the principal image. + /// + public bool Primary { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("ProductProductPhotos")] + public virtual Product Product { get; set; } + + [ForeignKey("ProductPhotoId")] + [InverseProperty("ProductProductPhotos")] + public virtual ProductPhoto ProductPhoto { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductReview.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductReview.cs new file mode 100644 index 0000000..789287e --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductReview.cs @@ -0,0 +1,71 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Customer reviews of products they have purchased. +/// +[Table("ProductReview", Schema = "Production")] +[Index("ProductId", "ReviewerName", Name = "IX_ProductReview_ProductID_Name")] +public partial class ProductReview +{ + /// + /// Primary key for ProductReview records. + /// + [Key] + [Column("ProductReviewID")] + public int ProductReviewId { get; set; } + + /// + /// Product identification number. Foreign key to Product.ProductID. + /// + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Name of the reviewer. + /// + [Required] + [StringLength(50)] + public string ReviewerName { get; set; } + + /// + /// Date review was submitted. + /// + [Column(TypeName = "datetime")] + public DateTime ReviewDate { get; set; } + + /// + /// Reviewer's e-mail address. + /// + [Required] + [StringLength(50)] + public string EmailAddress { get; set; } + + /// + /// Product rating given by the reviewer. Scale is 1 to 5 with 5 as the highest rating. + /// + public int Rating { get; set; } + + /// + /// Reviewer's comments + /// + [StringLength(3850)] + public string Comments { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("ProductReviews")] + public virtual Product Product { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductSubcategory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductSubcategory.cs new file mode 100644 index 0000000..c330788 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductSubcategory.cs @@ -0,0 +1,57 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Product subcategories. See ProductCategory table. +/// +[Table("ProductSubcategory", Schema = "Production")] +[Index("Name", Name = "AK_ProductSubcategory_Name", IsUnique = true)] +[Index("Rowguid", Name = "AK_ProductSubcategory_rowguid", IsUnique = true)] +public partial class ProductSubcategory +{ + /// + /// Primary key for ProductSubcategory records. + /// + [Key] + [Column("ProductSubcategoryID")] + public int ProductSubcategoryId { get; set; } + + /// + /// Product category identification number. Foreign key to ProductCategory.ProductCategoryID. + /// + [Column("ProductCategoryID")] + public int ProductCategoryId { get; set; } + + /// + /// Subcategory description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductCategoryId")] + [InverseProperty("ProductSubcategories")] + public virtual ProductCategory ProductCategory { get; set; } + + [InverseProperty("ProductSubcategory")] + public virtual ICollection Products { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ScrapReason.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ScrapReason.cs new file mode 100644 index 0000000..ae215dd --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ScrapReason.cs @@ -0,0 +1,40 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Manufacturing failure reasons lookup table. +/// +[Table("ScrapReason", Schema = "Production")] +[Index("Name", Name = "AK_ScrapReason_Name", IsUnique = true)] +public partial class ScrapReason +{ + /// + /// Primary key for ScrapReason records. + /// + [Key] + [Column("ScrapReasonID")] + public short ScrapReasonId { get; set; } + + /// + /// Failure description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("ScrapReason")] + public virtual ICollection WorkOrders { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistory.cs new file mode 100644 index 0000000..ff45339 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistory.cs @@ -0,0 +1,77 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Record of each purchase order, sales order, or work order transaction year to date. +/// +[Table("TransactionHistory", Schema = "Production")] +[Index("ProductId", Name = "IX_TransactionHistory_ProductID")] +[Index("ReferenceOrderId", "ReferenceOrderLineId", Name = "IX_TransactionHistory_ReferenceOrderID_ReferenceOrderLineID")] +public partial class TransactionHistory +{ + /// + /// Primary key for TransactionHistory records. + /// + [Key] + [Column("TransactionID")] + public int TransactionId { get; set; } + + /// + /// Product identification number. Foreign key to Product.ProductID. + /// + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Purchase order, sales order, or work order identification number. + /// + [Column("ReferenceOrderID")] + public int ReferenceOrderId { get; set; } + + /// + /// Line number associated with the purchase order, sales order, or work order. + /// + [Column("ReferenceOrderLineID")] + public int ReferenceOrderLineId { get; set; } + + /// + /// Date and time of the transaction. + /// + [Column(TypeName = "datetime")] + public DateTime TransactionDate { get; set; } + + /// + /// W = WorkOrder, S = SalesOrder, P = PurchaseOrder + /// + [Required] + [StringLength(1)] + public string TransactionType { get; set; } + + /// + /// Product quantity. + /// + public int Quantity { get; set; } + + /// + /// Product cost. + /// + [Column(TypeName = "money")] + public decimal ActualCost { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("TransactionHistories")] + public virtual Product Product { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistoryArchive.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistoryArchive.cs new file mode 100644 index 0000000..b12815b --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistoryArchive.cs @@ -0,0 +1,73 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Transactions for previous years. +/// +[Table("TransactionHistoryArchive", Schema = "Production")] +[Index("ProductId", Name = "IX_TransactionHistoryArchive_ProductID")] +[Index("ReferenceOrderId", "ReferenceOrderLineId", Name = "IX_TransactionHistoryArchive_ReferenceOrderID_ReferenceOrderLineID")] +public partial class TransactionHistoryArchive +{ + /// + /// Primary key for TransactionHistoryArchive records. + /// + [Key] + [Column("TransactionID")] + public int TransactionId { get; set; } + + /// + /// Product identification number. Foreign key to Product.ProductID. + /// + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Purchase order, sales order, or work order identification number. + /// + [Column("ReferenceOrderID")] + public int ReferenceOrderId { get; set; } + + /// + /// Line number associated with the purchase order, sales order, or work order. + /// + [Column("ReferenceOrderLineID")] + public int ReferenceOrderLineId { get; set; } + + /// + /// Date and time of the transaction. + /// + [Column(TypeName = "datetime")] + public DateTime TransactionDate { get; set; } + + /// + /// W = Work Order, S = Sales Order, P = Purchase Order + /// + [Required] + [StringLength(1)] + public string TransactionType { get; set; } + + /// + /// Product quantity. + /// + public int Quantity { get; set; } + + /// + /// Product cost. + /// + [Column(TypeName = "money")] + public decimal ActualCost { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/UnitMeasure.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/UnitMeasure.cs new file mode 100644 index 0000000..80384f9 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/UnitMeasure.cs @@ -0,0 +1,49 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Unit of measure lookup table. +/// +[Table("UnitMeasure", Schema = "Production")] +[Index("Name", Name = "AK_UnitMeasure_Name", IsUnique = true)] +public partial class UnitMeasure +{ + /// + /// Primary key. + /// + [Key] + [StringLength(3)] + public string UnitMeasureCode { get; set; } + + /// + /// Unit of measure description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("UnitMeasureCodeNavigation")] + public virtual ICollection BillOfMaterials { get; set; } = new List(); + + [InverseProperty("SizeUnitMeasureCodeNavigation")] + public virtual ICollection ProductSizeUnitMeasureCodeNavigations { get; set; } = new List(); + + [InverseProperty("UnitMeasureCodeNavigation")] + public virtual ICollection ProductVendors { get; set; } = new List(); + + [InverseProperty("WeightUnitMeasureCodeNavigation")] + public virtual ICollection ProductWeightUnitMeasureCodeNavigations { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrder.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrder.cs new file mode 100644 index 0000000..34b03ca --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrder.cs @@ -0,0 +1,87 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Manufacturing work orders. +/// +[Table("WorkOrder", Schema = "Production")] +[Index("ProductId", Name = "IX_WorkOrder_ProductID")] +[Index("ScrapReasonId", Name = "IX_WorkOrder_ScrapReasonID")] +public partial class WorkOrder +{ + /// + /// Primary key for WorkOrder records. + /// + [Key] + [Column("WorkOrderID")] + public int WorkOrderId { get; set; } + + /// + /// Product identification number. Foreign key to Product.ProductID. + /// + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Product quantity to build. + /// + public int OrderQty { get; set; } + + /// + /// Quantity built and put in inventory. + /// + public int StockedQty { get; set; } + + /// + /// Quantity that failed inspection. + /// + public short ScrappedQty { get; set; } + + /// + /// Work order start date. + /// + [Column(TypeName = "datetime")] + public DateTime StartDate { get; set; } + + /// + /// Work order end date. + /// + [Column(TypeName = "datetime")] + public DateTime? EndDate { get; set; } + + /// + /// Work order due date. + /// + [Column(TypeName = "datetime")] + public DateTime DueDate { get; set; } + + /// + /// Reason for inspection failure. + /// + [Column("ScrapReasonID")] + public short? ScrapReasonId { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("WorkOrders")] + public virtual Product Product { get; set; } + + [ForeignKey("ScrapReasonId")] + [InverseProperty("WorkOrders")] + public virtual ScrapReason ScrapReason { get; set; } + + [InverseProperty("WorkOrder")] + public virtual ICollection WorkOrderRoutings { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrderRouting.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrderRouting.cs new file mode 100644 index 0000000..c61f83e --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrderRouting.cs @@ -0,0 +1,100 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Work order details. +/// +[PrimaryKey("WorkOrderId", "ProductId", "OperationSequence")] +[Table("WorkOrderRouting", Schema = "Production")] +[Index("ProductId", Name = "IX_WorkOrderRouting_ProductID")] +public partial class WorkOrderRouting +{ + /// + /// Primary key. Foreign key to WorkOrder.WorkOrderID. + /// + [Key] + [Column("WorkOrderID")] + public int WorkOrderId { get; set; } + + /// + /// Primary key. Foreign key to Product.ProductID. + /// + [Key] + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Primary key. Indicates the manufacturing process sequence. + /// + [Key] + public short OperationSequence { get; set; } + + /// + /// Manufacturing location where the part is processed. Foreign key to Location.LocationID. + /// + [Column("LocationID")] + public short LocationId { get; set; } + + /// + /// Planned manufacturing start date. + /// + [Column(TypeName = "datetime")] + public DateTime ScheduledStartDate { get; set; } + + /// + /// Planned manufacturing end date. + /// + [Column(TypeName = "datetime")] + public DateTime ScheduledEndDate { get; set; } + + /// + /// Actual start date. + /// + [Column(TypeName = "datetime")] + public DateTime? ActualStartDate { get; set; } + + /// + /// Actual end date. + /// + [Column(TypeName = "datetime")] + public DateTime? ActualEndDate { get; set; } + + /// + /// Number of manufacturing hours used. + /// + [Column(TypeName = "decimal(9, 4)")] + public decimal? ActualResourceHrs { get; set; } + + /// + /// Estimated manufacturing cost. + /// + [Column(TypeName = "money")] + public decimal PlannedCost { get; set; } + + /// + /// Actual manufacturing cost. + /// + [Column(TypeName = "money")] + public decimal? ActualCost { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("LocationId")] + [InverseProperty("WorkOrderRoutings")] + public virtual Location Location { get; set; } + + [ForeignKey("WorkOrderId")] + [InverseProperty("WorkOrderRoutings")] + public virtual WorkOrder WorkOrder { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ProductVendor.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ProductVendor.cs new file mode 100644 index 0000000..2ebde2d --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ProductVendor.cs @@ -0,0 +1,96 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping vendors with the products they supply. +/// +[PrimaryKey("ProductId", "BusinessEntityId")] +[Table("ProductVendor", Schema = "Purchasing")] +[Index("BusinessEntityId", Name = "IX_ProductVendor_BusinessEntityID")] +[Index("UnitMeasureCode", Name = "IX_ProductVendor_UnitMeasureCode")] +public partial class ProductVendor +{ + /// + /// Primary key. Foreign key to Product.ProductID. + /// + [Key] + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Primary key. Foreign key to Vendor.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// The average span of time (in days) between placing an order with the vendor and receiving the purchased product. + /// + public int AverageLeadTime { get; set; } + + /// + /// The vendor's usual selling price. + /// + [Column(TypeName = "money")] + public decimal StandardPrice { get; set; } + + /// + /// The selling price when last purchased. + /// + [Column(TypeName = "money")] + public decimal? LastReceiptCost { get; set; } + + /// + /// Date the product was last received by the vendor. + /// + [Column(TypeName = "datetime")] + public DateTime? LastReceiptDate { get; set; } + + /// + /// The maximum quantity that should be ordered. + /// + public int MinOrderQty { get; set; } + + /// + /// The minimum quantity that should be ordered. + /// + public int MaxOrderQty { get; set; } + + /// + /// The quantity currently on order. + /// + public int? OnOrderQty { get; set; } + + /// + /// The product's unit of measure. + /// + [Required] + [StringLength(3)] + public string UnitMeasureCode { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("ProductVendors")] + public virtual Vendor BusinessEntity { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("ProductVendors")] + public virtual Product Product { get; set; } + + [ForeignKey("UnitMeasureCode")] + [InverseProperty("ProductVendors")] + public virtual UnitMeasure UnitMeasureCodeNavigation { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderDetail.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderDetail.cs new file mode 100644 index 0000000..0a83934 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderDetail.cs @@ -0,0 +1,93 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Individual products associated with a specific purchase order. See PurchaseOrderHeader. +/// +[PrimaryKey("PurchaseOrderId", "PurchaseOrderDetailId")] +[Table("PurchaseOrderDetail", Schema = "Purchasing")] +[Index("ProductId", Name = "IX_PurchaseOrderDetail_ProductID")] +public partial class PurchaseOrderDetail +{ + /// + /// Primary key. Foreign key to PurchaseOrderHeader.PurchaseOrderID. + /// + [Key] + [Column("PurchaseOrderID")] + public int PurchaseOrderId { get; set; } + + /// + /// Primary key. One line number per purchased product. + /// + [Key] + [Column("PurchaseOrderDetailID")] + public int PurchaseOrderDetailId { get; set; } + + /// + /// Date the product is expected to be received. + /// + [Column(TypeName = "datetime")] + public DateTime DueDate { get; set; } + + /// + /// Quantity ordered. + /// + public short OrderQty { get; set; } + + /// + /// Product identification number. Foreign key to Product.ProductID. + /// + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Vendor's selling price of a single product. + /// + [Column(TypeName = "money")] + public decimal UnitPrice { get; set; } + + /// + /// Per product subtotal. Computed as OrderQty * UnitPrice. + /// + [Column(TypeName = "money")] + public decimal LineTotal { get; set; } + + /// + /// Quantity actually received from the vendor. + /// + [Column(TypeName = "decimal(8, 2)")] + public decimal ReceivedQty { get; set; } + + /// + /// Quantity rejected during inspection. + /// + [Column(TypeName = "decimal(8, 2)")] + public decimal RejectedQty { get; set; } + + /// + /// Quantity accepted into inventory. Computed as ReceivedQty - RejectedQty. + /// + [Column(TypeName = "decimal(9, 2)")] + public decimal StockedQty { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("PurchaseOrderDetails")] + public virtual Product Product { get; set; } + + [ForeignKey("PurchaseOrderId")] + [InverseProperty("PurchaseOrderDetails")] + public virtual PurchaseOrderHeader PurchaseOrder { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderHeader.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderHeader.cs new file mode 100644 index 0000000..ed364cd --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderHeader.cs @@ -0,0 +1,110 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// General purchase order information. See PurchaseOrderDetail. +/// +[Table("PurchaseOrderHeader", Schema = "Purchasing")] +[Index("EmployeeId", Name = "IX_PurchaseOrderHeader_EmployeeID")] +[Index("VendorId", Name = "IX_PurchaseOrderHeader_VendorID")] +public partial class PurchaseOrderHeader +{ + /// + /// Primary key. + /// + [Key] + [Column("PurchaseOrderID")] + public int PurchaseOrderId { get; set; } + + /// + /// Incremental number to track changes to the purchase order over time. + /// + public byte RevisionNumber { get; set; } + + /// + /// Order current status. 1 = Pending; 2 = Approved; 3 = Rejected; 4 = Complete + /// + public byte Status { get; set; } + + /// + /// Employee who created the purchase order. Foreign key to Employee.BusinessEntityID. + /// + [Column("EmployeeID")] + public int EmployeeId { get; set; } + + /// + /// Vendor with whom the purchase order is placed. Foreign key to Vendor.BusinessEntityID. + /// + [Column("VendorID")] + public int VendorId { get; set; } + + /// + /// Shipping method. Foreign key to ShipMethod.ShipMethodID. + /// + [Column("ShipMethodID")] + public int ShipMethodId { get; set; } + + /// + /// Purchase order creation date. + /// + [Column(TypeName = "datetime")] + public DateTime OrderDate { get; set; } + + /// + /// Estimated shipment date from the vendor. + /// + [Column(TypeName = "datetime")] + public DateTime? ShipDate { get; set; } + + /// + /// Purchase order subtotal. Computed as SUM(PurchaseOrderDetail.LineTotal)for the appropriate PurchaseOrderID. + /// + [Column(TypeName = "money")] + public decimal SubTotal { get; set; } + + /// + /// Tax amount. + /// + [Column(TypeName = "money")] + public decimal TaxAmt { get; set; } + + /// + /// Shipping cost. + /// + [Column(TypeName = "money")] + public decimal Freight { get; set; } + + /// + /// Total due to vendor. Computed as Subtotal + TaxAmt + Freight. + /// + [Column(TypeName = "money")] + public decimal TotalDue { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("EmployeeId")] + [InverseProperty("PurchaseOrderHeaders")] + public virtual Employee Employee { get; set; } + + [InverseProperty("PurchaseOrder")] + public virtual ICollection PurchaseOrderDetails { get; set; } = new List(); + + [ForeignKey("ShipMethodId")] + [InverseProperty("PurchaseOrderHeaders")] + public virtual ShipMethod ShipMethod { get; set; } + + [ForeignKey("VendorId")] + [InverseProperty("PurchaseOrderHeaders")] + public virtual Vendor Vendor { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ShipMethod.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ShipMethod.cs new file mode 100644 index 0000000..bc9287f --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ShipMethod.cs @@ -0,0 +1,62 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Shipping company lookup table. +/// +[Table("ShipMethod", Schema = "Purchasing")] +[Index("Name", Name = "AK_ShipMethod_Name", IsUnique = true)] +[Index("Rowguid", Name = "AK_ShipMethod_rowguid", IsUnique = true)] +public partial class ShipMethod +{ + /// + /// Primary key for ShipMethod records. + /// + [Key] + [Column("ShipMethodID")] + public int ShipMethodId { get; set; } + + /// + /// Shipping company name. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Minimum shipping charge. + /// + [Column(TypeName = "money")] + public decimal ShipBase { get; set; } + + /// + /// Shipping charge per pound. + /// + [Column(TypeName = "money")] + public decimal ShipRate { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("ShipMethod")] + public virtual ICollection PurchaseOrderHeaders { get; set; } = new List(); + + [InverseProperty("ShipMethod")] + public virtual ICollection SalesOrderHeaders { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/Vendor.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/Vendor.cs new file mode 100644 index 0000000..7578be9 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/Vendor.cs @@ -0,0 +1,76 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Companies from whom Adventure Works Cycles purchases parts or other goods. +/// +[Table("Vendor", Schema = "Purchasing")] +[Index("AccountNumber", Name = "AK_Vendor_AccountNumber", IsUnique = true)] +public partial class Vendor +{ + /// + /// Primary key for Vendor records. Foreign key to BusinessEntity.BusinessEntityID + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Vendor account (identification) number. + /// + [Required] + [StringLength(15)] + public string AccountNumber { get; set; } + + /// + /// Company name. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// 1 = Superior, 2 = Excellent, 3 = Above average, 4 = Average, 5 = Below average + /// + public byte CreditRating { get; set; } + + /// + /// 0 = Do not use if another vendor is available. 1 = Preferred over other vendors supplying the same product. + /// + public bool PreferredVendorStatus { get; set; } + + /// + /// 0 = Vendor no longer used. 1 = Vendor is actively used. + /// + public bool ActiveFlag { get; set; } + + /// + /// Vendor URL. + /// + [Column("PurchasingWebServiceURL")] + [StringLength(1024)] + public string PurchasingWebServiceUrl { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("Vendor")] + public virtual BusinessEntity BusinessEntity { get; set; } + + [InverseProperty("BusinessEntity")] + public virtual ICollection ProductVendors { get; set; } = new List(); + + [InverseProperty("Vendor")] + public virtual ICollection PurchaseOrderHeaders { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/CountryRegionCurrency.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/CountryRegionCurrency.cs new file mode 100644 index 0000000..a09d89b --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/CountryRegionCurrency.cs @@ -0,0 +1,46 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping ISO currency codes to a country or region. +/// +[PrimaryKey("CountryRegionCode", "CurrencyCode")] +[Table("CountryRegionCurrency", Schema = "Sales")] +[Index("CurrencyCode", Name = "IX_CountryRegionCurrency_CurrencyCode")] +public partial class CountryRegionCurrency +{ + /// + /// ISO code for countries and regions. Foreign key to CountryRegion.CountryRegionCode. + /// + [Key] + [StringLength(3)] + public string CountryRegionCode { get; set; } + + /// + /// ISO standard currency code. Foreign key to Currency.CurrencyCode. + /// + [Key] + [StringLength(3)] + public string CurrencyCode { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("CountryRegionCode")] + [InverseProperty("CountryRegionCurrencies")] + public virtual CountryRegion CountryRegionCodeNavigation { get; set; } + + [ForeignKey("CurrencyCode")] + [InverseProperty("CountryRegionCurrencies")] + public virtual Currency CurrencyCodeNavigation { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/CreditCard.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/CreditCard.cs new file mode 100644 index 0000000..3aa02a5 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/CreditCard.cs @@ -0,0 +1,60 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Customer credit card information. +/// +[Table("CreditCard", Schema = "Sales")] +[Index("CardNumber", Name = "AK_CreditCard_CardNumber", IsUnique = true)] +public partial class CreditCard +{ + /// + /// Primary key for CreditCard records. + /// + [Key] + [Column("CreditCardID")] + public int CreditCardId { get; set; } + + /// + /// Credit card name. + /// + [Required] + [StringLength(50)] + public string CardType { get; set; } + + /// + /// Credit card number. + /// + [Required] + [StringLength(25)] + public string CardNumber { get; set; } + + /// + /// Credit card expiration month. + /// + public byte ExpMonth { get; set; } + + /// + /// Credit card expiration year. + /// + public short ExpYear { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("CreditCard")] + public virtual ICollection PersonCreditCards { get; set; } = new List(); + + [InverseProperty("CreditCard")] + public virtual ICollection SalesOrderHeaders { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/Currency.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/Currency.cs new file mode 100644 index 0000000..7b24605 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/Currency.cs @@ -0,0 +1,46 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Lookup table containing standard ISO currencies. +/// +[Table("Currency", Schema = "Sales")] +[Index("Name", Name = "AK_Currency_Name", IsUnique = true)] +public partial class Currency +{ + /// + /// The ISO code for the Currency. + /// + [Key] + [StringLength(3)] + public string CurrencyCode { get; set; } + + /// + /// Currency name. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("CurrencyCodeNavigation")] + public virtual ICollection CountryRegionCurrencies { get; set; } = new List(); + + [InverseProperty("FromCurrencyCodeNavigation")] + public virtual ICollection CurrencyRateFromCurrencyCodeNavigations { get; set; } = new List(); + + [InverseProperty("ToCurrencyCodeNavigation")] + public virtual ICollection CurrencyRateToCurrencyCodeNavigations { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/CurrencyRate.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/CurrencyRate.cs new file mode 100644 index 0000000..bebbfb5 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/CurrencyRate.cs @@ -0,0 +1,73 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Currency exchange rates. +/// +[Table("CurrencyRate", Schema = "Sales")] +[Index("CurrencyRateDate", "FromCurrencyCode", "ToCurrencyCode", Name = "AK_CurrencyRate_CurrencyRateDate_FromCurrencyCode_ToCurrencyCode", IsUnique = true)] +public partial class CurrencyRate +{ + /// + /// Primary key for CurrencyRate records. + /// + [Key] + [Column("CurrencyRateID")] + public int CurrencyRateId { get; set; } + + /// + /// Date and time the exchange rate was obtained. + /// + [Column(TypeName = "datetime")] + public DateTime CurrencyRateDate { get; set; } + + /// + /// Exchange rate was converted from this currency code. + /// + [Required] + [StringLength(3)] + public string FromCurrencyCode { get; set; } + + /// + /// Exchange rate was converted to this currency code. + /// + [Required] + [StringLength(3)] + public string ToCurrencyCode { get; set; } + + /// + /// Average exchange rate for the day. + /// + [Column(TypeName = "money")] + public decimal AverageRate { get; set; } + + /// + /// Final exchange rate for the day. + /// + [Column(TypeName = "money")] + public decimal EndOfDayRate { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("FromCurrencyCode")] + [InverseProperty("CurrencyRateFromCurrencyCodeNavigations")] + public virtual Currency FromCurrencyCodeNavigation { get; set; } + + [InverseProperty("CurrencyRate")] + public virtual ICollection SalesOrderHeaders { get; set; } = new List(); + + [ForeignKey("ToCurrencyCode")] + [InverseProperty("CurrencyRateToCurrencyCodeNavigations")] + public virtual Currency ToCurrencyCodeNavigation { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/Customer.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/Customer.cs new file mode 100644 index 0000000..a57bc1d --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/Customer.cs @@ -0,0 +1,79 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Current customer information. Also see the Person and Store tables. +/// +[Table("Customer", Schema = "Sales")] +[Index("AccountNumber", Name = "AK_Customer_AccountNumber", IsUnique = true)] +[Index("Rowguid", Name = "AK_Customer_rowguid", IsUnique = true)] +[Index("TerritoryId", Name = "IX_Customer_TerritoryID")] +public partial class Customer +{ + /// + /// Primary key. + /// + [Key] + [Column("CustomerID")] + public int CustomerId { get; set; } + + /// + /// Foreign key to Person.BusinessEntityID + /// + [Column("PersonID")] + public int? PersonId { get; set; } + + /// + /// Foreign key to Store.BusinessEntityID + /// + [Column("StoreID")] + public int? StoreId { get; set; } + + /// + /// ID of the territory in which the customer is located. Foreign key to SalesTerritory.SalesTerritoryID. + /// + [Column("TerritoryID")] + public int? TerritoryId { get; set; } + + /// + /// Unique number identifying the customer assigned by the accounting system. + /// + [Required] + [StringLength(10)] + [Unicode(false)] + public string AccountNumber { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("PersonId")] + [InverseProperty("Customers")] + public virtual Person Person { get; set; } + + [InverseProperty("Customer")] + public virtual ICollection SalesOrderHeaders { get; set; } = new List(); + + [ForeignKey("StoreId")] + [InverseProperty("Customers")] + public virtual Store Store { get; set; } + + [ForeignKey("TerritoryId")] + [InverseProperty("Customers")] + public virtual SalesTerritory Territory { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/PersonCreditCard.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/PersonCreditCard.cs new file mode 100644 index 0000000..f645448 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/PersonCreditCard.cs @@ -0,0 +1,45 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping people to their credit card information in the CreditCard table. +/// +[PrimaryKey("BusinessEntityId", "CreditCardId")] +[Table("PersonCreditCard", Schema = "Sales")] +public partial class PersonCreditCard +{ + /// + /// Business entity identification number. Foreign key to Person.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Credit card identification number. Foreign key to CreditCard.CreditCardID. + /// + [Key] + [Column("CreditCardID")] + public int CreditCardId { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("PersonCreditCards")] + public virtual Person BusinessEntity { get; set; } + + [ForeignKey("CreditCardId")] + [InverseProperty("PersonCreditCards")] + public virtual CreditCard CreditCard { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/SalesOrderDetail.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderDetail.cs similarity index 82% rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/SalesOrderDetail.cs rename to src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderDetail.cs index d05aee3..05f0a82 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/SalesOrderDetail.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderDetail.cs @@ -12,7 +12,7 @@ namespace AdventureWorksDemo.Data.Entities; /// Individual products associated with a specific sales order. See SalesOrderHeader. /// [PrimaryKey("SalesOrderId", "SalesOrderDetailId")] -[Table("SalesOrderDetail", Schema = "SalesLT")] +[Table("SalesOrderDetail", Schema = "Sales")] [Index("Rowguid", Name = "AK_SalesOrderDetail_rowguid", IsUnique = true)] [Index("ProductId", Name = "IX_SalesOrderDetail_ProductID")] public partial class SalesOrderDetail @@ -31,6 +31,12 @@ public partial class SalesOrderDetail [Column("SalesOrderDetailID")] public int SalesOrderDetailId { get; set; } + /// + /// Shipment tracking number supplied by the shipper. + /// + [StringLength(25)] + public string CarrierTrackingNumber { get; set; } + /// /// Quantity ordered per product. /// @@ -42,6 +48,12 @@ public partial class SalesOrderDetail [Column("ProductID")] public int ProductId { get; set; } + /// + /// Promotional code. Foreign key to SpecialOffer.SpecialOfferID. + /// + [Column("SpecialOfferID")] + public int SpecialOfferId { get; set; } + /// /// Selling price of a single product. /// @@ -72,11 +84,11 @@ public partial class SalesOrderDetail [Column(TypeName = "datetime")] public DateTime ModifiedDate { get; set; } - [ForeignKey("ProductId")] - [InverseProperty("SalesOrderDetails")] - public virtual Product Product { get; set; } - [ForeignKey("SalesOrderId")] [InverseProperty("SalesOrderDetails")] public virtual SalesOrderHeader SalesOrder { get; set; } + + [ForeignKey("SpecialOfferId, ProductId")] + [InverseProperty("SalesOrderDetails")] + public virtual SpecialOfferProduct SpecialOfferProduct { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/SalesOrderHeader.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeader.cs similarity index 68% rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/SalesOrderHeader.cs rename to src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeader.cs index fdb29cf..444748b 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/SalesOrderHeader.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeader.cs @@ -11,10 +11,11 @@ namespace AdventureWorksDemo.Data.Entities; /// /// General sales order information. /// -[Table("SalesOrderHeader", Schema = "SalesLT")] +[Table("SalesOrderHeader", Schema = "Sales")] [Index("SalesOrderNumber", Name = "AK_SalesOrderHeader_SalesOrderNumber", IsUnique = true)] [Index("Rowguid", Name = "AK_SalesOrderHeader_rowguid", IsUnique = true)] [Index("CustomerId", Name = "IX_SalesOrderHeader_CustomerID")] +[Index("SalesPersonId", Name = "IX_SalesOrderHeader_SalesPersonID")] public partial class SalesOrderHeader { /// @@ -77,29 +78,46 @@ public partial class SalesOrderHeader public string AccountNumber { get; set; } /// - /// Customer identification number. Foreign key to Customer.CustomerID. + /// Customer identification number. Foreign key to Customer.BusinessEntityID. /// [Column("CustomerID")] public int CustomerId { get; set; } /// - /// The ID of the location to send goods. Foreign key to the Address table. + /// Sales person who created the sales order. Foreign key to SalesPerson.BusinessEntityID. /// - [Column("ShipToAddressID")] - public int? ShipToAddressId { get; set; } + [Column("SalesPersonID")] + public int? SalesPersonId { get; set; } + + /// + /// Territory in which the sale was made. Foreign key to SalesTerritory.SalesTerritoryID. + /// + [Column("TerritoryID")] + public int? TerritoryId { get; set; } /// - /// The ID of the location to send invoices. Foreign key to the Address table. + /// Customer billing address. Foreign key to Address.AddressID. /// [Column("BillToAddressID")] - public int? BillToAddressId { get; set; } + public int BillToAddressId { get; set; } + + /// + /// Customer shipping address. Foreign key to Address.AddressID. + /// + [Column("ShipToAddressID")] + public int ShipToAddressId { get; set; } /// /// Shipping method. Foreign key to ShipMethod.ShipMethodID. /// - [Required] - [StringLength(50)] - public string ShipMethod { get; set; } + [Column("ShipMethodID")] + public int ShipMethodId { get; set; } + + /// + /// Credit card identification number. Foreign key to CreditCard.CreditCardID. + /// + [Column("CreditCardID")] + public int? CreditCardId { get; set; } /// /// Approval code provided by the credit card company. @@ -108,6 +126,12 @@ public partial class SalesOrderHeader [Unicode(false)] public string CreditCardApprovalCode { get; set; } + /// + /// Currency exchange rate used. Foreign key to CurrencyRate.CurrencyRateID. + /// + [Column("CurrencyRateID")] + public int? CurrencyRateId { get; set; } + /// /// Sales subtotal. Computed as SUM(SalesOrderDetail.LineTotal)for the appropriate SalesOrderID. /// @@ -135,6 +159,7 @@ public partial class SalesOrderHeader /// /// Sales representative comments. /// + [StringLength(128)] public string Comment { get; set; } /// @@ -153,6 +178,14 @@ public partial class SalesOrderHeader [InverseProperty("SalesOrderHeaderBillToAddresses")] public virtual Address BillToAddress { get; set; } + [ForeignKey("CreditCardId")] + [InverseProperty("SalesOrderHeaders")] + public virtual CreditCard CreditCard { get; set; } + + [ForeignKey("CurrencyRateId")] + [InverseProperty("SalesOrderHeaders")] + public virtual CurrencyRate CurrencyRate { get; set; } + [ForeignKey("CustomerId")] [InverseProperty("SalesOrderHeaders")] public virtual Customer Customer { get; set; } @@ -160,7 +193,22 @@ public partial class SalesOrderHeader [InverseProperty("SalesOrder")] public virtual ICollection SalesOrderDetails { get; set; } = new List(); + [InverseProperty("SalesOrder")] + public virtual ICollection SalesOrderHeaderSalesReasons { get; set; } = new List(); + + [ForeignKey("SalesPersonId")] + [InverseProperty("SalesOrderHeaders")] + public virtual SalesPerson SalesPerson { get; set; } + + [ForeignKey("ShipMethodId")] + [InverseProperty("SalesOrderHeaders")] + public virtual ShipMethod ShipMethod { get; set; } + [ForeignKey("ShipToAddressId")] [InverseProperty("SalesOrderHeaderShipToAddresses")] public virtual Address ShipToAddress { get; set; } + + [ForeignKey("TerritoryId")] + [InverseProperty("SalesOrderHeaders")] + public virtual SalesTerritory Territory { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeaderSalesReason.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeaderSalesReason.cs new file mode 100644 index 0000000..5fcf4fb --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeaderSalesReason.cs @@ -0,0 +1,45 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping sales orders to sales reason codes. +/// +[PrimaryKey("SalesOrderId", "SalesReasonId")] +[Table("SalesOrderHeaderSalesReason", Schema = "Sales")] +public partial class SalesOrderHeaderSalesReason +{ + /// + /// Primary key. Foreign key to SalesOrderHeader.SalesOrderID. + /// + [Key] + [Column("SalesOrderID")] + public int SalesOrderId { get; set; } + + /// + /// Primary key. Foreign key to SalesReason.SalesReasonID. + /// + [Key] + [Column("SalesReasonID")] + public int SalesReasonId { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("SalesOrderId")] + [InverseProperty("SalesOrderHeaderSalesReasons")] + public virtual SalesOrderHeader SalesOrder { get; set; } + + [ForeignKey("SalesReasonId")] + [InverseProperty("SalesOrderHeaderSalesReasons")] + public virtual SalesReason SalesReason { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPerson.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPerson.cs new file mode 100644 index 0000000..d1da48b --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPerson.cs @@ -0,0 +1,92 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Sales representative current information. +/// +[Table("SalesPerson", Schema = "Sales")] +[Index("Rowguid", Name = "AK_SalesPerson_rowguid", IsUnique = true)] +public partial class SalesPerson +{ + /// + /// Primary key for SalesPerson records. Foreign key to Employee.BusinessEntityID + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Territory currently assigned to. Foreign key to SalesTerritory.SalesTerritoryID. + /// + [Column("TerritoryID")] + public int? TerritoryId { get; set; } + + /// + /// Projected yearly sales. + /// + [Column(TypeName = "money")] + public decimal? SalesQuota { get; set; } + + /// + /// Bonus due if quota is met. + /// + [Column(TypeName = "money")] + public decimal Bonus { get; set; } + + /// + /// Commision percent received per sale. + /// + [Column(TypeName = "smallmoney")] + public decimal CommissionPct { get; set; } + + /// + /// Sales total year to date. + /// + [Column("SalesYTD", TypeName = "money")] + public decimal SalesYtd { get; set; } + + /// + /// Sales total of previous year. + /// + [Column(TypeName = "money")] + public decimal SalesLastYear { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("SalesPerson")] + public virtual Employee BusinessEntity { get; set; } + + [InverseProperty("SalesPerson")] + public virtual ICollection SalesOrderHeaders { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual ICollection SalesPersonQuotaHistories { get; set; } = new List(); + + [InverseProperty("BusinessEntity")] + public virtual ICollection SalesTerritoryHistories { get; set; } = new List(); + + [InverseProperty("SalesPerson")] + public virtual ICollection Stores { get; set; } = new List(); + + [ForeignKey("TerritoryId")] + [InverseProperty("SalesPeople")] + public virtual SalesTerritory Territory { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPersonQuotaHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPersonQuotaHistory.cs new file mode 100644 index 0000000..095594d --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPersonQuotaHistory.cs @@ -0,0 +1,54 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Sales performance tracking. +/// +[PrimaryKey("BusinessEntityId", "QuotaDate")] +[Table("SalesPersonQuotaHistory", Schema = "Sales")] +[Index("Rowguid", Name = "AK_SalesPersonQuotaHistory_rowguid", IsUnique = true)] +public partial class SalesPersonQuotaHistory +{ + /// + /// Sales person identification number. Foreign key to SalesPerson.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Sales quota date. + /// + [Key] + [Column(TypeName = "datetime")] + public DateTime QuotaDate { get; set; } + + /// + /// Sales quota amount. + /// + [Column(TypeName = "money")] + public decimal SalesQuota { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("SalesPersonQuotaHistories")] + public virtual SalesPerson BusinessEntity { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesReason.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesReason.cs new file mode 100644 index 0000000..2569069 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesReason.cs @@ -0,0 +1,46 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Lookup table of customer purchase reasons. +/// +[Table("SalesReason", Schema = "Sales")] +public partial class SalesReason +{ + /// + /// Primary key for SalesReason records. + /// + [Key] + [Column("SalesReasonID")] + public int SalesReasonId { get; set; } + + /// + /// Sales reason description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// Category the sales reason belongs to. + /// + [Required] + [StringLength(50)] + public string ReasonType { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("SalesReason")] + public virtual ICollection SalesOrderHeaderSalesReasons { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTaxRate.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTaxRate.cs new file mode 100644 index 0000000..fa09bb9 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTaxRate.cs @@ -0,0 +1,65 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Tax rate lookup table. +/// +[Table("SalesTaxRate", Schema = "Sales")] +[Index("StateProvinceId", "TaxType", Name = "AK_SalesTaxRate_StateProvinceID_TaxType", IsUnique = true)] +[Index("Rowguid", Name = "AK_SalesTaxRate_rowguid", IsUnique = true)] +public partial class SalesTaxRate +{ + /// + /// Primary key for SalesTaxRate records. + /// + [Key] + [Column("SalesTaxRateID")] + public int SalesTaxRateId { get; set; } + + /// + /// State, province, or country/region the sales tax applies to. + /// + [Column("StateProvinceID")] + public int StateProvinceId { get; set; } + + /// + /// 1 = Tax applied to retail transactions, 2 = Tax applied to wholesale transactions, 3 = Tax applied to all sales (retail and wholesale) transactions. + /// + public byte TaxType { get; set; } + + /// + /// Tax rate amount. + /// + [Column(TypeName = "smallmoney")] + public decimal TaxRate { get; set; } + + /// + /// Tax rate description. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("StateProvinceId")] + [InverseProperty("SalesTaxRates")] + public virtual StateProvince StateProvince { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritory.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritory.cs new file mode 100644 index 0000000..ecebdfb --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritory.cs @@ -0,0 +1,101 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Sales territory lookup table. +/// +[Table("SalesTerritory", Schema = "Sales")] +[Index("Name", Name = "AK_SalesTerritory_Name", IsUnique = true)] +[Index("Rowguid", Name = "AK_SalesTerritory_rowguid", IsUnique = true)] +public partial class SalesTerritory +{ + /// + /// Primary key for SalesTerritory records. + /// + [Key] + [Column("TerritoryID")] + public int TerritoryId { get; set; } + + /// + /// Sales territory description + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode. + /// + [Required] + [StringLength(3)] + public string CountryRegionCode { get; set; } + + /// + /// Geographic area to which the sales territory belong. + /// + [Required] + [StringLength(50)] + public string Group { get; set; } + + /// + /// Sales in the territory year to date. + /// + [Column("SalesYTD", TypeName = "money")] + public decimal SalesYtd { get; set; } + + /// + /// Sales in the territory the previous year. + /// + [Column(TypeName = "money")] + public decimal SalesLastYear { get; set; } + + /// + /// Business costs in the territory year to date. + /// + [Column("CostYTD", TypeName = "money")] + public decimal CostYtd { get; set; } + + /// + /// Business costs in the territory the previous year. + /// + [Column(TypeName = "money")] + public decimal CostLastYear { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("CountryRegionCode")] + [InverseProperty("SalesTerritories")] + public virtual CountryRegion CountryRegionCodeNavigation { get; set; } + + [InverseProperty("Territory")] + public virtual ICollection Customers { get; set; } = new List(); + + [InverseProperty("Territory")] + public virtual ICollection SalesOrderHeaders { get; set; } = new List(); + + [InverseProperty("Territory")] + public virtual ICollection SalesPeople { get; set; } = new List(); + + [InverseProperty("Territory")] + public virtual ICollection SalesTerritoryHistories { get; set; } = new List(); + + [InverseProperty("Territory")] + public virtual ICollection StateProvinces { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritoryHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritoryHistory.cs new file mode 100644 index 0000000..6024bca --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritoryHistory.cs @@ -0,0 +1,65 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Sales representative transfers to other sales territories. +/// +[PrimaryKey("BusinessEntityId", "StartDate", "TerritoryId")] +[Table("SalesTerritoryHistory", Schema = "Sales")] +[Index("Rowguid", Name = "AK_SalesTerritoryHistory_rowguid", IsUnique = true)] +public partial class SalesTerritoryHistory +{ + /// + /// Primary key. The sales rep. Foreign key to SalesPerson.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Primary key. Territory identification number. Foreign key to SalesTerritory.SalesTerritoryID. + /// + [Key] + [Column("TerritoryID")] + public int TerritoryId { get; set; } + + /// + /// Primary key. Date the sales representive started work in the territory. + /// + [Key] + [Column(TypeName = "datetime")] + public DateTime StartDate { get; set; } + + /// + /// Date the sales representative left work in the territory. + /// + [Column(TypeName = "datetime")] + public DateTime? EndDate { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("SalesTerritoryHistories")] + public virtual SalesPerson BusinessEntity { get; set; } + + [ForeignKey("TerritoryId")] + [InverseProperty("SalesTerritoryHistories")] + public virtual SalesTerritory Territory { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/ShoppingCartItem.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/ShoppingCartItem.cs new file mode 100644 index 0000000..10e0981 --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/ShoppingCartItem.cs @@ -0,0 +1,59 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Contains online customer orders until the order is submitted or cancelled. +/// +[Table("ShoppingCartItem", Schema = "Sales")] +[Index("ShoppingCartId", "ProductId", Name = "IX_ShoppingCartItem_ShoppingCartID_ProductID")] +public partial class ShoppingCartItem +{ + /// + /// Primary key for ShoppingCartItem records. + /// + [Key] + [Column("ShoppingCartItemID")] + public int ShoppingCartItemId { get; set; } + + /// + /// Shopping cart identification number. + /// + [Required] + [Column("ShoppingCartID")] + [StringLength(50)] + public string ShoppingCartId { get; set; } + + /// + /// Product quantity ordered. + /// + public int Quantity { get; set; } + + /// + /// Product ordered. Foreign key to Product.ProductID. + /// + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// Date the time the record was created. + /// + [Column(TypeName = "datetime")] + public DateTime DateCreated { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("ShoppingCartItems")] + public virtual Product Product { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOffer.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOffer.cs new file mode 100644 index 0000000..d635bdd --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOffer.cs @@ -0,0 +1,88 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Sale discounts lookup table. +/// +[Table("SpecialOffer", Schema = "Sales")] +[Index("Rowguid", Name = "AK_SpecialOffer_rowguid", IsUnique = true)] +public partial class SpecialOffer +{ + /// + /// Primary key for SpecialOffer records. + /// + [Key] + [Column("SpecialOfferID")] + public int SpecialOfferId { get; set; } + + /// + /// Discount description. + /// + [Required] + [StringLength(255)] + public string Description { get; set; } + + /// + /// Discount precentage. + /// + [Column(TypeName = "smallmoney")] + public decimal DiscountPct { get; set; } + + /// + /// Discount type category. + /// + [Required] + [StringLength(50)] + public string Type { get; set; } + + /// + /// Group the discount applies to such as Reseller or Customer. + /// + [Required] + [StringLength(50)] + public string Category { get; set; } + + /// + /// Discount start date. + /// + [Column(TypeName = "datetime")] + public DateTime StartDate { get; set; } + + /// + /// Discount end date. + /// + [Column(TypeName = "datetime")] + public DateTime EndDate { get; set; } + + /// + /// Minimum discount percent allowed. + /// + public int MinQty { get; set; } + + /// + /// Maximum discount percent allowed. + /// + public int? MaxQty { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [InverseProperty("SpecialOffer")] + public virtual ICollection SpecialOfferProducts { get; set; } = new List(); +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOfferProduct.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOfferProduct.cs new file mode 100644 index 0000000..e979c2f --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOfferProduct.cs @@ -0,0 +1,56 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Cross-reference table mapping products to special offer discounts. +/// +[PrimaryKey("SpecialOfferId", "ProductId")] +[Table("SpecialOfferProduct", Schema = "Sales")] +[Index("Rowguid", Name = "AK_SpecialOfferProduct_rowguid", IsUnique = true)] +[Index("ProductId", Name = "IX_SpecialOfferProduct_ProductID")] +public partial class SpecialOfferProduct +{ + /// + /// Primary key for SpecialOfferProduct records. + /// + [Key] + [Column("SpecialOfferID")] + public int SpecialOfferId { get; set; } + + /// + /// Product identification number. Foreign key to Product.ProductID. + /// + [Key] + [Column("ProductID")] + public int ProductId { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("ProductId")] + [InverseProperty("SpecialOfferProducts")] + public virtual Product Product { get; set; } + + [InverseProperty("SpecialOfferProduct")] + public virtual ICollection SalesOrderDetails { get; set; } = new List(); + + [ForeignKey("SpecialOfferId")] + [InverseProperty("SpecialOfferProducts")] + public virtual SpecialOffer SpecialOffer { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/Store.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/Store.cs new file mode 100644 index 0000000..17ef30c --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/Store.cs @@ -0,0 +1,68 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Customers (resellers) of Adventure Works products. +/// +[Table("Store", Schema = "Sales")] +[Index("Rowguid", Name = "AK_Store_rowguid", IsUnique = true)] +[Index("SalesPersonId", Name = "IX_Store_SalesPersonID")] +[Index("Demographics", Name = "PXML_Store_Demographics")] +public partial class Store +{ + /// + /// Primary key. Foreign key to Customer.BusinessEntityID. + /// + [Key] + [Column("BusinessEntityID")] + public int BusinessEntityId { get; set; } + + /// + /// Name of the store. + /// + [Required] + [StringLength(50)] + public string Name { get; set; } + + /// + /// ID of the sales person assigned to the customer. Foreign key to SalesPerson.BusinessEntityID. + /// + [Column("SalesPersonID")] + public int? SalesPersonId { get; set; } + + /// + /// Demographic informationg about the store such as the number of employees, annual sales and store type. + /// + [Column(TypeName = "xml")] + public string Demographics { get; set; } + + /// + /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. + /// + [Column("rowguid")] + public Guid Rowguid { get; set; } + + /// + /// Date and time the record was last updated. + /// + [Column(TypeName = "datetime")] + public DateTime ModifiedDate { get; set; } + + [ForeignKey("BusinessEntityId")] + [InverseProperty("Store")] + public virtual BusinessEntity BusinessEntity { get; set; } + + [InverseProperty("Store")] + public virtual ICollection Customers { get; set; } = new List(); + + [ForeignKey("SalesPersonId")] + [InverseProperty("Stores")] + public virtual SalesPerson SalesPerson { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Customer.cs b/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Customer.cs deleted file mode 100644 index 0b5472b..0000000 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Customer.cs +++ /dev/null @@ -1,120 +0,0 @@ -// This file has been auto generated by EF Core Power Tools. -#nullable disable -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using Microsoft.EntityFrameworkCore; - -namespace AdventureWorksDemo.Data.Entities; - -/// -/// Customer information. -/// -[Table("Customer", Schema = "SalesLT")] -[Index("Rowguid", Name = "AK_Customer_rowguid", IsUnique = true)] -[Index("EmailAddress", Name = "IX_Customer_EmailAddress")] -public partial class Customer -{ - /// - /// Primary key for Customer records. - /// - [Key] - [Column("CustomerID")] - public int CustomerId { get; set; } - - /// - /// 0 = The data in FirstName and LastName are stored in western style (first name, last name) order. 1 = Eastern style (last name, first name) order. - /// - public bool NameStyle { get; set; } - - /// - /// A courtesy title. For example, Mr. or Ms. - /// - [StringLength(8)] - public string Title { get; set; } - - /// - /// First name of the person. - /// - [Required] - [StringLength(50)] - public string FirstName { get; set; } - - /// - /// Middle name or middle initial of the person. - /// - [StringLength(50)] - public string MiddleName { get; set; } - - /// - /// Last name of the person. - /// - [Required] - [StringLength(50)] - public string LastName { get; set; } - - /// - /// Surname suffix. For example, Sr. or Jr. - /// - [StringLength(10)] - public string Suffix { get; set; } - - /// - /// The customer's organization. - /// - [StringLength(128)] - public string CompanyName { get; set; } - - /// - /// The customer's sales person, an employee of AdventureWorks Cycles. - /// - [StringLength(256)] - public string SalesPerson { get; set; } - - /// - /// E-mail address for the person. - /// - [StringLength(50)] - public string EmailAddress { get; set; } - - /// - /// Phone number associated with the person. - /// - [StringLength(25)] - public string Phone { get; set; } - - /// - /// Password for the e-mail account. - /// - [Required] - [StringLength(128)] - [Unicode(false)] - public string PasswordHash { get; set; } - - /// - /// Random value concatenated with the password string before the password is hashed. - /// - [Required] - [StringLength(10)] - [Unicode(false)] - public string PasswordSalt { get; set; } - - /// - /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. - /// - [Column("rowguid")] - public Guid Rowguid { get; set; } - - /// - /// Date and time the record was last updated. - /// - [Column(TypeName = "datetime")] - public DateTime ModifiedDate { get; set; } - - [InverseProperty("Customer")] - public virtual ICollection CustomerAddresses { get; set; } = new List(); - - [InverseProperty("Customer")] - public virtual ICollection SalesOrderHeaders { get; set; } = new List(); -} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Product.cs b/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Product.cs deleted file mode 100644 index 78e06f5..0000000 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Product.cs +++ /dev/null @@ -1,134 +0,0 @@ -// This file has been auto generated by EF Core Power Tools. -#nullable disable -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using Microsoft.EntityFrameworkCore; - -namespace AdventureWorksDemo.Data.Entities; - -/// -/// Products sold or used in the manfacturing of sold products. -/// -[Table("Product", Schema = "SalesLT")] -[Index("Name", Name = "AK_Product_Name", IsUnique = true)] -[Index("ProductNumber", Name = "AK_Product_ProductNumber", IsUnique = true)] -[Index("Rowguid", Name = "AK_Product_rowguid", IsUnique = true)] -public partial class Product -{ - /// - /// Primary key for Product records. - /// - [Key] - [Column("ProductID")] - public int ProductId { get; set; } - - /// - /// Name of the product. - /// - [Required] - [StringLength(50)] - public string Name { get; set; } - - /// - /// Unique product identification number. - /// - [Required] - [StringLength(25)] - public string ProductNumber { get; set; } - - /// - /// Product color. - /// - [StringLength(15)] - public string Color { get; set; } - - /// - /// Standard cost of the product. - /// - [Column(TypeName = "money")] - public decimal StandardCost { get; set; } - - /// - /// Selling price. - /// - [Column(TypeName = "money")] - public decimal ListPrice { get; set; } - - /// - /// Product size. - /// - [StringLength(5)] - public string Size { get; set; } - - /// - /// Product weight. - /// - [Column(TypeName = "decimal(8, 2)")] - public decimal? Weight { get; set; } - - /// - /// Product is a member of this product category. Foreign key to ProductCategory.ProductCategoryID. - /// - [Column("ProductCategoryID")] - public int? ProductCategoryId { get; set; } - - /// - /// Product is a member of this product model. Foreign key to ProductModel.ProductModelID. - /// - [Column("ProductModelID")] - public int? ProductModelId { get; set; } - - /// - /// Date the product was available for sale. - /// - [Column(TypeName = "datetime")] - public DateTime SellStartDate { get; set; } - - /// - /// Date the product was no longer available for sale. - /// - [Column(TypeName = "datetime")] - public DateTime? SellEndDate { get; set; } - - /// - /// Date the product was discontinued. - /// - [Column(TypeName = "datetime")] - public DateTime? DiscontinuedDate { get; set; } - - /// - /// Small image of the product. - /// - public byte[] ThumbNailPhoto { get; set; } - - /// - /// Small image file name. - /// - [StringLength(50)] - public string ThumbnailPhotoFileName { get; set; } - - /// - /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. - /// - [Column("rowguid")] - public Guid Rowguid { get; set; } - - /// - /// Date and time the record was last updated. - /// - [Column(TypeName = "datetime")] - public DateTime ModifiedDate { get; set; } - - [ForeignKey("ProductCategoryId")] - [InverseProperty("Products")] - public virtual ProductCategory ProductCategory { get; set; } - - [ForeignKey("ProductModelId")] - [InverseProperty("Products")] - public virtual ProductModel ProductModel { get; set; } - - [InverseProperty("Product")] - public virtual ICollection SalesOrderDetails { get; set; } = new List(); -} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductModel.cs b/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductModel.cs deleted file mode 100644 index 6fe01dc..0000000 --- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductModel.cs +++ /dev/null @@ -1,39 +0,0 @@ -// This file has been auto generated by EF Core Power Tools. -#nullable disable -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using Microsoft.EntityFrameworkCore; - -namespace AdventureWorksDemo.Data.Entities; - -[Table("ProductModel", Schema = "SalesLT")] -[Index("Name", Name = "AK_ProductModel_Name", IsUnique = true)] -[Index("Rowguid", Name = "AK_ProductModel_rowguid", IsUnique = true)] -[Index("CatalogDescription", Name = "PXML_ProductModel_CatalogDescription")] -public partial class ProductModel -{ - [Key] - [Column("ProductModelID")] - public int ProductModelId { get; set; } - - [Required] - [StringLength(50)] - public string Name { get; set; } - - [Column(TypeName = "xml")] - public string CatalogDescription { get; set; } - - [Column("rowguid")] - public Guid Rowguid { get; set; } - - [Column(TypeName = "datetime")] - public DateTime ModifiedDate { get; set; } - - [InverseProperty("ProductModel")] - public virtual ICollection ProductModelProductDescriptions { get; set; } = new List(); - - [InverseProperty("ProductModel")] - public virtual ICollection Products { get; set; } = new List(); -} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/dbo/BuildVersion.cs b/src/API/AdventureWorksDemo.Data/Entities/dbo/AwbuildVersion.cs similarity index 84% rename from src/API/AdventureWorksDemo.Data/Entities/dbo/BuildVersion.cs rename to src/API/AdventureWorksDemo.Data/Entities/dbo/AwbuildVersion.cs index eba9da3..8b3ff1d 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/dbo/BuildVersion.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/dbo/AwbuildVersion.cs @@ -9,15 +9,15 @@ namespace AdventureWorksDemo.Data.Entities; /// -/// Current version number of the AdventureWorksLT 2012 sample database. +/// Current version number of the AdventureWorks 2016 sample database. /// -[Keyless] -[Table("BuildVersion")] -public partial class BuildVersion +[Table("AWBuildVersion")] +public partial class AwbuildVersion { /// - /// Primary key for BuildVersion records. + /// Primary key for AWBuildVersion records. /// + [Key] [Column("SystemInformationID")] public byte SystemInformationId { get; set; } diff --git a/src/API/AdventureWorksDemo.Data/Entities/dbo/DatabaseLog.cs b/src/API/AdventureWorksDemo.Data/Entities/dbo/DatabaseLog.cs new file mode 100644 index 0000000..09fa49a --- /dev/null +++ b/src/API/AdventureWorksDemo.Data/Entities/dbo/DatabaseLog.cs @@ -0,0 +1,69 @@ +// This file has been auto generated by EF Core Power Tools. +#nullable disable +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace AdventureWorksDemo.Data.Entities; + +/// +/// Audit table tracking all DDL changes made to the AdventureWorks database. Data is captured by the database trigger ddlDatabaseTriggerLog. +/// +[Table("DatabaseLog")] +public partial class DatabaseLog +{ + /// + /// Primary key for DatabaseLog records. + /// + [Key] + [Column("DatabaseLogID")] + public int DatabaseLogId { get; set; } + + /// + /// The date and time the DDL change occurred. + /// + [Column(TypeName = "datetime")] + public DateTime PostTime { get; set; } + + /// + /// The user who implemented the DDL change. + /// + [Required] + [StringLength(128)] + public string DatabaseUser { get; set; } + + /// + /// The type of DDL statement that was executed. + /// + [Required] + [StringLength(128)] + public string Event { get; set; } + + /// + /// The schema to which the changed object belongs. + /// + [StringLength(128)] + public string Schema { get; set; } + + /// + /// The object that was changed by the DDL statment. + /// + [StringLength(128)] + public string Object { get; set; } + + /// + /// The exact Transact-SQL statement that was executed. + /// + [Required] + [Column("TSQL")] + public string Tsql { get; set; } + + /// + /// The raw XML data generated by database trigger. + /// + [Required] + [Column(TypeName = "xml")] + public string XmlEvent { get; set; } +} \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Models/AddressModel.cs b/src/API/AdventureWorksDemo.Data/Models/AddressModel.cs index 34ccf92..b32dcea 100644 --- a/src/API/AdventureWorksDemo.Data/Models/AddressModel.cs +++ b/src/API/AdventureWorksDemo.Data/Models/AddressModel.cs @@ -36,11 +36,7 @@ public sealed record AddressModel /// [Required] [StringLength(50)] - public string StateProvince { get; set; } - - [Required] - [StringLength(50)] - public string CountryRegion { get; set; } + public int StateProvinceId { get; set; } /// /// Postal code for the street address. diff --git a/src/API/AdventureWorksDemo.Data/Repository/GenericCRUDRepository.cs b/src/API/AdventureWorksDemo.Data/Repository/GenericCRUDRepository.cs index 12a7ba4..46d494e 100644 --- a/src/API/AdventureWorksDemo.Data/Repository/GenericCRUDRepository.cs +++ b/src/API/AdventureWorksDemo.Data/Repository/GenericCRUDRepository.cs @@ -45,7 +45,7 @@ public interface IGenericCrudRepository where TEntity : class Task>> UpdateAsync(IEnumerable entities); } - public class GenericCrudRepository(AdventureWorksDbContext context) : IGenericCrudRepository where TEntity : class + public class GenericCrudRepository(AdventureWorksContext context) : IGenericCrudRepository where TEntity : class { // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Class is based on https://medium.com/@abdulwariis/building-a-generic-service-for-crud-operations-in-c-net-core-3db40c2c8c8a diff --git a/src/API/AdventureWorksDemo.Data/Services/AddressService.cs b/src/API/AdventureWorksDemo.Data/Services/AddressService.cs index 4d21d15..93d3ee5 100644 --- a/src/API/AdventureWorksDemo.Data/Services/AddressService.cs +++ b/src/API/AdventureWorksDemo.Data/Services/AddressService.cs @@ -41,8 +41,7 @@ internal override bool IsModelDirty(AddressModel original, AddressModel mutated) { return !original.AddressLine1.Equals(mutated.AddressLine1) || !original.AddressLine2.Equals(mutated.AddressLine2) - || !original.StateProvince.Equals(mutated.StateProvince) - || !original.CountryRegion.Equals(mutated.CountryRegion) + || !original.StateProvinceId.Equals(mutated.StateProvinceId) || !original.City.Equals(mutated.City) || !original.PostalCode.Equals(mutated.PostalCode); } @@ -56,8 +55,7 @@ internal override void TransposeModel(AddressModel original, AddressModel mutate { original.AddressLine1 = TransposeIfNotNull(original.AddressLine1, mutated.AddressLine1); original.AddressLine2 = TransposeIfNotNull(original.AddressLine2, mutated.AddressLine2); - original.StateProvince = TransposeIfNotNull(original.StateProvince, mutated.StateProvince); - original.CountryRegion = TransposeIfNotNull(original.CountryRegion, mutated.CountryRegion); + original.StateProvinceId = TransposeIfNotNull(original.StateProvinceId, mutated.StateProvinceId); original.PostalCode = TransposeIfNotNull(original.PostalCode, mutated.PostalCode); original.City = TransposeIfNotNull(original.City, mutated.City); } diff --git a/src/API/AdventureWorksDemo.Data/Services/BaseService.cs b/src/API/AdventureWorksDemo.Data/Services/BaseService.cs index 1ee431a..2b62ad8 100644 --- a/src/API/AdventureWorksDemo.Data/Services/BaseService.cs +++ b/src/API/AdventureWorksDemo.Data/Services/BaseService.cs @@ -83,9 +83,9 @@ public virtual async Task>> AddBatchAsync(IEn public virtual async Task> FindAllAsync(PageingFilter pagingfilter, Expression>? predicate) { - IQueryable? query = _repository.FindEntities(predicate)! - .ApplyFilters(pagingfilter) - .ApplySorting(pagingfilter); + IQueryable? query = _repository.FindEntities(predicate)!.ApplyFilters(pagingfilter) + .ApplySorting(pagingfilter) + ; if (query == null) return []; @@ -173,6 +173,18 @@ internal static string TransposeIfNotNull(string original, string mutated) return original; } + internal static int TransposeIfNotNull(int original, int mutated) + { + return TransposeIfNotNull(original, mutated); + } + + internal static int? TransposeIfNotNull(int? original, int? mutated) + { + if (mutated != null && !original.Equals(mutated)) + original = mutated; + return original; + } + internal virtual async Task> DeleteAsync(Expression> predicate) { return await _repository.DeleteAsync(predicate); diff --git a/src/API/AdventureWorksDemo.Data/StartUp/IOCData.cs b/src/API/AdventureWorksDemo.Data/StartUp/IOCData.cs index a6bf3fe..0b384e9 100644 --- a/src/API/AdventureWorksDemo.Data/StartUp/IOCData.cs +++ b/src/API/AdventureWorksDemo.Data/StartUp/IOCData.cs @@ -26,7 +26,7 @@ public void ConfigureServices(IServiceCollection services) /// * https://henriquesd.medium.com/dependency-injection-and-service-lifetimes-in-net-core-ab9189349420 /// - services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("Target"))); + services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("Target"))); services.AddAutoMapper(typeof(MappingProfile)); //Add Transient services to the container. services.AddTransient(); diff --git a/src/API/AdventureWorksDemo.Data/Validation/AddressValidator.cs b/src/API/AdventureWorksDemo.Data/Validation/AddressValidator.cs index a4dda11..ab5eb0e 100644 --- a/src/API/AdventureWorksDemo.Data/Validation/AddressValidator.cs +++ b/src/API/AdventureWorksDemo.Data/Validation/AddressValidator.cs @@ -11,8 +11,8 @@ public AddressValidator() RuleFor(m => m.AddressLine1).Length(3, 60); RuleFor(m => m.AddressLine2).Length(3, 60); RuleFor(m => m.City).Length(3, 30); - RuleFor(m => m.StateProvince).Length(3, 50); - RuleFor(m => m.CountryRegion).Length(3, 50); + RuleFor(m => m.StateProvinceId).GreaterThan(0).WithMessage("State province is required!"); + RuleFor(m => m.PostalCode).Length(3, 15); } } diff --git a/src/API/AdventureWorksDemo.Data/efpt.config.json b/src/API/AdventureWorksDemo.Data/efpt.config.json index 36ff4cc..14120bd 100644 --- a/src/API/AdventureWorksDemo.Data/efpt.config.json +++ b/src/API/AdventureWorksDemo.Data/efpt.config.json @@ -1,89 +1,329 @@ { - "CodeGenerationMode": 4, - "ContextClassName": "AdventureWorksContext", - "ContextNamespace": null, - "DefaultDacpacSchema": null, - "FilterSchemas": false, - "IncludeConnectionString": true, - "ModelNamespace": null, - "OutputContextPath": "DbContexts", - "OutputPath": "Entities", - "PreserveCasingWithRegex": true, - "ProjectRootNamespace": "AdventureWorksDemo.Data", - "Schemas": null, - "SelectedHandlebarsLanguage": 2, - "SelectedToBeGenerated": 0, - "T4TemplatePath": null, - "Tables": [ - { - "Name": "[dbo].[BuildVersion]", - "ObjectType": 0 - }, - { - "Name": "[dbo].[ErrorLog]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[Address]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[Customer]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[CustomerAddress]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[Product]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[ProductCategory]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[ProductDescription]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[ProductModel]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[ProductModelProductDescription]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[SalesOrderDetail]", - "ObjectType": 0 - }, - { - "Name": "[SalesLT].[SalesOrderHeader]", - "ObjectType": 0 - } - ], - "UiHint": "sqladventureworks.AdventureWorks.dbo", - "UncountableWords": null, - "UseBoolPropertiesWithoutDefaultSql": false, - "UseDatabaseNames": false, - "UseDateOnlyTimeOnly": true, - "UseDbContextSplitting": false, - "UseDecimalDataAnnotationForSprocResult": true, - "UseFluentApiOnly": false, - "UseHandleBars": false, - "UseHierarchyId": false, - "UseInflector": true, - "UseLegacyPluralizer": false, - "UseManyToManyEntity": false, - "UseNoDefaultConstructor": true, - "UseNoNavigations": false, - "UseNoObjectFilter": false, - "UseNodaTime": false, - "UseNullableReferences": false, - "UseSchemaFolders": true, - "UseSchemaNamespaces": false, - "UseSpatial": false, - "UseT4": false + "CodeGenerationMode": 5, + "ContextClassName": "AdventureWorksContext", + "ContextNamespace": null, + "FilterSchemas": false, + "IncludeConnectionString": true, + "ModelNamespace": null, + "OutputContextPath": "DbContexts", + "OutputPath": "Entities", + "PreserveCasingWithRegex": true, + "ProjectRootNamespace": "AdventureWorksDemo.Data", + "Schemas": null, + "SelectedHandlebarsLanguage": 2, + "SelectedToBeGenerated": 0, + "T4TemplatePath": null, + "Tables": [ + { + "Name": "[dbo].[AWBuildVersion]", + "ObjectType": 0 + }, + { + "Name": "[dbo].[DatabaseLog]", + "ObjectType": 0 + }, + { + "Name": "[dbo].[ErrorLog]", + "ObjectType": 0 + }, + { + "Name": "[HumanResources].[Department]", + "ObjectType": 0 + }, + { + "Name": "[HumanResources].[Employee]", + "ObjectType": 0 + }, + { + "Name": "[HumanResources].[EmployeeDepartmentHistory]", + "ObjectType": 0 + }, + { + "Name": "[HumanResources].[EmployeePayHistory]", + "ObjectType": 0 + }, + { + "Name": "[HumanResources].[JobCandidate]", + "ObjectType": 0 + }, + { + "Name": "[HumanResources].[Shift]", + "ObjectType": 0 + }, + { + "Name": "[Person].[Address]", + "ObjectType": 0 + }, + { + "Name": "[Person].[AddressType]", + "ObjectType": 0 + }, + { + "Name": "[Person].[BusinessEntity]", + "ObjectType": 0 + }, + { + "Name": "[Person].[BusinessEntityAddress]", + "ObjectType": 0 + }, + { + "Name": "[Person].[BusinessEntityContact]", + "ObjectType": 0 + }, + { + "Name": "[Person].[ContactType]", + "ObjectType": 0 + }, + { + "Name": "[Person].[CountryRegion]", + "ObjectType": 0 + }, + { + "Name": "[Person].[EmailAddress]", + "ObjectType": 0 + }, + { + "Name": "[Person].[Password]", + "ObjectType": 0 + }, + { + "Name": "[Person].[Person]", + "ObjectType": 0 + }, + { + "Name": "[Person].[PersonPhone]", + "ObjectType": 0 + }, + { + "Name": "[Person].[PhoneNumberType]", + "ObjectType": 0 + }, + { + "Name": "[Person].[StateProvince]", + "ObjectType": 0 + }, + { + "Name": "[Production].[BillOfMaterials]", + "ObjectType": 0 + }, + { + "Name": "[Production].[Culture]", + "ObjectType": 0 + }, + { + "Name": "[Production].[Document]", + "ObjectType": 0 + }, + { + "Name": "[Production].[Illustration]", + "ObjectType": 0 + }, + { + "Name": "[Production].[Location]", + "ObjectType": 0 + }, + { + "Name": "[Production].[Product]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductCategory]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductCostHistory]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductDescription]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductDocument]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductInventory]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductListPriceHistory]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductModel]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductModelIllustration]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductModelProductDescriptionCulture]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductPhoto]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductProductPhoto]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductReview]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ProductSubcategory]", + "ObjectType": 0 + }, + { + "Name": "[Production].[ScrapReason]", + "ObjectType": 0 + }, + { + "Name": "[Production].[TransactionHistory]", + "ObjectType": 0 + }, + { + "Name": "[Production].[TransactionHistoryArchive]", + "ObjectType": 0 + }, + { + "Name": "[Production].[UnitMeasure]", + "ObjectType": 0 + }, + { + "Name": "[Production].[WorkOrder]", + "ObjectType": 0 + }, + { + "Name": "[Production].[WorkOrderRouting]", + "ObjectType": 0 + }, + { + "Name": "[Purchasing].[ProductVendor]", + "ObjectType": 0 + }, + { + "Name": "[Purchasing].[PurchaseOrderDetail]", + "ObjectType": 0 + }, + { + "Name": "[Purchasing].[PurchaseOrderHeader]", + "ObjectType": 0 + }, + { + "Name": "[Purchasing].[ShipMethod]", + "ObjectType": 0 + }, + { + "Name": "[Purchasing].[Vendor]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[CountryRegionCurrency]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[CreditCard]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[Currency]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[CurrencyRate]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[Customer]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[PersonCreditCard]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesOrderDetail]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesOrderHeader]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesOrderHeaderSalesReason]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesPerson]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesPersonQuotaHistory]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesReason]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesTaxRate]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesTerritory]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SalesTerritoryHistory]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[ShoppingCartItem]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SpecialOffer]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[SpecialOfferProduct]", + "ObjectType": 0 + }, + { + "Name": "[Sales].[Store]", + "ObjectType": 0 + } + ], + "UiHint": null, + "UncountableWords": null, + "UseAsyncStoredProcedureCalls": true, + "UseBoolPropertiesWithoutDefaultSql": false, + "UseDatabaseNames": false, + "UseDatabaseNamesForRoutines": true, + "UseDateOnlyTimeOnly": true, + "UseDbContextSplitting": false, + "UseDecimalDataAnnotationForSprocResult": true, + "UseFluentApiOnly": false, + "UseHandleBars": false, + "UseHierarchyId": false, + "UseInflector": true, + "UseInternalAccessModifiersForSprocsAndFunctions": false, + "UseLegacyPluralizer": false, + "UseManyToManyEntity": false, + "UseNoDefaultConstructor": true, + "UseNoNavigations": false, + "UseNoObjectFilter": false, + "UseNodaTime": false, + "UseNullableReferences": false, + "UsePrefixNavigationNaming": false, + "UseSchemaFolders": true, + "UseSchemaNamespaces": false, + "UseSpatial": false, + "UseT4": false, + "UseT4Split": false } \ No newline at end of file diff --git a/src/AdventureWorksDemo.MudBlazor.Tests/AdventureWorksDemo.MudBlazor.Tests.csproj b/src/AdventureWorksDemo.MudBlazor.Tests/AdventureWorksDemo.MudBlazor.Tests.csproj index 1493528..94944e8 100644 --- a/src/AdventureWorksDemo.MudBlazor.Tests/AdventureWorksDemo.MudBlazor.Tests.csproj +++ b/src/AdventureWorksDemo.MudBlazor.Tests/AdventureWorksDemo.MudBlazor.Tests.csproj @@ -18,6 +18,7 @@ + @@ -29,26 +30,26 @@ - + - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + diff --git a/src/FrontEnd/AdventureWorksDemo.MudBlazor/AdventureWorksDemo.MudBlazor.csproj b/src/FrontEnd/AdventureWorksDemo.MudBlazor/AdventureWorksDemo.MudBlazor.csproj index c1d1d88..81755bb 100644 --- a/src/FrontEnd/AdventureWorksDemo.MudBlazor/AdventureWorksDemo.MudBlazor.csproj +++ b/src/FrontEnd/AdventureWorksDemo.MudBlazor/AdventureWorksDemo.MudBlazor.csproj @@ -10,5 +10,6 @@ + From fbc0444420c3e1b83f42c8506f75cecbf4539fff Mon Sep 17 00:00:00 2001 From: CodeTile <43536260+CodeTile@users.noreply.github.com> Date: Wed, 19 Feb 2025 09:45:18 +0000 Subject: [PATCH 2/5] BugFix: Update Nuget packages One package was causing issues with AdventureWorksDemo.Common.Tests --- .../AdventureWorksDemo.API/AdventureWorksDemo.API.csproj | 2 +- .../AdventureWorksDemo.Common.Tests.Extensions.csproj | 3 --- .../AdventureWorksDemo.Common.Tests.csproj | 7 +++---- .../AdventureWorksDemo.Data.Tests.reqnroll.csproj | 6 +++--- .../AdventureWorksDemo.Data.Tests.csproj | 6 +++--- 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj b/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj index 01621e8..443100e 100644 --- a/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj +++ b/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/API/AdventureWorksDemo.Common.Tests.Extensions/AdventureWorksDemo.Common.Tests.Extensions.csproj b/src/API/AdventureWorksDemo.Common.Tests.Extensions/AdventureWorksDemo.Common.Tests.Extensions.csproj index e53d264..529d730 100644 --- a/src/API/AdventureWorksDemo.Common.Tests.Extensions/AdventureWorksDemo.Common.Tests.Extensions.csproj +++ b/src/API/AdventureWorksDemo.Common.Tests.Extensions/AdventureWorksDemo.Common.Tests.Extensions.csproj @@ -9,7 +9,4 @@ true - - - diff --git a/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj b/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj index 25c1615..5ee2509 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj +++ b/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj @@ -17,15 +17,14 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj index 6a7a2b7..7da5ecc 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj @@ -1,4 +1,4 @@ - + net9.0 @@ -23,8 +23,8 @@ - - + + diff --git a/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj b/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj index fdd1c30..91e51bb 100644 --- a/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj +++ b/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj @@ -32,18 +32,18 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + From 352bb30ec9ae83ef51a1174c3e5b84aeff755b50 Mon Sep 17 00:00:00 2001 From: CodeTile <43536260+CodeTile@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:41:00 +0000 Subject: [PATCH 3/5] Clone and shrink database for testing --- .../DatabaseSetup/BackUpTestDatabase.SQL | 3 + .../DatabaseSetup/PrepareTablesForTesting.sql | 700 +++++------------- .../DockerMsSqlServerDatabase.cs | 47 +- ...t.cs => StringExtentionsTests_PadRight.cs} | 2 +- .../Hooks/DatabaseHooks.cs | 20 +- .../appsettings.json | 6 +- 6 files changed, 255 insertions(+), 523 deletions(-) create mode 100644 src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL rename src/API/AdventureWorksDemo.Common.Tests/Tests/{StringExtesionsTests_PadRight.cs => StringExtentionsTests_PadRight.cs} (95%) diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL new file mode 100644 index 0000000..b1a7342 --- /dev/null +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL @@ -0,0 +1,3 @@ +BACKUP DATABASE [$TARGET_DB_NAME] TO DISK = N'/var/opt/mssql/backup/$BackupFileName' WITH NOFORMAT, INIT, + NAME = N'AdventureWorks-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 +GO diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql index 2231fe0..98aea4e 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql @@ -1,121 +1,188 @@ +--USE [master] +--ALTER DATABASE [AdventureWorks] SET SINGLE_USER WITH ROLLBACK IMMEDIATE +--GO +--USE [master]]; +--RESTORE DATABASE [AdventureWorks] FROM DISK = N'/var/opt/mssql/backup/adventureworks.bak' WITH FILE = 1, +-- MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME".mdf', +-- MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME"_log.ldf', +-- NOUNLOAD, +-- STATS = 5 +-- ]; +-- go +--Use [AdventureWorks] + +--================================================================================================================ +--================================================================================================================ +--================================================================================================================ + +use [$TARGET_DB_NAME]; +GO +PRINT ' +***************************************** + Delete all records in database +*****************************************' +GO +DISABLE TRIGGER ALL ON HumanResources.Employee; +DISABLE TRIGGER ALL ON Purchasing.Vendor; +GO + +-- Disable all the constraint in database + +DECLARE @sql nvarchar(max) = N''; + +;WITH x AS +( + SELECT DISTINCT obj = + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' + + QUOTENAME(OBJECT_NAME(parent_object_id)) + FROM sys.foreign_keys +) +SELECT @sql += N'ALTER TABLE ' + obj + N' NOCHECK CONSTRAINT ALL; +' FROM x; + +EXEC sys.sp_executesql @sql; +GO + +use [$TARGET_DB_NAME]; +GO +-- ----- +DELETE FROM [Sales].[SalesOrderHeader]; +DELETE FROM [Sales].[Customer]; +DELETE FROM [Production].[ProductModelProductDescriptionCulture]; +DELETE FROM [Purchasing].[ProductVendor]; +DELETE FROM [HumanResources].[EmployeeDepartmentHistory]; +DELETE FROM [Person].[BusinessEntityAddress]; +DELETE FROM [Person].[BusinessEntityContact]; + GO +DELETE FROM [Person].[PersonPhone]; + GO +DELETE FROM [Production].[ProductDocument]; +DELETE FROM [Production].[ProductInventory]; +DELETE FROM [Production].[ProductModelIllustration]; +DELETE FROM [Sales].[CountryRegionCurrency]; +DELETE FROM [Purchasing].[PurchaseOrderDetail]; +DELETE FROM [Production].[WorkOrderRouting]; +DELETE FROM [Production].[ProductProductPhoto]; +DELETE FROM [Production].[WorkOrder]; +DELETE FROM [Sales].[PersonCreditCard]; +DELETE FROM [Sales].[SalesOrderDetail]; +DELETE FROM [Sales].[SalesOrderHeaderSalesReason]; + GO +DELETE FROM [Sales].[SalesTerritoryHistory]; +GO +DELETE FROM [Sales].[SpecialOfferProduct]; +GO +DELETE FROM [Sales].[Store]; +DELETE FROM [Sales].[ShoppingCartItem]; + GO +DELETE FROM [Sales].[SalesTaxRate]; +DELETE FROM [Sales].[SalesPersonQuotaHistory]; + GO +DELETE FROM [Sales].[SalesPerson]; +DELETE FROM [Sales].[CurrencyRate]; +DELETE FROM [Production].[ProductReview]; + GO +DELETE FROM [Production].[TransactionHistory]; + GO +DELETE FROM [Production].[ProductCostHistory]; + GO +DELETE FROM [Production].[ProductListPriceHistory]; + GO +DELETE FROM [Production].[Document]; + GO +DELETE FROM [Person].[Address]; +DELETE FROM [Person].[StateProvince]; +DELETE FROM [Sales].[SalesTerritory]; + GO +DELETE FROM [Person].[EmailAddress]; + GO +DELETE FROM [Person].[Password]; + GO +DELETE FROM [HumanResources].[EmployeePayHistory]; + GO +DELETE FROM [HumanResources].[JobCandidate]; +DELETE FROM [HumanResources].[Shift]; +DELETE FROM [dbo].[AWBuildVersion]; +DELETE FROM [dbo].[DatabaseLog]; +DELETE FROM [dbo].[ErrorLog]; +DELETE FROM [HumanResources].[Department]; + GO +DELETE FROM [Person].[AddressType]; +DELETE FROM [Person].[ContactType]; +DELETE FROM [Person].[CountryRegion]; +DELETE FROM [Production].[Illustration]; + GO +DELETE FROM [Production].[Location]; + GO +DELETE FROM [Production].[Culture]; + GO +DELETE FROM [Person].[PhoneNumberType]; + GO +DELETE FROM [Production].[ProductDescription]; + GO +DELETE FROM [Production].[TransactionHistoryArchive]; + GO +DELETE FROM [Production].[ProductPhoto]; + GO +DELETE FROM [Production].[ScrapReason]; +DELETE FROM [Sales].[CreditCard]; + GO +DELETE FROM [Sales].[Currency]; +DELETE FROM [Sales].[SalesReason]; + GO +DELETE FROM [Sales].[SpecialOffer]; + GO + +DELETE FROM [Production].[BillOfMaterials]; + GO +DELETE FROM [Purchasing].[PurchaseOrderHeader]; + GO +DELETE FROM [HumanResources].[Employee]; +GO +DELETE FROM [Person].[Person]; +GO +DELETE FROM [Purchasing].[Vendor]; +GO +DELETE FROM [Person].[BusinessEntity]; +GO +DELETE FROM [Purchasing].[ShipMethod]; +DELETE FROM [Production].[Product]; +DELETE FROM [Production].[ProductSubcategory]; +DELETE FROM [Production].[ProductCategory]; +DELETE FROM [Production].[ProductModel]; +DELETE FROM [Production].[UnitMeasure]; +GO + + + +------- +DECLARE @sql nvarchar(max) = N''; +;WITH x AS +( + SELECT DISTINCT obj = + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' + + QUOTENAME(OBJECT_NAME(parent_object_id)) + FROM sys.foreign_keys +) +SELECT @sql += N'ALTER TABLE ' + obj + N' WITH CHECK CHECK CONSTRAINT ALL; +' FROM x; -EXEC sp_MSforeachtable 'SET QUOTED_IDENTIFIER ON; SET ANSI_NULLS ON; DISABLE TRIGGER ALL ON ?'; -EXEC sp_MSforeachtable 'SET QUOTED_IDENTIFIER ON; SET ANSI_NULLS ON; ALTER TABLE ? NOCHECK CONSTRAINT ALL'; - - - DELETE FROM [HumanResources].[Department] - DELETE FROM [HumanResources].[EmployeeDepartmentHistory] - DELETE FROM [HumanResources].[EmployeePayHistory] - DELETE FROM [HumanResources].[Employee] - DELETE FROM [HumanResources].[JobCandidate] - --DELETE FROM [HumanResources].[Shift] - DELETE FROM [Person].[AddressType] - DELETE FROM [Person].[Address] - DELETE FROM [Person].[BusinessEntityAddress] - DELETE FROM [Person].[BusinessEntityContact] - DELETE FROM [Person].[BusinessEntity] - DELETE FROM [Person].[ContactType] - DELETE FROM [Person].[CountryRegion] - DELETE FROM [Person].[EmailAddress] - DELETE FROM [Person].[Password] - DELETE FROM [Person].[PersonPhone] - DELETE FROM [Person].[Person] - DELETE FROM [Person].[PhoneNumberType] - DELETE FROM [Person].[StateProvince] where CountryRegionCode='US' - DELETE FROM [Production].[BillOfMaterials] - DELETE FROM [Production].[Culture] - DELETE FROM [Production].[Document] - DELETE FROM [Production].[Illustration] - DELETE FROM [Production].[Location] - DELETE FROM [Production].[ProductCategory] - DELETE FROM [Production].[ProductCostHistory] - DELETE FROM [Production].[ProductDescription] - DELETE FROM [Production].[ProductDocument] - DELETE FROM [Production].[ProductInventory] - DELETE FROM [Production].[ProductListPriceHistory] - DELETE FROM [Production].[ProductModelIllustration] - DELETE FROM [Production].[ProductModelProductDescriptionCulture] - DELETE FROM [Production].[ProductModel] - DELETE FROM [Production].[ProductPhoto] - DELETE FROM [Production].[ProductProductPhoto] - DELETE FROM [Production].[ProductReview] - DELETE FROM [Production].[ProductSubcategory] - DELETE FROM [Production].[Product] - DELETE FROM [Production].[TransactionHistoryArchive] - DELETE FROM [Production].[TransactionHistory] - DELETE FROM [Production].[WorkOrderRouting] - DELETE FROM [Production].[WorkOrder] - DELETE FROM [Purchasing].[ProductVendor] - DELETE FROM [Purchasing].[PurchaseOrderDetail] - DELETE FROM [Purchasing].[PurchaseOrderHeader] - DELETE FROM [Purchasing].[ShipMethod] - DELETE FROM [Purchasing].[Vendor] - DELETE FROM [Sales].[CountryRegionCurrency] - DELETE FROM [Sales].[CurrencyRate] - DELETE FROM [Sales].[Currency] - DELETE FROM [Sales].[Customer] - DELETE FROM [Sales].[PersonCreditCard] - DELETE FROM [Sales].[SalesOrderDetail] - DELETE FROM [Sales].[SalesOrderHeaderSalesReason] - DELETE FROM [Sales].[SalesOrderHeader] - DELETE FROM [Sales].[SalesPersonQuotaHistory] - DELETE FROM [Sales].[SalesPerson] - DELETE FROM [Sales].[SalesReason] - DELETE FROM [Sales].[SalesTaxRate] - DELETE FROM [Sales].[SalesTerritoryHistory] - DELETE FROM [Sales].[SalesTerritory] - DELETE FROM [Sales].[ShoppingCartItem] - DELETE FROM [Sales].[SpecialOfferProduct] - DELETE FROM [Sales].[SpecialOffer] - DELETE FROM [Sales].[Store] - DELETE FROM [dbo].[AWBuildVersion] - DELETE FROM [dbo].[DatabaseLog] - DELETE FROM [dbo].[ErrorLog] - -DBCC CHECKIDENT ('HumanResources.Department', RESEED, 5000); -DBCC CHECKIDENT ('HumanResources.JobCandidate', RESEED, 5000); -DBCC CHECKIDENT ('Person.Address', RESEED, 5000); -DBCC CHECKIDENT ('Person.EmailAddress', RESEED, 5000); -DBCC CHECKIDENT ('Person.PhoneNumberType', RESEED, 5000); -DBCC CHECKIDENT ('Person.StateProvince', RESEED, 5000); -DBCC CHECKIDENT ('Production.BillOfMaterials', RESEED, 5000); -DBCC CHECKIDENT ('Production.Illustration', RESEED, 5000); -DBCC CHECKIDENT ('Production.Location', RESEED, 5000); -DBCC CHECKIDENT ('Production.Product', RESEED, 5000); ---DBCC CHECKIDENT ('Production.ProductCategory', RESEED, 5000); ---DBCC CHECKIDENT ('Production.ProductDescription', RESEED, 5000); -DBCC CHECKIDENT ('Production.ProductModel', RESEED, 5000); -DBCC CHECKIDENT ('Production.ProductPhoto', RESEED, 5000); -DBCC CHECKIDENT ('Production.ProductReview', RESEED, 5000); -DBCC CHECKIDENT ('Production.ProductSubcategory', RESEED, 5000); -DBCC CHECKIDENT ('Production.ScrapReason', RESEED, 5000); -DBCC CHECKIDENT ('Production.TransactionHistory', RESEED, 5000); -DBCC CHECKIDENT ('Production.WorkOrder', RESEED, 5000); -DBCC CHECKIDENT ('Purchasing.PurchaseOrderDetail', RESEED, 5000); -DBCC CHECKIDENT ('Purchasing.PurchaseOrderHeader', RESEED, 5000); -DBCC CHECKIDENT ('Purchasing.ShipMethod', RESEED, 5000); -DBCC CHECKIDENT ('Sales.CreditCard', RESEED, 5000); -DBCC CHECKIDENT ('Sales.CurrencyRate', RESEED, 5000); -DBCC CHECKIDENT ('Sales.Customer', RESEED, 5000); -DBCC CHECKIDENT ('Sales.SalesOrderDetail', RESEED, 5000); -DBCC CHECKIDENT ('Sales.SalesOrderHeader', RESEED, 5000); -DBCC CHECKIDENT ('Sales.SalesReason', RESEED, 5000); -DBCC CHECKIDENT ('Sales.SalesTaxRate', RESEED, 5000); -DBCC CHECKIDENT ('Sales.SalesTerritory', RESEED, 5000); -DBCC CHECKIDENT ('Sales.ShoppingCartItem', RESEED, 5000); -DBCC CHECKIDENT ('Sales.SpecialOffer', RESEED, 5000); -DBCC CHECKIDENT ('dbo.DatabaseLog', RESEED, 5000); -DBCC CHECKIDENT ('dbo.ErrorLog', RESEED, 5000); - -EXEC sp_MSforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'; - -EXEC sp_MSforeachtable 'ENABLE TRIGGER ALL ON ?'; +EXEC sys.sp_executesql @sql; +GO + +Enable TRIGGER ALL ON Purchasing.Vendor; +Enable TRIGGER ALL ON HumanResources.Employee; + +GO +--================================================================================================================ +--================================================================================================================ +--================================================================================================================ PRINT '--------------------------- Insert records into database. @@ -129,7 +196,7 @@ Insert INTO [Person].[AddressType] ([AddressTypeID],[Name],[rowguid],[ModifiedDa , (5,'Shipping', '00000005-0000-0000-0000-000000000000','1 May 2007') , (6,'Archive', '00000006-0000-0000-0000-000000000000','1 May 2007') , (7,'For Delete Tests Only', '00000006-dddd-0000-0000-000000000000','1 May 2007'); -SET IDENTITY_INSERT [Person].[AddressType] OFF; +SET IDENTITY_INSERT [Person].[AddressType] OFF; DBCC CHECKIDENT ('Person.AddressType', RESEED, 5000); ------------------------------------------------------------------- @@ -145,7 +212,7 @@ INSERT INTO [Person].[ContactType] ([ContactTypeID] ,[Name] ,[ModifiedDate]) , (6,'Time Lord', '1 May 2007') , (7,'For Delete Tests Only','1 May 2007') -SET IDENTITY_INSERT [Person].[ContactType] OFF; +SET IDENTITY_INSERT [Person].[ContactType] OFF; DBCC CHECKIDENT ('Person.[ContactType]', RESEED, 5000); ------------------------------------------------------------------- @@ -172,7 +239,7 @@ INSERT INTO [Person].[PhoneNumberType] ([PhoneNumberTypeID] ,[Name] ,[ModifiedDa , (6,'Shed', '1 May 2007') , (7,'For Delete Tests Only','1 May 2007') -SET IDENTITY_INSERT [Person].[PhoneNumberType] OFF; +SET IDENTITY_INSERT [Person].[PhoneNumberType] OFF; DBCC CHECKIDENT ('Person.[PhoneNumberType]', RESEED, 5000); ------------------------------------------------------------------- @@ -185,13 +252,13 @@ INSERT INTO [Production].[Culture] (CultureID ,[Name] ,[ModifiedDate]) , ('he','Hebrew', '1 May 2007') , ('dd','For Delete Tests Only','1 May 2007') ------------------------------------------------------------------- -SET IDENTITY_INSERT [Production].[ProductDescription] ON +SET IDENTITY_INSERT [Production].[ProductDescription] ON -- -INSERT [Production].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate]) +INSERT [Production].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate]) VALUES (1, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) , (2, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) , (3, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) - , (4, N'Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) + , (4, N'Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) , (555, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) , (666, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) , (777, N'For Delete Tests Only', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) @@ -201,11 +268,11 @@ SET IDENTITY_INSERT [Production].[ProductDescription] OFF DBCC CHECKIDENT ('[Production].[ProductDescription]', RESEED, 5000); ------------------------------------------------------------------------------------ -SET IDENTITY_INSERT [Production].[ProductCategory] ON +SET IDENTITY_INSERT [Production].[ProductCategory] ON GO -INSERT [Production].[ProductCategory] - ([ProductCategoryID], [Name], [rowguid], [ModifiedDate]) -VALUES +INSERT [Production].[ProductCategory] + ([ProductCategoryID], [Name], [rowguid], [ModifiedDate]) +VALUES (1, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), (2, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), (3, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime)), @@ -221,394 +288,3 @@ SET IDENTITY_INSERT [Production].[ProductCategory] OFF DBCC CHECKIDENT ('[Production].[ProductCategory]', RESEED, 5000); ------------------------------------------------------------------------------------ - - - ---SELECT * from production.ProductDescription order by NewID() - -/* -select * from ( -SELECT - s.name as SchemaName, - t.name AS TableName, - p.row_count -FROM - sys.tables t -LEFT JOIN - sys.foreign_keys fk ON t.object_id = fk.parent_object_id -JOIN - sys.schemas s ON t.schema_id = s.schema_id -LEFT JOIN - sys.dm_db_partition_stats p ON t.object_id = p.object_id AND p.index_id IN (0, 1) -- 0 = Heap, 1 = Clustered -WHERE - fk.parent_object_id IS NULL -GROUP BY - s.name, t.name, p.row_count - ) t - -where t.row_count=0 - -*/ - -----------Print ' -----------**************************************************************** ----------- Prepare the data in the tables for the tests. - ----------- This script will be run every time the system tests ----------- needs to reset the data. -----------**************************************************************** -----------'; - - -----------use [$TARGET_DB_NAME] -----------PRINT ' -----------***************************************** ----------- Delete all records in database -----------*****************************************' -----------Truncate table BuildVersion; -----------Truncate Table ErrorLog; - ------------- Disable all the constraint in database - -----------DECLARE @sql nvarchar(max) = N''; - -----------;WITH x AS -----------( ----------- SELECT DISTINCT obj = ----------- QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' ----------- + QUOTENAME(OBJECT_NAME(parent_object_id)) ----------- FROM sys.foreign_keys -----------) -----------SELECT @sql += N'ALTER TABLE ' + obj + N' NOCHECK CONSTRAINT ALL; -----------' FROM x; - -----------EXEC sys.sp_executesql @sql; -----------GO ------------- ----- - -----------Declare @TableName nvarchar(256) ; -----------SET @TableName = ''; - -----------WHILE @TableName IS NOT NULL -----------BEGIN ----------- SET @TableName = ----------- ( ----------- SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)) ----------- FROM INFORMATION_SCHEMA.TABLES ----------- WHERE TABLE_TYPE = 'BASE TABLE' ----------- AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName ----------- ) -----------print 'Deleting from table '+@TableName ; - -----------DECLARE @sql nvarchar(max) = N'Delete from ' + @tablename; -----------EXEC sys.sp_executesql @sql; -----------ENd -----------GO - ------------------ - -----------DECLARE @sql nvarchar(max) = N''; - -----------;WITH x AS -----------( ----------- SELECT DISTINCT obj = ----------- QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' ----------- + QUOTENAME(OBJECT_NAME(parent_object_id)) ----------- FROM sys.foreign_keys -----------) -----------SELECT @sql += N'ALTER TABLE ' + obj + N' WITH CHECK CHECK CONSTRAINT ALL; -----------' FROM x; - -----------EXEC sys.sp_executesql @sql; -----------GO - -----------PRINT '--------------------------- ----------- Insert records into database. --------------------------------------' -----------SET IDENTITY_INSERT [SalesLT].[Address] ON -----------GO -----------INSERT [SalesLT].[Address] ([AddressID], [AddressLine1], [AddressLine2], [City], [StateProvince], [CountryRegion], [PostalCode], [rowguid], [ModifiedDate]) ----------- VALUES (640, N'251 The Metro Center', NULL, N'Wokingham', N'England', N'United Kingdom', N'RG41 1QW', N'0e4ac5bb-be0d-4a96-a58e-064daec08e1a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (652, N'Wymbush', NULL, N'Milton Keynes', N'England', N'United Kingdom', N'MK8 8DF', N'54e20963-b0e9-41cf-ab7e-d50459a3325c', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) ----------- , (669, N'Internet House, 3399 Science Park', NULL, N'Cambridge', N'England', N'United Kingdom', N'CB4 4BZ', N'56baec2a-5cc5-4a90-bef9-ee57e82f2e69', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) ----------- , (1034, N'Oxnard Outlet', NULL, N'Oxnard', N'California', N'United States', N'93030', N'300d2a6e-67b4-417b-83a9-2026818a21c6', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (1038, N'123 Camelia Avenue', NULL, N'Oxnard', N'California', N'United States', N'93030', N'a86c8140-ad7d-4caa-9b40-4006bd9998e2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (1090, N'25130 South State Street', NULL, N'Sandy', N'Utah', N'United States', N'84070', N'cf3ae92a-3e66-4af0-b683-731826e89cd1', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (1092, N'99700 Bell Road', NULL, N'Auburn', N'California', N'United States', N'95603', N'79cdd89c-3c91-48db-8277-46d04aad7251', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) ----------- , (1111, N'Orphan Record', NULL, N'Use In Delete Tests', N'California', N'United States', N'95603', N'00000000-1111-2222-0000-000000000001', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[Address] OFF -----------GO -----------SET IDENTITY_INSERT [SalesLT].[Customer] ON -----------GO -----------INSERT [SalesLT].[Customer] ([CustomerID], [NameStyle], [Title], [FirstName], [MiddleName], [LastName], [Suffix], [CompanyName], [SalesPerson], [EmailAddress], [Phone], [PasswordHash], [PasswordSalt], [rowguid], [ModifiedDate]) ----------- VALUES (29847, 0, N'Mr.', N'David', NULL, N'Hodgson', NULL, N'Good Toys', N'adventure-works\linda3', N'david16@adventure-works.com', N'969-555-0117', N'+gtwbVycsIIj2loVtrHNRN6IBLl20lQpRK8+JhzxyEo=', N'AwqZdYk=', N'fdd7d9cb-9a81-40fc-baf6-facde8da4923', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) ----------- , (30019, 0, N'Mr.', N'Matthew', N'J.', N'Miller', NULL, N'Tachometers and Accessories', N'adventure-works\jae0', N'matthew5@adventure-works.com', N'1 (11) 500 555-0176', N'/hDOTbr9X/E4UE8H6wjOGHYZ6Gb8GDpmutPWgFTXQnc=', N'eiCRDs8=', N'226d328b-23d4-4215-b9c4-3da08f2e68db', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) ----------- , (30027, 0, N'Mr.', N'Joseph', N'P.', N'Mitzner', N'Jr.', N'Engineered Bike Systems', N'adventure-works\shu0', N'joseph4@adventure-works.com', N'129-555-0164', N'7obarvC3BHLIE/oFo0n+bkB/EZ03Zc8Vu+F2jpK/CNM=', N'k6zgROU=', N'029c27b5-72e5-4024-a5fa-53bdb42b98bc', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (30033, 0, N'Mr.', N'Vassar', N'J.', N'Stern', NULL, N'Transport Bikes', N'adventure-works\shu0', N'vassar0@adventure-works.com', N'328-555-0123', N'nPkLkDdemKmfK3VexvRWH5zYyNzwcfvny8DxWGnicSw=', N'hLswDiQ=', N'66193607-693c-4073-be28-78e3892141a2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (30072, 0, N'Ms.', N'Andrea', N'A.', N'Thomsen', NULL, N'West Side Mart', N'adventure-works\jae0', N'andrea1@adventure-works.com', N'1 (11) 500 555-0120', N'LDoJwsGCFLtxVdbdQBbN/to7zFF1skP+hWLrIrCxvAw=', N'NuexV8w=', N'9bbbddc1-8e1a-4edf-aa2f-a8abea78c940', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (30089, 0, N'Mr.', N'Michael John', N'R.', N'Troyer', NULL, N'Thrifty Parts and Sales', N'adventure-works\linda3', N'michaeljohn0@adventure-works.com', N'308-555-0175', N'Gdklarx2tW1EtZEyrAUEIhhguzrFKVS4Bh3BdAsGngk=', N'HUE+JKI=', N'8d6af1e8-5082-4e5c-9f15-dfd04e64fd95', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (30102, 0, N'Mr.', N'Roger', NULL, N'Van Houten', NULL, N'Sports Store', N'adventure-works\jae0', N'roger2@adventure-works.com', N'1 (11) 500 555-0110', N'C0yLsx6zITh7lXoIPgG1bl1t5II3nx4GYi/RaS1yB84=', N'WnTAc/0=', N'0ee7e95d-f12d-4d0d-8c6e-c64a0dda719a', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[Customer] OFF -----------GO -----------INSERT [SalesLT].[CustomerAddress] ([CustomerID], [AddressID], [AddressType], [rowguid], [ModifiedDate]) ----------- VALUES (29847, 1092, N'Main Office', N'54e22612-0521-4ea6-b7b0-29d081e054c4', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) ----------- , (30019, 652, N'Main Office', N'4d79eb56-5f62-4c2f-90f2-f2f11d7e4f63', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) ----------- , (30027, 1038, N'Main Office', N'5dc4ddd8-be9a-4bd2-9f35-9f81743296e8', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (30033, 1090, N'Main Office', N'c3b9cc49-7b83-4888-8958-1a3b7558e614', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (30072, 640, N'Main Office', N'c6078b9a-2f95-4029-be72-511345be2a9a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (30089, 1034, N'Main Office', N'2f99485b-952a-44d4-a5af-5a94faca240e', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) ----------- , (30102, 669, N'Main Office', N'd996364a-0b31-4b67-adcc-1d0454b5b26d', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] ON -----------GO -----------INSERT [SalesLT].[SalesOrderHeader] ([SalesOrderID], [RevisionNumber], [OrderDate], [DueDate], [ShipDate], [Status], [OnlineOrderFlag], [PurchaseOrderNumber], [AccountNumber], [CustomerID], [ShipToAddressID], [BillToAddressID], [ShipMethod], [CreditCardApprovalCode], [SubTotal], [TaxAmt], [Freight], [Comment], [rowguid], [ModifiedDate]) ----------- VALUES (71774, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO348186287', N'10-4020-000609', 29847, 1092, 1092, N'CARGO TRANSPORT 5', NULL, 880.3484, 70.4279, 22.0087, NULL, N'89e42cdc-8506-48a2-b89b-eb3e64e3554e', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) ----------- , (71776, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO19952192051', N'10-4020-000106', 30072, 640, 640, N'CARGO TRANSPORT 5', NULL, 78.8100, 6.3048, 1.9703, NULL, N'8a3448c5-e677-4158-a29b-dd33069be0b0', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) ----------- , (71815, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO13021155785', N'10-4020-000276', 30089, 1034, 1034, N'CARGO TRANSPORT 5', NULL, 1141.5782, 91.3263, 28.5395, NULL, N'2aa5f39b-1096-4a4b-b17b-f10504a397ce', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) ----------- , (71816, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO12992180445', N'10-4020-000295', 30027, 1038, 1038, N'CARGO TRANSPORT 5', NULL, 3398.1659, 271.8533, 84.9541, NULL, N'e3c189e7-98de-4c40-b6c2-0d1d13f9bb33', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) ----------- , (71831, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO10295111084', N'10-4020-000322', 30019, 652, 652, N'CARGO TRANSPORT 5', NULL, 2016.3408, 161.3073, 50.4085, NULL, N'625d76fc-c26f-4149-bf24-939fb2bccd77', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) ----------- , (71846, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO2378131604', N'10-4020-000635', 30102, 669, 669, N'CARGO TRANSPORT 5', NULL, 2453.7645, 196.3012, 61.3441, NULL, N'a86d90ad-d1c0-440d-9a57-5b763bf18234', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) ----------- , (71856, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO16530177647', N'10-4020-000601', 30033, 1090, 1090, N'CARGO TRANSPORT 5', NULL, 602.1946, 48.1756, 15.0549, NULL, N'05fee073-0640-4a3c-914d-fe4ae6da3d43', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] OFF -----------GO -----------SET IDENTITY_INSERT [SalesLT].[ProductCategory] ON -----------GO -----------INSERT [SalesLT].[ProductCategory] ([ProductCategoryID], [ParentProductCategoryID], [Name], [rowguid], [ModifiedDate]) ----------- VALUES (1, NULL, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (2, NULL, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (3, NULL, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (4, NULL, N'Accessories', N'2be3be36-d9a2-4eee-b593-ed895d97c2a6', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (5, 1, N'Mountain Bikes', N'2d364ade-264a-433c-b092-4fcbf3804e01', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (6, 1, N'Road Bikes', N'000310c0-bcc8-42c4-b0c3-45ae611af06b', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (7, 1, N'Touring Bikes', N'02c5061d-ecdc-4274-b5f1-e91d76bc3f37', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (8, 2, N'Handlebars', N'3ef2c725-7135-4c85-9ae6-ae9a3bdd9283', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (9, 2, N'Bottom Brackets', N'a9e54089-8a1e-4cf5-8646-e3801f685934', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (10, 2, N'Brakes', N'd43ba4a3-ef0d-426b-90eb-4be4547dd30c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (11, 2, N'Chains', N'e93a7231-f16c-4b0f-8c41-c73fdec62da0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (12, 2, N'Cranksets', N'4f644521-422b-4f19-974a-e3df6102567e', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (13, 2, N'Derailleurs', N'1830d70c-aa2a-40c0-a271-5ba86f38f8bf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (14, 2, N'Forks', N'b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (15, 2, N'Headsets', N'7c782bbe-5a16-495a-aa50-10afe5a84af2', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (16, 2, N'Mountain Frames', N'61b21b65-e16a-4be7-9300-4d8e9db861be', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (17, 2, N'Pedals', N'6d24ac07-7a84-4849-864a-865a14125bc9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (18, 2, N'Road Frames', N'5515f857-075b-4f9a-87b7-43b4997077b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (19, 2, N'Saddles', N'049fffa3-9d30-46df-82f7-f20730ec02b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (20, 2, N'Touring Frames', N'd2e3f1a8-56c4-4f36-b29d-5659fc0d2789', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (21, 2, N'Wheels', N'43521287-4b0b-438e-b80e-d82d9ad7c9f0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (22, 3, N'Bib-Shorts', N'67b58d2b-5798-4a90-8c6c-5ddacf057171', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (23, 3, N'Caps', N'430dd6a8-a755-4b23-bb05-52520107da5f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (24, 3, N'Gloves', N'92d5657b-0032-4e49-bad5-41a441a70942', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (25, 3, N'Jerseys', N'09e91437-ba4f-4b1a-8215-74184fd95db8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (26, 3, N'Shorts', N'1a5ba5b3-03c3-457c-b11e-4fa85ede87da', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (27, 3, N'Socks', N'701019c3-09fe-4949-8386-c6ce686474e5', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (28, 3, N'Tights', N'5deb3e55-9897-4416-b18a-515e970bc2d1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (29, 3, N'Vests', N'9ad7fe93-5ba0-4736-b578-ff80a2071297', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (30, 4, N'Bike Racks', N'4624b5ce-66d6-496b-9201-c053df3556cc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (31, 4, N'Bike Stands', N'43b445c8-b820-424e-a1d5-90d81da0b46f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (32, 4, N'Bottles and Cages', N'9b7dff41-9fa3-4776-8def-2c9a48c8b779', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (33, 4, N'Cleaners', N'9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (34, 4, N'Fenders', N'1697f8a2-0a08-4883-b7dd-d19117b4e9a7', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (35, 4, N'Helmets', N'f5e07a33-c9e0-439c-b5f3-9f25fb65becc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (36, 4, N'Hydration Packs', N'646a8906-fc87-4267-a443-9c6d791e6693', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (37, 4, N'Lights', N'954178ba-624f-42db-95f6-ca035f36d130', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (38, 4, N'Locks', N'19646983-3fa0-4773-9a0c-f34c49df9bc8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (39, 4, N'Panniers', N'3002a5d5-fec3-464b-bef3-e0f81d35f431', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (40, 4, N'Pumps', N'fe4d46f2-c87c-48c5-a4a1-3f55712d80b1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (41, 4, N'Tires and Tubes', N'3c17c9ae-e906-48b4-bdd3-60e28d47dcdf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) ----------- , (42, Null, N'Record to Delete', N'3c17c9ae-e906-48b4-bdd3-000000000001', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[ProductCategory] OFF -----------GO -----------SET IDENTITY_INSERT [SalesLT].[ProductModel] ON -----------GO -----------INSERT [SalesLT].[ProductModel] ([ProductModelID], [Name], [CatalogDescription], [rowguid], [ModifiedDate]) ----------- VALUES (2, N'Cycling Cap', NULL, N'474fb654-3c96-4cb9-82df-2152eeffbdb0', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) ----------- , (5, N'HL Mountain Frame', NULL, N'fdd5407b-c2db-49d1-a86b-c13a2e3582a2', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) ----------- , (9, N'LL Road Frame', NULL, N'ddc67a2f-024a-4446-9b54-3c679baba708', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) ----------- , (11, N'Long-Sleeve Logo Jersey', NULL, N'20efe3f1-a2f8-4dde-b74b-18265f61f863', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) ----------- , (17, N'ML Road Frame-W', NULL, N'ca18ecfd-2023-4fa7-a556-0321153bca34', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) ----------- , (20, N'Mountain-200', NULL, N'3b78edff-2aa9-4ac1-8c3d-94090b5f53a9', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) ----------- , (22, N'Mountain-400-W', NULL, N'6d2fcce4-ffce-4662-a3f8-5d18f0eedcd8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (23, N'Mountain-500', N'Suitable for any type of riding, on or off-road. ----------- Fits any budget. Smooth-shifting with a comfortable ride. ----------- AdventureWorks2002HTTP://www.Adventure-works.comProduct highlights include: ----------- 1 yearparts and labor3 yearsmaintenance contact available through dealerStable, durable wheels suitable for novice riders.Made from synthetic leather and features gel padding for increased comfort.Expanded platform so you can ride in any shoes; great for all-around riding. Super rigid spindle. Our best value frame utilizing the same, ground-breaking technology as the ML aluminum frame.frontsmall1 These are the product specifications. ----------- Varies Centimeters. ----------- Aluminum AlloyAvailable in all colors.Mountain bikeNovice to Intermediate riders', N'866dbad3-5999-4329-beac-d826d959d9a1', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) ----------- , (24, N'Racing Socks', NULL, N'bd8ba6f8-7e16-4fa3-b3b3-2036dd4a2ae0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (31, N'Road-750', NULL, N'2bf795f4-2666-4691-af14-d490c7334a8a', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) ----------- , (32, N'Short-Sleeve Classic Jersey', NULL, N'6beccf2d-eacd-496b-995b-d692567565cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (34, N'Touring-1000', N'Travel in style and comfort. Designed for maximum comfort and safety. ----------- Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. ----------- AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. ----------- 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.Excellent aerodynamic rims guarantee a smooth ride.Cut-out shell for a more comfortable ride.A stable pedal for all-day riding.aluminum alloy frame ----------- and features a lightweight down-tube milled to the perfect diameter for optimal strength.frontsmall87 These are the product specifications. - ----------- Aluminum alloy Available in most colors.Touring bikeNovice to Advanced riders', N'52e7f2c1-dbff-4518-927d-c7d46f9ed32e', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) ----------- , (35, N'Touring-2000', N'The plush custom saddle keeps you riding all day, and there''s plenty of space ----------- to add panniers and bike bags to the newly-redesigned carrier. ----------- This bike has great stability when fully-loaded. ----------- AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. ----------- 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.New design relieves pressure for long rides.Top-of-the-line clipless pedals with adjustable tension. High-strength crank arm. The aluminum frame is custom-shaped for both good looks and strength; ----------- it will withstand the most rigorous challenges of daily riding.frontsmall87 These are the product specifications. ----------- AluminumAvailable in all colors except metallic.Touring bikeAluminium alloyIntermediate to Advanced riders', N'aa10d9e6-e33f-4da8-ace1-992fcd6bb171', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) ----------- , (36, N'Touring-3000', NULL, N'f5a6ec78-4451-45db-955f-db197de8b059', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) ----------- , (37, N'Women''s Mountain Shorts', NULL, N'a08dd61a-6155-4051-9a11-223232ea51cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (63, N'ML Mountain Pedal', NULL, N'be9cdc56-f4ab-40f1-b338-2e08e0627abd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (102, N'Front Brakes', NULL, N'1099a23a-c9ed-41b1-8cc1-e2c1c54a10c8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (103, N'Front Derailleur', NULL, N'10e0c8fd-ca13-437b-8e22-51853ae160a7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (128, N'Rear Brakes', NULL, N'71d47afd-da3a-43f1-83ad-69c71f96ef33', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[ProductModel] OFF -----------GO -----------SET IDENTITY_INSERT [SalesLT].[Product] ON -----------GO -----------INSERT [SalesLT].[Product] ([ProductID], [Name], [ProductNumber], [Color], [StandardCost], [ListPrice], [Size], [Weight], [ProductCategoryID], [ProductModelID], [SellStartDate], [SellEndDate], [DiscontinuedDate], [ThumbNailPhoto], [ThumbnailPhotoFileName], [rowguid], [ModifiedDate]) ----------- VALUES (712, N'AWC Logo Cap', N'CA-1098', N'Multi', 6.9223, 8.9900, NULL, NULL, 23, 2, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9ede243-a6f4-4629-b1d4-ffe1aedc6de7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (715, N'Long-Sleeve Logo Jersey, L', N'LJ-0192-L', N'Multi', 38.4923, 49.9900, N'L', NULL, 25, 11, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000142567FCFCFC9F9F9F2C4B67CECECEE4E4E43B658AAAAAAA2C3458CACACAF0F0F04757A510182EC6C6C6E6E6E6EAEAEAA4A4A4EEEEEEE2E2E2696665AFAFAF102136225A8B8895AAD2D0E6B1B1B18DAFD3333335FAFAFA2E73B2254B72637098B2BCC876757AC2C2C218479DF6F6F65075AC3216701750A1F8F8F87E8E9DF4F4F4B8B8B71D3B88262526DEDEDEA7A8B4DADADA8D8D8D345CA82334750C365B1A53882934672C435ECFD0D01664AAF2F2F2165A981948854581B787A7C5534B46919191113F6B5357751B3394DDDDDDB4B4B4D7D7D79A9A9932343D3E3E3E16181D192E595754523134470F1A4824547FD4D4D46986A67DA5CC87827EC7C6D91761A9574F4A4C5C83959594CCD1D8193F99A5A19CACA9A64E48442C589A05060850637CD0D0CE262E639A9896928D89182942928E9F1E5199326A9C282D38E1E0DF453C38A1A1A1675B77A8A8A79594923579B549423D395A88CDCDCBE5E4E2757370B6B6B6D3D3D22D3A4A9796958C8986BAB6B31F3C58BABABABFBDBAACB1BDC0BEBBE7E6E4D8D8D8737DBAB1ADA939437ADFDFDF3A4C96272F488B8784D5D5D2605954CAC9C62C3F54D0CECBE9E8E73D276ABCBAB8B6B4B0B3B1AFACACAB0C2A54050B16BCBDBDD4D2D0C8C7C7EFEFEF5E95C5195E9F1830810C121DDBD9D7EEEEECEBEBEBE1E1E1DAD9D968625E4F3A7699BCDA1B49927E78730F0F0FBFBFBFFEFEFEBEBEBEE8E8E8EDEDED1667ACECECEC1659A56B98C6CBD9EA184C9FE9E9E9535EA96169AFFDFDFD1D3F90223E77296EB0B9B9B9EEEDECF5F4F31953A0CCCBCAEDEDECE4E3E139312EF5F5F5C7CCCFA4A2A0E9E9E8154891300E7B6081BC6F8AC12A639F8F91C5B6B5B40E2F4CC3C2C0D1D1D17B7FA6FBFBFB706F7C6F6C69686D7C355978DFDEDCADABA8EAEAE9EAE9E8E9EAEA9EB2C4E7E7E73C516932496A7E85BFC0C0BFA8A5A21D1E20CACDE4A29F9BFBFCFCD6D6D52B2B2CF7F8F82260A7F7F7F7505152F8F8F7414151F1F1F19994903E74A5DCDBDB3120542D2E5B3F4A8B313C7A3D2374301C621660A835383C2F2F2F739CC6000000FFFFFF21F90400000000002C00000000500032000008FF0055FD1B48B0A0C1830657295CB80A97435C01224E9BC6A1220A76EC481053A1029E024DAE603D68E5A080044344601881128D4082062258F12A42E10004010211EADCF98FE1C287102552B4885123478F204592348952254B973065D2B48993A7D5843E1B060D307162450E17336EECF831E4C8922753AE6CF932E6CC9A37735EBDCAD06180735FC1EA454154ECD1B24AD1365D0BD5EDD4B873E76AE58AA2C13C05735E880BD64B810E62EAD485354A36E959A66A9FB6950AB76A629E0ACF0533832F5F32132692BDA667660EB640BD2E93D03816A9D9A5699DB28DFA96AADCD358A715BB8066463E7C6D4A9582E47A800D691F227DA2134A818AB19D7F0BFF0E3DDC70E9E3C87BAE0AF0278A1419703C34811DA28D897C339E2068166BC7150A8AA8F148043AA8A0836F8181265C61A41997DE400AB1278716BB68B080014F3482443D36E453CF06BA80918410B1E8A3C529293813E03611C083E067C111365A7188A5D7D01F68E83302853EDC70032739F081C83508D8B00127B280B0CF8F5AD022851729F8818E04A16862A5780ACA48DC61A69DB68A02D20C52858E5A30D30E123BBC92430DFEA492843FBA5421CB2C72ECE3010B4ECAD04319938461482DAE4480658CA26D791E72ABB872CF0262EA3803121BF090839AB1A4E24F125FF020E72C1D7860C10D79F6E0C9042BCCF1A72B830E56A8790E7A198313B688FFC9090F376C50C80893E6104B0597A672C2A61D9CE0C10D7844B18E3C4EB40041247748F0002C09125A5E83352A16C03E0CC45A830DBF0C408D2DB852BAC4A54AFC3A67B087E0D1842EE080234619751CD080200E84120A8CAA4E4B639774CD438E27F608B101B7DF50016EAEB1E8726905E6727AC20221AC7B8327360C9084002BE0204A2DF702972F83FBA2B753433120D20200330C7CC607181C4CE9295F24C130B00F6B20B1123678C0400C0788308A030FE04B1EC85C8AAC53434D2080040329DB30C32D180C52021C9B6C120B2DA9F033F3B93537A24B23E4E48C47176CF0128D04B5D4E2F1D033169DD82AA138A1B413626C80C0105097B38C29A6E8FF4A0BAF4B341CEC021AD4704319FCE4DC481A475090C93C0EA83DDE826D1F3A57000200A0340B0C20D109DE1884A30C1CBB583D4219FE044E33E1AF5850C1C01EE0F1450C10B0824E01ADAC4DB9A1AD5AD5D0049A23914B059F83EEB2DFE3AACE35EBFA30007B1AFEB4334606A67AE3CDE45AB25A2D6A1128F10522C23FC1C010C687EBF70CA90B5EF32B3CF0013BAFA9E8610C343014707D96AB52CBEF4EB8B8E18F3F4A081F3900503E84D14261CA7318EB2A5003D859CA1F4C20C324A2210A07602F7F21A30B2EBAF03F7FA421174FD880253A01B5E35D8D05FE6081FA16688181DDA0832D40853932418402D8505A44B31CF71ED8261022211D0C28A1F9FFAEA60B066861851A08C2335A68032574700DA420831F046143FCE9CB6DBE53471D3AE80F008470034A1042CB867840001C71751750C20098F885FFA5220E8B98C21EA674C38F55AE772363071DDEF4BF2F7C118C0623E3123A7146AE1DA205FB58E30678F5BF61AC611189888411245047B6F16E7B47434120FCD0820E2A6103A06C84104C488B250CA1900E63403A90A0C83602700D7120453CA0318F2AE2F08E9844C82AA6010A4C9081872D00E5009E718F2122E373A8EC00323EB9813592A38F6B58831550918D30A8C18256CC211E8F860B5F0803105BECA3302DE0892106410BA7145C05F8214C0FB8921F71E8C204E20188FA61F39697DCDFD1A6A1FF804FEC61111D2447332D90864A18109DA8E483FB846989FF91A30B5D88A3243081BBFBE1537BFAD4E52ADC110A4C64230E1DE4C71A91A08434F90DA1E6BA4025BE882D375AE107D3DC42265CE00DC965139719D5252ED8B10D476CA193001C29022A40295AA0B40A2520070841998E3EBED40AD51803207E1634DD654F7F463B5A0088110846A0A2837CB000121080081A9C349D3B4845F840E9CA38C094147A9868011ED0B10B5E5187D6F2661E2CD1464B3C61AC1E60E0D5505A09F02DF5814EE8C20F16818A7100430DDC80455D6F9ACFAC8E6C1A3A80C61700F0BF32ECA31E03680418D661D4537AA10C4A03E133BF70CE2E5861026488C428BC81AA68FFD9B1B2365A050AB4E18F2138E17FE94000185EE083C19EB2047FB881F082E08F2FD420075A780763CDC10809C04250B6B524462D3BB20028201D0464803F5A10836EC0E1AC47ECC125AC910BBE46414D5A40C204A6C0054738C0159EB12A06B188285CA8601F04B4C504FE508283A6B30AFDC80204F6610F0DA8A913A9A80319081186FBE6D7AEDACCE55C7041820938016F545800198F3AA71E9C817539A8C03EA6F0863E593855DAC5EA83FEB1D3107C5888064EE6FA76E08F6AE8E108CEB8C38BB3BBBBEDCE78151CC880250A5854122BD0C134D8801E6220804B18A11511B830658DFC20241761C9386EF28197E7604B4C20066F708363429165181759FFC65DE6676FC38C5EC1F1E01E5108422A6210832350AF00F8D5F245E16CA300E820157203E30D0CC0681E72D18D2D68413A48110320D44E10ADB092A06FCBE542136305A460423BAA010420BCE10D79C0C2A94BCD6A56F3B9D20228023044010B050046686FCEE08C775A8B68D8810DA9CE431EC63086231CA1D8C64EB6B205C0860C340006997E917EEFBA4D2F7140012EC8841D28E1063770211B942004252840EE7267E0DC1928821D2E91002AB648DA18C6297751130012C0C2107778492618010C60CCC11104C081C071108D68DCE1E07740070C448165781CE8D6D3CE704E35380D1268A21655B4DF238E718C56A4EDE320AFC5B35A54A0876F3AC6FB40A2802A56CEF296BBFCE52BBFC425FAB0829AF3A20F38CFB9CE6FCE8B9EFBBC0F3EE745CDED60076714A108192837252871806E4300026C1080B1C78085520704003B, N'awc_jersey_male_small.gif', N'34cf5ef5-c077-4ea0-914a-084814d5cbd5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (738, N'LL Road Frame - Black, 52', N'FR-R38B-52', N'Black', 204.6251, 337.2200, N'52', CAST(1088.62 AS Decimal(8, 2)), 18, 9, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'18fc5d72-a012-4dc7-bb35-0d01a84d0219', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (739, N'HL Mountain Frame - Silver, 42', N'FR-M94S-42', N'Silver', 747.2002, 1364.5000, N'42', CAST(1233.76 AS Decimal(8, 2)), 16, 5, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000C1C3BDF4F4F4BBCCC9ECEAEAC2D4D1ACC2BBB5B8B4DADADAB8BAB5ABB8B4AAB5B2E8E6E6D6D5D5A8B4ADEAEAEAC7C8C4B0B2ACA6B3B3E2E2E2DFDEDEE1E0E0ECECECB3BDBBF0F0F0CDD2CCD4D9D4F4F2F3C2D2CDEAE8E8E4E2E2E6F3F3DCDCDCCADBD9F2F2F2A4A5A3F0EEEEADADACABBDBBB4C9C3A5B1ADCECDCDE5E4E4D1D2CDDFDDDDD8D8D8EEECECCDCFCAD9E9E9F5F3F3E6E5E6BEBFBDEEEEEED9D6D6B4B6B0D8DAD6BCBDB9E0E1DEC8CAC4E7E4E4C6C5C5F2F0F1F7F4F49D9C9AB4C2BBE8E7E8E3E0E1DCDEDABDC0BAC2C1C1F9F2F1B9BDB9B9BAB8E4E3E4A5ADABFBFCFCE9E8E8D8D6D8ADAFAADCDBDCFAF8F8E4E5E2E0DEE0A9AAA9EDECECCBD8D5DAD9DAAAADA6DEDCDEBFC1BCA6B8B9F8F7F7DADCD8D4D2D1C9C9C9E8E8E7C4C4C1BAC9C7ECEAECB5B6B4D3D5D2B0C2C2DDDCDDE3D9D9B1B2B0B4C6C5AEC0C0CCCACBF2EEEEB5C5C2B2B6B3F1EFEFCACDC8E2E0E2E6DBDBBFC2C1DADFDDBED0CEBFC5C2D4D3D4C4C9C8FCFBFBE6E4E6E3E4E2C1C6C0B3C4C3CAC7C8BDC7C6EEEDEDC0CECED6E1E1DCDADBFCFBFCC7CECDF6EFEFCAD5D4C5D8D5FCFCFBFAFAF9C2CDCBF4F0F1BBC2C1EBEAE8DEE1DDDBDADBB2C6C6A6ABA6E1E0E1DDDEDCDEDDDED9D8D9DFDDE0D1D2D1B5C3C3FDFDFDFCFCFCFBFBFBF8F8F8FBFAFAF7F7F7FAFAFAF9F9F9FEFDFDF9F8F8F7F6F6F6F6F6FDFCFCFBFAFBFBFBFAFDFCFDF8F7F8F8F8F7FEFDFEF0EDEDF2F1F1FEFEFDFDFEFEF7F7F8F7F7F6F7F6F7FDFDFEF4F4F3EAE9E9F9F8F9F2F2F1FAFAFBF0EFEDF3F3F3FCFCFDE1E2E0FDFDFCF6F6F5F8F9F9F0F0EFEBEBEBEDEEEDF8F8F9F6F5F5DAE2E2F8F9F8E4DDDDF8FEFEF1F1F1F9F9F8E2E7E6E3E3E3E0EBEBF2ECECBBC0BBEFEFEFB8C2BFE3E3E0E7E7E7F3F4F3F6F6F7C3C9C9F7F2F3C5C3C4F4F1F1FCFDFCBEC4BEC0C0BEEFF4F4FCFDFDF5F6F5FAFBFBAEAFAFD8CFD0CFDFE08D9796818080EAD9D9FDFEFDC0C6C5D5DDD9B9BEBCB9B8B7F0EBEBF0EBECF1ECEBCFCFCEE1DCDCEEEEEDC1C0C0E9EAE8E9EAEAFAF9F99AAEAEC3D0D0E4E7E7E6D4D4E7E7E4D7D6D7ACACACA7AFAEFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0E1C04C0E230AF4376A043B67850A15D9B8D19D068912FD0590C089A0A600333E090C0552203178F08E99311387A6B97CF98E8D6AE9D01FB447CC3C29D1B580128B7D12DC5C08B2A6A5BF4C995EA1223605080D1AF046F8E3199118033B559CD8B1430988844751283DD2C175A0A660CC525CD0D63622386894183080B353E0146C3BECF0A8FB8FD31F0DB308475459EA51258803BBA113D1473135608A25120BF12FCA95821E0C884001AAAEBF11BA3247D4F53106835403FDBD104162CC1C1C03B4F0DC144C95EA86FE866D95C580522781C808F03BD3840F0110E91C71F015D15FAB01907F2BDCF56A6032065582F5FFF060E1C69E315FDA444843874A0621FA606C15F82AD3FC8114D6A9C9AEDDA11609FB8873C71944F42304299E30A306020A9420000154D8204D2E9A1CB4C925EBC8804B7F2D6D32C23D62DC90041A381023101E533020438368D061C87B8DF8E65D1732BCC1214FC80820430D359C0006050114A4C10A0F18900019026C8041067AD0F24F2D3B2030C98D099DF4472D4BD4124C2B5A34630137085060C00980EC00CD41F54CF38E1109A461021B75BCF10611433869D0200154E0C534D3D0934C2AF7B5444C0A4E545105259438F1481582D07104022EFCE300041128820D2909B9120F0D7224A0801452C880850405E9C28C134E945186138254C142251354FFC05F439C48C08213417831801BD9B8D1C2001FF0C14D130708C48B1559288242850B1183C30367C8F0C3A802C922C90112ECBA48363068B0C6000B4451C501673AF4070B8F48D0C228B3E2510C1B323461071215DA60450977D8E110140660A14001582CA041151DB4008328AE1884070C53E8508504CC2A040403130C50DA41A1BCC08801282CC0C207A5A910491A754CD0900B063CA04203263481C21F6B1CA75026D7B430C1072A2534CD3E70B4225026110F540F083220008A26D35452C527BBB8100919EA00B19026431CA1C22C639C5000094824E4CF5303893205054E044DD01FFBA460E244B3FED38DA3EFACC4C13E94F803CA1749646184CF0901FF23C61038FC03448F26EC80E94460FF631F44F3D9520B05261BE4090B14C010DB41FE34E30702C2FCB35526793010C33F01DCD04F090FE886D02467EC910C2C955000C00926AC63F953607F6DDF56607352CB07B51844F60804053A100CE330F240419D4CC04090C28C890617660FF486182E98624919AD7CF280D6E178A2F8D79E3FB57BC41A4C534549DEB110034B9E2754C12146F062D005954421D03C9492C1C041BFA89A10DCC084016C851300684001C4608ADD792E139BD0843F24B8927F8C8D5403490B677ED6B67FE061198000C013E6433E7F20611F96FB072F9A10810450C020C1A80116BC108515ACED1FC4B881028F3008FB784E139F800A09FF05220A201CE0629EA8420CF863BCAD6821107E6001422EC082140C640BC84A40F008B28533BC6100951840416EC1A012C8236240F361FC06328509044320C1A8C21F1AC203106C638EC6FBC72628F00866F9430508C842345427901CD420034810440A0912831A24A0004EB81C09CD27900020E185FF90C0046E58BC89FC6315CC20800B06A1843C3EA9124112082E30300448D44166C6308211A0000709D4E3203880400236C08107164F8802F9041028710A4D5022059BF0E44134910A42B06105E43B881BAA30058278E201CFC8C21D04A20711ECE10F55008229FF31095D12008F0411E27D5851065D70C209E2C4DC403A11043658A00708D90A0CCAB0FF8082840000EAB04706FE01011FBCE32C03D0844251A189526482A1A8604113122080D1950F216E98C01F02F0882D7A2D177D480006C6B746828C220A5D2B4805109004134CA01CFC400112F2C08A4D74A2980A5DC52A34518F1660C10A11C0045BB2134D81F060020ED0C523C4A8904E5C420EDC48010F4C91102D48028305D1C33AD061011FC8E31D5308C34714D709188C000A5BC0C01E7E600111F8E00498100528D867100D2035004E606A3E03310E3970E109A5C8270E2591D282D8A20F67E08714D6B1834AA8810614A8C41830B00101BC890C64B040024470031790430E99F844F5FED10A4A04C3134E588242FC818F00D0E00FBF689624F2609055FF68000644E0473864100E6B58E01E87380401E800861F18A00D3CBA0100202005E9300082392B080FAE30824D1C33B082C5832450B189710A040651F0E84036F1A710748108F740C33D0C41883D6C030B0078800B6CC08B5AB88113BEC000375070267F7862B43C7082E5244101BA5E2E7E40435C424640890B18E41301D0C42606B083AF72A10F6AA0400574F1893C7E2318C138402DE69ACCA27AAE165750492DB857902196D4C4042905079C7031826CA215B0F0042862300D62C06200B5804D8BDD22812568022ACABC0F273A00874A1E209E435670490D32A8261BC41F172086C174A1054E68E20F0B78634232E180091032C9024986692742090A88AFFF93075E6D1BAB79105504400B1AD040005A200B524481240801DA0024E01B260EA414C178448D2BE0841604EAD10C190510CA30DA4ABAA11530084027B4D0090938C10D5F5368274C718A4ED8E214A255E681B3210166A4F30329C0A7AAA74C6BC50DA0620B1945A651E3094404A06230D044317D086318FF43141C38C09BE3978C4770E0387880B4B107F2871450027E0AE1C426F0D00BF2C5A0D1D896329C07620A0E4CC00B078941C53AE18D82302E21C958C0233819E86A182F134E48CA7DBE66CAFB8482151D9840073311050AB0E3960F69DB7D2E008447CCA0219EB840C20AA2852A8E0011F1CB63A07A0A041A2764131390403BE4336BE655E51115C36848262A800452E4310055AC450A79C7BBE2B5A2162950F64232C10C4A0CA005B1480C9ADC30002438C1C10E81E03849F1084A708015A218380C169082B428A3D606F94319D4358211DCF909A4A0851B82C1811850421206568C3752C08209C460095E17C52738718BA277806CD33887443651E628A480031C180010A69102494C4012C9E84F82892181B04C80021440820E26408932C03A165CD1C42DA69116449DDD019817376126780A44F4C2130E20DB011E71800F482018BA48041E2868908000003B, N'frame_silver_small.gif', N'8ae32663-8d6f-457d-8343-5b181fec43a7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (782, N'Mountain-200 Black, 38', N'BK-M68B-38', N'Black', 1251.9813, 2294.9900, N'38', CAST(10591.33 AS Decimal(8, 2)), 5, 20, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700009A9CA3BEC2C79DA3ACF1F0F96566694D53647C8494E1DDE44D515C41454D444953B2B2BBF6F5FDEEF0F5F5F5F5EEEEEEC2C2C4EEEEF8D5D3D90B182A97999ED1D1D4E9E8F450545E3D43525D616AF0E7E0CBCBD3F5F5FADFDCEA83848A000204F0EEF8F0F0F0FEFEFEEDEDF6FCFCFCDBDAE3EAEAE91423343D404A6B717970737AA4A5ABABB0B6535662F2F2F45458638B8A92BBBDC0CBCBCD414653AAB3C1A9ABAEF7F7FBBCBBBC6C6D728987A4494B54F4F0EAFCFCFFFAFAFAC4C4C76A75825C6773E5E5E57A7C848D97A4EAE9EC43355C494D59E1E2E55B5B62EDEEF1012543F1F1FCE1E1E2E8E8EBB3BCC5F8F8F93C3C44EAE9F7EAE9F2D2D3E38C9197B0B2B6ABABB2010811DAD9DD444B59BFC7E3848B92DAD9DA393D48A2A3A6E7E6E9213346F6F8FBE1E0E9E5E4F02324284A4E62838790FBFCFEB0AFB1CBD4E3E6E5F6C2C6D2E9E7E85A5E67DEDDF261656FECEBF5D4DCE438373AF8F8FFD6D8DDE4E4F92B313AFAFAFE2229348478989599B37E7D8ADDDEDFF8F9FBEBEBEDB2AEC8323D4A676A70555C66BAB6C0E7E7F2CDCDDAC4CBD2F4F3FEDADCDD383E50B5B7BB554B55E1E0F2343641A3ADB9CFD2D7FEFEFD5B6882F9F8FCE5E3E5373A43424658F3F2F2ECEEEE9EA9B7C6C8CAE2E6ED9E9FA4FBFBF9AEAEBAF3F3F9F3F4F5F5F3FA131319EDEDFC2038535257696A6672E4E3F2352949A6ABAEE7E5EEE1E6EAE3E2E9FDFCFDFBFBFB3F5266BCB8D3777681FAF9FDB9BACCCECED1040E1CFDFEFEFDFDFD74787FF3F3F4484551A8A7A9E3E3E5636777FBFBFFF9FAFB8D8E99F9F9FAF9F9FE5F5D696F748B7B77818A9EB18B666DE3E1F3E8E8F6524A73A6A6BFA5A5AE6C6C7AFAF8FEA3B9D5353069DDDBDEABAAC86E7E933239483C3648393240F4F4F4CDCDE2C5C8DA352B5DBAC2DA75648CD7D6DA6D6B8A5A5662F8F8F77497B4575486F7F7F7EBE4E3FDFDFCEFE8E9ECECECD6D7D8E7E9E8D1D9EAE9E8F9D5D4E8AB9C9F868598D9D7E6BEC0C3E5E2EDEBEAF2ECECF5DFE0EC968993B0BFCCB6B6CEB9B8C6F8F9F9595F6FE5E0E2DDE2EEC9C8CF4E4A70ECECF8FFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C183026D7D1187B0A1C3871023460C4281800F8918336A84880B0001245E5A6D1C4912233008482825A852B2A54B844136B5402147D7CB9B372DA1C1014541061824700A1D29E2DF19693A025119CA74E3A3132784586A4A55A2B42BA36260DCB5C70C802AB3F81C0942E4C193AA198F9CF8406B0200891500102BB5A88D10185BA850D95301AD44331FAED0FAF0C1081F8C7E6EE04082040A945CD5DEFA7DF809CF870957087F08452123B16AA528405866A5C9E48702020BCEAC39818C886CBCA1C8745AE29D2E8169B1D61C18C754480D615012523B22831CA1AE84C2406B306FC2646E348C5646C7AEE20F6DBC4A76EA54BD7F3F7407FF7EFE2150887FB66A0D2C14EE593BEC10739C2A92038440209809EF860E81A09A6DD9F4A3CC59F021644E251314F14A2C029D21886E99ED47980A53FDB3C77C7A24516043040496471404F551C015247E600719CFE1E1031F9975334681B63C70041F4C3C10D43F6864464B1C067D928573B49891C173B4D86162030F89208E09410471093025915001052A08D2420B1764A0020037A0F801060825C19C66BA700105798138848E225BFC0004106FA4700B15019C87912DEFA460442E3AE432C30C28F0A9C35A819971907A4D00B29B4DBA78A91F01E618C4C4162D2070C105DE60D9C20B082000C4260F4484CE2D5D609A0B258D7481C2AA2A9DA0E3020E1DFF01C66ED289E34128E37D40061A0391B002025990428A113354A2C00C18A0A08337DE20F0467F0E55A0032517E88042069BBC43C70158CCB2097E6C918140000E21322B61A1406B0E0EFBB5610E304224424A0195B400C3025C4800CD066808A14325C2B4A0C0260D558042020A74810404D6F4E009037D1CE20024C5E86847170A5CD4D053242A37CB40E7E8C01B192F54424A25597801CF3F4B88800CCBB50CB08A190A5C3AF041E8E89000025DFCF24D080E3CC000C48784C0812B6C1100854A1760E190216B6546C66103F920076F7860204409FF7020CF127720C3CA00AD58C04330B35C60C40B46B054D02D94BC90C02687F0604910427BC2C31296A4FF31C107AEFCA348230A28A0420F0E05F0B7D4D70DD48322461236014B0CD8128528C144C143040C8C30020F3C4880E50B8220425026502090C01EE811C2C0037C78D240CC210C11580073CCA14B175960A0C8438AFC4D18019A6828903848E0C1DA152968184C1D7BDFE14F046A00134104FFCCA28320461037100E281881841F0BFD630103417C318008707C31641BBD58F00F03CCA080C11BF83CC4C2157874E2080D3408C00EFE0180469441014898C060F0E0887F608E01BD18401DFC11050EFCC3137300000674F69A7F98C95A2BF807097631950858800EF368C2141E81075A546009B1888208663103056080360FC10426C01189156CC1113728870AFFCA50860C24E0037800046132A0091010E1134B10853FFAF08F0180281E7243810704A20B28E8E0027E38843F5AF185508D600A0B78C71A60F0812C74AE0344608310158082A53C640D4E90862B0C300427D4831F3AE005023283002C1C60086B098501A6C08F47CC412011F00703D421020AA0204BE7F140E184F00013ACC21D7098C417B82006466CA0032DF800209650023658024A5E40C10C52F01012380113BF48410A78C10B2750C00E960985179E508E03E863036F18CC30EE718FD74C520D6A18402C3660844A55A0162A505D08C5618D1048C11DFC608119F6F00369E0AA0011780011BEA00F132CA00B3310042E1C0289003CE2082A50000C1651FF8F7C90680202D8471AD29186355861133038C10412F18B0530421403F0870D38D00B3F64400733508438088000055861095218C10096E08F0E386371E259819D06C20D14D4EC120F8983131E010B6AFC2213C5708E6656B3D32B9C801605F8C31418C083111C230A1190C71B40880F0210CB6D04F1030DAE30017AE0CA0EF710031C22308228F8831FAABA40A41CD20A3CF262149830842A2E800730B8E207F9E8A802B2000830FC54094AA0851E56C1833BF8B5173CB041207480012FFC23100813C0002C60014248C1146ED0C22826A0D00950A113EB1803083C61837F4080120A68C33C1B52145FA8E20D1360C72C5A41050C94C1000439C312B0418305FF4CA33991B00721FC1A064F7096086F30020A42E881C798811CBE98A82818E1861218421BB2B84700CEF18503A8C10D168003032880B114D842220698803134E00034B4211F29F84204E0600A3544C114FCE8C4304691880D704314EA1085273820895A48E002089881565640B80C34617AC720C40822C089125C430212C086861C300E0E20630087C5C00CB61091B3E4601AE3F8EE2C5CFB8677AC621E2300853FFEE1025900001366A0032482C18008B8211E5288450D1460840BA0C383E1D3C1EFA230000E80680EF370870B425081792CE11F0E980430E6508804080201EF88880974A18252BCE308FFB0461B7AF70B06B8A003EE3041034CD181770040FF1162604015E33149068082190840C12D0682582304C2027DE8C3CB6CE00F3E88A117C0D805160630827F24DA169A7CC11B46FB901EDCC00714A8011704F20B0C14201F4C38048693908A5594202E6BE08314EC038706442C0633B8000A7E57941B3442609D41862D80110517206200C158D201D8C08028046501A1CD022A30121412B4A228FF404416CA50003348A28A20E044071AE08727C4A309EAC3301C6C1002B5CDA00D0EF807B45590800B286019FF680532EEC08420ECB7077E78C0241E7007065480742D4801A54942014F936205CD38040982400871F8E11F2308011F8031024F541107332840177E879EEF3241013B4B80179E6C82B2706000E4FF3087251E600E56F8004BA4B840075B828B37B89614006045125C100107982366D668821F4460661C4C0301D3F05EC7BF9B094AB89412B790801F5A11823B0C0012360A01116080002C651427584040250A400A215420B0DDE4C1001C0E8C56F8C0081868C13432B05211D85D20EF484023844B095854E11C4D48452BB801010F6029030568DB502A7081B117E0051EF00113ACC1034F00831B83E04517A83D8D3704C121E768831DBA5E3804BC0009C1ED711B84E19399DF04384C084422CAC0B62C5CE0161E78C30B30300D23E4A3008910C24A1BE200005CA011B9C845A70A37031DE8200B82A08009AA828F5FCDA0C78248FC0C1020084E5522038A20C78841EC6E0B5BB402184131410D70A0BA1A3A1F0181580113D0D383567CF725E6EF013010B70B0064E04F7FA26118600429C0022EF00FB5600BD03610E4670B24A07F4FC00AFF800FE89009375003351003884045AC000C6D677F0B387E761782062102E6070CE2F0091C700649F008A8400566600654500574F00967100638D8073D40020AF80F0101003B, N'hotrodbike_black_small.gif', N'82cb8f9b-b8bb-4841-98d3-bcdb807c4dd8', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (822, N'ML Road Frame-W - Yellow, 38', N'FR-R72Y-38', N'Yellow', 360.9428, 594.8300, N'38', CAST(988.83 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'22976fa7-0ad0-40f9-b4f9-ba10279ea1a3', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (835, N'ML Road Frame-W - Yellow, 44', N'FR-R72Y-44', N'Yellow', 360.9428, 594.8300, N'44', CAST(1043.26 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'a0fad492-ac24-4fcf-8d2a-d21d06386ae1', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (836, N'ML Road Frame-W - Yellow, 48', N'FR-R72Y-48', N'Yellow', 360.9428, 594.8300, N'48', CAST(1061.40 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'8487bfe0-2138-471e-9c6d-fdb3a67e7d86', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (867, N'Women''s Mountain Shorts, S', N'SH-W890-S', N'Black', 26.1763, 69.9900, N'S', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'22616fd2-b99f-4f7d-acf6-33dff66d42d2', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (869, N'Women''s Mountain Shorts, L', N'SH-W890-L', N'Black', 26.1763, 69.9900, N'L', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'1a66b244-5ca0-4153-b539-ae048d14faec', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (874, N'Racing Socks, M', N'SO-R809-M', N'White', 3.3623, 8.9900, N'M', NULL, 27, 24, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9c7eb0a-1dd1-4a1d-b4c3-1dad83a8ea7e', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (883, N'Short-Sleeve Classic Jersey, L', N'SJ-0194-L', N'Yellow', 41.5723, 53.9900, N'L', NULL, 25, 32, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839614E003100F70000B3B257C3C361878787F2F007676559EBEE4C79784A8C8642696838B4B798B8B31C4E4B3970736FB4B4B426456EC9CAE19A9542363F607E7B51A4A4A4B1B1B16A662D929292333232E3E3E3ECECECDEDEDE817F49938C44BDBDBD56523533458F3137529797AA7C7B25D8D809E0E0EC7E7FA3424E88CBCA38AFAFAF989558646667D3D3E5AAAAAA333763C7C7B79A9767C2BE1AC2C2D9494B7DADAB4A58888B2C34664E757AA9A818474F52343548625E3EBEBEBE475284696994CCCB4C5B5C5BCACAAA9E9E9E9694824A47337C7C7C565877313284B9B9B8B3B4D49B9A3B99999985844BA8A758625F4DBEBF2A6465AB413F34575666313279494A4CB7B7B7868341A2A2A2BBBAB66F6D3B908C3DBABED63E3C366C6E4E6E6E5B3B39339899C72E3E84ADADAD45444EC5C4C4313272656347A7A7A743423B7D7B6C74703E7B7930868577827D2C8B8CC04441331C318E4C4B41BABABAFEFEFEE5E5E5DBDBDBE0E0E0D5D5D5D1D1D1777777E9E9E9D8D8D8C7C7C7CECECECBCBCBC2C2C2E7E7E7EBEBEBFFFF00EEEEEEEFEFEFF1F1F1F2F2F2F3F3F3F4F4F4D5D211DFDC10938C2DC5C143FDFC37CDC944FFFF19FDFDFDFFFF01777130FCFCFCF9F9F9FBFBFBF5F5F5F6F6F6313390F7F7F7F8F8F8979241FAFAFACCCB8CF8F7085F5B3B32343EBBBBBBCCCB0C588A9A1750A1FDFC2CA6A370BFBB703D3B32BEBFDCE5E5F1A8A8A8CBCCE35D5932E1E1E63033592D314ADDDDE97D7A45B3B040FEFE01DBDAADBAB84E97923D3D3B37EBEB2C454743E1E01B3E437E37387E686739989831D7D7D7798858929134CCCCCC777544B5B63DD6D637908C27706F4467673EE5E5126362322F425481968C575887EBEB17BCBCBC484765CFD146E4E407B9B86A7E849CA19E1DD0CD11B8BA41F2F21CB0B1C2AEB6C0ACADD0989842FFFFBFAFB0405755484E5148373B40ABAA93B2AF5EF2F2F8373632BFC086888523E5E5D16A724DDDDD50ADAC86746F2F5759A4587681CCCBCBCBCC6097974C514F2F7E7FB9BFBE0FC7C7CBA29F6B8E8D1E9091BF8688BC94947E595828808067BEBC54BFBFBFFFFFFF21F90400000000002C000000004E0031000008FF0083F81B48B0A0C1830677285CB8A383C387CF9E81021527CE918B54A834D848A1238A302C58A83233C14A90204A94585829A02511223FFCFD9B49B3A6CD9B36E5E8DCF9A8E72349402951DA346952264C962A1D325488D020411900E5F93307431D0D74F4D8B9C3A7CF1E3F3B403540C162021E9938D3AAFDB793A74FA0928412358A542953A750A552B58A552B57AF60E38C2D7B76ADE19C6DE5F8FC197468D1A34997367D1A756AD5AB59B776FDBA433059B3680F1F4EACF8ED200C721FD7958CB7F25ECC7E37071E0C5AB4E8B68442F49021A5990C23466484C8A03AF25DCA7A2FF7D50CB833EDC2B60DEBD493608611324576499152438A980560A8D5FF816C77725ECB7C33FFE5EC9970E8E869B531F396409D981646B2490A71894C16566FF020CD0BF518679E6BCAA9279B739F4107DF4D1DF0300A0DD724504B0A17D4D0822B35E4E04A15F2BCC2C32C2998B08E06AC21871E6CCCB1F7DC7B0FFE03840FA57C3021313870508C2C2D38B0CC1B3988308B35E59C314289F0D0600E1D0726975E6CCDB5575B8CFFE8B14627A4D4388A0DA728830D238D548143386EB09148208840514E054B98008F2805B843456B4EB2B8DE6C0DC268DB04603080658D0E5CB0CF008E80C9810EB778A0C89969A6C18E0232BC59800D5EA021CC79AF2D772783EE3D288C0419FA498A3D2A9CE1C599853672E8168A320AC50149C0FF700B137002E385046B609A20942EE6F9E00F9A5C008E9F4E1461CA19150C1048AAABB68AE6AB8BB0514E0DE944B3C4ADDFE8FA648B78761ADD1C3904AB860A917CC283295B44320024CCEAC0EAA2CF1EB0C8021942900B17B74EE10F82DB6E2AA583A25D0142B0062CC28AB92F5C10892ECEE0520000CDC29BA6BC0B0C510304E1E02BC11416F06BE782FFEAB99610035F30CC0C9E7CB2CB101710700200FA4CD34FC4AE52ACC3C550683C053F1E6B0AF28BF09551B201B6A48C0CCB043001403F018C4373BCF3561101041EE8DC851D75FA1C25D0B6ED90C5D0587852010C2CABCBAEA1EE3A3BF1BC100C6340193FE4DB8516592BB8B5AFB675F375B00418FFA0C608642BBC6EBBEFD6CCF6063D5CA2F825BCEC42F78A5AF7EAAD68E8FCB6F825DC8412B8D984AB0DED02106C00C71879C480043EF8B45237AFDD4E295A2A5F7C81CA2AE4FCE383E6650F8E76E150839E061C296AFBF1DD9353E9033D9BEBAE6ADA127F0E8132FA04DFB3DD92BB6EFC0DC99FBD3CEF6B83DE8B38D2AFCE2DA7D6C778BB02B96BFF74F71060414BF89053DF3AC0E68F604CFA9D374F31040800017FA6F2231FFD1E048F5954007FBBF3DCFEFAF7BF5D8D2F6454A20927022102046E4F816C63E0718417B9F9892C3A13ACA0E0D4C73CC3810E012E6860BF7E86B7084EF01E165C9FF350A8C2E1556F80F0996035B630C2FC99907F29DCE0F4FF5827C00FDA66823780420F13A8BF0C06B149F123220423F88F12244301A758E2059B78C231D4B08345A4E23F9EE0041878418B325CA01785283E7F712D82F3D8800294C83926FE100B6B842200A5F8462A7D6103E770031A4BD83B08A4E10E5F0CE01423880415C0208B75DCE20F63718444F2B185545A8523634848F66DC002967C601F63948A4B64CF8785DC400842E9464C52C9949CE49EF3BA900F56B2B078546A4716628941D0150116B6245EF962F4842AF0928B4B78C22182794323DAA60D0438A609A3B08DF2D0298AA274658CBE100541B22218BEE0463C24D08429E4400C4D3806017ED0026844A1059758813555B4C76CE23246A878C213DAF0688507F8F301AB00E83F1FB0027F9260122B588181AE59CF56DE3382A4590C5C52439785D2D3810E1D26441323D1C6CC853CCCF4A0186B12D1B778B438F3E4A0229F830284B8F4A52F6588421C12919A52C42218C9C8461AD0110A7C0424239940494E929295102120003B, N'awc_tee_male_yellow_small.gif', N'2d9f59b8-9f24-46eb-98ad-553e48bb9db9', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (907, N'Rear Brakes', N'RB-9231', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 128, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'5946f163-93f0-4141-b17e-55d9778cc274', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (936, N'ML Mountain Pedal', N'PD-M340', N'Silver/Black', 27.5680, 62.0900, NULL, CAST(215.00 AS Decimal(8, 2)), 17, 63, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839612D003200F700009C9B9B848283E9E3E4F6F5F6EDECEDC2BEC0E6E4E6E1E0E1DEDCDDF2F1F1FDB110D5D4D5FCFCFCFFFEFAD8D4D4FCFBF8D9D6D8D5D1D2FC6908DAD9DA919191FDB064D2CDCEF2210FFED69BC6C4C5FCF9F9CECCCEF94902FCB138C8C5C5B3ACACFFFDCAC0BDBDD2D0D1E5E3E4B1AEB2EAE9E9A29D9DAAA3A4BAAAABDDD9DAC4C1C2D0CFD0EFEEEDFFFEA8E8E6E8999595FCFEFE8A8989DFDEDEFFFDE4A1A1A1FFF98CBEBCBDFFFFB7CAC7C9F9F7F8C6C3C4C2C0C2898789FEFDEBBDB9BAA9A6A9C9C9C9B1B1B1E1E1DECDCACCFEFDFEFAFDFEF8F8F9959796AAA9A9B6B5B6DEDEE0CCC9CAA29EA2FED710918E8EDAD8D8BAB7B8BDBBBDF1EFF0ECEAEFADA8A9DCDADD8E8D8DE4E1E2C5BDBEFCFAFCB8B5B6E2DEDF837E82BAB8B8888486D4D2D4C3B6B6E2E2E3FEFDFCB5B2B2F4F3F2FBFAFAC1C1C4FEFEF9F0F1EFF2EBE3B8B0AFADABAC938E91DBCCCDC0B9B9F8F6F6EBE8E6CECDD0C2B6BAEAE9ECB5B3B88E908EFCFBFAFAF9F8FDFEFDF9FAFC8F8A8FB6B2B5E6DDDE949292D1CACAFD861BED00009CA09EBDAEB1A4A1A3F71700F34333B8B2B4D5CECE8F9190E1DED9ABA8ADCCBABF888A89A7A1A5DAD8DEC4BABB969394F9F8FAA6A4A4F20200F7F7F9B3A5A5B0B1B5BCB5B7878688C6C4C3FDFDFD929493F8F9F8F7F5F4BCB1B28B8D8DA6A5A8D6D5D78E898BFAFAF7AEAEAEE6E4E39C9898F4F3F4BAB5B3EFEEEFC4C0C0D0C6CAEFF1F3F3F2F37E7C7EECEBEAB7AFB1E1D3D3989797D1D0D4D1C9CCCBCACCC9C3C2BEBCBBBBBABBF7F8F6D7D8D8D6D4D2969493C9C2C5FFFFFDFEFFFFFFFEFFFFFFFBFEFEFDFFFEFDFFFEFEFFFEFCFEFEFFFAF9FAFEFFFE9F9F9FF9FAFADEDCDBFEFFFD989999FEFEFCBEB8B8FEFCFAFFEBC9A1A4A3C8C6C8BEB3B4FB8628FFDD7EFEED5CFEFF60E0D9DBE2DBDCFFE2B9FFE6AFE8DADDA99495FEEBE7CBC6C3A4A09FDBDCDBCCC6C58C8D8BFC6F5EC2B8BCB29F9FF8FAFAD8D1CBF2F4F18A8B8BB9A6A8BFBEC0F11410DEE4E69C9BA1DEB8B68F8D8FB0ACAD888888CDCCCBE6D1CFD1C7C7979897FDCCC4AD9898F4DDC6FFFFFEFEFEFEFFFEF8FFFFFF21F90400000000002C000000002D0032000008FF007DFDBB83E4D3A64D4768246B76E09FC3870F91FDB3D0A78E93100E1930E1222AC4330F4488E081D1AFDFBF7EFC1C8E0080E8203E1A0090A482F8B02430288810C558E0708E1E2EF274C08AF08F483F18BF4EA27C18A6591D0A145E3643D28AE6C97F524C209247E140997F57787091E501059F7FBF909574B8F4A13859502934A37164CD00ABFF1CF4F9C464C3AC1503A2B8E2920C8B1A16FFF0682A69126F28A89B281C611944D943226F3478780180CA0E3A2476800AE0459A216AA31E6AC20B7145CEC814367D4A92A0550A1C050A8470F3C8CD9820B8CC9821312F09AC67250E7C496160990C04CB5803A98308AA135E2778B7CBB061C3120FAA7AADFFB29104141D336B2E090297AB449857AD84C897C1FA5F864F14AC9842E5C64F0420328C0001155640F2C20F050C11052824B4338D206D40344C4A0EF992123F024164430C008CE141044B0CC2861B025C020B1B98D013000F3F6C9001148AA880422CFF08238C33FCACD54F033C3690A16A5D8CB1C40219F4E1441F54986308092A90204B1F6C482242281B9851801CDAD424CC3F8BFDE3CF970DB0F5D004215860810D8388120E0EB4D01242142B6061C30AE495B0C60EB3E02047049C70D94F97257DE94F31495DE6830E2ABCB0862986F8E1830990F040C325DE18828B0F2A8CC0032673CAA14A180C00D30F11C4F033CC30609EB49A435B84E00124A2ACFFA1820726F0B0CE3AF43861412C1FD003890E0EFC10803C71F46241020F0C1312110C4023C69784AEF54F0E054430C2207D84D08E2C5EC470EB3A4E2C604C323104A005014BE8E18519B4404046279DE49045161A6890C097BE18531211C0A4104218FF1880842086B0E105238C1C410A1410B8300823010CF10F04516082CB134F305094145744A00A2C27E0CBA526C410514F01044C1BC139282C6102004174810B1206E8908424EBB8609F07B274F1C5023A98488524C924238D34FEF8781211FF24A043040494908208F758D009013624C30B226BB8F0833C41EC3080149268810B146475214B206C0380CF2688249DD25A06ECF0C4041364A0CB3F13E8FFD009110B9010441C8E50E1453249E0224B0C4888206C12D3D4414E1D75F4614A38F3F8138C4344ACB6850E101060C41388895380245B6441402B2E74FC8215148C01C5185888F0821727F831CF07581C520A0B64DCD10085FDE001D634E2301089127785E2423DBC40304715A120E0820B5B1C00470E16E813C20F6A7892CD2814AA56FE51BFA4E08101C00CA08411FF88409F0A41B0F0452528A420450264BCF1C6168FB0802254310E08A8830165C8C131ECC0408868C2782928C00180B1BC01F4E339FD60000474A10A148081002EE84419EC90802C4C2303EDD0C2131C00875CA0E3188B698C4344653C01A84017C760C0085EF10F17ACE00E0438C02CFF48A08830C8E0151AB0C30156A08952D8800E1ED0C52ABAC10FA4E00518C43089143C20029D194006C05006804A400947D0C112B908036258908153F4701E6C1081389840857FC0A008E5A309D338918121406004131882010670857AC0211255D0411C9A4680016420653940802102A03700BC800CBFD04431A465154D8840070B004228BE10074F6061022B90C2170A108632106002A10018300E300215046009A148820912610C22146A556C598B1476B002371240049500C3001040802F64200C1958010266028CE99D02010080800E2CB0061FF4A30830F80703345613C63060033B30009704408D0DE4C00853184228D030C80940E0140698C01CFE61FF840588A011D3C80400B6C0250600B3260FC19A08A4309003B4A3162E18811946300022944007D4B0051010C0803718A00A05E0021326600A2AE48201C2F8853158C30F625C41150E70A3140E80802F3833151F5DC1235050851118511CA180001348B3842E04200576C4033058CA0F3B4420045F6041090CF0060464A01694F8CE0A22508A7132403906C84108B8C00524AC800DA860403857CA1A3C10E30E2250C106484900014471002E00E196C4E982508CC08DA9A0001730318D4B84430068F9852F8A41210CF1C319677046515210051DE060050218C21CD0508A27E46020AF98C0135CF0159308C615F048811A16A18122A023183C826D0392168C60FFFC080E99F0C1060C108A2CA8EF0B323880684B90806188810159C02B0D6830885DA4E303ABE08303662BA8EA26CD423DF00703827B802B944107B7C884073EB48B2794E277CBD8C2135AB18B3DFC800A89B0053B044009EA6ACE17BE0886A078D40361F0831FAD8000FF44B00B073820055718412908508637A06114C2F0450E1AC1850004010EB0588414A83B3C87F043BFF8520C6817408904D82143C380887FFFCB0C66FCE3003CF0821722608113B481BA3FFA872F5295C95F70220C0838462B8691D25F18B91FA5E207328C6C6489E8A0C26C00DA07700C911DFB43206B39C51F8D40861CF1C3478CCD2342EF20AC0004420058A0F243AC8CE52DB9E0FF0B25688511BCCCE1060443CC097D410002408A57F862B67904F1F08C5C8477288115ACC84385AC2B379A64F01F3210052602708B1D870922204E1A0866B08F78D8230D69E8410F66500C465FB7269A18E73FEA81894DFD39C510E1F03F6A700D0EB8E30285E8400BB071032F995A69AA698C0EBC8009BCF0034CFED806063A408849385B021D504005A2615FEB769826C02042010280171CCFE00F12200420C6ED6C0E70E00FDC2086A953A5C7A2ECC02A5FDE6F3ECA718171DB9B0312B086AFD7ED0F3187841876B04AA693F60D05344101E62E4435ACD1841AEC7BDD392E68971E126FEBF203042DB881C6FDB1E916CCA0DABFFE511EF19B5F900B6A860E14D95C8A4BCDEFFDD696471069B9CC67BEEE6B0704003B, N'pedal_small.gif', N'274c86dc-439e-4469-9de8-7e9bd6455d0d', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (945, N'Front Derailleur', N'FD-2342', N'Silver', 40.6216, 91.4900, NULL, CAST(88.00 AS Decimal(8, 2)), 13, 103, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'448e9e7b-9548-4a4c-abb3-853686aa7517', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (948, N'Front Brakes', N'FB-9873', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 102, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'c1813164-1b4b-42d1-9007-4e5f9aee0e19', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (953, N'Touring-2000 Blue, 60', N'BK-T44U-60', N'Blue', 755.1508, 1214.8500, N'60', CAST(12655.16 AS Decimal(8, 2)), 7, 35, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007477789EA4AA3B41442E3169C1C2C27877AF196EFBCACADACBCBCCBABCBBFDFDF17573F02F63EFFCFCFCF6F6F77182E2EDEDED65686954595A3056F6FAFAFA5072518E8AEDF5F4EDF8F8F8AAACAC27349B5471F0506AD4B2C0AFA7BCA1FEFEFEF6F6F95D6263B2B8ADEEEDF07C7DAD2F30F4A1A4A4575C6BB2B4B4201A70BEBEBFD9DAEEC0C0D9E9E9EAB8B5EBF4F4F4778876495BEC4B52548282847D838331383AF2F2F241474C929395445BCEF1EBF323272AE5E5E60E15F1999C9C8A8C8B525A8F303ACFFFFFF82B32371A2227F4F4F76D7272D3D2DC0044FAF2F2F36371DD8D95D084A87BC4C5C7282D32D9D9DA12181C9C9EA3C0C1CD8D93934A54B2D0D1D2BFC7BA3B449DE0E0E1B6B6D7FFFFFCEAEAEBD5D6D6969998A4A4AAC6CAE70C1317484C518D8E93A9A4E9CBD1C63E4ACD9BA8984B70A7174DF6195EFCA7A9A9AFADD9F8F8FAD9D7F57A7D7F161D21929B92E1DDD4F9F6F6F0F0F0A4A7A4B6B9B7CAC9C2F1F0F2024FFADEDEDFE6E5E8F4F2F497908D2F74CE8C948B6B6D710222FBABAFA8CED1D1E9EBE1838F81B8B7B9ECE9F69598B9AFB1AFE2E1E3B1AEED8689896A8595DAD9DBF8F8F1848689B3B0ABEEEFE801080BFFFCFCD7D9D6A8A8F2837EBB003CEB003DFE949598B7B1BF9FA39FE6E3F3C6C6C164706C1628F6F7F4F5ECE5F9FDFCFEDEE3E09C9B95060E11F6F6F1204AECD8D7DAE9ECEAE5E8E6F6F7F4F4F7F70043EFE7E2E2D2D3D3FDFDFDFCFAFDF9F9F9F7F7F7F2F2F0F4EFF3DFE0DB1538FEFBFCFD9F9FA1C8C9CB1E2121FBFBFBECECEDF9FAFAF9F9FAF1F1F3D3D4D4FAFBF7EFEFF0726D6E657691232EE4E1DADCA6AEB8F9FCFAC7C6C87E91920201D96681B6CECED0FCF9F95F7595747DA4717074D1D5D3D4D3D66F838ED0CCF2183CEC798B956A6F8E6868A2DCDBD5697186E6E5E1DADDD9C8CAC5DBDBDCF3F4F4C3BFB8F3F3F3BEBEFEF3F3F428303131392E1F42D70F62EDEAE3E4A9A4CCF2EFECD5CEE0E7E7E8C2BEF0A8BADE9D9CEEE4E4E5D0CDC6505152EDEFEEFDFEFE9FA0D7F5F6F56261F2F5F5F6F7F8F9918FA88E98B5A8A8ABFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33A11B8389C48B1A2431F35DE14B2C8B163C50619C0EC9090C1A3C99308B948901162532A5918500A8495449FCC8AA8C480734700472E4A9D24520CD665CA8F198B7EB811A362538457371DDA8025B05E1E4434FEC8ABA82C971A7F2670DC70428F5E0D1FF8A256A4F0E41E800427558409234F8550B515A518A3D2EE64AE1A51F076D462090F20341B2A85D26211D60C31823BC6E180A7C4063C78105732C4D861A230CA225B5CA5C9C0AD185CDE3D6080070962453A1A1EC8D64B74C56DC87A9430C04181161DAA59BB5602BBB3C10F87FAD9A6D8E200B72B16621878A040E06F17AB5B9F52E2A296C122D1582CFF7708ABC9216D0584BC9B60608910825A0C6167DD6ABB0B53023F203A816A7C432C645CC10F08FF6831461A0C647190169C28F2401A485C62CC035F38C28106E2F95750035409C40B024BF4F0C5405A586000034724C460251B7CC20C33C694D003391AFE030E1D6E8420810411B8910B24C8005242110461B0006FEE2CA4451E31008284906D184401178864F2C80C337451481E1DD511821344ECE08439643AB1C32E6700928F418648A7842309C931067D13C4C34A4110201282006012E16798358480484C0E0513C22E504031C40D37C8E0A800430CD1470F034062501BEC3DF05E41B5C433418465DCF3CC86FED033C41B50103144183BCA70C31044BCFF11860A0D65600E146F044A431775A84040028FFC71421ACCBCE1C40CB314E4027BF718178A05A76072490E6B5457D0167F38816A0D7F7851080255E892801A3F44700311503CD280425120BA83111938E340B21F08E40F31CD6092C22E6FEC20CD0BF0C583200B5AB4B1001AD2E690C5A605E5410FA24E00D0843C1F50F00F2CB17C300C3B76FC104629A518C10B4219202A4017CE50C04B030EC0320B87BDF0D1C7359ACC00A6BF160F24C4910C2C700B26AD70C002C305E97103185008E0450BFFCC82812C0DBC0C8B03FF14C1831A12802109000755E1041802D0210F05147C30CE2CBCCCF24103C32030DD3FB2FC00EB0E3814E4403E067C628C120710FF5DD02F11A04A0F02933CF3022C77C84201D5BC604041B2BD14120218A5F850902CF480614E2EFDFD334E03B2CCC18B031FFCE2083CE9F4A58F0D8F80E984330571225D19D6261445AC371020D00BE350F0C20B8FFFF3CB2F0EF07287F019C8500A1194104407AE3334F2CF1C1F7C508EC60E504D81230F7020C438360D23CD9921AC4B903513A4B3807106E921C01B437871B11C0DDC6103062360C0C63F4F17713806E1B8034624118281F8E206A5A0870AC6F1015ED8E01FBC2882037AB10F08DAE20AEB10464C1E578530F4AB0905D182222690060B24440C6F78030028A00F0CE0621693C8DE162AF80F07E86318BCD0873EEA458D08246A1A02690218FFDE2006A68D0316B21807FFCAD10B22FDA20911C002556471BC7F3C62076F9086414A940634B8E020771040D29AB032E06100141F90832BFC418016FC620BFA78812C2E96040798A0065B13080D24718304D4040336681CD526988817B4200A38D0430D19388B5938C383021886417666805344A9208548A1115496BD61CC620FA0F8C731A471033114A105B3A00A059230320448A01435509BF222F20FD04D3009896B4013501085000040028510053E7C97AC72B8214C20340830A43301437C801683A8C73F68B0BC5C1084021018C13020908110486208A8C8D93E8AD0000CBCC01DC784C234EA310430CC001C4E93052F78018C61F4A209096881344E10FF0109B821114518863E66A143139CCA720759410CD0A10D116CC2075168C21F042080045C20128EB880301470816E04C20F3030820C7090AC59CCAB1CA9FC4026CC510A4480038B38D842037E810193CEA21C7950813322300401D4E0062150463930B03281A8408C3348C8174250012674C00A3EF0C0390670850258E2AA562D0009B40184AE1603001128C4305AD00B60BC401FE578C11D25318557EC820899E8052C3A34904454C11FFD5AD50D50503A0C644F8204B80114B886105D9881103070AA09CC200122546019CBC04635AAC1084640030857D0408CAEE08945C80318E5700051EB85023CD2800B6FC5813CB2A74307ECA31C5C2884099CE00469FFF8231385152C610D020B1308A2032085830F0251810150A11967A00215CAC0DC2038F70A572841103C6182445CAC71FAA8893F0420091AF0C009E962DADA1AA08F5E6C411E09104417DCD0045F0D830D6CC0C0D3544600A4228402514800220811063F74C0031520C209A221063844C10B7478AA08E0008310C8A0023050012AF4415781FC85ADB21040C8AA70D67164730FC368403D10D1845734411773D0432F1CA0B2062C0E11358082350FF20113A8C1077558841A9CA10BEE8620120581C524FED1844CA080001948C03D5119C781BEE08A9250C33F2220090536ED0E64DB03555EC0056A54810031C1C01DEEF002F9C2621C3E085368108200136420FF106EA04306BEF107490840103A844503C631C70FE8C2C6E3720616B80081615080436C0901144A01BB0C94C2095DE0814D6661837AE9A3055B10881EA8F78F16CE6B9EA83042D280911058D421105D800301EAB00A4480810819A0DA2C8ED83459E842060848C42B54E00E0CFCC206662D072C12100649D4608EBDD8011822A00BCF29F1037770400B00D6805E8C80489E8B9A3E2870D4C12EE4170920C4263AD1020AE861089230020FB277B1DEED21113468DA3008058C33BFAC058BC0E36EDD606C1C60816A0D10DD1C80A1BD1740E0A617AB342CA841837E355B21F508C43760310C2CE4211146F8A91A482D0A9BFCE20E4708411E3EB06252F32209FFFFB8032F54E043460F040BCA26899E87313508C8C22630014623B5E78011C0180A1160082536010182C0820B3E8D0001AA800A7724421E18788424DCF08B170CD526FAA09A331681EEA013C407CB7B8B123100BED1D5DA01C21EE83F46A00209C04F7AA56E801AE87010372CAF0BE1DC421E2EEE0F23A0C001B20086F57ED1B43C6CE295E6484541EC118247CF20017BA0300327CD32DFF14F0F0408410AA5AC903920E207A49883419270B41D6C02157BA821040512351B7E00E58DC885A2A190CC82D403814E7043065C31D34E771A1636C140121AA1A7142675211FB08537EC408B833C6108A5D8415B2140F8B450B8654462BB09145D0ABA23640BF4589EFF0448218E634080D445F8003078F00A14FCE07D6F9841BD50828076BEE10F22B0832D98568E1ACA411DBBF47E48B3090BE10000000560E00412B008265008F360079D80083EE00661802E3B805037F1041F03064360047E306E2AD009900009814003324004A5600E70D110092058A5902B37400F2BC127A8B20311500582310B3FC052CB230032D02A7CA235446004AA807CB8400184B772005003940332600006BB200033808351513DB04001E1D00058300537F006A520096008866050036E2008C9E00B0D307F347685503310F59001601501113003083047FFB03637A167B2800FF5B005A9500FA3800239B22312E0095D4006AAE00EAA900AAB000B6A04F80F0101003B, N'julianax_r_02_blue_small.gif', N'f1bb3957-8d27-47f3-91ec-c71822d11436', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (954, N'Touring-1000 Yellow, 46', N'BK-T79Y-46', N'Yellow', 1481.9379, 2384.0700, N'46', CAST(11398.72 AS Decimal(8, 2)), 7, 34, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'83b77413-8c8a-4af1-93e4-136edb7ff15f', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (961, N'Touring-3000 Yellow, 44', N'BK-T18Y-44', N'Yellow', 461.4448, 742.3500, N'44', CAST(13049.78 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'5646c15a-68ad-4234-b328-254706cbccc5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (962, N'Touring-3000 Yellow, 50', N'BK-T18Y-50', N'Yellow', 461.4448, 742.3500, N'50', CAST(13213.08 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'df85e805-af87-4fab-a668-c80f2a5b8a69', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (981, N'Mountain-400-W Silver, 40', N'BK-M38S-40', N'Silver', 419.7784, 769.4900, N'40', CAST(12142.60 AS Decimal(8, 2)), 5, 22, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007A7B82383B463D404CCC2F2EBA878ACDBBC5898B94F4E7E5B903029A9CA4E9F4FD432F61F9F9FDBBC4CFF2BABDE2E1EB686974CD6E6DDBDADCC00A0A89666D912D30F1F0F9E3E2F2A6ABBB9BACBAEEEEF85E6169AC0101F1FBFEF5F5F5D4D4DA4D515CD9BFBFEC9594DDDEEBF6F5FD444953E6D7DAD8B5B6E7E5EA42444DFEFEFEE9E8F5FFF2F2EEEEEED0505050545ED1D2D4A4A5ACFCFCFCB3B5BA95999EF5F5FAC1C2C5EAEAE94E5365EDEDF66C70787F1114F0F0F19A010161656FDDDDE0F1F2F453586355556172757E404552EFEFF4B2747784868FDBE6E9A7B2C0C3C4C8DE8887E0DEE77D818ADCDDF2A04E4ECD8486FAFAFAFCFCFF484C54E5E6E6F8FEFFE8E7E9CCCDD0494E5ACCC9CCF9EFEAEAE9ECC9A5A6BEC0C2F8F7FCBD464795768A860203D1CDD2F8F8F95B5961AEB2B7EAEAF7EAE9F2AAABAFBBBBBEB0AFB5C31212C8B5BAB314148C9198F1F1FCE2E2E4562F3FA35458B3393AE1E1E2D1D3E378333CB3BCC4D00503A51418EDEEF2D29A9B7C3C65A2787E8A1919C091959F8994C0C8D1BF2424464957C6C7CAECEBF5CBD8E6E8E0DFE5E4F7E6EAF94A4E6234333F5B5D679A4546C0BEC8ECEBECE47271D71413CECDDAE7E6F3A0A1A7F7F8FBE5E3E5B2B2B6D6DBE1FCFFFF9A95B5A62322F4F3F4EBE3E6E7EDEDF4F3FEE6EFF8AA6868565C67FEFEFD70191EB6B8BC554B55CDD2D6B72B2D5157694E4671CC0F0EEBA6A6A53C44FBFBF9EFF7FBF5F3FAABACC8A6ABAED6D7DF9A1516FBFBFBF3F4F53F4658A19DA1EEEFFBFDFDFDF3F2F2484551A8A7AAE4E4E7B1B7C4FDFCFDF9FAFBEBEBFDAB0D0CF9F9FAC1CCDDF3F3FACCC2D3B76B6DB70D0BAF1F203F4E66A96E77AC3230E7E9E8BAB6C0A64851B1BFCAB7B7CCBA5E5F5F4673ECECF8FFF7F7F8F9F9BCA3A6575486E4E1E37A5F698E8BB08686A8DAACAFA65C5FC6ACAFF9C0C0C9C8D0BDBAD6654C56FAFAFEE8E8F9FCF9F9DAD9E5D6D9EED5D4E8955C62FDFEFEECECEEEBEAF2EBECF5BA6D71C2C5D8C6C6D3DECACE91182CE6C9C9EBECFBDD3738950B0CCDCEE5E0615EF7F7F7580E32D6D7D9595F6FFFFFFF21F904010000FF002C00000000500031000008FE00FF091C48B0A0C183027559D987B0A1C387102346A4426303218918336A84C809970F32946A6D1C491223311B8C02A4B854B2A54B8454700911B0A8D7CB9B3777A98110A0C4862332700A1DA942C53F1A2920B819CA74A3357D150000694A55A28855D03E6084D3E4488232577EC0F1B5A5C598AA19590C401021238C040020986204C0C011376E9AC0406B154F8F0A0C35B64BA3830C990001782D4AC037E23D043BC27CCB3412C02208096CC44063A5F1C3707886F9491626D4462B64045CF41C31933EC86192AD096344A3810000584734A6895E0F5272F04D985D5B622C4553E0E87EE8651CB5057142FC23D063C28430041AB21B2829DB8223CB21FE765BB0805B0E8146AA5FFFF370048405AA309C0D8F70940B7EAAC631109829548F55D771E1D03C7C2CA0891EF43524021E1C80910841327CF3DF75D221040902603C409F2E2DC0F1031D2D04F54F389184668241FB3CF11F64F31CE4C004AD04D6900AFBDC40852F2D1053920C30D0A083282F04F1C20643D0C0C63D78203007429C34B2A21F2712A4052A1C78E39033A51830840F5CEA30841B36F090912E5DE880052F53F042041102A049440578AC8200140751D64205FF71504127042D81000782B072101D47BC00C20B42249A68102080E003252D44E4CC100220CA0B620108A0A94A03ACB24A0FE038D4099EABE819A9407B0C93CC9F2E1C30900CFE318030482AA960B1E6206C0A30881064386AC343304C11C00B5308B0012E5DCCF283045724B04D24009282C5AF0D1D82E71A3D3422E30973A8CA411B22FCE3010002A482C32D38183083041F30AB0600530CC288102550D2100C02A4202C1936701285312430F089071D38006D188BF4A4844326F8D103B67288F8CF397B34330CAB14DC92CA2D8350A2E11B2A98F3CF1BBA5800C71183BCF04209B81CE4CC14298010800163F0E0410B2404FC090FAF4092240588A5F0820403FAC101B6A611C402149BACCA811DB70C81CE3F35BC934B39930063412D2B48C180182F60110416651804400041A480CB2752EC822309C648F1060F123CF6C53F332C5242FE094344E15008F81C4D9B410704B706027948F7892E66D8C3801952E442420E394821C5074204290AD1031112000829E4A6CB2424B4F083314594ECC909917050CF2B5EF41240B1333C7442181C5C870D12ED0C648B288B9032CC04082C714E150C20227739D5688008311A68F0CF15538882456E03E9200016643C8202432B9040050A16A85008122220304D152BFC4382F644F870CD435CE0D38A1A19249184125AFC93C0228AB8451F86C1010E0CC001FF1006034820050B20A21A66A8C13F8CC180040800665710880466278018FC430670D8C53F34B082593CC00A75E8C73D9261825C3C4E0557204209540311706000101488C11130908603E82080FE3AF8C23090F1050E200012BB00C5166CF1865C5443471630C33FDC21841408003CFF90DD145EF0884F54A3165688540EEA30832E34800008F842077230822D58E1113A98E1521ED2805F80811C4DA0C11DA2218E417089166D38810224B007542060007F3004213EB09F11568304E650010D2AB5013135616F0068C10D7C818E4258C20A12188113026188224EA303E8B0C22E744409011041070F91C11D32E0061DE800023E88060D1611871E08C204AFD0860430210623B4614E8EB843062139894958800157101B0860C08E2180CE83FBF0000FCE800E71A881000460063C92D1032380A2055B4081366E3083001041149C70C8281A700A380C611006FE304534B6410A0E0CC31B9D30010A26C18464B2A10203F88601D470016138D10B3590C21636300522CC601F3E004109D0F08633E4C0026FA8463A24210804B48178F80841EF08D20F0194E0052B6D0826EE708A212CC20D81A08432FE348C9EB641104045C51C5AF10554E4010CB1A803037370013368E01D3E28560CAEE1032C94A06C05A10249D700054164EB174C28840672B0826A882353307D482D02110D0AD8210381380005E210070A78630F50C86B04BE3087397CA10243C50013A4508EC25ACE0B10A8A8BD2090827A5960052B98C4192EE0847C7CA10DCAC8C326708101755CA008B0F0C23F6CD013514C6546FF080612D6410A5C88A1166E10FEC0329AC09F2A744001C5F84519EC400B54C8411A93286C256A40DC2D54B583FF6842628EA08B604054034E70023AB2708C0214200BFD40011310E1841514820434E8890E74211123EC800207F0801A18E10F1DA0400385B80022CC700171606008A4B0432066610F73E4C21835A8842E3E602822A4E11F3158C42036B085E65D601239D0802B30910F187C201E08F240276AB0020BFC03026B324044CE0288381C82BC3154840FBAF08011E40016D5F80710A491004A1C6116A3582074DD718672A0A10458788133FE21810B0EA214FF3083056A2045068C601640E0010C1EF006715982180C90440AACD78588DCA017B7EC82723CC08841DCC200240002FE13D07183225CA0A00928C50348F00F0BB8039224800504402080210C84B15880C00A18C080F679A11A3F7880148801070958E03C8CD6C5114A10041FC41322514883126880867E08C40044C0813FE8F0090F1761120FF8C15BE4F1833378B8104510581A88F00201D4CE28695844104A40837FAC4017C43003101CCD801AD1C10A243043502E51027F4C411618098A0C6A6114220F42113838C27E2C20E11114610B63708715AC6081577B8107612302233CF08F6AEB406825F020D7CA41072A00380A8F6881255A500E12C02008A208820E4E5B9249E220153110980C7C31897D3CE21F39E0C10F88910363D45907A10E0092FFA10BF2D2A104314B0125FEAA7C83B2D4C002BA78C42E5AD00E60282173A97841065DC2091F104111A94800305A00040D78A01D25F3C0161EA18234EBE073B81948C7C9EB39970660083078442D78500E0B8C22443CD882014020248BE244022040572A000003297881133C68A0C389510B25604100420840250752946A7721058B78FBD32FD18F74D6A21F363842E6368003B20D05062F40170E82700425D0C11652300631FAF10C9E603B003EA08243FAC18845707D6F5C17455583CC0846F864E63819C53FE800010128626C290340137C10042204000BFEC081000020A6877820012F58440A78D1A84194800853889728687083AA5C23564408B2280A4F0410043CEC1B9801790D8152948ED7821841B9011A74003A5E0C6210530001046240078E47A116DB77892E6A110562F8CD1709D8C09A88708BFD634107653015ECA00BD546772AD07132507F63000CFF700DCE900569800668900612303FC0400C6C077F05781075B781DC377FC4B00FB610517A700AB2E00647701765300B9057092E687F324080FF101000003B, N'hotrodbike_f_small.gif', N'0a72791c-a984-4733-ae4e-2b4373cfd7cd', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (984, N'Mountain-500 Silver, 40', N'BK-M18S-40', N'Silver', 308.2179, 564.9900, N'40', CAST(12405.69 AS Decimal(8, 2)), 5, 23, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b96c057b-6416-4851-8d59-bcb37c8e6e51', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (998, N'Road-750 Black, 48', N'BK-R19B-48', N'Black', 343.6496, 539.9900, N'48', CAST(9130.77 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'3de9a212-1d49-40b6-b10a-f564d981dbde', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) ----------- , (999, N'Road-750 Black, 52', N'BK-R19B-52', N'Black', 343.6496, 539.9900, N'52', CAST(9262.31 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'ae638923-2b67-4679-b90e-abbab17dca31', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[Product] OFF -----------GO -----------SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] ON -----------GO -----------INSERT [SalesLT].[SalesOrderDetail] ([SalesOrderID], [SalesOrderDetailID], [OrderQty], [ProductID], [UnitPrice], [UnitPriceDiscount], [rowguid], [ModifiedDate]) ----------- VALUES (71774, 110562, 1, 836, 356.8980, 0.0000, N'e3a1994c-7a68-4ce8-96a3-77fdd3bbd730', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71774, 110563, 1, 822, 356.8980, 0.0000, N'5c77f557-fdb6-43ba-90b9-9a7aec55ca32', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71776, 110567, 1, 907, 63.9000, 0.0000, N'6dbfe398-d15d-425e-aa58-88178fe360e5', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71815, 111451, 1, 738, 202.3320, 0.0000, N'810e5535-2bdb-4d83-b26d-796e5cff1a1b', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71815, 111452, 2, 835, 356.8980, 0.0000, N'daeb0cfa-807c-46ac-8458-ffccef36b5b2', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71815, 111453, 2, 874, 5.3940, 0.0000, N'09f90eb4-24de-4812-825e-45520602b437', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71816, 111454, 1, 953, 728.9100, 0.0000, N'b8a9720f-1f6f-4fe1-ad4a-ac70d4c905bd', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71816, 111455, 1, 954, 1430.4420, 0.0000, N'edc86c40-ecbd-45af-912b-ae37d177821a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71816, 111456, 2, 715, 29.9940, 0.0000, N'9f7406e4-25c9-431a-9891-f419e3f5253d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71816, 111457, 4, 712, 5.3940, 0.0000, N'ee2ce69c-24eb-47ff-ab6c-bd5aabdcd6e9', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71816, 111458, 3, 883, 32.3940, 0.0000, N'affbb13e-55a8-4fa8-9cd7-809b1816c30d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71816, 111459, 1, 961, 445.4100, 0.0000, N'b4e5503b-0fd8-4f2f-8675-e899db180280', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71816, 111460, 1, 948, 63.9000, 0.0000, N'5f4f0aa9-acc6-4ef7-ab68-17d0748a5512', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71831, 111790, 2, 869, 41.9940, 0.0000, N'73bc96fd-863b-441c-aeea-25387c2d17ac', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71831, 111791, 1, 782, 1376.9940, 0.0000, N'a5f59647-47b7-48fc-9000-0830e623981a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71831, 111792, 6, 867, 41.9940, 0.0000, N'14f64fdc-4405-47b4-965c-b4f506515e8a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71846, 112149, 2, 936, 37.2540, 0.0000, N'7232fd67-8db7-42f8-ad0d-6185299430f1', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71846, 112150, 1, 739, 818.7000, 0.0000, N'9a32772b-9b98-4b22-aa2b-f4e5ffd2a23e', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71846, 112151, 1, 984, 112.9980, 0.4000, N'78557d82-1267-4f7c-93a7-e53ae2a3a85c', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71846, 112152, 2, 981, 461.6940, 0.0000, N'3a26f840-c413-4bef-aeff-b8d6218698e6', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71856, 112331, 1, 962, 445.4100, 0.0000, N'62b3d72f-3586-40ac-a24e-a6f07eb7ca4a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) ----------- , (71856, 112332, 1, 945, 54.8940, 0.0000, N'4733918f-da34-4d30-b5b4-32f7537e609d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] OFF -----------GO -----------SET IDENTITY_INSERT [SalesLT].[ProductDescription] ON -----------GO -----------INSERT [SalesLT].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate]) ----------- VALUES (8, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (64, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (128, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) ----------- , (209, N'Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (513, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (554, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (594, N'Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.', N'32b82c92-e545-4da0-a175-0be710b482fe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (627, N'All-weather brake pads; provides superior stopping by applying more surface to the rim.', N'ebf2f0a4-89f2-4d31-be48-d8fd278f3024', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (630, N'Wide-link design.', N'28c4682c-38b2-4b61-a2ae-bcac7c7ce29b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (647, N'Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.', N'7ad9e29f-16cf-4db0-b073-cc62d501b61a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (661, N'Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women''s version.', N'd61c9d54-22c3-4563-a418-0b9dc7e03850', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (848, N'Lightweight, durable, clipless pedal with adjustable tension.', N'03acbb19-749a-48a1-b77e-5d2a48e8dc3a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1020, N'The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.', N'f4c70a6b-bbe8-4774-9d75-393d3f315e9b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1196, N'Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.', N'c65bee64-4dba-47ec-91cd-31356ba379e1', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1205, N'Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.', N'58d86ede-0519-4263-a264-a2b5b01a6c7b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1208, N'Thin, lightweight and durable with cuffs that stay up.', N'9f436663-525d-4cc2-85ba-47d20bcea0ec', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1210, N'Traditional style with a flip-up brim; one-size fits all.', N'66f84b21-1a43-49d3-8883-09cdb77fffef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1211, N'Unisex long-sleeve AWC logo microfiber cycling jersey', N'12f60253-f8e1-4f76-8142-6232396b8f17', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1487, N'Adapté à tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable.', N'5c1dab3a-4b31-4d9d-a14f-3cb61949b79b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1488, N'Ce vélo offre un excellent rapport qualité-prix. Vif et facile à manœuvrer, il se conduit en toute tranquillité sur les chemins et les sentiers.', N'79065ec8-2080-4120-a4ea-bfa7ea1f1f9d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1490, N'Conduite sur terrains très accidentés. Idéal pour tous les niveaux de compétition. Utilise le même cadre HL que le Montain-100.', N'2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) ----------- , (1493, N'Vélo d''adulte d''entrée de gamme ; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons à blocage rapide.', N'7943455f-3fbe-44c0-9ac2-7ee642d3944b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1502, N'Vélo de qualité pour tous usages, doté d''un bon niveau de confort et de sécurité. Présente des pneus plus larges et plus stables pour les sorties en ville ou les randonnées du week-end.', N'e5288050-bc5b-45cc-8849-c7d4af2fe2b6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1503, N'La selle rembourrée offre un confort optimal. Le porte-bagages nouvellement remanié offre diverses possibilités d''ajout de paniers ou de sacoches. Ce vélo reste parfaitement stable une fois chargé.', N'28b132c3-108c-412d-9918-a8c9297dfb73', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1504, N'Voyagez confortablement et avec élégance. Confort et sécurité maximum. Large éventail de vitesses pour gravir toutes les côtes. Sa fabrication en alliage d''aluminium haute technologie est synonyme de robustesse, sans ajout de poids.', N'e3bac4a6-220c-4e5e-8261-51e08906c0e8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1509, N'Patins de freinage pour tous les temps ; freinage renforcé par l''application d''une plus grande surface sur la jante.', N'5ed8186a-6049-42b1-b1b0-3b1f899c538b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1510, N'Conception liaison large.', N'64723c0c-09d5-497d-83a3-4561818a8f1c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1517, N'Doté du même alliage en aluminium que notre cadre HL haut de gamme, le ML possède un tube léger dont le diamètre est prévu pour offrir une résistance optimale. Version femmes.', N'f3cd990a-b70d-43c8-a075-934a3e98b5aa', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1537, N'Pédales automatiques légères et robustes avec tension réglable.', N'6a60e7f6-a5cd-4e7b-8612-9340e46bf66d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1571, N'Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un très bon rapport qualité-prix.', N'e95e1259-b822-40ee-aa86-7de9f9e0f0ea', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1587, N'Cuissards résistants à l''usure pour utilisation intensive, doublés à l''intérieur en Spandex, sans couture, peau de chamois anti-bactérie pour un meilleur confort.', N'e11a3c2a-b074-48f9-8226-16d65c2f91c2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1594, N'Maillot manches courtes classique et anti-transpiration avec contrôle de l''humidité, fermeture avant à glissière et 3 poches arrière.', N'fb2a5474-9d83-4a9b-bbbd-8ffc9036866e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1596, N'Fin, léger et résistant avec des poignets qui restent en place.', N'31d4905c-d37c-4128-bcff-4a35da9c1bb7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1598, N'Style classique avec une visière relevable ; taille unique.', N'fb627d1b-2933-4fbe-a6a4-bf69f2814ec2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1599, N'Maillot de cycliste en microfibre avec le logo de l''équipe AWV, manches longues, unisexe.', N'4aae6d4f-8320-4f32-99de-bb3b1b13f1ef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (1600, N'Orphan record to deletion test', N'4aae6d4f-1111-4f32-99de-bb3b1b13f1ef', CAST(N'2020-06-01T00:00:00.000' AS DateTime)) ----------- , (1605, N'Chaque cadre est fabriqué artisanalement dans notre atelier de Bordeaux afin d''obtenir le diamètre et l''épaisseur adaptés à un vélo tout-terrain de premier choix. Le cadre en aluminium soudé à chaud présente un tube d''un plus grand diamètre, afin d''absorber les bosses.', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [SalesLT].[ProductDescription] OFF -----------GO -----------INSERT [SalesLT].[ProductModelProductDescription] ([ProductModelID], [ProductDescriptionID], [Culture], [rowguid], [ModifiedDate]) ----------- VALUES (2, 1210, N'en ', N'623741c2-74bd-4ce1-a554-1fe8c0606b4b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (2, 1598, N'fr ', N'6d7b1148-6159-4ec5-b469-d106ffef6ca5', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (5, 647, N'en ', N'56b6b980-c1ca-4545-a5ba-edc4c14bdcf9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (5, 1605, N'fr ', N'6cc243bc-b8fa-4bd2-9392-8ead11c55406', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (9, 1020, N'en ', N'14c44869-3696-4b30-929a-3adffc8243de', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (9, 1571, N'fr ', N'649557cd-028e-4a1f-b5d5-71c09a6ae268', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (11, 1211, N'en ', N'03c12575-f1bf-48ad-a483-d1185d24ce2c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (11, 1599, N'fr ', N'000aa434-8c55-4a8e-a850-9ae32edf537b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (17, 661, N'en ', N'd91f0507-baa5-4b44-a0e6-a6acef29f066', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (17, 1517, N'fr ', N'87365776-a0a1-4580-b080-b18f21d8cb1e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (20, 128, N'en ', N'f57a0614-ec87-4f51-ab3e-f889d37440f6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (20, 1490, N'fr ', N'70b555e3-ac30-4a42-8959-339738dac806', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (22, 64, N'en ', N'b301b583-2d7f-4c19-afa9-01d142f8ae2d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (22, 1488, N'fr ', N'a73f5bf1-ad79-4703-9bfe-5f6f87705516', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (23, 8, N'en ', N'397fa9e9-eef0-42dc-b27a-5b9a717bb237', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (23, 1487, N'fr ', N'a96e7527-4414-43a3-b52d-26a57d0ae88f', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (24, 1208, N'en ', N'2d4d6267-b8d4-4345-ba19-9334b6bc7055', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (24, 1596, N'fr ', N'984a725c-9095-47e3-8a2f-8be4ff45d2c0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (31, 209, N'en ', N'c44f974f-ffb2-44fe-abac-fab53e7a896a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (31, 1493, N'fr ', N'67a11e38-08f8-43cf-a6ec-b832a9b34d58', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (32, 1205, N'en ', N'7dd01ecf-d739-4fdf-8574-aec55267323c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (32, 1594, N'fr ', N'71123dec-1396-4c4e-80c8-3efd3d5c13d9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (34, 594, N'en ', N'49ece470-9fdb-48fb-9d80-46ae0e3ef8fc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (34, 1504, N'fr ', N'c7deacd9-f36d-467e-9159-ea8e0b705dbf', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (35, 554, N'en ', N'8d57b85b-1c3d-4773-b326-a62fdd1cd378', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (35, 1503, N'fr ', N'220652e7-47ee-4f99-9eb1-f3597520ffbc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (36, 513, N'en ', N'f35f7fac-4479-4748-81d1-7adec2de9917', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (36, 1502, N'fr ', N'5c1d62aa-c221-4090-b7de-15c5f976d379', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (37, 1196, N'en ', N'46f1f2f9-33dc-4384-baa9-9c70d83a44ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (37, 1587, N'fr ', N'2691d6fd-b45e-4604-b2ef-61d5accf47ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (63, 848, N'en ', N'9e7855e4-3c99-460a-bba5-9b45486b8fbe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (63, 1537, N'fr ', N'62ebf8f0-bc2c-4726-bca0-2c7f4aee336b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (102, 627, N'en ', N'5b74c2c4-d71a-4d8d-9ddb-e376816fbf21', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (102, 1509, N'fr ', N'a72f9088-ef86-4fd2-aa13-efbb1aac404b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (103, 630, N'en ', N'035f5b8e-7728-4412-ba63-0cea7cd79a6c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) ----------- , (103, 1510, N'fr ', N'83b25658-4554-4679-ae8d-f31a506356eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [dbo].[BuildVersion] ON -----------GO -----------INSERT [dbo].[BuildVersion] ([SystemInformationID], [Database Version], [VersionDate], [ModifiedDate]) VALUES (1, N'10.50.91013.00', CAST(N'2009-10-13T00:00:00.000' AS DateTime), CAST(N'2009-10-13T00:00:00.000' AS DateTime)) -----------GO -----------SET IDENTITY_INSERT [dbo].[BuildVersion] OFF -----------GO -----------DBCC CHECKIDENT ('[SalesLT].[Address]' , RESEED, 5000); -----------DBCC CHECKIDENT ('[SalesLT].[ProductCategory]' , RESEED, 5000); -----------DBCC CHECKIDENT ('[SalesLT].[ProductDescription]', RESEED, 5000); diff --git a/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs b/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs index 4c9930d..74a44fb 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs +++ b/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs @@ -1,5 +1,6 @@ using System.Diagnostics.CodeAnalysis; using System.Net; +using System.Threading; using AdventureWorksDemo.Common.Tests.Helpers; @@ -53,12 +54,12 @@ public DockerMsSqlServerDatabase(string databaseName) internal Microsoft.Extensions.Configuration.IConfiguration AppSettings => CommonHelper.Configuration.GetConfiguration; private static int PublicPort => _sqlServerContainer!.GetMappedPublicPort(ContainerPort); - private string? GetBackupFullName => Path.Combine(GetBackupLocation!, AppSettings["Database:FileName"]!); + private string? GetBackupFullName => Path.Combine(GetBackupLocation!, AppSettings["Database:DataBaseForTesting"]!); private string? GetBackupLocation => AppSettings["Database:Location"]? .Replace("<>", CommonHelper.IO.TryGetSolutionDirectoryInfo()?.FullName); - public static async Task Create(CancellationToken cancellationToken = default) + public static async Task Create(CancellationToken cancellationToken = default, bool backupTestDatabase = false) { var db = new DockerMsSqlServerDatabase(); @@ -66,9 +67,40 @@ public static async Task Create(CancellationToken can await db.CreateDatabase(cancellationToken); await db.PrepareDataForTesting(cancellationToken); CommonHelper.Configuration.DatabaseConnectionString = db.ConnectionString; + if (backupTestDatabase) + await db.BackUpTestDatabaseAsync(cancellationToken); return db; } + public async Task BackUpTestDatabaseAsync(CancellationToken cancellationToken) + { + string backupFileName = AppSettings["Database:BackupScriptName"]? + .Replace("<>", CommonHelper.IO.TryGetSolutionDirectoryInfo()?.FullName) + ?? string.Empty; + if (!File.Exists(backupFileName)) + { + throw new FileNotFoundException(backupFileName); + } + + string query = File.ReadAllText(backupFileName) + .Replace("$TARGET_DB_NAME", DatabaseName) + .Replace("$BackupFileName", AppSettings["Database:DataBaseForTesting"]); + + SqlConnection.ClearAllPools(); + + await using var connection = CreateConnection(); + await connection.OpenAsync(cancellationToken); + + await using var command = new SqlCommand("Select db_name();", connection); + + foreach (string commandText in CommonHelper.Sql.SplitSqlQueryOnGo(query)) + { + command.CommandText = commandText; + System.Diagnostics.Debug.WriteLine(command.CommandText); + await command.ExecuteNonQueryAsync(cancellationToken); + } + } + public ValueTask DisposeAsync() { // // @@ -96,10 +128,11 @@ public async Task PrepareDataForTesting(CancellationToken cancellationToken = de SqlConnection.ClearAllPools(); - await using var connection = CreateConnection(); + await using var connection = CreateConnection(DatabaseName); + await connection.OpenAsync(cancellationToken); - await using var command = new SqlCommand("Print 'Hello World';", connection); + await using var command = new SqlCommand("Select db_name();", connection); foreach (string commandText in CommonHelper.Sql.SplitSqlQueryOnGo(query)) { @@ -109,10 +142,10 @@ public async Task PrepareDataForTesting(CancellationToken cancellationToken = de } } - private static SqlConnection CreateConnection() + private static SqlConnection CreateConnection(string databaseName = "master") { var masterConnectionString = - $"server=localhost,{PublicPort};User Id=sa;Password={Password};Initial Catalog=master;Encrypt=false"; + $"server=localhost,{PublicPort};User Id=sa;Password={Password};Initial Catalog={databaseName};Encrypt=false"; var connectionStringBuilder = new SqlConnectionStringBuilder(masterConnectionString); System.Diagnostics.Debug.WriteLine($"\r\n\r\n\r\n{masterConnectionString}\r\n\r\n\r\n"); @@ -219,7 +252,7 @@ private async Task CreateDatabase(CancellationToken cancellationToken = default) throw new FileNotFoundException(filename); } var restoreQuery = File.ReadAllText(filename) - .Replace("$BackupFileName", AppSettings["Database:FileName"]) + .Replace("$BackupFileName", AppSettings["Database:DataBaseForTesting"]) .Replace("$TARGET_DB_NAME", DatabaseName); SqlConnection.ClearAllPools(); diff --git a/src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtesionsTests_PadRight.cs b/src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtentionsTests_PadRight.cs similarity index 95% rename from src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtesionsTests_PadRight.cs rename to src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtentionsTests_PadRight.cs index 60b8418..07bc269 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtesionsTests_PadRight.cs +++ b/src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtentionsTests_PadRight.cs @@ -5,7 +5,7 @@ namespace AdventureWorksDemo.Common.Tests; [TestClass] -public class StringExtesionsTests_PadRight +public class StringExtentionsTests_PadRight { [DataRow("{{PadRight:X:0}}", "X")] [DataRow("{{PadRight:X:3}}", "XXX")] diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs index 4cc9c48..2eaf1cb 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs @@ -1,6 +1,7 @@ namespace AdventureWorksDemo.Data.Tests.reqnroll.Hooks { using AdventureWorksDemo.Common.Tests; + using AdventureWorksDemo.Common.Tests.Helpers; using AdventureWorksDemo.Data.Tests.reqnroll.Helpers; using AdventureWorksDemo.Data.Tests.reqnroll.ValueRetrievers; @@ -9,6 +10,8 @@ namespace AdventureWorksDemo.Data.Tests.reqnroll.Hooks [Binding] public sealed class DatabaseHooks : IDisposable { + internal static Microsoft.Extensions.Configuration.IConfiguration AppSettings => CommonHelper.Configuration.GetConfiguration; + [BeforeTestRun(Order = 1)] public static void BeforeTestRun() { @@ -29,7 +32,7 @@ public static async Task DataBaseBeforeScenario() [BeforeTestRun(Order = 10)] public static async Task DatabaseBeforeTestRunAsync() { - DockerMsSqlServerDatabase.Current = await DockerMsSqlServerDatabase.Create(); + DockerMsSqlServerDatabase.Current = await DockerMsSqlServerDatabase.Create(default, CreateTestingDatabaseBakFile()); Helper.ScenarioContexts.UpdateFlag(ScenarioContextKey.FlagResetDatabase, false); Helper.DateTimeHelpers.SetTimeProvider(); } @@ -38,5 +41,20 @@ public void Dispose() { Task.Run(async () => { await DockerMsSqlServerDatabase.Current!.DisposeAsync(); }); } + + private static bool CreateTestingDatabaseBakFile() + { + string location = AppSettings["Database:Location"]? + .Replace("<>", CommonHelper.IO.TryGetSolutionDirectoryInfo()?.FullName) + ?? string.Empty; + string source = Path.Combine(location, AppSettings["Database:SourceDatabase"] ?? ""); + string destination = Path.Combine(location, AppSettings["Database:DataBaseForTesting"] ?? ""); + if (!File.Exists(destination)) + { + File.Copy(source, destination); + return true; + } + return false; + } } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json index 561cbbb..5a505c6 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json @@ -4,10 +4,12 @@ }, "Database": { "Location": "<>\\..\\Configuration\\backup\\", - "FileName": "AdventureWorks.bak", + "SourceDatabase": "AdventureWorks.bak", + "DataBaseForTesting": "DataBaseForTesting.bak", "TestDbPrefix": "aw-", "RestoreScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\RestoreDatabase.SQL", - "ResetDataScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\PrepareTablesForTesting.SQL" + "ResetDataScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\PrepareTablesForTesting.SQL", + "BackupScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\BackUpTestDatabase.SQL" }, "GitHub": { "BackUpFile": "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2022.bak" From 9dcacbd8dea1012fe3fef0f22483fb9433b4b51a Mon Sep 17 00:00:00 2001 From: CodeTile <43536260+CodeTile@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:41:15 +0000 Subject: [PATCH 4/5] Update tests with new test data --- .../AdventureWorksDemo.API.csproj | 2 +- .../AdventureWorksDemo.Common.Tests.csproj | 8 +- .../DatabaseSetup/BackUpTestDatabase.SQL | 6 +- .../DatabaseSetup/Prep_DeleteRecords.sql | 46 +- .../PrepareTablesForTesting-Original.sql | 362 --- .../DatabaseSetup/PrepareTablesForTesting.sql | 105 +- .../DatabaseSetup/RestoreDatabase.SQL | 4 +- .../DockerMsSqlServerDatabase.cs | 21 +- .../Helpers/HelperSql.cs | 12 +- ...entureWorksDemo.Data.Tests.reqnroll.csproj | 6 +- .../AddressServiceAddTests.Feature | 241 +- .../AddressServiceDeleteTests.feature | 78 +- .../AddressServiceUpdateBatchTests.feature | 51 +- .../AddressServiceUpdateTests.feature | 141 +- .../Find/AddressServiceFindTests.feature | 158 +- ...ionServiceFindAllAsyncSortingTests.feature | 283 +-- ...escriptionServiceFindAllAsyncTests.feature | 303 +-- ...ProductDescriptionServiceFindTests.feature | 17 +- .../ProductDescriptionServiceAddTests.feature | 72 +- ...oductDescriptionServiceDeleteTests.feature | 108 +- ...DescriptionServiceUpdateBatchTests.feature | 43 +- ...oductDescriptionServiceUpdateTests.feature | 99 +- .../ProductCategoryServiceAddTests.feature | 152 +- .../ProductCategoryServiceAddTests.feature.cs | 599 ++--- .../ProductCategoryServiceDeleteTests.feature | 40 +- ...oductCategoryServiceDeleteTests.feature.cs | 165 +- .../ProductCategoryServiceFindTests.feature | 417 +--- ...ProductCategoryServiceFindTests.feature.cs | 2179 ++++------------- ...uctCategoryServiceUpdateBatchTests.feature | 56 +- .../ProductCategoryServiceUpdateTests.feature | 149 +- ...oductCategoryServiceUpdateTests.feature.cs | 699 ++---- .../Hooks/DatabaseHooks.cs | 2 +- .../StepDefinitions/DirectDataTableSteps.cs | 19 +- .../StepDefinitions/StepDefinitions.cs | 3 +- .../appsettings.json | 5 + .../AdventureWorksDemo.Data.Tests.csproj | 6 +- .../DbContexts/AdventureWorksContext.cs | 2 +- .../Entities/HumanResources/Department.cs | 8 +- .../Entities/HumanResources/Employee.cs | 21 +- .../EmployeeDepartmentHistory.cs | 8 +- .../HumanResources/EmployeePayHistory.cs | 4 +- .../Entities/HumanResources/JobCandidate.cs | 6 +- .../Entities/HumanResources/Shift.cs | 5 +- .../Entities/Person/Address.cs | 15 +- .../Entities/Person/AddressType.cs | 5 +- .../Entities/Person/BusinessEntity.cs | 8 +- .../Entities/Person/BusinessEntityAddress.cs | 8 +- .../Entities/Person/BusinessEntityContact.cs | 8 +- .../Entities/Person/ContactType.cs | 5 +- .../Entities/Person/CountryRegion.cs | 7 +- .../Entities/Person/EmailAddress.cs | 6 +- .../Entities/Person/Password.cs | 10 +- .../Entities/Person/Person.cs | 27 +- .../Entities/Person/PersonPhone.cs | 8 +- .../Entities/Person/PhoneNumberType.cs | 5 +- .../Entities/Person/StateProvince.cs | 15 +- .../Entities/Production/BillOfMaterial.cs | 11 +- .../Entities/Production/Culture.cs | 7 +- .../Entities/Production/Illustration.cs | 4 +- .../Entities/Production/Location.cs | 5 +- .../Entities/Production/Product.cs | 30 +- .../Entities/Production/ProductCategory.cs | 5 +- .../Entities/Production/ProductCostHistory.cs | 4 +- .../Entities/Production/ProductDescription.cs | 5 +- .../Entities/Production/ProductInventory.cs | 9 +- .../Production/ProductListPriceHistory.cs | 4 +- .../Entities/Production/ProductModel.cs | 9 +- .../Production/ProductModelIllustration.cs | 6 +- .../ProductModelProductDescriptionCulture.cs | 10 +- .../Entities/Production/ProductPhoto.cs | 10 +- .../Production/ProductProductPhoto.cs | 6 +- .../Entities/Production/ProductReview.cs | 12 +- .../Entities/Production/ProductSubcategory.cs | 7 +- .../Entities/Production/ScrapReason.cs | 5 +- .../Entities/Production/TransactionHistory.cs | 7 +- .../Production/TransactionHistoryArchive.cs | 5 +- .../Entities/Production/UnitMeasure.cs | 7 +- .../Entities/Production/WorkOrder.cs | 6 +- .../Entities/Production/WorkOrderRouting.cs | 6 +- .../Entities/Purchasing/ProductVendor.cs | 11 +- .../Purchasing/PurchaseOrderDetail.cs | 6 +- .../Purchasing/PurchaseOrderHeader.cs | 8 +- .../Entities/Purchasing/ShipMethod.cs | 5 +- .../Entities/Purchasing/Vendor.cs | 12 +- .../Entities/Sales/CountryRegionCurrency.cs | 10 +- .../Entities/Sales/CreditCard.cs | 8 +- .../Entities/Sales/Currency.cs | 7 +- .../Entities/Sales/CurrencyRate.cs | 12 +- .../Entities/Sales/Customer.cs | 11 +- .../Entities/Sales/PersonCreditCard.cs | 6 +- .../Entities/Sales/SalesOrderDetail.cs | 8 +- .../Entities/Sales/SalesOrderHeader.cs | 29 +- .../Sales/SalesOrderHeaderSalesReason.cs | 6 +- .../Entities/Sales/SalesPerson.cs | 6 +- .../Entities/Sales/SalesPersonQuotaHistory.cs | 4 +- .../Entities/Sales/SalesReason.cs | 8 +- .../Entities/Sales/SalesTaxRate.cs | 7 +- .../Entities/Sales/SalesTerritory.cs | 13 +- .../Entities/Sales/SalesTerritoryHistory.cs | 6 +- .../Entities/Sales/ShoppingCartItem.cs | 7 +- .../Entities/Sales/SpecialOffer.cs | 11 +- .../Entities/Sales/SpecialOfferProduct.cs | 6 +- .../Entities/Sales/Store.cs | 11 +- .../Entities/dbo/AwbuildVersion.cs | 5 +- .../Entities/dbo/DatabaseLog.cs | 18 +- .../Entities/dbo/ErrorLog.cs | 10 +- .../Extentions/IQueryableExtensionsPaging.cs | 13 +- .../Models/ProductCategoryModel.cs | 19 +- .../Services/BaseService.cs | 7 +- .../Services/ProductCategoryService.cs | 4 +- .../AdventureWorksDemo.Data/efpt.config.json | 2 +- .../AdventureWorksDemo.MudBlazor.csproj | 2 +- 112 files changed, 2483 insertions(+), 4833 deletions(-) delete mode 100644 src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting-Original.sql diff --git a/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj b/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj index 443100e..9f9a280 100644 --- a/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj +++ b/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj b/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj index 5ee2509..9a5cca8 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj +++ b/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj @@ -17,15 +17,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL index b1a7342..1695d7f 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL @@ -1,3 +1,5 @@ -BACKUP DATABASE [$TARGET_DB_NAME] TO DISK = N'/var/opt/mssql/backup/$BackupFileName' WITH NOFORMAT, INIT, +DBCC SHRINKDATABASE(N'$TARGET_DB_NAME', 5 ); + + BACKUP DATABASE [$TARGET_DB_NAME] TO DISK = N'/var/opt/mssql/backup/$BackupFileName' WITH NOFORMAT, INIT, NAME = N'AdventureWorks-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 -GO +; diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql index 1b1ba8a..a3cc882 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql @@ -33,65 +33,65 @@ declare @Customers as table(customerId int); insert Into @Customers select top 7 max(CustomerID) CustomerId - from [AdventureWorks].[SalesLT].[SalesOrderDetail] [d] - Inner Join [AdventureWorks].[SalesLT].[SalesOrderHeader] [h] on h.SalesOrderID= d.SalesOrderID + from [AdventureWorks].[Production].[SalesOrderDetail] [d] + Inner Join [AdventureWorks].[Production].[SalesOrderHeader] [h] on h.SalesOrderID= d.SalesOrderID GROUP by d.SalesOrderID Having count([d].salesOrderDetailId) <10 -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[SalesOrderHeader]'; +PRINT 'Delete From [AdventureWorks].[Production].[SalesOrderHeader]'; DELETE -- select * - from [AdventureWorks].[SalesLT].[SalesOrderHeader] where CustomerID not in (select CustomerId from @Customers); + from [AdventureWorks].[Production].[SalesOrderHeader] where CustomerID not in (select CustomerId from @Customers); -- -- -- ---------PRINT 'Delete From [AdventureWorks].[SalesLT].[SalesOrderDetail]'; +--------PRINT 'Delete From [AdventureWorks].[Production].[SalesOrderDetail]'; --------DELETE -------- -- select * --------- from [AdventureWorks].[SalesLT].[SalesOrderDetail] where SalesOrderID not in (select SalesOrderID from [AdventureWorks].[SalesLT].[SalesOrderHeader]); +-------- from [AdventureWorks].[Production].[SalesOrderDetail] where SalesOrderID not in (select SalesOrderID from [AdventureWorks].[Production].[SalesOrderHeader]); -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[CustomerAddress]'; +PRINT 'Delete From [AdventureWorks].[Production].[CustomerAddress]'; DELETE -- select * - from [AdventureWorks].[SalesLT].[CustomerAddress] where CustomerID not in (select CustomerId from @Customers); + from [AdventureWorks].[Production].[CustomerAddress] where CustomerID not in (select CustomerId from @Customers); -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[Address]'; +PRINT 'Delete From [AdventureWorks].[Production].[Address]'; DELETE -- select * - from [AdventureWorks].[SalesLT].[Customer] where CustomerID not in (select CustomerId from @Customers); + from [AdventureWorks].[Production].[Customer] where CustomerID not in (select CustomerId from @Customers); -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[Customer]'; +PRINT 'Delete From [AdventureWorks].[Production].[Customer]'; DELETE -- select * - from [AdventureWorks].[SalesLT].[Address] where AddressID not in (select AddressID from [AdventureWorks].[SalesLT].[CustomerAddress]) + from [AdventureWorks].[Production].[Address] where AddressID not in (select AddressID from [AdventureWorks].[Production].[CustomerAddress]) -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[Product]'; +PRINT 'Delete From [AdventureWorks].[Production].[Product]'; DELETE -- select * - FROM [AdventureWorks].[SalesLT].[Product] where productId in - (select top 99 percent productId from [AdventureWorks].[SalesLT].[Product] where ProductId not in (select ProductId from [AdventureWorks].[SalesLT].[SalesOrderDetail]) order by ProductId) + FROM [AdventureWorks].[Production].[Product] where productId in + (select top 99 percent productId from [AdventureWorks].[Production].[Product] where ProductId not in (select ProductId from [AdventureWorks].[Production].[SalesOrderDetail]) order by ProductId) -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[ProductModelProductDescription]'; +PRINT 'Delete From [AdventureWorks].[Production].[ProductModelProductDescription]'; DELETE -- select * - FROM [AdventureWorks].[SalesLT].[ProductModelProductDescription] where productModelId Not in (select productModelId from [AdventureWorks].[SalesLT].[Product] ) + FROM [AdventureWorks].[Production].[ProductModelProductDescription] where productModelId Not in (select productModelId from [AdventureWorks].[Production].[Product] ) or [Culture] not in ('en','fr'); -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[ProductDescription]'; +PRINT 'Delete From [AdventureWorks].[Production].[ProductDescription]'; DELETE -- select * - FROM [AdventureWorks].[SalesLT].[ProductDescription] where [ProductDescriptionID] Not in (select [ProductDescriptionID] from [AdventureWorks].[SalesLT].[ProductModelProductDescription] ) + FROM [AdventureWorks].[Production].[ProductDescription] where [ProductDescriptionID] Not in (select [ProductDescriptionID] from [AdventureWorks].[Production].[ProductModelProductDescription] ) -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[ProductModel]'; +PRINT 'Delete From [AdventureWorks].[Production].[ProductModel]'; DELETE -- select * - FROM [AdventureWorks].[SalesLT].[ProductModel] where productModelId Not in (select productModelId from [AdventureWorks].[SalesLT].[Product] ) + FROM [AdventureWorks].[Production].[ProductModel] where productModelId Not in (select productModelId from [AdventureWorks].[Production].[Product] ) -- -- -- -PRINT 'Delete From [AdventureWorks].[SalesLT].[ProductCategory]'; +PRINT 'Delete From [AdventureWorks].[Production].[ProductCategory]'; DELETE -- select * - FROM [AdventureWorks].[SalesLT].[ProductCategory] where ProductCategoryID Not in (select ProductCategoryID from [AdventureWorks].[SalesLT].[Product] ) + FROM [AdventureWorks].[Production].[ProductCategory] where ProductCategoryID Not in (select ProductCategoryID from [AdventureWorks].[Production].[Product] ) AND ParentProductCategoryID = null GO diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting-Original.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting-Original.sql deleted file mode 100644 index 23c0875..0000000 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting-Original.sql +++ /dev/null @@ -1,362 +0,0 @@ -Print ' -**************************************************************** - Prepare the data in the tables for the tests. - - This script will be run every time the system tests - needs to reset the data. -**************************************************************** -'; - - -use [$TARGET_DB_NAME] -PRINT ' -***************************************** - Delete all records in database -*****************************************' -Truncate table BuildVersion; -Truncate Table ErrorLog; - --- Disable all the constraint in database - -DECLARE @sql nvarchar(max) = N''; - -;WITH x AS -( - SELECT DISTINCT obj = - QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' - + QUOTENAME(OBJECT_NAME(parent_object_id)) - FROM sys.foreign_keys -) -SELECT @sql += N'ALTER TABLE ' + obj + N' NOCHECK CONSTRAINT ALL; -' FROM x; - -EXEC sys.sp_executesql @sql; -GO --- ----- - -Declare @TableName nvarchar(256) ; -SET @TableName = ''; - -WHILE @TableName IS NOT NULL -BEGIN - SET @TableName = - ( - SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)) - FROM INFORMATION_SCHEMA.TABLES - WHERE TABLE_TYPE = 'BASE TABLE' - AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName - ) -print 'Deleting from table '+@TableName ; - -DECLARE @sql nvarchar(max) = N'Delete from ' + @tablename; -EXEC sys.sp_executesql @sql; -ENd -GO - -------- - -DECLARE @sql nvarchar(max) = N''; - -;WITH x AS -( - SELECT DISTINCT obj = - QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' - + QUOTENAME(OBJECT_NAME(parent_object_id)) - FROM sys.foreign_keys -) -SELECT @sql += N'ALTER TABLE ' + obj + N' WITH CHECK CHECK CONSTRAINT ALL; -' FROM x; - -EXEC sys.sp_executesql @sql; -GO - -PRINT '--------------------------- - Insert records into database. ----------------------------' -SET IDENTITY_INSERT [SalesLT].[Address] ON -GO -INSERT [SalesLT].[Address] ([AddressID], [AddressLine1], [AddressLine2], [City], [StateProvince], [CountryRegion], [PostalCode], [rowguid], [ModifiedDate]) - VALUES (640, N'251 The Metro Center', NULL, N'Wokingham', N'England', N'United Kingdom', N'RG41 1QW', N'0e4ac5bb-be0d-4a96-a58e-064daec08e1a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (652, N'Wymbush', NULL, N'Milton Keynes', N'England', N'United Kingdom', N'MK8 8DF', N'54e20963-b0e9-41cf-ab7e-d50459a3325c', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (669, N'Internet House, 3399 Science Park', NULL, N'Cambridge', N'England', N'United Kingdom', N'CB4 4BZ', N'56baec2a-5cc5-4a90-bef9-ee57e82f2e69', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) - , (1034, N'Oxnard Outlet', NULL, N'Oxnard', N'California', N'United States', N'93030', N'300d2a6e-67b4-417b-83a9-2026818a21c6', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (1038, N'123 Camelia Avenue', NULL, N'Oxnard', N'California', N'United States', N'93030', N'a86c8140-ad7d-4caa-9b40-4006bd9998e2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (1090, N'25130 South State Street', NULL, N'Sandy', N'Utah', N'United States', N'84070', N'cf3ae92a-3e66-4af0-b683-731826e89cd1', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (1092, N'99700 Bell Road', NULL, N'Auburn', N'California', N'United States', N'95603', N'79cdd89c-3c91-48db-8277-46d04aad7251', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (1111, N'Orphan Record', NULL, N'Use In Delete Tests', N'California', N'United States', N'95603', N'00000000-1111-2222-0000-000000000001', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[Address] OFF -GO -SET IDENTITY_INSERT [SalesLT].[Customer] ON -GO -INSERT [SalesLT].[Customer] ([CustomerID], [NameStyle], [Title], [FirstName], [MiddleName], [LastName], [Suffix], [CompanyName], [SalesPerson], [EmailAddress], [Phone], [PasswordHash], [PasswordSalt], [rowguid], [ModifiedDate]) - VALUES (29847, 0, N'Mr.', N'David', NULL, N'Hodgson', NULL, N'Good Toys', N'adventure-works\linda3', N'david16@adventure-works.com', N'969-555-0117', N'+gtwbVycsIIj2loVtrHNRN6IBLl20lQpRK8+JhzxyEo=', N'AwqZdYk=', N'fdd7d9cb-9a81-40fc-baf6-facde8da4923', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (30019, 0, N'Mr.', N'Matthew', N'J.', N'Miller', NULL, N'Tachometers and Accessories', N'adventure-works\jae0', N'matthew5@adventure-works.com', N'1 (11) 500 555-0176', N'/hDOTbr9X/E4UE8H6wjOGHYZ6Gb8GDpmutPWgFTXQnc=', N'eiCRDs8=', N'226d328b-23d4-4215-b9c4-3da08f2e68db', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (30027, 0, N'Mr.', N'Joseph', N'P.', N'Mitzner', N'Jr.', N'Engineered Bike Systems', N'adventure-works\shu0', N'joseph4@adventure-works.com', N'129-555-0164', N'7obarvC3BHLIE/oFo0n+bkB/EZ03Zc8Vu+F2jpK/CNM=', N'k6zgROU=', N'029c27b5-72e5-4024-a5fa-53bdb42b98bc', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30033, 0, N'Mr.', N'Vassar', N'J.', N'Stern', NULL, N'Transport Bikes', N'adventure-works\shu0', N'vassar0@adventure-works.com', N'328-555-0123', N'nPkLkDdemKmfK3VexvRWH5zYyNzwcfvny8DxWGnicSw=', N'hLswDiQ=', N'66193607-693c-4073-be28-78e3892141a2', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30072, 0, N'Ms.', N'Andrea', N'A.', N'Thomsen', NULL, N'West Side Mart', N'adventure-works\jae0', N'andrea1@adventure-works.com', N'1 (11) 500 555-0120', N'LDoJwsGCFLtxVdbdQBbN/to7zFF1skP+hWLrIrCxvAw=', N'NuexV8w=', N'9bbbddc1-8e1a-4edf-aa2f-a8abea78c940', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30089, 0, N'Mr.', N'Michael John', N'R.', N'Troyer', NULL, N'Thrifty Parts and Sales', N'adventure-works\linda3', N'michaeljohn0@adventure-works.com', N'308-555-0175', N'Gdklarx2tW1EtZEyrAUEIhhguzrFKVS4Bh3BdAsGngk=', N'HUE+JKI=', N'8d6af1e8-5082-4e5c-9f15-dfd04e64fd95', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30102, 0, N'Mr.', N'Roger', NULL, N'Van Houten', NULL, N'Sports Store', N'adventure-works\jae0', N'roger2@adventure-works.com', N'1 (11) 500 555-0110', N'C0yLsx6zITh7lXoIPgG1bl1t5II3nx4GYi/RaS1yB84=', N'WnTAc/0=', N'0ee7e95d-f12d-4d0d-8c6e-c64a0dda719a', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[Customer] OFF -GO -INSERT [SalesLT].[CustomerAddress] ([CustomerID], [AddressID], [AddressType], [rowguid], [ModifiedDate]) - VALUES (29847, 1092, N'Main Office', N'54e22612-0521-4ea6-b7b0-29d081e054c4', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (30019, 652, N'Main Office', N'4d79eb56-5f62-4c2f-90f2-f2f11d7e4f63', CAST(N'2006-09-01T00:00:00.000' AS DateTime)) - , (30027, 1038, N'Main Office', N'5dc4ddd8-be9a-4bd2-9f35-9f81743296e8', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30033, 1090, N'Main Office', N'c3b9cc49-7b83-4888-8958-1a3b7558e614', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30072, 640, N'Main Office', N'c6078b9a-2f95-4029-be72-511345be2a9a', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30089, 1034, N'Main Office', N'2f99485b-952a-44d4-a5af-5a94faca240e', CAST(N'2007-09-01T00:00:00.000' AS DateTime)) - , (30102, 669, N'Main Office', N'd996364a-0b31-4b67-adcc-1d0454b5b26d', CAST(N'2006-12-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] ON -GO -INSERT [SalesLT].[SalesOrderHeader] ([SalesOrderID], [RevisionNumber], [OrderDate], [DueDate], [ShipDate], [Status], [OnlineOrderFlag], [PurchaseOrderNumber], [AccountNumber], [CustomerID], [ShipToAddressID], [BillToAddressID], [ShipMethod], [CreditCardApprovalCode], [SubTotal], [TaxAmt], [Freight], [Comment], [rowguid], [ModifiedDate]) - VALUES (71774, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO348186287', N'10-4020-000609', 29847, 1092, 1092, N'CARGO TRANSPORT 5', NULL, 880.3484, 70.4279, 22.0087, NULL, N'89e42cdc-8506-48a2-b89b-eb3e64e3554e', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71776, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO19952192051', N'10-4020-000106', 30072, 640, 640, N'CARGO TRANSPORT 5', NULL, 78.8100, 6.3048, 1.9703, NULL, N'8a3448c5-e677-4158-a29b-dd33069be0b0', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71815, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO13021155785', N'10-4020-000276', 30089, 1034, 1034, N'CARGO TRANSPORT 5', NULL, 1141.5782, 91.3263, 28.5395, NULL, N'2aa5f39b-1096-4a4b-b17b-f10504a397ce', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71816, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO12992180445', N'10-4020-000295', 30027, 1038, 1038, N'CARGO TRANSPORT 5', NULL, 3398.1659, 271.8533, 84.9541, NULL, N'e3c189e7-98de-4c40-b6c2-0d1d13f9bb33', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71831, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO10295111084', N'10-4020-000322', 30019, 652, 652, N'CARGO TRANSPORT 5', NULL, 2016.3408, 161.3073, 50.4085, NULL, N'625d76fc-c26f-4149-bf24-939fb2bccd77', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71846, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO2378131604', N'10-4020-000635', 30102, 669, 669, N'CARGO TRANSPORT 5', NULL, 2453.7645, 196.3012, 61.3441, NULL, N'a86d90ad-d1c0-440d-9a57-5b763bf18234', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) - , (71856, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO16530177647', N'10-4020-000601', 30033, 1090, 1090, N'CARGO TRANSPORT 5', NULL, 602.1946, 48.1756, 15.0549, NULL, N'05fee073-0640-4a3c-914d-fe4ae6da3d43', CAST(N'2008-06-08T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] OFF -GO -SET IDENTITY_INSERT [SalesLT].[ProductCategory] ON -GO -INSERT [SalesLT].[ProductCategory] ([ProductCategoryID], [ParentProductCategoryID], [Name], [rowguid], [ModifiedDate]) - VALUES (1, NULL, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (2, NULL, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (3, NULL, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (4, NULL, N'Accessories', N'2be3be36-d9a2-4eee-b593-ed895d97c2a6', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (5, 1, N'Mountain Bikes', N'2d364ade-264a-433c-b092-4fcbf3804e01', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (6, 1, N'Road Bikes', N'000310c0-bcc8-42c4-b0c3-45ae611af06b', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (7, 1, N'Touring Bikes', N'02c5061d-ecdc-4274-b5f1-e91d76bc3f37', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (8, 2, N'Handlebars', N'3ef2c725-7135-4c85-9ae6-ae9a3bdd9283', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (9, 2, N'Bottom Brackets', N'a9e54089-8a1e-4cf5-8646-e3801f685934', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (10, 2, N'Brakes', N'd43ba4a3-ef0d-426b-90eb-4be4547dd30c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (11, 2, N'Chains', N'e93a7231-f16c-4b0f-8c41-c73fdec62da0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (12, 2, N'Cranksets', N'4f644521-422b-4f19-974a-e3df6102567e', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (13, 2, N'Derailleurs', N'1830d70c-aa2a-40c0-a271-5ba86f38f8bf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (14, 2, N'Forks', N'b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (15, 2, N'Headsets', N'7c782bbe-5a16-495a-aa50-10afe5a84af2', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (16, 2, N'Mountain Frames', N'61b21b65-e16a-4be7-9300-4d8e9db861be', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (17, 2, N'Pedals', N'6d24ac07-7a84-4849-864a-865a14125bc9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (18, 2, N'Road Frames', N'5515f857-075b-4f9a-87b7-43b4997077b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (19, 2, N'Saddles', N'049fffa3-9d30-46df-82f7-f20730ec02b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (20, 2, N'Touring Frames', N'd2e3f1a8-56c4-4f36-b29d-5659fc0d2789', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (21, 2, N'Wheels', N'43521287-4b0b-438e-b80e-d82d9ad7c9f0', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (22, 3, N'Bib-Shorts', N'67b58d2b-5798-4a90-8c6c-5ddacf057171', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (23, 3, N'Caps', N'430dd6a8-a755-4b23-bb05-52520107da5f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (24, 3, N'Gloves', N'92d5657b-0032-4e49-bad5-41a441a70942', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (25, 3, N'Jerseys', N'09e91437-ba4f-4b1a-8215-74184fd95db8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (26, 3, N'Shorts', N'1a5ba5b3-03c3-457c-b11e-4fa85ede87da', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (27, 3, N'Socks', N'701019c3-09fe-4949-8386-c6ce686474e5', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (28, 3, N'Tights', N'5deb3e55-9897-4416-b18a-515e970bc2d1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (29, 3, N'Vests', N'9ad7fe93-5ba0-4736-b578-ff80a2071297', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (30, 4, N'Bike Racks', N'4624b5ce-66d6-496b-9201-c053df3556cc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (31, 4, N'Bike Stands', N'43b445c8-b820-424e-a1d5-90d81da0b46f', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (32, 4, N'Bottles and Cages', N'9b7dff41-9fa3-4776-8def-2c9a48c8b779', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (33, 4, N'Cleaners', N'9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (34, 4, N'Fenders', N'1697f8a2-0a08-4883-b7dd-d19117b4e9a7', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (35, 4, N'Helmets', N'f5e07a33-c9e0-439c-b5f3-9f25fb65becc', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (36, 4, N'Hydration Packs', N'646a8906-fc87-4267-a443-9c6d791e6693', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (37, 4, N'Lights', N'954178ba-624f-42db-95f6-ca035f36d130', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (38, 4, N'Locks', N'19646983-3fa0-4773-9a0c-f34c49df9bc8', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (39, 4, N'Panniers', N'3002a5d5-fec3-464b-bef3-e0f81d35f431', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (40, 4, N'Pumps', N'fe4d46f2-c87c-48c5-a4a1-3f55712d80b1', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (41, 4, N'Tires and Tubes', N'3c17c9ae-e906-48b4-bdd3-60e28d47dcdf', CAST(N'2002-06-01T00:00:00.000' AS DateTime)) - , (42, Null, N'Record to Delete', N'3c17c9ae-e906-48b4-bdd3-000000000001', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[ProductCategory] OFF -GO -SET IDENTITY_INSERT [SalesLT].[ProductModel] ON -GO -INSERT [SalesLT].[ProductModel] ([ProductModelID], [Name], [CatalogDescription], [rowguid], [ModifiedDate]) - VALUES (2, N'Cycling Cap', NULL, N'474fb654-3c96-4cb9-82df-2152eeffbdb0', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) - , (5, N'HL Mountain Frame', NULL, N'fdd5407b-c2db-49d1-a86b-c13a2e3582a2', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) - , (9, N'LL Road Frame', NULL, N'ddc67a2f-024a-4446-9b54-3c679baba708', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) - , (11, N'Long-Sleeve Logo Jersey', NULL, N'20efe3f1-a2f8-4dde-b74b-18265f61f863', CAST(N'2005-06-01T00:00:00.000' AS DateTime)) - , (17, N'ML Road Frame-W', NULL, N'ca18ecfd-2023-4fa7-a556-0321153bca34', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) - , (20, N'Mountain-200', NULL, N'3b78edff-2aa9-4ac1-8c3d-94090b5f53a9', CAST(N'2006-06-01T00:00:00.000' AS DateTime)) - , (22, N'Mountain-400-W', NULL, N'6d2fcce4-ffce-4662-a3f8-5d18f0eedcd8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (23, N'Mountain-500', N'Suitable for any type of riding, on or off-road. - Fits any budget. Smooth-shifting with a comfortable ride. - AdventureWorks2002HTTP://www.Adventure-works.comProduct highlights include: - 1 yearparts and labor3 yearsmaintenance contact available through dealerStable, durable wheels suitable for novice riders.Made from synthetic leather and features gel padding for increased comfort.Expanded platform so you can ride in any shoes; great for all-around riding. Super rigid spindle. Our best value frame utilizing the same, ground-breaking technology as the ML aluminum frame.frontsmall1 These are the product specifications. - Varies Centimeters. - Aluminum AlloyAvailable in all colors.Mountain bikeNovice to Intermediate riders', N'866dbad3-5999-4329-beac-d826d959d9a1', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (24, N'Racing Socks', NULL, N'bd8ba6f8-7e16-4fa3-b3b3-2036dd4a2ae0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (31, N'Road-750', NULL, N'2bf795f4-2666-4691-af14-d490c7334a8a', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (32, N'Short-Sleeve Classic Jersey', NULL, N'6beccf2d-eacd-496b-995b-d692567565cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (34, N'Touring-1000', N'Travel in style and comfort. Designed for maximum comfort and safety. - Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. - AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. - 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.Excellent aerodynamic rims guarantee a smooth ride.Cut-out shell for a more comfortable ride.A stable pedal for all-day riding.aluminum alloy frame - and features a lightweight down-tube milled to the perfect diameter for optimal strength.frontsmall87 These are the product specifications. - - Aluminum alloy Available in most colors.Touring bikeNovice to Advanced riders', N'52e7f2c1-dbff-4518-927d-c7d46f9ed32e', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (35, N'Touring-2000', N'The plush custom saddle keeps you riding all day, and there''s plenty of space - to add panniers and bike bags to the newly-redesigned carrier. - This bike has great stability when fully-loaded. - AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights. - 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.New design relieves pressure for long rides.Top-of-the-line clipless pedals with adjustable tension. High-strength crank arm. The aluminum frame is custom-shaped for both good looks and strength; - it will withstand the most rigorous challenges of daily riding.frontsmall87 These are the product specifications. - AluminumAvailable in all colors except metallic.Touring bikeAluminium alloyIntermediate to Advanced riders', N'aa10d9e6-e33f-4da8-ace1-992fcd6bb171', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (36, N'Touring-3000', NULL, N'f5a6ec78-4451-45db-955f-db197de8b059', CAST(N'2006-11-20T09:56:38.273' AS DateTime)) - , (37, N'Women''s Mountain Shorts', NULL, N'a08dd61a-6155-4051-9a11-223232ea51cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (63, N'ML Mountain Pedal', NULL, N'be9cdc56-f4ab-40f1-b338-2e08e0627abd', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (102, N'Front Brakes', NULL, N'1099a23a-c9ed-41b1-8cc1-e2c1c54a10c8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (103, N'Front Derailleur', NULL, N'10e0c8fd-ca13-437b-8e22-51853ae160a7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (128, N'Rear Brakes', NULL, N'71d47afd-da3a-43f1-83ad-69c71f96ef33', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[ProductModel] OFF -GO -SET IDENTITY_INSERT [SalesLT].[Product] ON -GO -INSERT [SalesLT].[Product] ([ProductID], [Name], [ProductNumber], [Color], [StandardCost], [ListPrice], [Size], [Weight], [ProductCategoryID], [ProductModelID], [SellStartDate], [SellEndDate], [DiscontinuedDate], [ThumbNailPhoto], [ThumbnailPhotoFileName], [rowguid], [ModifiedDate]) - VALUES (712, N'AWC Logo Cap', N'CA-1098', N'Multi', 6.9223, 8.9900, NULL, NULL, 23, 2, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9ede243-a6f4-4629-b1d4-ffe1aedc6de7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (715, N'Long-Sleeve Logo Jersey, L', N'LJ-0192-L', N'Multi', 38.4923, 49.9900, N'L', NULL, 25, 11, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000142567FCFCFC9F9F9F2C4B67CECECEE4E4E43B658AAAAAAA2C3458CACACAF0F0F04757A510182EC6C6C6E6E6E6EAEAEAA4A4A4EEEEEEE2E2E2696665AFAFAF102136225A8B8895AAD2D0E6B1B1B18DAFD3333335FAFAFA2E73B2254B72637098B2BCC876757AC2C2C218479DF6F6F65075AC3216701750A1F8F8F87E8E9DF4F4F4B8B8B71D3B88262526DEDEDEA7A8B4DADADA8D8D8D345CA82334750C365B1A53882934672C435ECFD0D01664AAF2F2F2165A981948854581B787A7C5534B46919191113F6B5357751B3394DDDDDDB4B4B4D7D7D79A9A9932343D3E3E3E16181D192E595754523134470F1A4824547FD4D4D46986A67DA5CC87827EC7C6D91761A9574F4A4C5C83959594CCD1D8193F99A5A19CACA9A64E48442C589A05060850637CD0D0CE262E639A9896928D89182942928E9F1E5199326A9C282D38E1E0DF453C38A1A1A1675B77A8A8A79594923579B549423D395A88CDCDCBE5E4E2757370B6B6B6D3D3D22D3A4A9796958C8986BAB6B31F3C58BABABABFBDBAACB1BDC0BEBBE7E6E4D8D8D8737DBAB1ADA939437ADFDFDF3A4C96272F488B8784D5D5D2605954CAC9C62C3F54D0CECBE9E8E73D276ABCBAB8B6B4B0B3B1AFACACAB0C2A54050B16BCBDBDD4D2D0C8C7C7EFEFEF5E95C5195E9F1830810C121DDBD9D7EEEEECEBEBEBE1E1E1DAD9D968625E4F3A7699BCDA1B49927E78730F0F0FBFBFBFFEFEFEBEBEBEE8E8E8EDEDED1667ACECECEC1659A56B98C6CBD9EA184C9FE9E9E9535EA96169AFFDFDFD1D3F90223E77296EB0B9B9B9EEEDECF5F4F31953A0CCCBCAEDEDECE4E3E139312EF5F5F5C7CCCFA4A2A0E9E9E8154891300E7B6081BC6F8AC12A639F8F91C5B6B5B40E2F4CC3C2C0D1D1D17B7FA6FBFBFB706F7C6F6C69686D7C355978DFDEDCADABA8EAEAE9EAE9E8E9EAEA9EB2C4E7E7E73C516932496A7E85BFC0C0BFA8A5A21D1E20CACDE4A29F9BFBFCFCD6D6D52B2B2CF7F8F82260A7F7F7F7505152F8F8F7414151F1F1F19994903E74A5DCDBDB3120542D2E5B3F4A8B313C7A3D2374301C621660A835383C2F2F2F739CC6000000FFFFFF21F90400000000002C00000000500032000008FF0055FD1B48B0A0C1830657295CB80A97435C01224E9BC6A1220A76EC481053A1029E024DAE603D68E5A080044344601881128D4082062258F12A42E10004010211EADCF98FE1C287102552B4885123478F204592348952254B973065D2B48993A7D5843E1B060D307162450E17336EECF831E4C8922753AE6CF932E6CC9A37735EBDCAD06180735FC1EA454154ECD1B24AD1365D0BD5EDD4B873E76AE58AA2C13C05735E880BD64B810E62EAD485354A36E959A66A9FB6950AB76A629E0ACF0533832F5F32132692BDA667660EB640BD2E93D03816A9D9A5699DB28DFA96AADCD358A715BB8066463E7C6D4A9582E47A800D691F227DA2134A818AB19D7F0BFF0E3DDC70E9E3C87BAE0AF0278A1419703C34811DA28D897C339E2068166BC7150A8AA8F148043AA8A0836F8181265C61A41997DE400AB1278716BB68B080014F3482443D36E453CF06BA80918410B1E8A3C529293813E03611C083E067C111365A7188A5D7D01F68E83302853EDC70032739F081C83508D8B00127B280B0CF8F5AD022851729F8818E04A16862A5780ACA48DC61A69DB68A02D20C52858E5A30D30E123BBC92430DFEA492843FBA5421CB2C72ECE3010B4ECAD04319938461482DAE4480658CA26D791E72ABB872CF0262EA3803121BF090839AB1A4E24F125FF020E72C1D7860C10D79F6E0C9042BCCF1A72B830E56A8790E7A198313B688FFC9090F376C50C80893E6104B0597A672C2A61D9CE0C10D7844B18E3C4EB40041247748F0002C09125A5E83352A16C03E0CC45A830DBF0C408D2DB852BAC4A54AFC3A67B087E0D1842EE080234619751CD080200E84120A8CAA4E4B639774CD438E27F608B101B7DF50016EAEB1E8726905E6727AC20221AC7B8327360C9084002BE0204A2DF702972F83FBA2B753433120D20200330C7CC607181C4CE9295F24C130B00F6B20B1123678C0400C0788308A030FE04B1EC85C8AAC53434D2080040329DB30C32D180C52021C9B6C120B2DA9F033F3B93537A24B23E4E48C47176CF0128D04B5D4E2F1D033169DD82AA138A1B413626C80C0105097B38C29A6E8FF4A0BAF4B341CEC021AD4704319FCE4DC481A475090C93C0EA83DDE826D1F3A57000200A0340B0C20D109DE1884A30C1CBB583D4219FE044E33E1AF5850C1C01EE0F1450C10B0824E01ADAC4DB9A1AD5AD5D0049A23914B059F83EEB2DFE3AACE35EBFA30007B1AFEB4334606A67AE3CDE45AB25A2D6A1128F10522C23FC1C010C687EBF70CA90B5EF32B3CF0013BAFA9E8610C343014707D96AB52CBEF4EB8B8E18F3F4A081F3900503E84D14261CA7318EB2A5003D859CA1F4C20C324A2210A07602F7F21A30B2EBAF03F7FA421174FD880253A01B5E35D8D05FE6081FA16688181DDA0832D40853932418402D8505A44B31CF71ED8261022211D0C28A1F9FFAEA60B066861851A08C2335A68032574700DA420831F046143FCE9CB6DBE53471D3AE80F008470034A1042CB867840001C71751750C20098F885FFA5220E8B98C21EA674C38F55AE772363071DDEF4BF2F7C118C0623E3123A7146AE1DA205FB58E30678F5BF61AC611189888411245047B6F16E7B47434120FCD0820E2A6103A06C84104C488B250CA1900E63403A90A0C83602700D7120453CA0318F2AE2F08E9844C82AA6010A4C9081872D00E5009E718F2122E373A8EC00323EB9813592A38F6B58831550918D30A8C18256CC211E8F860B5F0803105BECA3302DE0892106410BA7145C05F8214C0FB8921F71E8C204E20188FA61F39697DCDFD1A6A1FF804FEC61111D2447332D90864A18109DA8E483FB846989FF91A30B5D88A3243081BBFBE1537BFAD4E52ADC110A4C64230E1DE4C71A91A08434F90DA1E6BA4025BE882D375AE107D3DC42265CE00DC965139719D5252ED8B10D476CA193001C29022A40295AA0B40A2520070841998E3EBED40AD51803207E1634DD654F7F463B5A0088110846A0A2837CB000121080081A9C349D3B4845F840E9CA38C094147A9868011ED0B10B5E5187D6F2661E2CD1464B3C61AC1E60E0D5505A09F02DF5814EE8C20F16818A7100430DDC80455D6F9ACFAC8E6C1A3A80C61700F0BF32ECA31E03680418D661D4537AA10C4A03E133BF70CE2E5861026488C428BC81AA68FFD9B1B2365A050AB4E18F2138E17FE94000185EE083C19EB2047FB881F082E08F2FD420075A780763CDC10809C04250B6B524462D3BB20028201D0464803F5A10836EC0E1AC47ECC125AC910BBE46414D5A40C204A6C0054738C0159EB12A06B188285CA8601F04B4C504FE508283A6B30AFDC80204F6610F0DA8A913A9A80319081186FBE6D7AEDACCE55C7041820938016F545800198F3AA71E9C817539A8C03EA6F0863E593855DAC5EA83FEB1D3107C5888064EE6FA76E08F6AE8E108CEB8C38BB3BBBBEDCE78151CC880250A5854122BD0C134D8801E6220804B18A11511B830658DFC20241761C9386EF28197E7604B4C20066F708363429165181759FFC65DE6676FC38C5EC1F1E01E5108422A6210832350AF00F8D5F245E16CA300E820157203E30D0CC0681E72D18D2D68413A48110320D44E10ADB092A06FCBE542136305A460423BAA010420BCE10D79C0C2A94BCD6A56F3B9D20228023044010B050046686FCEE08C775A8B68D8810DA9CE431EC63086231CA1D8C64EB6B205C0860C340006997E917EEFBA4D2F7140012EC8841D28E1063770211B942004252840EE7267E0DC1928821D2E91002AB648DA18C6297751130012C0C2107778492618010C60CCC11104C081C071108D68DCE1E07740070C448165781CE8D6D3CE704E35380D1268A21655B4DF238E718C56A4EDE320AFC5B35A54A0876F3AC6FB40A2802A56CEF296BBFCE52BBFC425FAB0829AF3A20F38CFB9CE6FCE8B9EFBBC0F3EE745CDED60076714A108192837252871806E4300026C1080B1C78085520704003B, N'awc_jersey_male_small.gif', N'34cf5ef5-c077-4ea0-914a-084814d5cbd5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (738, N'LL Road Frame - Black, 52', N'FR-R38B-52', N'Black', 204.6251, 337.2200, N'52', CAST(1088.62 AS Decimal(8, 2)), 18, 9, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'18fc5d72-a012-4dc7-bb35-0d01a84d0219', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (739, N'HL Mountain Frame - Silver, 42', N'FR-M94S-42', N'Silver', 747.2002, 1364.5000, N'42', CAST(1233.76 AS Decimal(8, 2)), 16, 5, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000C1C3BDF4F4F4BBCCC9ECEAEAC2D4D1ACC2BBB5B8B4DADADAB8BAB5ABB8B4AAB5B2E8E6E6D6D5D5A8B4ADEAEAEAC7C8C4B0B2ACA6B3B3E2E2E2DFDEDEE1E0E0ECECECB3BDBBF0F0F0CDD2CCD4D9D4F4F2F3C2D2CDEAE8E8E4E2E2E6F3F3DCDCDCCADBD9F2F2F2A4A5A3F0EEEEADADACABBDBBB4C9C3A5B1ADCECDCDE5E4E4D1D2CDDFDDDDD8D8D8EEECECCDCFCAD9E9E9F5F3F3E6E5E6BEBFBDEEEEEED9D6D6B4B6B0D8DAD6BCBDB9E0E1DEC8CAC4E7E4E4C6C5C5F2F0F1F7F4F49D9C9AB4C2BBE8E7E8E3E0E1DCDEDABDC0BAC2C1C1F9F2F1B9BDB9B9BAB8E4E3E4A5ADABFBFCFCE9E8E8D8D6D8ADAFAADCDBDCFAF8F8E4E5E2E0DEE0A9AAA9EDECECCBD8D5DAD9DAAAADA6DEDCDEBFC1BCA6B8B9F8F7F7DADCD8D4D2D1C9C9C9E8E8E7C4C4C1BAC9C7ECEAECB5B6B4D3D5D2B0C2C2DDDCDDE3D9D9B1B2B0B4C6C5AEC0C0CCCACBF2EEEEB5C5C2B2B6B3F1EFEFCACDC8E2E0E2E6DBDBBFC2C1DADFDDBED0CEBFC5C2D4D3D4C4C9C8FCFBFBE6E4E6E3E4E2C1C6C0B3C4C3CAC7C8BDC7C6EEEDEDC0CECED6E1E1DCDADBFCFBFCC7CECDF6EFEFCAD5D4C5D8D5FCFCFBFAFAF9C2CDCBF4F0F1BBC2C1EBEAE8DEE1DDDBDADBB2C6C6A6ABA6E1E0E1DDDEDCDEDDDED9D8D9DFDDE0D1D2D1B5C3C3FDFDFDFCFCFCFBFBFBF8F8F8FBFAFAF7F7F7FAFAFAF9F9F9FEFDFDF9F8F8F7F6F6F6F6F6FDFCFCFBFAFBFBFBFAFDFCFDF8F7F8F8F8F7FEFDFEF0EDEDF2F1F1FEFEFDFDFEFEF7F7F8F7F7F6F7F6F7FDFDFEF4F4F3EAE9E9F9F8F9F2F2F1FAFAFBF0EFEDF3F3F3FCFCFDE1E2E0FDFDFCF6F6F5F8F9F9F0F0EFEBEBEBEDEEEDF8F8F9F6F5F5DAE2E2F8F9F8E4DDDDF8FEFEF1F1F1F9F9F8E2E7E6E3E3E3E0EBEBF2ECECBBC0BBEFEFEFB8C2BFE3E3E0E7E7E7F3F4F3F6F6F7C3C9C9F7F2F3C5C3C4F4F1F1FCFDFCBEC4BEC0C0BEEFF4F4FCFDFDF5F6F5FAFBFBAEAFAFD8CFD0CFDFE08D9796818080EAD9D9FDFEFDC0C6C5D5DDD9B9BEBCB9B8B7F0EBEBF0EBECF1ECEBCFCFCEE1DCDCEEEEEDC1C0C0E9EAE8E9EAEAFAF9F99AAEAEC3D0D0E4E7E7E6D4D4E7E7E4D7D6D7ACACACA7AFAEFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0E1C04C0E230AF4376A043B67850A15D9B8D19D068912FD0590C089A0A600333E090C0552203178F08E99311387A6B97CF98E8D6AE9D01FB447CC3C29D1B580128B7D12DC5C08B2A6A5BF4C995EA1223605080D1AF046F8E3199118033B559CD8B1430988844751283DD2C175A0A660CC525CD0D63622386894183080B353E0146C3BECF0A8FB8FD31F0DB308475459EA51258803BBA113D1473135608A25120BF12FCA95821E0C884001AAAEBF11BA3247D4F53106835403FDBD104162CC1C1C03B4F0DC144C95EA86FE866D95C580522781C808F03BD3840F0110E91C71F015D15FAB01907F2BDCF56A6032065582F5FFF060E1C69E315FDA444843874A0621FA606C15F82AD3FC8114D6A9C9AEDDA11609FB8873C71944F42304299E30A306020A9420000154D8204D2E9A1CB4C925EBC8804B7F2D6D32C23D62DC90041A381023101E533020438368D061C87B8DF8E65D1732BCC1214FC80820430D359C0006050114A4C10A0F18900019026C8041067AD0F24F2D3B2030C98D099DF4472D4BD4124C2B5A34630137085060C00980EC00CD41F54CF38E1109A461021B75BCF10611433869D0200154E0C534D3D0934C2AF7B5444C0A4E545105259438F1481582D07104022EFCE300041128820D2909B9120F0D7224A0801452C880850405E9C28C134E945186138254C142251354FFC05F439C48C08213417831801BD9B8D1C2001FF0C14D130708C48B1559288242850B1183C30367C8F0C3A802C922C90112ECBA48363068B0C6000B4451C501673AF4070B8F48D0C228B3E2510C1B323461071215DA60450977D8E110140660A14001582CA041151DB4008328AE1884070C53E8508504CC2A040403130C50DA41A1BCC08801282CC0C207A5A910491A754CD0900B063CA04203263481C21F6B1CA75026D7B430C1072A2534CD3E70B4225026110F540F083220008A26D35452C527BBB8100919EA00B19026431CA1C22C639C5000094824E4CF5303893205054E044DD01FFBA460E244B3FED38DA3EFACC4C13E94F803CA1749646184CF0901FF23C61038FC03448F26EC80E94460FF631F44F3D9520B05261BE4090B14C010DB41FE34E30702C2FCB35526793010C33F01DCD04F090FE886D02467EC910C2C955000C00926AC63F953607F6DDF56607352CB07B51844F60804053A100CE330F240419D4CC04090C28C890617660FF486182E98624919AD7CF280D6E178A2F8D79E3FB57BC41A4C534549DEB110034B9E2754C12146F062D005954421D03C9492C1C041BFA89A10DCC084016C851300684001C4608ADD792E139BD0843F24B8927F8C8D5403490B677ED6B67FE061198000C013E6433E7F20611F96FB072F9A10810450C020C1A80116BC108515ACED1FC4B881028F3008FB784E139F800A09FF05220A201CE0629EA8420CF863BCAD6821107E6001422EC082140C640BC84A40F008B28533BC6100951840416EC1A012C8236240F361FC06328509044320C1A8C21F1AC203106C638EC6FBC72628F00866F9430508C842345427901CD420034810440A0912831A24A0004EB81C09CD27900020E185FF90C0046E58BC89FC6315CC20800B06A1843C3EA9124112082E30300448D44166C6308211A0000709D4E3203880400236C08107164F8802F9041028710A4D5022059BF0E44134910A42B06105E43B881BAA30058278E201CFC8C21D04A20711ECE10F55008229FF31095D12008F0411E27D5851065D70C209E2C4DC403A11043658A00708D90A0CCAB0FF8082840000EAB04706FE01011FBCE32C03D0844251A189526482A1A8604113122080D1950F216E98C01F02F0882D7A2D177D480006C6B746828C220A5D2B4805109004134CA01CFC400112F2C08A4D74A2980A5DC52A34518F1660C10A11C0045BB2134D81F060020ED0C523C4A8904E5C420EDC48010F4C91102D48028305D1C33AD061011FC8E31D5308C34714D709188C000A5BC0C01E7E600111F8E00498100528D867100D2035004E606A3E03310E3970E109A5C8270E2591D282D8A20F67E08714D6B1834AA8810614A8C41830B00101BC890C64B040024470031790430E99F844F5FED10A4A04C3134E588242FC818F00D0E00FBF689624F2609055FF68000644E0473864100E6B58E01E87380401E800861F18A00D3CBA0100202005E9300082392B080FAE30824D1C33B082C5832450B189710A040651F0E84036F1A710748108F740C33D0C41883D6C030B0078800B6CC08B5AB88113BEC000375070267F7862B43C7082E5244101BA5E2E7E40435C424640890B18E41301D0C42606B083AF72A10F6AA0400574F1893C7E2318C138402DE69ACCA27AAE165750492DB857902196D4C4042905079C7031826CA215B0F0042862300D62C06200B5804D8BDD22812568022ACABC0F273A00874A1E209E435670490D32A8261BC41F172086C174A1054E68E20F0B78634232E180091032C9024986692742090A88AFFF93075E6D1BAB79105504400B1AD040005A200B524481240801DA0024E01B260EA414C178448D2BE0841604EAD10C190510CA30DA4ABAA11530084027B4D0090938C10D5F5368274C718A4ED8E214A255E681B3210166A4F30329C0A7AAA74C6BC50DA0620B1945A651E3094404A06230D044317D086318FF43141C38C09BE3978C4770E0387880B4B107F2871450027E0AE1C426F0D00BF2C5A0D1D896329C07620A0E4CC00B078941C53AE18D82302E21C958C0233819E86A182F134E48CA7DBE66CAFB8482151D9840073311050AB0E3960F69DB7D2E008447CCA0219EB840C20AA2852A8E0011F1CB63A07A0A041A2764131390403BE4336BE655E51115C36848262A800452E4310055AC450A79C7BBE2B5A2162950F64232C10C4A0CA005B1480C9ADC30002438C1C10E81E03849F1084A708015A218380C169082B428A3D606F94319D4358211DCF909A4A0851B82C1811850421206568C3752C08209C460095E17C52738718BA277806CD33887443651E628A480031C180010A69102494C4012C9E84F82892181B04C80021440820E26408932C03A165CD1C42DA69116449DDD019817376126780A44F4C2130E20DB011E71800F482018BA48041E2868908000003B, N'frame_silver_small.gif', N'8ae32663-8d6f-457d-8343-5b181fec43a7', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (782, N'Mountain-200 Black, 38', N'BK-M68B-38', N'Black', 1251.9813, 2294.9900, N'38', CAST(10591.33 AS Decimal(8, 2)), 5, 20, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700009A9CA3BEC2C79DA3ACF1F0F96566694D53647C8494E1DDE44D515C41454D444953B2B2BBF6F5FDEEF0F5F5F5F5EEEEEEC2C2C4EEEEF8D5D3D90B182A97999ED1D1D4E9E8F450545E3D43525D616AF0E7E0CBCBD3F5F5FADFDCEA83848A000204F0EEF8F0F0F0FEFEFEEDEDF6FCFCFCDBDAE3EAEAE91423343D404A6B717970737AA4A5ABABB0B6535662F2F2F45458638B8A92BBBDC0CBCBCD414653AAB3C1A9ABAEF7F7FBBCBBBC6C6D728987A4494B54F4F0EAFCFCFFFAFAFAC4C4C76A75825C6773E5E5E57A7C848D97A4EAE9EC43355C494D59E1E2E55B5B62EDEEF1012543F1F1FCE1E1E2E8E8EBB3BCC5F8F8F93C3C44EAE9F7EAE9F2D2D3E38C9197B0B2B6ABABB2010811DAD9DD444B59BFC7E3848B92DAD9DA393D48A2A3A6E7E6E9213346F6F8FBE1E0E9E5E4F02324284A4E62838790FBFCFEB0AFB1CBD4E3E6E5F6C2C6D2E9E7E85A5E67DEDDF261656FECEBF5D4DCE438373AF8F8FFD6D8DDE4E4F92B313AFAFAFE2229348478989599B37E7D8ADDDEDFF8F9FBEBEBEDB2AEC8323D4A676A70555C66BAB6C0E7E7F2CDCDDAC4CBD2F4F3FEDADCDD383E50B5B7BB554B55E1E0F2343641A3ADB9CFD2D7FEFEFD5B6882F9F8FCE5E3E5373A43424658F3F2F2ECEEEE9EA9B7C6C8CAE2E6ED9E9FA4FBFBF9AEAEBAF3F3F9F3F4F5F5F3FA131319EDEDFC2038535257696A6672E4E3F2352949A6ABAEE7E5EEE1E6EAE3E2E9FDFCFDFBFBFB3F5266BCB8D3777681FAF9FDB9BACCCECED1040E1CFDFEFEFDFDFD74787FF3F3F4484551A8A7A9E3E3E5636777FBFBFFF9FAFB8D8E99F9F9FAF9F9FE5F5D696F748B7B77818A9EB18B666DE3E1F3E8E8F6524A73A6A6BFA5A5AE6C6C7AFAF8FEA3B9D5353069DDDBDEABAAC86E7E933239483C3648393240F4F4F4CDCDE2C5C8DA352B5DBAC2DA75648CD7D6DA6D6B8A5A5662F8F8F77497B4575486F7F7F7EBE4E3FDFDFCEFE8E9ECECECD6D7D8E7E9E8D1D9EAE9E8F9D5D4E8AB9C9F868598D9D7E6BEC0C3E5E2EDEBEAF2ECECF5DFE0EC968993B0BFCCB6B6CEB9B8C6F8F9F9595F6FE5E0E2DDE2EEC9C8CF4E4A70ECECF8FFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C183026D7D1187B0A1C3871023460C4281800F8918336A84880B0001245E5A6D1C4912233008482825A852B2A54B844136B5402147D7CB9B372DA1C1014541061824700A1D29E2DF19693A025119CA74E3A3132784586A4A55A2B42BA36260DCB5C70C802AB3F81C0942E4C193AA198F9CF8406B0200891500102BB5A88D10185BA850D95301AD44331FAED0FAF0C1081F8C7E6EE04082040A945CD5DEFA7DF809CF870957087F08452123B16AA528405866A5C9E48702020BCEAC39818C886CBCA1C8745AE29D2E8169B1D61C18C754480D615012523B22831CA1AE84C2406B306FC2646E348C5646C7AEE20F6DBC4A76EA54BD7F3F7407FF7EFE2150887FB66A0D2C14EE593BEC10739C2A92038440209809EF860E81A09A6DD9F4A3CC59F021644E251314F14A2C029D21886E99ED47980A53FDB3C77C7A24516043040496471404F551C015247E600719CFE1E1031F9975334681B63C70041F4C3C10D43F6864464B1C067D928573B49891C173B4D86162030F89208E09410471093025915001052A08D2420B1764A0020037A0F801060825C19C66BA700105798138848E225BFC0004106FA4700B15019C87912DEFA460442E3AE432C30C28F0A9C35A819971907A4D00B29B4DBA78A91F01E618C4C4162D2070C105DE60D9C20B082000C4260F4484CE2D5D609A0B258D7481C2AA2A9DA0E3020E1DFF01C66ED289E34128E37D40061A0391B002025990428A113354A2C00C18A0A08337DE20F0467F0E55A0032517E88042069BBC43C70158CCB2097E6C918140000E21322B61A1406B0E0EFBB5610E304224424A0195B400C3025C4800CD066808A14325C2B4A0C0260D558042020A74810404D6F4E009037D1CE20024C5E86847170A5CD4D053242A37CB40E7E8C01B192F54424A25597801CF3F4B88800CCBB50CB08A190A5C3AF041E8E89000025DFCF24D080E3CC000C48784C0812B6C1100854A1760E190216B6546C66103F920076F7860204409FF7020CF127720C3CA00AD58C04330B35C60C40B46B054D02D94BC90C02687F0604910427BC2C31296A4FF31C107AEFCA348230A28A0420F0E05F0B7D4D70DD48322461236014B0CD8128528C144C143040C8C30020F3C4880E50B8220425026502090C01EE811C2C0037C78D240CC210C11580073CCA14B175960A0C8438AFC4D18019A6828903848E0C1DA152968184C1D7BDFE14F046A00134104FFCCA28320461037100E281881841F0BFD630103417C318008707C31641BBD58F00F03CCA080C11BF83CC4C2157874E2080D3408C00EFE0180469441014898C060F0E0887F608E01BD18401DFC11050EFCC3137300000674F69A7F98C95A2BF807097631950858800EF368C2141E81075A546009B1888208663103056080360FC10426C01189156CC1113728870AFFCA50860C24E0037800046132A0091010E1134B10853FFAF08F0180281E7243810704A20B28E8E0027E38843F5AF185508D600A0B78C71A60F0812C74AE0344608310158082A53C640D4E90862B0C300427D4831F3AE005023283002C1C60086B098501A6C08F47CC412011F00703D421020AA0204BE7F140E184F00013ACC21D7098C417B82006466CA0032DF800209650023658024A5E40C10C52F01012380113BF48410A78C10B2750C00E960985179E508E03E863036F18CC30EE718FD74C520D6A18402C3660844A55A0162A505D08C5618D1048C11DFC608119F6F00369E0AA0011780011BEA00F132CA00B3310042E1C0289003CE2082A50000C1651FF8F7C90680202D8471AD29186355861133038C10412F18B0530421403F0870D38D00B3F64400733508438088000055861095218C10096E08F0E386371E259819D06C20D14D4EC120F8983131E010B6AFC2213C5708E6656B3D32B9C801605F8C31418C083111C230A1190C71B40880F0210CB6D04F1030DAE30017AE0CA0EF710031C22308228F8831FAABA40A41CD20A3CF262149830842A2E800730B8E207F9E8A802B2000830FC54094AA0851E56C1833BF8B5173CB041207480012FFC23100813C0002C60014248C1146ED0C22826A0D00950A113EB1803083C61837F4080120A68C33C1B52145FA8E20D1360C72C5A41050C94C1000439C312B0418305FF4CA33991B00721FC1A064F7096086F30020A42E881C798811CBE98A82818E1861218421BB2B84700CEF18503A8C10D168003032880B114D842220698803134E00034B4211F29F84204E0600A3544C114FCE8C4304691880D704314EA1085273820895A48E002089881565640B80C34617AC720C40822C089125C430212C086861C300E0E20630087C5C00CB61091B3E4601AE3F8EE2C5CFB8677AC621E2300853FFEE1025900001366A0032482C18008B8211E5288450D1460840BA0C383E1D3C1EFA230000E80680EF370870B425081792CE11F0E980430E6508804080201EF88880974A18252BCE308FFB0461B7AF70B06B8A003EE3041034CD181770040FF1162604015E33149068082190840C12D0682582304C2027DE8C3CB6CE00F3E88A117C0D805160630827F24DA169A7CC11B46FB901EDCC00714A8011704F20B0C14201F4C38048693908A5594202E6BE08314EC038706442C0633B8000A7E57941B3442609D41862D80110517206200C158D201D8C08028046501A1CD022A30121412B4A228FF404416CA50003348A28A20E044071AE08727C4A309EAC3301C6C1002B5CDA00D0EF807B45590800B286019FF680532EEC08420ECB7077E78C0241E7007065480742D4801A54942014F936205CD38040982400871F8E11F2308011F8031024F541107332840177E879EEF3241013B4B80179E6C82B2706000E4FF3087251E600E56F8004BA4B840075B828B37B89614006045125C100107982366D668821F4460661C4C0301D3F05EC7BF9B094AB89412B790801F5A11823B0C0012360A01116080002C651427584040250A400A215420B0DDE4C1001C0E8C56F8C0081868C13432B05211D85D20EF484023844B095854E11C4D48452BB801010F6029030568DB502A7081B117E0051EF00113ACC1034F00831B83E04517A83D8D3704C121E768831DBA5E3804BC0009C1ED711B84E19399DF04384C084422CAC0B62C5CE0161E78C30B30300D23E4A3008910C24A1BE200005CA011B9C845A70A37031DE8200B82A08009AA828F5FCDA0C78248FC0C1020084E5522038A20C78841EC6E0B5BB402184131410D70A0BA1A3A1F0181580113D0D383567CF725E6EF013010B70B0064E04F7FA26118600429C0022EF00FB5600BD03610E4670B24A07F4FC00AFF800FE89009375003351003884045AC000C6D677F0B387E761782062102E6070CE2F0091C700649F008A8400566600654500574F00967100638D8073D40020AF80F0101003B, N'hotrodbike_black_small.gif', N'82cb8f9b-b8bb-4841-98d3-bcdb807c4dd8', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (822, N'ML Road Frame-W - Yellow, 38', N'FR-R72Y-38', N'Yellow', 360.9428, 594.8300, N'38', CAST(988.83 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'22976fa7-0ad0-40f9-b4f9-ba10279ea1a3', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (835, N'ML Road Frame-W - Yellow, 44', N'FR-R72Y-44', N'Yellow', 360.9428, 594.8300, N'44', CAST(1043.26 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'a0fad492-ac24-4fcf-8d2a-d21d06386ae1', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (836, N'ML Road Frame-W - Yellow, 48', N'FR-R72Y-48', N'Yellow', 360.9428, 594.8300, N'48', CAST(1061.40 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'8487bfe0-2138-471e-9c6d-fdb3a67e7d86', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (867, N'Women''s Mountain Shorts, S', N'SH-W890-S', N'Black', 26.1763, 69.9900, N'S', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'22616fd2-b99f-4f7d-acf6-33dff66d42d2', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (869, N'Women''s Mountain Shorts, L', N'SH-W890-L', N'Black', 26.1763, 69.9900, N'L', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'1a66b244-5ca0-4153-b539-ae048d14faec', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (874, N'Racing Socks, M', N'SO-R809-M', N'White', 3.3623, 8.9900, N'M', NULL, 27, 24, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9c7eb0a-1dd1-4a1d-b4c3-1dad83a8ea7e', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (883, N'Short-Sleeve Classic Jersey, L', N'SJ-0194-L', N'Yellow', 41.5723, 53.9900, N'L', NULL, 25, 32, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839614E003100F70000B3B257C3C361878787F2F007676559EBEE4C79784A8C8642696838B4B798B8B31C4E4B3970736FB4B4B426456EC9CAE19A9542363F607E7B51A4A4A4B1B1B16A662D929292333232E3E3E3ECECECDEDEDE817F49938C44BDBDBD56523533458F3137529797AA7C7B25D8D809E0E0EC7E7FA3424E88CBCA38AFAFAF989558646667D3D3E5AAAAAA333763C7C7B79A9767C2BE1AC2C2D9494B7DADAB4A58888B2C34664E757AA9A818474F52343548625E3EBEBEBE475284696994CCCB4C5B5C5BCACAAA9E9E9E9694824A47337C7C7C565877313284B9B9B8B3B4D49B9A3B99999985844BA8A758625F4DBEBF2A6465AB413F34575666313279494A4CB7B7B7868341A2A2A2BBBAB66F6D3B908C3DBABED63E3C366C6E4E6E6E5B3B39339899C72E3E84ADADAD45444EC5C4C4313272656347A7A7A743423B7D7B6C74703E7B7930868577827D2C8B8CC04441331C318E4C4B41BABABAFEFEFEE5E5E5DBDBDBE0E0E0D5D5D5D1D1D1777777E9E9E9D8D8D8C7C7C7CECECECBCBCBC2C2C2E7E7E7EBEBEBFFFF00EEEEEEEFEFEFF1F1F1F2F2F2F3F3F3F4F4F4D5D211DFDC10938C2DC5C143FDFC37CDC944FFFF19FDFDFDFFFF01777130FCFCFCF9F9F9FBFBFBF5F5F5F6F6F6313390F7F7F7F8F8F8979241FAFAFACCCB8CF8F7085F5B3B32343EBBBBBBCCCB0C588A9A1750A1FDFC2CA6A370BFBB703D3B32BEBFDCE5E5F1A8A8A8CBCCE35D5932E1E1E63033592D314ADDDDE97D7A45B3B040FEFE01DBDAADBAB84E97923D3D3B37EBEB2C454743E1E01B3E437E37387E686739989831D7D7D7798858929134CCCCCC777544B5B63DD6D637908C27706F4467673EE5E5126362322F425481968C575887EBEB17BCBCBC484765CFD146E4E407B9B86A7E849CA19E1DD0CD11B8BA41F2F21CB0B1C2AEB6C0ACADD0989842FFFFBFAFB0405755484E5148373B40ABAA93B2AF5EF2F2F8373632BFC086888523E5E5D16A724DDDDD50ADAC86746F2F5759A4587681CCCBCBCBCC6097974C514F2F7E7FB9BFBE0FC7C7CBA29F6B8E8D1E9091BF8688BC94947E595828808067BEBC54BFBFBFFFFFFF21F90400000000002C000000004E0031000008FF0083F81B48B0A0C1830677285CB8A383C387CF9E81021527CE918B54A834D848A1238A302C58A83233C14A90204A94585829A02511223FFCFD9B49B3A6CD9B36E5E8DCF9A8E72349402951DA346952264C962A1D325488D020411900E5F93307431D0D74F4D8B9C3A7CF1E3F3B403540C162021E9938D3AAFDB793A74FA0928412358A542953A750A552B58A552B57AF60E38C2D7B76ADE19C6DE5F8FC197468D1A34997367D1A756AD5AB59B776FDBA433059B3680F1F4EACF8ED200C721FD7958CB7F25ECC7E37071E0C5AB4E8B68442F49021A5990C23466484C8A03AF25DCA7A2FF7D50CB833EDC2B60DEBD493608611324576499152438A980560A8D5FF816C77725ECB7C33FFE5EC9970E8E869B531F396409D981646B2490A71894C16566FF020CD0BF518679E6BCAA9279B739F4107DF4D1DF0300A0DD724504B0A17D4D0822B35E4E04A15F2BCC2C32C2998B08E06AC21871E6CCCB1F7DC7B0FFE03840FA57C3021313870508C2C2D38B0CC1B3988308B35E59C314289F0D0600E1D0726975E6CCDB5575B8CFFE8B14627A4D4388A0DA728830D238D548143386EB09148208840514E054B98008F2805B843456B4EB2B8DE6C0DC268DB04603080658D0E5CB0CF008E80C9810EB778A0C89969A6C18E0232BC59800D5EA021CC79AF2D772783EE3D288C0419FA498A3D2A9CE1C599853672E8168A320AC50149C0FF700B137002E385046B609A20942EE6F9E00F9A5C008E9F4E1461CA19150C1048AAABB68AE6AB8BB0514E0DE944B3C4ADDFE8FA648B78761ADD1C3904AB860A917CC283295B44320024CCEAC0EAA2CF1EB0C8021942900B17B74EE10F82DB6E2AA583A25D0142B0062CC28AB92F5C10892ECEE0520000CDC29BA6BC0B0C510304E1E02BC11416F06BE782FFEAB99610035F30CC0C9E7CB2CB101710700200FA4CD34FC4AE52ACC3C550683C053F1E6B0AF28BF09551B201B6A48C0CCB043001403F018C4373BCF3561101041EE8DC851D75FA1C25D0B6ED90C5D0587852010C2CABCBAEA1EE3A3BF1BC100C6340193FE4DB8516592BB8B5AFB675F375B00418FFA0C608642BBC6EBBEFD6CCF6063D5CA2F825BCEC42F78A5AF7EAAD68E8FCB6F825DC8412B8D984AB0DED02106C00C71879C480043EF8B45237AFDD4E295A2A5F7C81CA2AE4FCE383E6650F8E76E150839E061C296AFBF1DD9353E9033D9BEBAE6ADA127F0E8132FA04DFB3DD92BB6EFC0DC99FBD3CEF6B83DE8B38D2AFCE2DA7D6C778BB02B96BFF74F71060414BF89053DF3AC0E68F604CFA9D374F31040800017FA6F2231FFD1E048F5954007FBBF3DCFEFAF7BF5D8D2F6454A20927022102046E4F816C63E0718417B9F9892C3A13ACA0E0D4C73CC3810E012E6860BF7E86B7084EF01E165C9FF350A8C2E1556F80F0996035B630C2FC99907F29DCE0F4FF5827C00FDA66823780420F13A8BF0C06B149F123220423F88F12244301A758E2059B78C231D4B08345A4E23F9EE0041878418B325CA01785283E7F712D82F3D8800294C83926FE100B6B842200A5F8462A7D6103E770031A4BD83B08A4E10E5F0CE01423880415C0208B75DCE20F63718444F2B185545A8523634848F66DC002967C601F63948A4B64CF8785DC400842E9464C52C9949CE49EF3BA900F56B2B078546A4716628941D0150116B6245EF962F4842AF0928B4B78C22182794323DAA60D0438A609A3B08DF2D0298AA274658CBE100541B22218BEE0463C24D08429E4400C4D3806017ED0026844A1059758813555B4C76CE23246A878C213DAF0688507F8F301AB00E83F1FB0027F9260122B588181AE59CF56DE3382A4590C5C52439785D2D3810E1D26441323D1C6CC853CCCF4A0186B12D1B778B438F3E4A0229F830284B8F4A52F6588421C12919A52C42218C9C8461AD0110A7C0424239940494E929295102120003B, N'awc_tee_male_yellow_small.gif', N'2d9f59b8-9f24-46eb-98ad-553e48bb9db9', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (907, N'Rear Brakes', N'RB-9231', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 128, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'5946f163-93f0-4141-b17e-55d9778cc274', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (936, N'ML Mountain Pedal', N'PD-M340', N'Silver/Black', 27.5680, 62.0900, NULL, CAST(215.00 AS Decimal(8, 2)), 17, 63, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839612D003200F700009C9B9B848283E9E3E4F6F5F6EDECEDC2BEC0E6E4E6E1E0E1DEDCDDF2F1F1FDB110D5D4D5FCFCFCFFFEFAD8D4D4FCFBF8D9D6D8D5D1D2FC6908DAD9DA919191FDB064D2CDCEF2210FFED69BC6C4C5FCF9F9CECCCEF94902FCB138C8C5C5B3ACACFFFDCAC0BDBDD2D0D1E5E3E4B1AEB2EAE9E9A29D9DAAA3A4BAAAABDDD9DAC4C1C2D0CFD0EFEEEDFFFEA8E8E6E8999595FCFEFE8A8989DFDEDEFFFDE4A1A1A1FFF98CBEBCBDFFFFB7CAC7C9F9F7F8C6C3C4C2C0C2898789FEFDEBBDB9BAA9A6A9C9C9C9B1B1B1E1E1DECDCACCFEFDFEFAFDFEF8F8F9959796AAA9A9B6B5B6DEDEE0CCC9CAA29EA2FED710918E8EDAD8D8BAB7B8BDBBBDF1EFF0ECEAEFADA8A9DCDADD8E8D8DE4E1E2C5BDBEFCFAFCB8B5B6E2DEDF837E82BAB8B8888486D4D2D4C3B6B6E2E2E3FEFDFCB5B2B2F4F3F2FBFAFAC1C1C4FEFEF9F0F1EFF2EBE3B8B0AFADABAC938E91DBCCCDC0B9B9F8F6F6EBE8E6CECDD0C2B6BAEAE9ECB5B3B88E908EFCFBFAFAF9F8FDFEFDF9FAFC8F8A8FB6B2B5E6DDDE949292D1CACAFD861BED00009CA09EBDAEB1A4A1A3F71700F34333B8B2B4D5CECE8F9190E1DED9ABA8ADCCBABF888A89A7A1A5DAD8DEC4BABB969394F9F8FAA6A4A4F20200F7F7F9B3A5A5B0B1B5BCB5B7878688C6C4C3FDFDFD929493F8F9F8F7F5F4BCB1B28B8D8DA6A5A8D6D5D78E898BFAFAF7AEAEAEE6E4E39C9898F4F3F4BAB5B3EFEEEFC4C0C0D0C6CAEFF1F3F3F2F37E7C7EECEBEAB7AFB1E1D3D3989797D1D0D4D1C9CCCBCACCC9C3C2BEBCBBBBBABBF7F8F6D7D8D8D6D4D2969493C9C2C5FFFFFDFEFFFFFFFEFFFFFFFBFEFEFDFFFEFDFFFEFEFFFEFCFEFEFFFAF9FAFEFFFE9F9F9FF9FAFADEDCDBFEFFFD989999FEFEFCBEB8B8FEFCFAFFEBC9A1A4A3C8C6C8BEB3B4FB8628FFDD7EFEED5CFEFF60E0D9DBE2DBDCFFE2B9FFE6AFE8DADDA99495FEEBE7CBC6C3A4A09FDBDCDBCCC6C58C8D8BFC6F5EC2B8BCB29F9FF8FAFAD8D1CBF2F4F18A8B8BB9A6A8BFBEC0F11410DEE4E69C9BA1DEB8B68F8D8FB0ACAD888888CDCCCBE6D1CFD1C7C7979897FDCCC4AD9898F4DDC6FFFFFEFEFEFEFFFEF8FFFFFF21F90400000000002C000000002D0032000008FF007DFDBB83E4D3A64D4768246B76E09FC3870F91FDB3D0A78E93100E1930E1222AC4330F4488E081D1AFDFBF7EFC1C8E0080E8203E1A0090A482F8B02430288810C558E0708E1E2EF274C08AF08F483F18BF4EA27C18A6591D0A145E3643D28AE6C97F524C209247E140997F57787091E501059F7FBF909574B8F4A13859502934A37164CD00ABFF1CF4F9C464C3AC1503A2B8E2920C8B1A16FFF0682A69126F28A89B281C611944D943226F3478780180CA0E3A2476800AE0459A216AA31E6AC20B7145CEC814367D4A92A0550A1C050A8470F3C8CD9820B8CC9821312F09AC67250E7C496160990C04CB5803A98308AA135E2778B7CBB061C3120FAA7AADFFB29104141D336B2E090297AB449857AD84C897C1FA5F864F14AC9842E5C64F0420328C0001155640F2C20F050C11052824B4338D206D40344C4A0EF992123F024164430C008CE141044B0CC2861B025C020B1B98D013000F3F6C9001148AA880422CFF08238C33FCACD54F033C3690A16A5D8CB1C40219F4E1441F54986308092A90204B1F6C482242281B9851801CDAD424CC3F8BFDE3CF970DB0F5D004215860810D8388120E0EB4D01242142B6061C30AE495B0C60EB3E02047049C70D94F97257DE94F31495DE6830E2ABCB0862986F8E1830990F040C325DE18828B0F2A8CC0032673CAA14A180C00D30F11C4F033CC30609EB49A435B84E00124A2ACFFA1820726F0B0CE3AF43861412C1FD003890E0EFC10803C71F46241020F0C1312110C4023C69784AEF54F0E054430C2207D84D08E2C5EC470EB3A4E2C604C323104A005014BE8E18519B4404046279DE49045161A6890C097BE18531211C0A4104218FF1880842086B0E105238C1C410A1410B8300823010CF10F04516082CB134F305094145744A00A2C27E0CBA526C410514F01044C1BC139282C6102004174810B1206E8908424EBB8609F07B274F1C5023A98488524C924238D34FEF8781211FF24A043040494908208F758D009013624C30B226BB8F0833C41EC3080149268810B146475214B206C0380CF2688249DD25A06ECF0C4041364A0CB3F13E8FFD009110B9010441C8E50E1453249E0224B0C4888206C12D3D4414E1D75F4614A38F3F8138C4344ACB6850E101060C41388895380245B6441402B2E74FC8215148C01C5185888F0821727F831CF07581C520A0B64DCD10085FDE001D634E2301089127785E2423DBC40304715A120E0820B5B1C00470E16E813C20F6A7892CD2814AA56FE51BFA4E08101C00CA08411FF88409F0A41B0F0452528A420450264BCF1C6168FB0802254310E08A8830165C8C131ECC0408868C2782928C00180B1BC01F4E339FD60000474A10A148081002EE84419EC90802C4C2303EDD0C2131C00875CA0E3188B698C4344653C01A84017C760C0085EF10F17ACE00E0438C02CFF48A08830C8E0151AB0C30156A08952D8800E1ED0C52ABAC10FA4E00518C43089143C20029D194006C05006804A400947D0C112B908036258908153F4701E6C1081389840857FC0A008E5A309D338918121406004131882010670857AC0211255D0411C9A4680016420653940802102A03700BC800CBFD04431A465154D8840070B004228BE10074F6061022B90C2170A108632106002A10018300E300215046009A148820912610C22146A556C598B1476B002371240049500C3001040802F64200C1958010266028CE99D02010080800E2CB0061FF4A30830F80703345613C63060033B30009704408D0DE4C00853184228D030C80940E0140698C01CFE61FF840588A011D3C80400B6C0250600B3260FC19A08A4309003B4A3162E18811946300022944007D4B0051010C0803718A00A05E0021326600A2AE48201C2F8853158C30F625C41150E70A3140E80802F3833151F5DC1235050851118511CA180001348B3842E04200576C4033058CA0F3B4420045F6041090CF0060464A01694F8CE0A22508A7132403906C84108B8C00524AC800DA860403857CA1A3C10E30E2250C106484900014471002E00E196C4E982508CC08DA9A0001730318D4B84430068F9852F8A41210CF1C319677046515210051DE060050218C21CD0508A27E46020AF98C0135CF0159308C615F048811A16A18122A023183C826D0392168C60FFFC080E99F0C1060C108A2CA8EF0B323880684B90806188810159C02B0D6830885DA4E303ABE08303662BA8EA26CD423DF00703827B802B944107B7C884073EB48B2794E277CBD8C2135AB18B3DFC800A89B0053B044009EA6ACE17BE0886A078D40361F0831FAD8000FF44B00B073820055718412908508637A06114C2F0450E1AC1850004010EB0588414A83B3C87F043BFF8520C6817408904D82143C380887FFFCB0C66FCE3003CF0821722608113B481BA3FFA872F5295C95F70220C0838462B8691D25F18B91FA5E207328C6C6489E8A0C26C00DA07700C911DFB43206B39C51F8D40861CF1C3478CCD2342EF20AC0004420058A0F243AC8CE52DB9E0FF0B25688511BCCCE1060443CC097D410002408A57F862B67904F1F08C5C8477288115ACC84385AC2B379A64F01F3210052602708B1D870922204E1A0866B08F78D8230D69E8410F66500C465FB7269A18E73FEA81894DFD39C510E1F03F6A700D0EB8E30285E8400BB071032F995A69AA698C0EBC8009BCF0034CFED806063A408849385B021D504005A2615FEB769826C02042010280171CCFE00F12200420C6ED6C0E70E00FDC2086A953A5C7A2ECC02A5FDE6F3ECA718171DB9B0312B086AFD7ED0F3187841876B04AA693F60D05344101E62E4435ACD1841AEC7BDD392E68971E126FEBF203042DB881C6FDB1E916CCA0DABFFE511EF19B5F900B6A860E14D95C8A4BCDEFFDD696471069B9CC67BEEE6B0704003B, N'pedal_small.gif', N'274c86dc-439e-4469-9de8-7e9bd6455d0d', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (945, N'Front Derailleur', N'FD-2342', N'Silver', 40.6216, 91.4900, NULL, CAST(88.00 AS Decimal(8, 2)), 13, 103, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'448e9e7b-9548-4a4c-abb3-853686aa7517', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (948, N'Front Brakes', N'FB-9873', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 102, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'c1813164-1b4b-42d1-9007-4e5f9aee0e19', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (953, N'Touring-2000 Blue, 60', N'BK-T44U-60', N'Blue', 755.1508, 1214.8500, N'60', CAST(12655.16 AS Decimal(8, 2)), 7, 35, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007477789EA4AA3B41442E3169C1C2C27877AF196EFBCACADACBCBCCBABCBBFDFDF17573F02F63EFFCFCFCF6F6F77182E2EDEDED65686954595A3056F6FAFAFA5072518E8AEDF5F4EDF8F8F8AAACAC27349B5471F0506AD4B2C0AFA7BCA1FEFEFEF6F6F95D6263B2B8ADEEEDF07C7DAD2F30F4A1A4A4575C6BB2B4B4201A70BEBEBFD9DAEEC0C0D9E9E9EAB8B5EBF4F4F4778876495BEC4B52548282847D838331383AF2F2F241474C929395445BCEF1EBF323272AE5E5E60E15F1999C9C8A8C8B525A8F303ACFFFFFF82B32371A2227F4F4F76D7272D3D2DC0044FAF2F2F36371DD8D95D084A87BC4C5C7282D32D9D9DA12181C9C9EA3C0C1CD8D93934A54B2D0D1D2BFC7BA3B449DE0E0E1B6B6D7FFFFFCEAEAEBD5D6D6969998A4A4AAC6CAE70C1317484C518D8E93A9A4E9CBD1C63E4ACD9BA8984B70A7174DF6195EFCA7A9A9AFADD9F8F8FAD9D7F57A7D7F161D21929B92E1DDD4F9F6F6F0F0F0A4A7A4B6B9B7CAC9C2F1F0F2024FFADEDEDFE6E5E8F4F2F497908D2F74CE8C948B6B6D710222FBABAFA8CED1D1E9EBE1838F81B8B7B9ECE9F69598B9AFB1AFE2E1E3B1AEED8689896A8595DAD9DBF8F8F1848689B3B0ABEEEFE801080BFFFCFCD7D9D6A8A8F2837EBB003CEB003DFE949598B7B1BF9FA39FE6E3F3C6C6C164706C1628F6F7F4F5ECE5F9FDFCFEDEE3E09C9B95060E11F6F6F1204AECD8D7DAE9ECEAE5E8E6F6F7F4F4F7F70043EFE7E2E2D2D3D3FDFDFDFCFAFDF9F9F9F7F7F7F2F2F0F4EFF3DFE0DB1538FEFBFCFD9F9FA1C8C9CB1E2121FBFBFBECECEDF9FAFAF9F9FAF1F1F3D3D4D4FAFBF7EFEFF0726D6E657691232EE4E1DADCA6AEB8F9FCFAC7C6C87E91920201D96681B6CECED0FCF9F95F7595747DA4717074D1D5D3D4D3D66F838ED0CCF2183CEC798B956A6F8E6868A2DCDBD5697186E6E5E1DADDD9C8CAC5DBDBDCF3F4F4C3BFB8F3F3F3BEBEFEF3F3F428303131392E1F42D70F62EDEAE3E4A9A4CCF2EFECD5CEE0E7E7E8C2BEF0A8BADE9D9CEEE4E4E5D0CDC6505152EDEFEEFDFEFE9FA0D7F5F6F56261F2F5F5F6F7F8F9918FA88E98B5A8A8ABFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33A11B8389C48B1A2431F35DE14B2C8B163C50619C0EC9090C1A3C99308B948901162532A5918500A8495449FCC8AA8C480734700472E4A9D24520CD665CA8F198B7EB811A362538457371DDA8025B05E1E4434FEC8ABA82C971A7F2670DC70428F5E0D1FF8A256A4F0E41E800427558409234F8550B515A518A3D2EE64AE1A51F076D462090F20341B2A85D26211D60C31823BC6E180A7C4063C78105732C4D861A230CA225B5CA5C9C0AD185CDE3D6080070962453A1A1EC8D64B74C56DC87A9430C04181161DAA59BB5602BBB3C10F87FAD9A6D8E200B72B16621878A040E06F17AB5B9F52E2A296C122D1582CFF7708ABC9216D0584BC9B60608910825A0C6167DD6ABB0B53023F203A816A7C432C645CC10F08FF6831461A0C647190169C28F2401A485C62CC035F38C28106E2F95750035409C40B024BF4F0C5405A586000034724C460251B7CC20C33C694D003391AFE030E1D6E8420810411B8910B24C8005242110461B0006FEE2CA4451E31008284906D184401178864F2C80C337451481E1DD511821344ECE08439643AB1C32E6700928F418648A7842309C931067D13C4C34A4110201282006012E16798358480484C0E0513C22E504031C40D37C8E0A800430CD1470F034062501BEC3DF05E41B5C433418465DCF3CC86FED033C41B50103144183BCA70C31044BCFF11860A0D65600E146F044A431775A84040028FFC71421ACCBCE1C40CB314E4027BF718178A05A76072490E6B5457D0167F38816A0D7F7851080255E892801A3F44700311503CD280425120BA83111938E340B21F08E40F31CD6092C22E6FEC20CD0BF0C583200B5AB4B1001AD2E690C5A605E5410FA24E00D0843C1F50F00F2CB17C300C3B76FC104629A518C10B4219202A4017CE50C04B030EC0320B87BDF0D1C7359ACC00A6BF160F24C4910C2C700B26AD70C002C305E97103185008E0450BFFCC82812C0DBC0C8B03FF14C1831A12802109000755E1041802D0210F05147C30CE2CBCCCF24103C32030DD3FB2FC00EB0E3814E4403E067C628C120710FF5DD02F11A04A0F02933CF3022C77C84201D5BC604041B2BD14120218A5F850902CF480614E2EFDFD334E03B2CCC18B031FFCE2083CE9F4A58F0D8F80E984330571225D19D6261445AC371020D00BE350F0C20B8FFFF3CB2F0EF07287F019C8500A1194104407AE3334F2CF1C1F7C508EC60E504D81230F7020C438360D23CD9921AC4B903513A4B3807106E921C01B437871B11C0DDC6103062360C0C63F4F17713806E1B8034624118281F8E206A5A0870AC6F1015ED8E01FBC2882037AB10F08DAE20AEB10464C1E578530F4AB0905D182222690060B24440C6F78030028A00F0CE0621693C8DE162AF80F07E86318BCD0873EEA458D08246A1A02690218FFDE2006A68D0316B21807FFCAD10B22FDA20911C002556471BC7F3C62076F9086414A940634B8E020771040D29AB032E06100141F90832BFC418016FC620BFA78812C2E96040798A0065B13080D24718304D4040336681CD526988817B4200A38D0430D19388B5938C383021886417666805344A9208548A1115496BD61CC620FA0F8C731A471033114A105B3A00A059230320448A01435509BF222F20FD04D3009896B4013501085000040028510053E7C97AC72B8214C20340830A43301437C801683A8C73F68B0BC5C1084021018C13020908110486208A8C8D93E8AD0000CBCC01DC784C234EA310430CC001C4E93052F78018C61F4A209096881344E10FF0109B821114518863E66A143139CCA720759410CD0A10D116CC2075168C21F042080045C20128EB880301470816E04C20F3030820C7090AC59CCAB1CA9FC4026CC510A4480038B38D842037E810193CEA21C7950813322300401D4E0062150463930B03281A8408C3348C8174250012674C00A3EF0C0390670850258E2AA562D0009B40184AE1603001128C4305AD00B60BC401FE578C11D25318557EC820899E8052C3A34904454C11FFD5AD50D50503A0C644F8204B80114B886105D9881103070AA09CC200122546019CBC04635AAC1084640030857D0408CAEE08945C80318E5700051EB85023CD2800B6FC5813CB2A74307ECA31C5C2884099CE00469FFF8231385152C610D020B1308A2032085830F0251810150A11967A00215CAC0DC2038F70A572841103C6182445CAC71FAA8893F0420091AF0C009E962DADA1AA08F5E6C411E09104417DCD0045F0D830D6CC0C0D3544600A4228402514800220811063F74C0031520C209A221063844C10B7478AA08E0008310C8A0023050012AF4415781FC85ADB21040C8AA70D67164730FC368403D10D1845734411773D0432F1CA0B2062C0E11358082350FF20113A8C1077558841A9CA10BEE8620120581C524FED1844CA080001948C03D5119C781BEE08A9250C33F2220090536ED0E64DB03555EC0056A54810031C1C01DEEF002F9C2621C3E085368108200136420FF106EA04306BEF107490840103A844503C631C70FE8C2C6E3720616B80081615080436C0901144A01BB0C94C2095DE0814D6661837AE9A3055B10881EA8F78F16CE6B9EA83042D280911058D421105D800301EAB00A4480810819A0DA2C8ED83459E842060848C42B54E00E0CFCC206662D072C12100649D4608EBDD8011822A00BCF29F1037770400B00D6805E8C80489E8B9A3E2870D4C12EE4170920C4263AD1020AE861089230020FB277B1DEED21113468DA3008058C33BFAC058BC0E36EDD606C1C60816A0D10DD1C80A1BD1740E0A617AB342CA841837E355B21F508C43760310C2CE4211146F8A91A482D0A9BFCE20E4708411E3EB06252F32209FFFFB8032F54E043460F040BCA26899E87313508C8C22630014623B5E78011C0180A1160082536010182C0820B3E8D0001AA800A7724421E18788424DCF08B170CD526FAA09A331681EEA013C407CB7B8B123100BED1D5DA01C21EE83F46A00209C04F7AA56E801AE87010372CAF0BE1DC421E2EEE0F23A0C001B20086F57ED1B43C6CE295E6484541EC118247CF20017BA0300327CD32DFF14F0F0408410AA5AC903920E207A49883419270B41D6C02157BA821040512351B7E00E58DC885A2A190CC82D403814E7043065C31D34E771A1636C140121AA1A7142675211FB08537EC408B833C6108A5D8415B2140F8B450B8654462BB09145D0ABA23640BF4589EFF0448218E634080D445F8003078F00A14FCE07D6F9841BD50828076BEE10F22B0832D98568E1ACA411DBBF47E48B3090BE10000000560E00412B008265008F360079D80083EE00661802E3B805037F1041F03064360047E306E2AD009900009814003324004A5600E70D110092058A5902B37400F2BC127A8B20311500582310B3FC052CB230032D02A7CA235446004AA807CB8400184B772005003940332600006BB200033808351513DB04001E1D00058300537F006A520096008866050036E2008C9E00B0D307F347685503310F59001601501113003083047FFB03637A167B2800FF5B005A9500FA3800239B22312E0095D4006AAE00EAA900AAB000B6A04F80F0101003B, N'julianax_r_02_blue_small.gif', N'f1bb3957-8d27-47f3-91ec-c71822d11436', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (954, N'Touring-1000 Yellow, 46', N'BK-T79Y-46', N'Yellow', 1481.9379, 2384.0700, N'46', CAST(11398.72 AS Decimal(8, 2)), 7, 34, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'83b77413-8c8a-4af1-93e4-136edb7ff15f', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (961, N'Touring-3000 Yellow, 44', N'BK-T18Y-44', N'Yellow', 461.4448, 742.3500, N'44', CAST(13049.78 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'5646c15a-68ad-4234-b328-254706cbccc5', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (962, N'Touring-3000 Yellow, 50', N'BK-T18Y-50', N'Yellow', 461.4448, 742.3500, N'50', CAST(13213.08 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'df85e805-af87-4fab-a668-c80f2a5b8a69', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (981, N'Mountain-400-W Silver, 40', N'BK-M38S-40', N'Silver', 419.7784, 769.4900, N'40', CAST(12142.60 AS Decimal(8, 2)), 5, 22, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007A7B82383B463D404CCC2F2EBA878ACDBBC5898B94F4E7E5B903029A9CA4E9F4FD432F61F9F9FDBBC4CFF2BABDE2E1EB686974CD6E6DDBDADCC00A0A89666D912D30F1F0F9E3E2F2A6ABBB9BACBAEEEEF85E6169AC0101F1FBFEF5F5F5D4D4DA4D515CD9BFBFEC9594DDDEEBF6F5FD444953E6D7DAD8B5B6E7E5EA42444DFEFEFEE9E8F5FFF2F2EEEEEED0505050545ED1D2D4A4A5ACFCFCFCB3B5BA95999EF5F5FAC1C2C5EAEAE94E5365EDEDF66C70787F1114F0F0F19A010161656FDDDDE0F1F2F453586355556172757E404552EFEFF4B2747784868FDBE6E9A7B2C0C3C4C8DE8887E0DEE77D818ADCDDF2A04E4ECD8486FAFAFAFCFCFF484C54E5E6E6F8FEFFE8E7E9CCCDD0494E5ACCC9CCF9EFEAEAE9ECC9A5A6BEC0C2F8F7FCBD464795768A860203D1CDD2F8F8F95B5961AEB2B7EAEAF7EAE9F2AAABAFBBBBBEB0AFB5C31212C8B5BAB314148C9198F1F1FCE2E2E4562F3FA35458B3393AE1E1E2D1D3E378333CB3BCC4D00503A51418EDEEF2D29A9B7C3C65A2787E8A1919C091959F8994C0C8D1BF2424464957C6C7CAECEBF5CBD8E6E8E0DFE5E4F7E6EAF94A4E6234333F5B5D679A4546C0BEC8ECEBECE47271D71413CECDDAE7E6F3A0A1A7F7F8FBE5E3E5B2B2B6D6DBE1FCFFFF9A95B5A62322F4F3F4EBE3E6E7EDEDF4F3FEE6EFF8AA6868565C67FEFEFD70191EB6B8BC554B55CDD2D6B72B2D5157694E4671CC0F0EEBA6A6A53C44FBFBF9EFF7FBF5F3FAABACC8A6ABAED6D7DF9A1516FBFBFBF3F4F53F4658A19DA1EEEFFBFDFDFDF3F2F2484551A8A7AAE4E4E7B1B7C4FDFCFDF9FAFBEBEBFDAB0D0CF9F9FAC1CCDDF3F3FACCC2D3B76B6DB70D0BAF1F203F4E66A96E77AC3230E7E9E8BAB6C0A64851B1BFCAB7B7CCBA5E5F5F4673ECECF8FFF7F7F8F9F9BCA3A6575486E4E1E37A5F698E8BB08686A8DAACAFA65C5FC6ACAFF9C0C0C9C8D0BDBAD6654C56FAFAFEE8E8F9FCF9F9DAD9E5D6D9EED5D4E8955C62FDFEFEECECEEEBEAF2EBECF5BA6D71C2C5D8C6C6D3DECACE91182CE6C9C9EBECFBDD3738950B0CCDCEE5E0615EF7F7F7580E32D6D7D9595F6FFFFFFF21F904010000FF002C00000000500031000008FE00FF091C48B0A0C183027559D987B0A1C387102346A4426303218918336A84C809970F32946A6D1C491223311B8C02A4B854B2A54B8454700911B0A8D7CB9B3777A98110A0C4862332700A1DA942C53F1A2920B819CA74A3357D150000694A55A28855D03E6084D3E4488232577EC0F1B5A5C598AA19590C401021238C040020986204C0C011376E9AC0406B154F8F0A0C35B64BA3830C990001782D4AC037E23D043BC27CCB3412C02208096CC44063A5F1C3707886F9491626D4462B64045CF41C31933EC86192AD096344A3810000584734A6895E0F5272F04D985D5B622C4553E0E87EE8651CB5057142FC23D063C28430041AB21B2829DB8223CB21FE765BB0805B0E8146AA5FFFF370048405AA309C0D8F70940B7EAAC631109829548F55D771E1D03C7C2CA0891EF43524021E1C80910841327CF3DF75D221040902603C409F2E2DC0F1031D2D04F54F389184668241FB3CF11F64F31CE4C004AD04D6900AFBDC40852F2D1053920C30D0A083282F04F1C20643D0C0C63D78203007429C34B2A21F2712A4052A1C78E39033A51830840F5CEA30841B36F090912E5DE880052F53F042041102A049440578AC8200140751D64205FF71504127042D81000782B072101D47BC00C20B42249A68102080E003252D44E4CC100220CA0B620108A0A94A03ACB24A0FE038D4099EABE819A9407B0C93CC9F2E1C30900CFE318030482AA960B1E6206C0A30881064386AC343304C11C00B5308B0012E5DCCF283045724B04D24009282C5AF0D1D82E71A3D3422E30973A8CA411B22FCE3010002A482C32D38183083041F30AB0600530CC288102550D2100C02A4202C1936701285312430F089071D38006D188BF4A4844326F8D103B67288F8CF397B34330CAB14DC92CA2D8350A2E11B2A98F3CF1BBA5800C71183BCF04209B81CE4CC14298010800163F0E0410B2404FC090FAF4092240588A5F0820403FAC101B6A611C402149BACCA811DB70C81CE3F35BC934B39930063412D2B48C180182F60110416651804400041A480CB2752EC822309C648F1060F123CF6C53F332C5242FE094344E15008F81C4D9B410704B706027948F7892E66D8C3801952E442420E394821C5074204290AD1031112000829E4A6CB2424B4F083314594ECC909917050CF2B5EF41240B1333C7442181C5C870D12ED0C648B288B9032CC04082C714E150C20227739D5688008311A68F0CF15538882456E03E9200016643C8202432B9040050A16A85008122220304D152BFC4382F644F870CD435CE0D38A1A19249184125AFC93C0228AB8451F86C1010E0CC001FF1006034820050B20A21A66A8C13F8CC180040800665710880466278018FC430670D8C53F34B082593CC00A75E8C73D9261825C3C4E0557204209540311706000101488C11130908603E82080FE3AF8C23090F1050E200012BB00C5166CF1865C5443471630C33FDC21841408003CFF90DD145EF0884F54A3165688540EEA30832E34800008F842077230822D58E1113A98E1521ED2805F80811C4DA0C11DA2218E417089166D38810224B007542060007F3004213EB09F11568304E650010D2AB5013135616F0068C10D7C818E4258C20A12188113026188224EA303E8B0C22E744409011041070F91C11D32E0061DE800023E88060D1611871E08C204AFD0860430210623B4614E8EB843062139894958800157101B0860C08E2180CE83FBF0000FCE800E71A881000460063C92D1032380A2055B4081366E3083001041149C70C8281A700A380C611006FE304534B6410A0E0CC31B9D30010A26C18464B2A10203F88601D470016138D10B3590C21636300522CC601F3E004109D0F08633E4C0026FA8463A24210804B48178F80841EF08D20F0194E0052B6D0826EE708A212CC20D81A08432FE348C9EB641104045C51C5AF10554E4010CB1A803037370013368E01D3E28560CAEE1032C94A06C05A10249D700054164EB174C28840672B0826A882353307D482D02110D0AD8210381380005E210070A78630F50C86B04BE3087397CA10243C50013A4508EC25ACE0B10A8A8BD2090827A5960052B98C4192EE0847C7CA10DCAC8C326708101755CA008B0F0C23F6CD013514C6546FF080612D6410A5C88A1166E10FEC0329AC09F2A744001C5F84519EC400B54C8411A93286C256A40DC2D54B583FF6842628EA08B604054034E70023AB2708C0214200BFD40011310E1841514820434E8890E74211123EC800207F0801A18E10F1DA0400385B80022CC700171606008A4B0432066610F73E4C21835A8842E3E602822A4E11F3158C42036B085E65D601239D0802B30910F187C201E08F240276AB0020BFC03026B324044CE0288381C82BC3154840FBAF08011E40016D5F80710A491004A1C6116A3582074DD718672A0A10458788133FE21810B0EA214FF3083056A2045068C601640E0010C1EF006715982180C90440AACD78588DCA017B7EC82723CC08841DCC200240002FE13D07183225CA0A00928C50348F00F0BB8039224800504402080210C84B15880C00A18C080F679A11A3F7880148801070958E03C8CD6C5114A10041FC41322514883126880867E08C40044C0813FE8F0090F1761120FF8C15BE4F1833378B8104510581A88F00201D4CE28695844104A40837FAC4017C43003101CCD801AD1C10A243043502E51027F4C411618098A0C6A6114220F42113838C27E2C20E11114610B63708715AC6081577B8107612302233CF08F6AEB406825F020D7CA41072A00380A8F6881255A500E12C02008A208820E4E5B9249E220153110980C7C31897D3CE21F39E0C10F88910363D45907A10E0092FFA10BF2D2A104314B0125FEAA7C83B2D4C002BA78C42E5AD00E60282173A97841065DC2091F104111A94800305A00040D78A01D25F3C0161EA18234EBE073B81948C7C9EB39970660083078442D78500E0B8C22443CD882014020248BE244022040572A000003297881133C68A0C389510B25604100420840250752946A7721058B78FBD32FD18F74D6A21F363842E6368003B20D05062F40170E82700425D0C11652300631FAF10C9E603B003EA08243FAC18845707D6F5C17455583CC0846F864E63819C53FE800010128626C290340137C10042204000BFEC081000020A6877820012F58440A78D1A84194800853889728687083AA5C23564408B2280A4F0410043CEC1B9801790D8152948ED7821841B9011A74003A5E0C6210530001046240078E47A116DB77892E6A110562F8CD1709D8C09A88708BFD634107653015ECA00BD546772AD07132507F63000CFF700DCE900569800668900612303FC0400C6C077F05781075B781DC377FC4B00FB610517A700AB2E00647701765300B9057092E687F324080FF101000003B, N'hotrodbike_f_small.gif', N'0a72791c-a984-4733-ae4e-2b4373cfd7cd', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (984, N'Mountain-500 Silver, 40', N'BK-M18S-40', N'Silver', 308.2179, 564.9900, N'40', CAST(12405.69 AS Decimal(8, 2)), 5, 23, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b96c057b-6416-4851-8d59-bcb37c8e6e51', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (998, N'Road-750 Black, 48', N'BK-R19B-48', N'Black', 343.6496, 539.9900, N'48', CAST(9130.77 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'3de9a212-1d49-40b6-b10a-f564d981dbde', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) - , (999, N'Road-750 Black, 52', N'BK-R19B-52', N'Black', 343.6496, 539.9900, N'52', CAST(9262.31 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'ae638923-2b67-4679-b90e-abbab17dca31', CAST(N'2008-03-11T10:01:36.827' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[Product] OFF -GO -SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] ON -GO -INSERT [SalesLT].[SalesOrderDetail] ([SalesOrderID], [SalesOrderDetailID], [OrderQty], [ProductID], [UnitPrice], [UnitPriceDiscount], [rowguid], [ModifiedDate]) - VALUES (71774, 110562, 1, 836, 356.8980, 0.0000, N'e3a1994c-7a68-4ce8-96a3-77fdd3bbd730', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71774, 110563, 1, 822, 356.8980, 0.0000, N'5c77f557-fdb6-43ba-90b9-9a7aec55ca32', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71776, 110567, 1, 907, 63.9000, 0.0000, N'6dbfe398-d15d-425e-aa58-88178fe360e5', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71815, 111451, 1, 738, 202.3320, 0.0000, N'810e5535-2bdb-4d83-b26d-796e5cff1a1b', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71815, 111452, 2, 835, 356.8980, 0.0000, N'daeb0cfa-807c-46ac-8458-ffccef36b5b2', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71815, 111453, 2, 874, 5.3940, 0.0000, N'09f90eb4-24de-4812-825e-45520602b437', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111454, 1, 953, 728.9100, 0.0000, N'b8a9720f-1f6f-4fe1-ad4a-ac70d4c905bd', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111455, 1, 954, 1430.4420, 0.0000, N'edc86c40-ecbd-45af-912b-ae37d177821a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111456, 2, 715, 29.9940, 0.0000, N'9f7406e4-25c9-431a-9891-f419e3f5253d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111457, 4, 712, 5.3940, 0.0000, N'ee2ce69c-24eb-47ff-ab6c-bd5aabdcd6e9', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111458, 3, 883, 32.3940, 0.0000, N'affbb13e-55a8-4fa8-9cd7-809b1816c30d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111459, 1, 961, 445.4100, 0.0000, N'b4e5503b-0fd8-4f2f-8675-e899db180280', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71816, 111460, 1, 948, 63.9000, 0.0000, N'5f4f0aa9-acc6-4ef7-ab68-17d0748a5512', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71831, 111790, 2, 869, 41.9940, 0.0000, N'73bc96fd-863b-441c-aeea-25387c2d17ac', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71831, 111791, 1, 782, 1376.9940, 0.0000, N'a5f59647-47b7-48fc-9000-0830e623981a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71831, 111792, 6, 867, 41.9940, 0.0000, N'14f64fdc-4405-47b4-965c-b4f506515e8a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71846, 112149, 2, 936, 37.2540, 0.0000, N'7232fd67-8db7-42f8-ad0d-6185299430f1', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71846, 112150, 1, 739, 818.7000, 0.0000, N'9a32772b-9b98-4b22-aa2b-f4e5ffd2a23e', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71846, 112151, 1, 984, 112.9980, 0.4000, N'78557d82-1267-4f7c-93a7-e53ae2a3a85c', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71846, 112152, 2, 981, 461.6940, 0.0000, N'3a26f840-c413-4bef-aeff-b8d6218698e6', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71856, 112331, 1, 962, 445.4100, 0.0000, N'62b3d72f-3586-40ac-a24e-a6f07eb7ca4a', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) - , (71856, 112332, 1, 945, 54.8940, 0.0000, N'4733918f-da34-4d30-b5b4-32f7537e609d', CAST(N'2008-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] OFF -GO -SET IDENTITY_INSERT [SalesLT].[ProductDescription] ON -GO -INSERT [SalesLT].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate]) - VALUES (8, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (64, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (128, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) - , (209, N'Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (513, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (554, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (594, N'Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.', N'32b82c92-e545-4da0-a175-0be710b482fe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (627, N'All-weather brake pads; provides superior stopping by applying more surface to the rim.', N'ebf2f0a4-89f2-4d31-be48-d8fd278f3024', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (630, N'Wide-link design.', N'28c4682c-38b2-4b61-a2ae-bcac7c7ce29b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (647, N'Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.', N'7ad9e29f-16cf-4db0-b073-cc62d501b61a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (661, N'Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women''s version.', N'd61c9d54-22c3-4563-a418-0b9dc7e03850', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (848, N'Lightweight, durable, clipless pedal with adjustable tension.', N'03acbb19-749a-48a1-b77e-5d2a48e8dc3a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1020, N'The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.', N'f4c70a6b-bbe8-4774-9d75-393d3f315e9b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1196, N'Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.', N'c65bee64-4dba-47ec-91cd-31356ba379e1', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1205, N'Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.', N'58d86ede-0519-4263-a264-a2b5b01a6c7b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1208, N'Thin, lightweight and durable with cuffs that stay up.', N'9f436663-525d-4cc2-85ba-47d20bcea0ec', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1210, N'Traditional style with a flip-up brim; one-size fits all.', N'66f84b21-1a43-49d3-8883-09cdb77fffef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1211, N'Unisex long-sleeve AWC logo microfiber cycling jersey', N'12f60253-f8e1-4f76-8142-6232396b8f17', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1487, N'Adapté à tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable.', N'5c1dab3a-4b31-4d9d-a14f-3cb61949b79b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1488, N'Ce vélo offre un excellent rapport qualité-prix. Vif et facile à manœuvrer, il se conduit en toute tranquillité sur les chemins et les sentiers.', N'79065ec8-2080-4120-a4ea-bfa7ea1f1f9d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1490, N'Conduite sur terrains très accidentés. Idéal pour tous les niveaux de compétition. Utilise le même cadre HL que le Montain-100.', N'2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc', CAST(N'2008-03-11T10:32:17.973' AS DateTime)) - , (1493, N'Vélo d''adulte d''entrée de gamme ; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons à blocage rapide.', N'7943455f-3fbe-44c0-9ac2-7ee642d3944b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1502, N'Vélo de qualité pour tous usages, doté d''un bon niveau de confort et de sécurité. Présente des pneus plus larges et plus stables pour les sorties en ville ou les randonnées du week-end.', N'e5288050-bc5b-45cc-8849-c7d4af2fe2b6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1503, N'La selle rembourrée offre un confort optimal. Le porte-bagages nouvellement remanié offre diverses possibilités d''ajout de paniers ou de sacoches. Ce vélo reste parfaitement stable une fois chargé.', N'28b132c3-108c-412d-9918-a8c9297dfb73', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1504, N'Voyagez confortablement et avec élégance. Confort et sécurité maximum. Large éventail de vitesses pour gravir toutes les côtes. Sa fabrication en alliage d''aluminium haute technologie est synonyme de robustesse, sans ajout de poids.', N'e3bac4a6-220c-4e5e-8261-51e08906c0e8', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1509, N'Patins de freinage pour tous les temps ; freinage renforcé par l''application d''une plus grande surface sur la jante.', N'5ed8186a-6049-42b1-b1b0-3b1f899c538b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1510, N'Conception liaison large.', N'64723c0c-09d5-497d-83a3-4561818a8f1c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1517, N'Doté du même alliage en aluminium que notre cadre HL haut de gamme, le ML possède un tube léger dont le diamètre est prévu pour offrir une résistance optimale. Version femmes.', N'f3cd990a-b70d-43c8-a075-934a3e98b5aa', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1537, N'Pédales automatiques légères et robustes avec tension réglable.', N'6a60e7f6-a5cd-4e7b-8612-9340e46bf66d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1571, N'Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un très bon rapport qualité-prix.', N'e95e1259-b822-40ee-aa86-7de9f9e0f0ea', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1587, N'Cuissards résistants à l''usure pour utilisation intensive, doublés à l''intérieur en Spandex, sans couture, peau de chamois anti-bactérie pour un meilleur confort.', N'e11a3c2a-b074-48f9-8226-16d65c2f91c2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1594, N'Maillot manches courtes classique et anti-transpiration avec contrôle de l''humidité, fermeture avant à glissière et 3 poches arrière.', N'fb2a5474-9d83-4a9b-bbbd-8ffc9036866e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1596, N'Fin, léger et résistant avec des poignets qui restent en place.', N'31d4905c-d37c-4128-bcff-4a35da9c1bb7', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1598, N'Style classique avec une visière relevable ; taille unique.', N'fb627d1b-2933-4fbe-a6a4-bf69f2814ec2', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1599, N'Maillot de cycliste en microfibre avec le logo de l''équipe AWV, manches longues, unisexe.', N'4aae6d4f-8320-4f32-99de-bb3b1b13f1ef', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (1600, N'Orphan record to deletion test', N'4aae6d4f-1111-4f32-99de-bb3b1b13f1ef', CAST(N'2020-06-01T00:00:00.000' AS DateTime)) - , (1605, N'Chaque cadre est fabriqué artisanalement dans notre atelier de Bordeaux afin d''obtenir le diamètre et l''épaisseur adaptés à un vélo tout-terrain de premier choix. Le cadre en aluminium soudé à chaud présente un tube d''un plus grand diamètre, afin d''absorber les bosses.', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [SalesLT].[ProductDescription] OFF -GO -INSERT [SalesLT].[ProductModelProductDescription] ([ProductModelID], [ProductDescriptionID], [Culture], [rowguid], [ModifiedDate]) - VALUES (2, 1210, N'en ', N'623741c2-74bd-4ce1-a554-1fe8c0606b4b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (2, 1598, N'fr ', N'6d7b1148-6159-4ec5-b469-d106ffef6ca5', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (5, 647, N'en ', N'56b6b980-c1ca-4545-a5ba-edc4c14bdcf9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (5, 1605, N'fr ', N'6cc243bc-b8fa-4bd2-9392-8ead11c55406', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (9, 1020, N'en ', N'14c44869-3696-4b30-929a-3adffc8243de', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (9, 1571, N'fr ', N'649557cd-028e-4a1f-b5d5-71c09a6ae268', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (11, 1211, N'en ', N'03c12575-f1bf-48ad-a483-d1185d24ce2c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (11, 1599, N'fr ', N'000aa434-8c55-4a8e-a850-9ae32edf537b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (17, 661, N'en ', N'd91f0507-baa5-4b44-a0e6-a6acef29f066', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (17, 1517, N'fr ', N'87365776-a0a1-4580-b080-b18f21d8cb1e', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (20, 128, N'en ', N'f57a0614-ec87-4f51-ab3e-f889d37440f6', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (20, 1490, N'fr ', N'70b555e3-ac30-4a42-8959-339738dac806', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (22, 64, N'en ', N'b301b583-2d7f-4c19-afa9-01d142f8ae2d', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (22, 1488, N'fr ', N'a73f5bf1-ad79-4703-9bfe-5f6f87705516', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (23, 8, N'en ', N'397fa9e9-eef0-42dc-b27a-5b9a717bb237', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (23, 1487, N'fr ', N'a96e7527-4414-43a3-b52d-26a57d0ae88f', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (24, 1208, N'en ', N'2d4d6267-b8d4-4345-ba19-9334b6bc7055', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (24, 1596, N'fr ', N'984a725c-9095-47e3-8a2f-8be4ff45d2c0', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (31, 209, N'en ', N'c44f974f-ffb2-44fe-abac-fab53e7a896a', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (31, 1493, N'fr ', N'67a11e38-08f8-43cf-a6ec-b832a9b34d58', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (32, 1205, N'en ', N'7dd01ecf-d739-4fdf-8574-aec55267323c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (32, 1594, N'fr ', N'71123dec-1396-4c4e-80c8-3efd3d5c13d9', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (34, 594, N'en ', N'49ece470-9fdb-48fb-9d80-46ae0e3ef8fc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (34, 1504, N'fr ', N'c7deacd9-f36d-467e-9159-ea8e0b705dbf', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (35, 554, N'en ', N'8d57b85b-1c3d-4773-b326-a62fdd1cd378', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (35, 1503, N'fr ', N'220652e7-47ee-4f99-9eb1-f3597520ffbc', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (36, 513, N'en ', N'f35f7fac-4479-4748-81d1-7adec2de9917', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (36, 1502, N'fr ', N'5c1d62aa-c221-4090-b7de-15c5f976d379', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (37, 1196, N'en ', N'46f1f2f9-33dc-4384-baa9-9c70d83a44ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (37, 1587, N'fr ', N'2691d6fd-b45e-4604-b2ef-61d5accf47ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (63, 848, N'en ', N'9e7855e4-3c99-460a-bba5-9b45486b8fbe', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (63, 1537, N'fr ', N'62ebf8f0-bc2c-4726-bca0-2c7f4aee336b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (102, 627, N'en ', N'5b74c2c4-d71a-4d8d-9ddb-e376816fbf21', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (102, 1509, N'fr ', N'a72f9088-ef86-4fd2-aa13-efbb1aac404b', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (103, 630, N'en ', N'035f5b8e-7728-4412-ba63-0cea7cd79a6c', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) - , (103, 1510, N'fr ', N'83b25658-4554-4679-ae8d-f31a506356eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [dbo].[BuildVersion] ON -GO -INSERT [dbo].[BuildVersion] ([SystemInformationID], [Database Version], [VersionDate], [ModifiedDate]) VALUES (1, N'10.50.91013.00', CAST(N'2009-10-13T00:00:00.000' AS DateTime), CAST(N'2009-10-13T00:00:00.000' AS DateTime)) -GO -SET IDENTITY_INSERT [dbo].[BuildVersion] OFF -GO -DBCC CHECKIDENT ('[SalesLT].[Address]' , RESEED, 5000); -DBCC CHECKIDENT ('[SalesLT].[ProductCategory]' , RESEED, 5000); -DBCC CHECKIDENT ('[SalesLT].[ProductDescription]', RESEED, 5000); diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql index 98aea4e..5469d59 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql @@ -1,5 +1,5 @@ - +set nocount on --USE [master] --ALTER DATABASE [AdventureWorks] SET SINGLE_USER WITH ROLLBACK IMMEDIATE --GO @@ -18,6 +18,7 @@ --================================================================================================================ use [$TARGET_DB_NAME]; + GO PRINT ' ***************************************** @@ -45,7 +46,7 @@ SELECT @sql += N'ALTER TABLE ' + obj + N' NOCHECK CONSTRAINT ALL; EXEC sys.sp_executesql @sql; GO -use [$TARGET_DB_NAME]; +--use [$TARGET_DB_NAME]; GO -- ----- DELETE FROM [Sales].[SalesOrderHeader]; @@ -154,6 +155,10 @@ DELETE FROM [Production].[ProductCategory]; DELETE FROM [Production].[ProductModel]; DELETE FROM [Production].[UnitMeasure]; GO +DELETE FROM [Person].[CountryRegion]; +delete from [Person].[StateProvince] ; +DELETE FROM [Sales].[SalesTerritory] +GO @@ -187,6 +192,65 @@ GO PRINT '--------------------------- Insert records into database. ---------------------------' + +GO + +INSERT INTO [Person].[CountryRegion] ([CountryRegionCode] ,[Name] ,[ModifiedDate]) + VALUES ('GB','Great Britan', '1 May 2007') + , ('FR','France', '1 May 2007') + , ('DE','Germany', '1 May 2007') + , ('CA','Canada', '1 May 2007') + , ('TK','Tokelau', '1 May 2007') + , ('AU','Australia', '1 May 2007') + , ('DD','For Delete Tests Only' ,'1 May 2007') + +------------------------------------------------------------------- +GO +SET IDENTITY_INSERT [Sales].[SalesTerritory] ON ; +INSERT INTO [Sales].[SalesTerritory] + ([TerritoryID], [Name] ,[CountryRegionCode] ,[Group] ,[SalesYTD] ,[SalesLastYear] ,[CostYTD] ,[CostLastYear] ,[rowguid] ,[ModifiedDate]) + VALUES + (1, 'Canada', 'CA', 'North Canada', 6771829.14, 5693988.86, 0.00, 0.00, '06B4AF8A-1639-476E-9266-110461D66B00', 'Apr 30 2008 12:00AM'), + (2, 'France', 'FR', 'Europe', 4772398.31, 2396539.76, 0.00, 0.00, 'BF806804-9B4C-4B07-9D19-706F2E689552', 'Apr 30 2008 12:00AM'), + (3, 'Germany', 'DE', 'Europe', 3805202.35, 1307949.79, 0.00, 0.00, '6D2450DB-8159-414F-A917-E73EE91C38A9', 'Apr 30 2008 12:00AM'), + (4, 'Australia', 'AU', 'Pacific', 5977814.92, 2278548.98, 0.00, 0.00, '602E612E-DFE9-41D9-B894-27E489747885', 'Apr 30 2008 12:00AM'), + (5, 'United Kingdom', 'GB', 'Europe', 5012905.37, 1635823.40, 0.00, 0.00, '05FC7E1F-2DEA-414E-9ECD-09D150516FB5', 'Apr 30 2008 12:00AM'), + (6, 'Tokelau', 'TK', 'Pacific', 4325344.37, 2344344.40, 0.00, 0.00, '05FC7E1F-2DEA-414E-9ECD-222222222222', 'Apr 30 2008 12:00AM'), + (7, 'Delete Orphan', 'DD', 'Delete Tests', 0.00, 0.00, 0.00, 0.00, '05FC7E1F-2DEA-414E-9ECD-111111111111', 'Apr 30 2008 12:00AM') + ; + +SET IDENTITY_INSERT [Sales].[SalesTerritory] OFF; +DBCC CHECKIDENT ('[Sales].[SalesTerritory]', RESEED, 5000); +GO +------------------------------------------------------------------- + + +SET IDENTITY_INSERT [Person].[StateProvince] ON ; + + +INSERT INTO [Person].[StateProvince] + (StateProvinceID + ,[StateProvinceCode] + ,[CountryRegionCode] + ,[IsOnlyStateProvinceFlag] + ,[Name] + ,[TerritoryID] + ,[rowguid] + ,[ModifiedDate]) + VALUES + (1, 'AB ','CA','0','Alberta', '1','298C2880-AB1C-4982-A5AD-A36EB4BA0D34','Feb 8 2014 10:17AM'), + (2, 'BC ','CA','0','British Columbia', '1','D27FCC6E-BB99-438B-BA86-285CEEB2FA53','Feb 8 2014 10:17AM'), + (3, 'BY ','DE','0','Bayern', '3','D54E5000-A0DA-46D1-86B0-B8FE16C9F781','Feb 8 2014 10:17AM'), + (4, 'ENG','GB','1','England', '5','3E3CB3F8-44B9-44D9-A1C3-CBFB11E0A7DA','Feb 8 2014 10:17AM'), + (5, 'FM ','AU','1','Australia', '4','3202DA35-AED4-40E2-9EC4-27C17F420170','Feb 8 2014 10:17AM'), + (6, 'HE ','DE','0','Hessen', '5','834FC3DF-B60D-4F94-95BD-AEF8A9FB74E8','Feb 8 2014 10:17AM'), + (7, 'DD ','DD','0','Delete Test', '7','33333333-2222-1111-0000-AEF8A9FB74E8','Feb 8 2014 10:17AM') + +SET IDENTITY_INSERT [Person].[StateProvince] OFF; +DBCC CHECKIDENT ('[Person].[StateProvince]', RESEED, 5000); +GO +------------------------------------------------------------------- + SET IDENTITY_INSERT [Person].[AddressType] ON ; Insert INTO [Person].[AddressType] ([AddressTypeID],[Name],[rowguid],[ModifiedDate]) VALUES (1,'Billing', '00000001-0000-0000-0000-000000000000','1 May 2007') @@ -198,6 +262,7 @@ Insert INTO [Person].[AddressType] ([AddressTypeID],[Name],[rowguid],[ModifiedDa , (7,'For Delete Tests Only', '00000006-dddd-0000-0000-000000000000','1 May 2007'); SET IDENTITY_INSERT [Person].[AddressType] OFF; DBCC CHECKIDENT ('Person.AddressType', RESEED, 5000); +GO ------------------------------------------------------------------- @@ -217,16 +282,6 @@ DBCC CHECKIDENT ('Person.[ContactType]', RESEED, 5000); ------------------------------------------------------------------- -INSERT INTO [Person].[CountryRegion] ([CountryRegionCode] ,[Name] ,[ModifiedDate]) - VALUES ('GB','Great Britan', '1 May 2007') - , ('FO','Taiwan', '1 May 2007') - , ('MZ','Mozambique', '1 May 2007') - , ('LC','Saint Lucia', '1 May 2007') - , ('TK','Tokelau', '1 May 2007') - , ('AU','Australia', '1 May 2007') - , ('DD','For Delete Tests Only' ,'1 May 2007') - -------------------------------------------------------------------- SET IDENTITY_INSERT [Person].[PhoneNumberType] ON ; @@ -287,4 +342,30 @@ SET IDENTITY_INSERT [Production].[ProductCategory] OFF DBCC CHECKIDENT ('[Production].[ProductCategory]', RESEED, 5000); ------------------------------------------------------------------------------------ +GO + +SET IDENTITY_INSERT [Person].[Address] ON +INSERT INTO [Person].[Address] + ( [AddressID] + ,[AddressLine1] + ,[AddressLine2] + ,[City] + ,[StateProvinceID] + ,[PostalCode] + ,[SpatialLocation] + ,[rowguid] + ,[ModifiedDate]) + VALUES + ( 1 , '568, avenue de l´ Union Centrale' , NULL, 'Paris' , 1 , '75009' , 0xE6100000010CB29379698576484080D3196A34B00240, '2D53A7FC-8017-412D-A591-B10BAC54F9B7', 'Dec 21 2013 10:09AM') +,( 2 , 'Charlottenstr 844' , NULL, 'Ingolstadt' , 3 , '85049' , 0xE6100000010C79066342C6694840E2315709E9B72640, 'DF254102-23C7-4820-AE4A-6A9F0668C8BA', 'Aug 15 2013 12:00AM') +,( 3 , '9093 Gilardy Dr.' , NULL, 'Milton Keynes' , 4 , 'MK8 8ZD' , 0xE6100000010CD94C1C1F15FE4940047C4899A541E7BF, '513BF254-97B8-433B-B467-3079487A2BD4', 'Jun 23 2014 12:00AM') +,( 4 , 'Celler Weg 504' , NULL, 'Poing' , 3 , '66041' , 0xE6100000010C00000000000000000000000000000000, '70764525-A746-4F90-B7BF-DD71D6DE2BC9', 'Oct 19 2012 12:00AM') +,( 5 , '3985 Dolores Way' , NULL, 'Perth' , 5 , '6006' , 0xE6100000010C7EEC03B2ACEE3FC0965FFABC6BF75C40, '9A804484-17AF-4360-B83B-330CC89634AB', 'Jan 17 2014 12:00AM') +,( 6 , 'Skywalker House' , 'Hoth', 'Sky Town' , 2 , 'WA3' , 0xE6100000010CF5586E1185CD4940D17D33328402D9BF, 'A9121E78-13EA-476B-BDA4-6C6F654E0D55', 'Dec 1 2013 12:00AM') +,( 7 , 'Delete Orphan' , NULL, 'Wakanda' , 7 , 'WA3' , 0xE6100000010C682356A0785F48405B59264AFD410540, 'A9121E78-DDDD-DDDD-BDA4-6C6F654ECD55', 'Dec 1 2013 12:00AM') + + +SET IDENTITY_INSERT [Person].[Address] OFF + +DBCC CHECKIDENT ('[Person].[Address]', RESEED, 5000); diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL index a4e0403..31a68a8 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL +++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL @@ -1,8 +1,8 @@  USE [master]; RESTORE DATABASE [$TARGET_DB_NAME] FROM DISK = N'/var/opt/mssql/backup/$BackupFileName' WITH FILE = 1, - MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME".mdf', - MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME"_log.ldf', + MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/$TARGET_DB_NAME.mdf', + MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/$TARGET_DB_NAME_log.ldf', NOUNLOAD, STATS = 5 ; \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs b/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs index 74a44fb..17468c8 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs +++ b/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs @@ -67,6 +67,7 @@ public static async Task Create(CancellationToken can await db.CreateDatabase(cancellationToken); await db.PrepareDataForTesting(cancellationToken); CommonHelper.Configuration.DatabaseConnectionString = db.ConnectionString; + if (backupTestDatabase) await db.BackUpTestDatabaseAsync(cancellationToken); return db; @@ -96,7 +97,8 @@ public async Task BackUpTestDatabaseAsync(CancellationToken cancellationToken) foreach (string commandText in CommonHelper.Sql.SplitSqlQueryOnGo(query)) { command.CommandText = commandText; - System.Diagnostics.Debug.WriteLine(command.CommandText); + + DisplayCommandText(command.CommandText); await command.ExecuteNonQueryAsync(cancellationToken); } } @@ -137,7 +139,7 @@ public async Task PrepareDataForTesting(CancellationToken cancellationToken = de foreach (string commandText in CommonHelper.Sql.SplitSqlQueryOnGo(query)) { command.CommandText = commandText; - System.Diagnostics.Debug.WriteLine(command.CommandText); + DisplayCommandText(command.CommandText); await command.ExecuteNonQueryAsync(cancellationToken); } } @@ -147,7 +149,8 @@ private static SqlConnection CreateConnection(string databaseName = "master") var masterConnectionString = $"server=localhost,{PublicPort};User Id=sa;Password={Password};Initial Catalog={databaseName};Encrypt=false"; var connectionStringBuilder = new SqlConnectionStringBuilder(masterConnectionString); - System.Diagnostics.Debug.WriteLine($"\r\n\r\n\r\n{masterConnectionString}\r\n\r\n\r\n"); + + System.Diagnostics.Trace.WriteLine($"\r\n\r\n\r\n{masterConnectionString}\r\n\r\n\r\n"); return new SqlConnection(connectionStringBuilder.ConnectionString); } @@ -207,7 +210,6 @@ private async Task CreateAndStartContainer() { try { - await CloneBackUpFileAsync(); await semaphore.WaitAsync(); if (_sqlServerContainer == null) @@ -271,7 +273,7 @@ private async Task CreateDatabase(CancellationToken cancellationToken = default) TimeSpan.FromSeconds(4), TimeSpan.FromSeconds(6) ]); - + DisplayCommandText(command.CommandText); await CreatePolicy.ExecuteAsync(async () => { await command.ExecuteNonQueryAsync(cancellationToken); }); } @@ -285,6 +287,7 @@ private void DeleteDatabase() new SqlCommand($"ALTER DATABASE [{DatabaseName}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE", connection)) { + DisplayCommandText(command.CommandText); command.ExecuteNonQuery(); } @@ -292,6 +295,7 @@ private void DeleteDatabase() { try { + DisplayCommandText(command.CommandText); command.ExecuteNonQuery(); } catch (SqlException ex) @@ -304,6 +308,13 @@ private void DeleteDatabase() _deleted = true; } + private void DisplayCommandText(string commandText) + { + string setting = AppSettings["Logging:TestContainers:SQLDBConfiguration"] ?? ""; + if (!setting.Equals("None")) + System.Diagnostics.Debug.WriteLine(commandText); + } + private void OnStopping(object sender, EventArgs e) { try diff --git a/src/API/AdventureWorksDemo.Common.Tests/Helpers/HelperSql.cs b/src/API/AdventureWorksDemo.Common.Tests/Helpers/HelperSql.cs index f91e3ac..c8bee8c 100644 --- a/src/API/AdventureWorksDemo.Common.Tests/Helpers/HelperSql.cs +++ b/src/API/AdventureWorksDemo.Common.Tests/Helpers/HelperSql.cs @@ -14,21 +14,19 @@ public static partial class Sql public static DataTable GetDataTable(string query) { var sqlConn = new SqlConnection(DockerMsSqlServerDatabase.Current!.ConnectionString); - - DataTable dt = null; + sqlConn.Open(); using (sqlConn) using (var cmd = new SqlCommand(query, sqlConn)) { - sqlConn.Open(); // create data adapter - SqlDataAdapter da = new SqlDataAdapter(cmd); + SqlDataAdapter da = new(cmd); // this will query your database and return the result to your datatable - dt = new DataTable(); + DataTable dt = new(); da.Fill(dt); - sqlConn.Close(); + //sqlConn.Close(); da.Dispose(); + return dt; } - return dt; } public static List GetDataTableAsList(string query) diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj index 7da5ecc..62dd70e 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj @@ -23,10 +23,10 @@ - - + + - + diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature index 17affc1..ec66e47 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature @@ -12,7 +12,7 @@ Scenario: AddAsync Given I reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | Rowguid | - | Wind in the Willow | | Fiction | 1 | AB11 1XX | 00000000-0000-0000-0000-000000000001 | + | Wind in the Willow | Ping Pong | Fiction | 1 | AB11 1XX | 00000000-0000-0000-1111-000000000000 | And I call the method 'AddAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -23,27 +23,25 @@ Scenario: AddAsync | IsFailure | IsSuccess | Message | | False | True | | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | - | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | Wind in the Willow | | Fiction | 1 | AB11 1XX | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | 1 | RG41 1QW | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | 1 | MK8 8DF | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | 1 | CB4 4BZ | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | 2 | 93030 | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | 2 | 93030 | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | 2 | 84070 | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | 2 | 95603 | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | 2 | 95603 | - | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | Wind in the Willow | | Fiction | 3 | AB11 1XX | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-1111-000000000000 | Wind in the Willow | Ping Pong | Fiction | AB11 1XX | 1 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | + | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-1111-000000000000 | Wind in the Willow | Ping Pong | Fiction | AB11 1XX | 1 | - -Scenario: AddAsyncShortAddressLine1 +Scenario: AddAsyncLongAddressLine1 Given I reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | {{PadRight:X:2}} | | Fiction | United Kingdom | AB11 1XX | England | + | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | Rowguid | + | {{PadRight:X:1234}} | Ping Pong | Fiction | 1 | AB11 1XX | 00000000-0000-0000-1111-000000000000 | And I call the method 'AddAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -51,29 +49,29 @@ Scenario: AddAsyncShortAddressLine1 | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is - | IsFailure | IsSuccess | Message | - | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 2 characters. | + | IsFailure | IsSuccess | Message | + | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 1234 characters. | - And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | XX | | Fiction | United Kingdom | AB11 1XX | England | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + Then the results property 'Value' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-1111-000000000000 | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | Ping Pong | Fiction | AB11 1XX | 1 | + + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | -Scenario: AddAsyncLongAddressLine1 +Scenario: AddAsyncShortAddressLine1 Given I reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | {{PadRight:X:1234}} | | Fiction | United Kingdom | AB11 1XX | England | + | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | Rowguid | + | {{PadRight:X:2}} | Ping Pong | Fiction | 1 | AB11 1XX | 00000000-0000-0000-1111-000000000000 | And I call the method 'AddAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -81,33 +79,31 @@ Scenario: AddAsyncLongAddressLine1 | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is - | IsFailure | IsSuccess | Message | - | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 1234 characters. | - - Then the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | {{PadRight:X:1234}} | | Fiction | United Kingdom | AB11 1XX | England | + | IsFailure | IsSuccess | Message | + | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 2 characters. | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + And the results property 'Value' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-1111-000000000000 | XX | Ping Pong | Fiction | AB11 1XX | 1 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: AddBatchAsync Given I reset the database after the scenario When I populate a list of the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | Rowguid | - | How | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000001 | - | Now | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000002 | - | Brown | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000003 | - | Cow | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000004 | + | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | Rowguid | + | How | | Fiction | AB11 1XX | 2 | 00000000-0000-0000-0000-000000000001 | + | Now | | Fiction | AB11 1XX | 3 | 00000000-0000-0000-0000-000000000002 | + | Brown | | Fiction | AB11 1XX | 4 | 00000000-0000-0000-0000-000000000003 | + | Cow | | Fiction | AB11 1XX | 5 | 00000000-0000-0000-0000-000000000004 | And I call the method 'AddBatchAsync' with the parameter values | Key | Value | TypeName | | model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable | @@ -119,37 +115,34 @@ Scenario: AddBatchAsync | false | true | | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | United Kingdom | AB11 1XX | England | - | 5002 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000002 | Now | | Fiction | United Kingdom | AB11 1XX | England | - | 5003 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | United Kingdom | AB11 1XX | England | - | 5004 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000004 | Cow | | Fiction | United Kingdom | AB11 1XX | England | - - - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | - | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | United Kingdom | AB11 1XX | England | - | 5002 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000002 | Now | | Fiction | United Kingdom | AB11 1XX | England | - | 5003 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | United Kingdom | AB11 1XX | England | - | 5004 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000004 | Cow | | Fiction | United Kingdom | AB11 1XX | England | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | AB11 1XX | 2 | + | 5002 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000002 | Now | | Fiction | AB11 1XX | 3 | + | 5003 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | AB11 1XX | 4 | + | 5004 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000004 | Cow | | Fiction | AB11 1XX | 5 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | + | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | AB11 1XX | 2 | + | 5002 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000002 | Now | | Fiction | AB11 1XX | 3 | + | 5003 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | AB11 1XX | 4 | + | 5004 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000004 | Cow | | Fiction | AB11 1XX | 5 | Scenario: AddBatchAsync2ShortAddressLine1 Given I reset the database after the scenario When I populate a list of the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | Rowguid | - | How | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000001 | - | {{PadRight:X:2}} | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000002 | - | Brown | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000003 | - | {{PadRight:X:1}} | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000004 | + | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | Rowguid | + | How | | Fiction | AB11 1XX | 1 | 00000000-0000-0000-0000-000000000001 | + | {{PadRight:X:2}} | | Fiction | AB11 1XX | 2 | 00000000-0000-0000-0000-000000000002 | + | Brown | | Fiction | AB11 1XX | 3 | 00000000-0000-0000-0000-000000000003 | + | {{PadRight:X:1}} | | Fiction | AB11 1XX | 4 | 00000000-0000-0000-0000-000000000004 | And I call the method 'AddBatchAsync' with the parameter values | Key | Value | TypeName | | model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable | @@ -165,31 +158,30 @@ Scenario: AddBatchAsync2ShortAddressLine1 | 'Address Line1' must be between 3 and 60 characters. You entered 1 characters. | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | United Kingdom | AB11 1XX | England | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000002 | XX | | Fiction | United Kingdom | AB11 1XX | England | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | United Kingdom | AB11 1XX | England | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000004 | X | | Fiction | United Kingdom | AB11 1XX | England | - - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | - -Scenario: AddBatchAsync2LongAddressLine1 + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | AB11 1XX | 1 | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000002 | XX | | Fiction | AB11 1XX | 2 | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | AB11 1XX | 3 | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000004 | X | | Fiction | AB11 1XX | 4 | + + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | + +Scenario: AddBatchAsync2LongAddressLine2 Given I reset the database after the scenario When I populate a list of the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | Rowguid | - | How | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000001 | - | {{PadRight:X:12345}} | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000002 | - | Brown | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000003 | - | {{PadRight:X:1234}} | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000004 | + | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | Rowguid | + | How | | Fiction | AB11 1XX | 1 | 00000000-0000-0000-0000-000000000001 | + | {{PadRight:X:61}} | {{PadRight:X:62}} | Fiction | AB11 1XX | 2 | 00000000-0000-0000-0000-000000000002 | + | Brown | | Fiction | AB11 1XX | 3 | 00000000-0000-0000-0000-000000000003 | + | {{PadRight:X:234}} | {{PadRight:X:123}} | Fiction | AB11 1XX | 4 | 00000000-0000-0000-0000-000000000004 | And I call the method 'AddBatchAsync' with the parameter values | Key | Value | TypeName | | model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable | @@ -200,23 +192,24 @@ Scenario: AddBatchAsync2LongAddressLine1 | IsFailure | IsSuccess | | True | False | And the results property 'Message' contains - | Expected | - | 'Address Line1' must be between 3 and 60 characters. You entered 12345 characters. | - | 'Address Line1' must be between 3 and 60 characters. You entered 1234 characters. | + | Expected | + | 'Address Line2' must be between 3 and 60 characters. You entered 62 characters. | + | 'Address Line2' must be between 3 and 60 characters. You entered 123 characters. | + | 'Address Line1' must be between 3 and 60 characters. You entered 61 characters. | + | 'Address Line1' must be between 3 and 60 characters. You entered 234 characters. | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | United Kingdom | AB11 1XX | England | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000002 | {{PadRight:X:12345}} | | Fiction | United Kingdom | AB11 1XX | England | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | United Kingdom | AB11 1XX | England | - | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000004 | {{PadRight:X:1234}} | | Fiction | United Kingdom | AB11 1XX | England | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | AB11 1XX | 1 | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000002 | {{PadRight:X:61}} | {{PadRight:X:62}} | Fiction | AB11 1XX | 2 | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | AB11 1XX | 3 | + | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000004 | {{PadRight:X:234}} | {{PadRight:X:123}} | Fiction | AB11 1XX | 4 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature index 4913c18..4d27e22 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature @@ -18,73 +18,57 @@ Scenario: DeleteAsync1234 And the result is | IsFailure | IsSuccess | Message | | True | False | Unable to find record to delete! | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | - And the ServiceResult is of type 'System.Boolean' with the value - | Expected | - | False | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | - - - -Scenario: DeleteAsync1034 +Scenario: DeleteAsync3 Given I reset the database after the scenario When I call the method 'DeleteAsync' with the parameter values | Key | Value | TypeName | - | AddressId | 1034 | int | + | AddressId | 3 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is | IsFailure | IsSuccess | Message | | True | False | Unable to delete, record is referenced elsewhere! | - And the ServiceResult is of type 'System.Boolean' with the value - | Expected | - | False | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | - - + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | -Scenario: DeleteAsync1111 +Scenario: DeleteAsync7 Given I reset the database after the scenario When I call the method 'DeleteAsync' with the parameter values | Key | Value | TypeName | - | AddressId | 1111 | int | + | AddressId | 7 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is | IsFailure | IsSuccess | Message | | False | True | | - And the ServiceResult is of type 'System.Boolean' with the value - | Expected | - | True | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateBatchTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateBatchTests.feature index 0b86ca5..51c7323 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateBatchTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateBatchTests.feature @@ -11,8 +11,8 @@ Scenario: UpdateBatchAsync01 When I populate a list of the model 'AdventureWorksDemo.Data.Models.AddressModel' | AddressId | AddressLine1 | - | 640 | Ping | - | 1092 | Pong | + | 1 | Ping | + | 2 | Pong | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | models | {{models}} | IEnumerable | @@ -23,19 +23,19 @@ Scenario: UpdateBatchAsync01 | IsFailure | IsSuccess | Message | | False | True | | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 5/24/2024 12:34:56 PM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping | | Wokingham | United Kingdom | RG41 1QW | England | - | 1092 | 5/24/2024 12:34:56 PM | 79cdd89c-3c91-48db-8277-46d04aad7251 | Pong | | Auburn | United States | 95603 | California | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 5/24/2024 12:34:56 PM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 5/24/2024 12:34:56 PM | 79cdd89c-3c91-48db-8277-46d04aad7251 | Pong | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 5/24/2024 12:34:56 PM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | Ping | | Paris | 75009 | 1 | + | 2 | 5/24/2024 12:34:56 PM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Pong | | Ingolstadt | 85049 | 3 | + + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 5/24/2024 12:34:56 PM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | Ping | | Paris | 75009 | 1 | + | 2 | 5/24/2024 12:34:56 PM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Pong | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: UpdateBatchAsyncNoRecords Given I don't reset the database after the scenario @@ -51,14 +51,13 @@ Scenario: UpdateBatchAsyncNoRecords | IsFailure | IsSuccess | Message | | True | False | Please select some records to update! | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateTests.feature index 0b7afea..8ec8932 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateTests.feature @@ -10,8 +10,8 @@ Background: Scenario: Update01 When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping Pong | | Wokingham | United Kingdom | RG41 1QW | England | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -22,24 +22,23 @@ Scenario: Update01 | IsFailure | IsSuccess | Message | | False | True | | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 5/24/2024 12:34:56 PM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping Pong | | Wokingham | United Kingdom | RG41 1QW | England | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 5/24/2024 12:34:56 PM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping Pong | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 5/24/2024 12:34:56 PM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 5/24/2024 12:34:56 PM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: UpdateLongAddressLine1 When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | {{PadRight:X:5555}} | | Wokingham | United Kingdom | RG41 1QW | England | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | {{PadRight:X:1234}} | Paris | 75009 | 1 | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -48,26 +47,25 @@ Scenario: UpdateLongAddressLine1 | AdventureWorksDemo.Data.Models.ServiceResult | And the result is | IsFailure | IsSuccess | Message | - | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 5555 characters. | + | True | False | 'Address Line2' must be between 3 and 60 characters. You entered 1234 characters. | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | {{PadRight:X:5555}} | | Wokingham | United Kingdom | RG41 1QW | England | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | {{PadRight:X:1234}} | Paris | 75009 | 1 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | -Scenario: UpdateShortAddressLine1 +Scenario: UpdateShortAddressLine2 When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | {{PadRight:X:2}} | | Wokingham | United Kingdom | RG41 1QW | England | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | {{PadRight:X:2}} | Paris | 75009 | 1 | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -79,27 +77,26 @@ Scenario: UpdateShortAddressLine1 | True | False | And the results property 'Message' contains | Expected | - | 'Address Line1' must be between 3 and 60 characters. You entered 2 characters. | + | 'Address Line2' must be between 3 and 60 characters. You entered 2 characters. | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | {{PadRight:X:2}} | | Wokingham | United Kingdom | RG41 1QW | England | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | {{PadRight:X:2}} | Paris | 75009 | 1 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: UpdateNoChange Given I don't reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -110,25 +107,24 @@ Scenario: UpdateNoChange | IsFailure | IsSuccess | Message | | False | True | Record is already up to date! | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: UpdateUnknownRecord Given I don't reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel' - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 55555 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1234 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel | @@ -141,17 +137,16 @@ Scenario: UpdateUnknownRecord | True | False | Unable to locate record to update! | And the results property 'Value' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 55555 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - And the table 'SalesLT.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1234 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 | + And the table 'Person.Address' contains + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/Find/AddressServiceFindTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/Find/AddressServiceFindTests.feature index f77d7ca..c6f855e 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/Find/AddressServiceFindTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/Find/AddressServiceFindTests.feature @@ -20,15 +20,14 @@ Scenario: FindAllAsync_1_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 2 | 8 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | Scenario: FindAllAsync_1_500 @@ -43,17 +42,16 @@ Scenario: FindAllAsync_1_500 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 8 | 100 | 0 | + | 1 | 7 | 100 | 0 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: FindAllAsync_2_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -67,13 +65,11 @@ Scenario: FindAllAsync_2_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 2 | 8 | 5 | 1 | - + | 2 | 7 | 5 | 1 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: FindAllAsync_2_8 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -87,9 +83,16 @@ Scenario: FindAllAsync_2_8 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 8 | 8 | 1 | + | 1 | 7 | 8 | 0 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: FindAllAsync_20_20 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -103,9 +106,16 @@ Scenario: FindAllAsync_20_20 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 8 | 8 | 1 | + | 1 | 7 | 8 | 0 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: FindAllAsync_1234_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -119,12 +129,11 @@ Scenario: FindAllAsync_1234_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 2 | 8 | 5 | 1 | + | 2 | 7 | 5 | 1 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: FindAllAsync_0_0 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -139,17 +148,16 @@ Scenario: FindAllAsync_0_0 And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 8 | 25 | 0 | + | 1 | 7 | 25 | 0 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | Scenario: FindAllAsync_0_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -163,14 +171,14 @@ Scenario: FindAllAsync_0_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 2 | 8 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | Scenario: FindAllAsync_5_0 @@ -185,46 +193,46 @@ Scenario: FindAllAsync_5_0 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 8 | 25 | 0 | + | 1 | 7 | 25 | 0 | And the sorted results are - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | - | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England | - | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England | - | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California | - | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | - | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California | - | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California | - - -Scenario: FindAsync1090 + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | + | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | + | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | + | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | + + +Scenario: FindAsync2 When I call the method 'FindAsync' with the parameter values | Key | Value | TypeName | - | AddressId | 1090 | int | + | AddressId | 2 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.AddressModel | And the result is - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah | + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | -Scenario: FindAsync12345 +Scenario: FindAsync3 When I call the method 'FindAsync' with the parameter values | Key | Value | TypeName | - | AddressId | 12345 | int | - + | AddressId | 3 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.AddressModel | - And the result is null -Scenario: FindAsync640 + And the result is + | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | + | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | + +Scenario: FindAsync12345 When I call the method 'FindAsync' with the parameter values | Key | Value | TypeName | - | AddressId | 640 | int | + | AddressId | 12345 | int | + Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.AddressModel | - And the result is - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | - | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England | + And the result is null \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncSortingTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncSortingTests.feature index 4416b5b..c3aaf2c 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncSortingTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncSortingTests.feature @@ -6,11 +6,11 @@ Testing the methods FindAllAsync with sorting Background: Given The service to test is 'AdventureWorksDemo.Data.Services.IProductDescriptionService' -Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault +Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description ASC | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -19,19 +19,20 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | + And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description ASC | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -40,19 +41,19 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description ASC | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -61,20 +62,20 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | -Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending +Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description ASC | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -83,19 +84,19 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | + And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description ASC | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -104,19 +105,19 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description ASC | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -125,14 +126,15 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | + And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | Scenario: FindAllAsync_0_5_Description3TimesTheSameDescending @@ -147,15 +149,15 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDescending | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | - + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | Sorting | @@ -168,15 +170,14 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDescending | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | - + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | Sorting | @@ -189,20 +190,20 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDescending | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -211,14 +212,15 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -232,19 +234,19 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -253,14 +255,16 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + + Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -274,19 +278,19 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -295,14 +299,15 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -316,19 +321,19 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Given I clear the previous results When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | Sorting | - | 0 | 5 | Description | + | PageNumber | PageSize | Sorting | + | 0 | 5 | Description | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -337,11 +342,13 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + + diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncTests.feature index 6f5a151..a294041 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncTests.feature @@ -6,31 +6,35 @@ Testing the methods FindAllAsync Background: Given The service to test is 'AdventureWorksDemo.Data.Services.IProductDescriptionService' -Scenario: FindAllAsync_0_5 +Scenario: FindAllAsync_0_0 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 0 | 5 | + | 0 | 0 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | Then the result is of type | Expected | | AdventureWorksDemo.Data.Paging.PagedList | + And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 0 | + | 1 | 7 | 25 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 8 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | - | 64 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | - | 128 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | - | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: FindAllAsync_1_5 + +Scenario: FindAllAsync_0_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 1 | 5 | + | 0 | 5 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -39,15 +43,15 @@ Scenario: FindAllAsync_1_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 1 | + | 2 | 7 | 5 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 554 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | - | 594 | 6/1/2007 12:00:00 AM | 32b82c92-e545-4da0-a175-0be710b482fe | Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 647 | 6/1/2007 12:00:00 AM | 7ad9e29f-16cf-4db0-b073-cc62d501b61a | Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps. | - + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + Scenario: FindAllAsync_0_500 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | @@ -60,52 +64,22 @@ Scenario: FindAllAsync_0_500 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 37 | 100 | 0 | + | 1 | 7 | 100 | 0 | + And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 8 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | - | 64 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | - | 128 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | - | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 554 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | - | 594 | 6/1/2007 12:00:00 AM | 32b82c92-e545-4da0-a175-0be710b482fe | Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 647 | 6/1/2007 12:00:00 AM | 7ad9e29f-16cf-4db0-b073-cc62d501b61a | Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps. | - | 661 | 6/1/2007 12:00:00 AM | d61c9d54-22c3-4563-a418-0b9dc7e03850 | Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version. | - | 848 | 6/1/2007 12:00:00 AM | 03acbb19-749a-48a1-b77e-5d2a48e8dc3a | Lightweight, durable, clipless pedal with adjustable tension. | - | 1020 | 6/1/2007 12:00:00 AM | f4c70a6b-bbe8-4774-9d75-393d3f315e9b | The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame. | - | 1196 | 6/1/2007 12:00:00 AM | c65bee64-4dba-47ec-91cd-31356ba379e1 | Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort. | - | 1205 | 6/1/2007 12:00:00 AM | 58d86ede-0519-4263-a264-a2b5b01a6c7b | Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets. | - | 1208 | 6/1/2007 12:00:00 AM | 9f436663-525d-4cc2-85ba-47d20bcea0ec | Thin, lightweight and durable with cuffs that stay up. | - | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. | - | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. | - | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. | - | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. | - | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. | - | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. | - | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. | - | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. | - | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - - -Scenario: FindAllAsync_1_500 + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + +Scenario: FindAllAsync_1_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 1 | 500 | + | 1 | 5 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -114,52 +88,17 @@ Scenario: FindAllAsync_1_500 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 37 | 100 | 0 | + | 2 | 7 | 5 | 1 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 8 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | - | 64 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | - | 128 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | - | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 554 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | - | 594 | 6/1/2007 12:00:00 AM | 32b82c92-e545-4da0-a175-0be710b482fe | Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 647 | 6/1/2007 12:00:00 AM | 7ad9e29f-16cf-4db0-b073-cc62d501b61a | Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps. | - | 661 | 6/1/2007 12:00:00 AM | d61c9d54-22c3-4563-a418-0b9dc7e03850 | Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version. | - | 848 | 6/1/2007 12:00:00 AM | 03acbb19-749a-48a1-b77e-5d2a48e8dc3a | Lightweight, durable, clipless pedal with adjustable tension. | - | 1020 | 6/1/2007 12:00:00 AM | f4c70a6b-bbe8-4774-9d75-393d3f315e9b | The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame. | - | 1196 | 6/1/2007 12:00:00 AM | c65bee64-4dba-47ec-91cd-31356ba379e1 | Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort. | - | 1205 | 6/1/2007 12:00:00 AM | 58d86ede-0519-4263-a264-a2b5b01a6c7b | Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets. | - | 1208 | 6/1/2007 12:00:00 AM | 9f436663-525d-4cc2-85ba-47d20bcea0ec | Thin, lightweight and durable with cuffs that stay up. | - | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. | - | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. | - | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. | - | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. | - | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. | - | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. | - | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. | - | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. | - | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: FindAllAsync_2_5 +Scenario: FindAllAsync_1_500 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 2 | 5 | + | 1 | 500 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -168,19 +107,21 @@ Scenario: FindAllAsync_2_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 2 | + | 1 | 7 | 100 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 661 | 6/1/2007 12:00:00 AM | d61c9d54-22c3-4563-a418-0b9dc7e03850 | Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version. | - | 848 | 6/1/2007 12:00:00 AM | 03acbb19-749a-48a1-b77e-5d2a48e8dc3a | Lightweight, durable, clipless pedal with adjustable tension. | - | 1020 | 6/1/2007 12:00:00 AM | f4c70a6b-bbe8-4774-9d75-393d3f315e9b | The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame. | - | 1196 | 6/1/2007 12:00:00 AM | c65bee64-4dba-47ec-91cd-31356ba379e1 | Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort. | - | 1205 | 6/1/2007 12:00:00 AM | 58d86ede-0519-4263-a264-a2b5b01a6c7b | Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets. | - -Scenario: FindAllAsync_2_8 + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + +Scenario: FindAllAsync_1234_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 2 | 8 | + | 1234 | 5 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -189,22 +130,17 @@ Scenario: FindAllAsync_2_8 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 5 | 37 | 8 | 2 | + | 2 | 7 | 5 | 1 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: FindAllAsync_20_20 + +Scenario: FindAllAsync_2_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 2 | 8 | + | 2 | 5 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -213,22 +149,16 @@ Scenario: FindAllAsync_20_20 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 5 | 37 | 8 | 2 | + | 2 | 7 | 5 | 1 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: FindAllAsync_1234_5 +Scenario: FindAllAsync_2_8 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 1234 | 5 | + | 2 | 8 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -237,53 +167,40 @@ Scenario: FindAllAsync_1234_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 7 | + | 1 | 7 | 8 | 0 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: FindAllAsync_0_0 +Scenario: FindAllAsync_20_20 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 0 | 0 | + | 2 | 8 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | Then the result is of type | Expected | | AdventureWorksDemo.Data.Paging.PagedList | - And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 2 | 37 | 25 | 0 | + | 1 | 7 | 8 | 0 | + And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 8 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | - | 64 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | - | 128 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | - | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 554 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | - | 594 | 6/1/2007 12:00:00 AM | 32b82c92-e545-4da0-a175-0be710b482fe | Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. | - | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. | - | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. | - | 647 | 6/1/2007 12:00:00 AM | 7ad9e29f-16cf-4db0-b073-cc62d501b61a | Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps. | - | 661 | 6/1/2007 12:00:00 AM | d61c9d54-22c3-4563-a418-0b9dc7e03850 | Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version. | - | 848 | 6/1/2007 12:00:00 AM | 03acbb19-749a-48a1-b77e-5d2a48e8dc3a | Lightweight, durable, clipless pedal with adjustable tension. | - | 1020 | 6/1/2007 12:00:00 AM | f4c70a6b-bbe8-4774-9d75-393d3f315e9b | The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame. | - | 1196 | 6/1/2007 12:00:00 AM | c65bee64-4dba-47ec-91cd-31356ba379e1 | Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort. | - | 1205 | 6/1/2007 12:00:00 AM | 58d86ede-0519-4263-a264-a2b5b01a6c7b | Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets. | - | 1208 | 6/1/2007 12:00:00 AM | 9f436663-525d-4cc2-85ba-47d20bcea0ec | Thin, lightweight and durable with cuffs that stay up. | - | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. | - | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey | - | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. | - | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. | - | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. | - | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Scenario: FindAllAsync_7_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -297,12 +214,12 @@ Scenario: FindAllAsync_7_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 7 | + | 2 | 7 | 5 | 1 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + Scenario: FindAllAsync_8_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | @@ -315,12 +232,12 @@ Scenario: FindAllAsync_8_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 8 | 37 | 5 | 7 | + | 2 | 7 | 5 | 1 | And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + Scenario: FindAllAsync_5_0 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | @@ -333,20 +250,16 @@ Scenario: FindAllAsync_5_0 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 2 | 37 | 25 | 1 | + | 1 | 7 | 25 | 0 | + And the sorted results are - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. | - | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. | - | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. | - | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. | - | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. | - | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. | - | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. | - | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. | - | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindTests.feature index e7bd3c8..5cb8efc 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindTests.feature @@ -17,24 +17,25 @@ Scenario: FindAsync1234 | AdventureWorksDemo.Data.Models.ProductDescriptionModel | And the result is null -Scenario: FindAsync209 +Scenario: FindAsync3 When I call the method 'FindAsync' with the parameter values | Key | Value | TypeName | - | ProductDescriptionId | 209 | int | + | ProductDescriptionId | 3 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.ProductDescriptionModel | And the result is - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | - -Scenario: FindAsync513 + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + +Scenario: FindAsync555 When I call the method 'FindAsync' with the parameter values | Key | Value | TypeName | - | ProductDescriptionId | 513 | int | + | ProductDescriptionId | 555 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.ProductDescriptionModel | And the result is | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | \ No newline at end of file + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceAddTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceAddTests.feature index 516bfe1..691db2a 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceAddTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceAddTests.feature @@ -26,12 +26,12 @@ Scenario: AddAsync And the results property 'Value' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | PingPong | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | PingPong | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | PingPong | @@ -55,11 +55,11 @@ Scenario: AddAsyncShortName | ProductDescriptionId | ModifiedDate | Rowguid | Description | | 0 | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 | XX | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Scenario: AddAsyncLongName @@ -81,11 +81,11 @@ Scenario: AddAsyncLongName | ProductDescriptionId | ModifiedDate | Rowguid | Description | | 0 | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 | {{PadRight:X:401}} | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Scenario: AddBatchAsync @@ -114,16 +114,16 @@ Scenario: AddBatchAsync | 5004 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | Cow | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 | How | - | 5002 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 | Now | - | 5003 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 | Brown | - | 5004 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | Cow | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 | How | + | 5002 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 | Now | + | 5003 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 | Brown | + | 5004 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | Cow | + Scenario: AddBatchAsync2ShortName Given I reset the database after the scenario When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel' @@ -153,11 +153,11 @@ Scenario: AddBatchAsync2ShortName | 0 | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000003 | Brown | | 0 | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000004 | It | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | Scenario: AddBatchAsync2LongName Given I reset the database after the scenario @@ -186,8 +186,8 @@ Scenario: AddBatchAsync2LongName | 0 | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000003 | {{PadRight:X:1234}} | | 0 | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000004 | Les Contamines | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature index 6cec5c0..73da73a 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature @@ -6,10 +6,10 @@ Testing the methods DeleteAsync Background: Given The service to test is 'AdventureWorksDemo.Data.Services.IProductDescriptionService' - And I don't reset the database after the scenario - -Scenario: DeleteAsync12345 + And I reset the database after the scenario +Scenario: DeleteAsync1234 + Given I don't reset the database after the scenario When I call the method 'DeleteAsync' with the parameter values | Key | Value | TypeName | ModifiedDate | | ProductDescriptionId | 12345 | int | 21 Apr 2024 12:34:56 | @@ -18,94 +18,58 @@ Scenario: DeleteAsync12345 | AdventureWorksDemo.Data.Models.ServiceResult | And the result is | IsFailure | IsSuccess | Message | - | True | False | Unable to find record to delete! | - And the result is of type 'System.Boolean' with the value - | Expected | - | False | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1500' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. | - | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. | - | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. | - | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. | - | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. | - | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. | - | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. | - | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. | - | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - + | True | False | Unable to find record to delete! | + Then the table 'Production.ProductDescription' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | - -Scenario: DeleteAsync1504 +Scenario: DeleteAsync2 Given I reset the database after the scenario When I call the method 'DeleteAsync' with the parameter values | Key | Value | TypeName | - | ProductDescriptionId | 1504 | int | + | ProductDescriptionId | 2 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is | IsFailure | IsSuccess | Message | | True | False | Unable to delete, record is referenced elsewhere! | - - And the ServiceResult is of type 'System.Boolean' with the value - | Expected | - | False | - Then the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1500' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. | - | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. | - | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. | - | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. | - | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. | - | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. | - | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. | - | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. | - | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - + Then the table 'Production.ProductDescription' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 7777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: DeleteAsync1600 +Scenario: DeleteAsync777 Given I reset the database after the scenario + When I call the method 'DeleteAsync' with the parameter values | Key | Value | TypeName | - | ProductDescriptionId | 1600 | int | + | ProductDescriptionId | 777 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is | IsFailure | IsSuccess | Message | - | False | True | | - And the ServiceResult is of type 'System.Boolean' with the value - | Expected | - | True | - Then the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1500' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. | - | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. | - | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. | - | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. | - | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. | - | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. | - | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. | - | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. | - | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. | - | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. | - | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. | - | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. | - | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | False | True | | + Then the table 'Production.ProductDescription' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | + | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | + | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | + | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | + | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateBatchTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateBatchTests.feature index 8de3367..c8ef17f 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateBatchTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateBatchTests.feature @@ -8,15 +8,15 @@ Background: And I reset the database after the scenario Scenario: UpdateBatchAsync01 - Given the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + Given the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel' | ProductDescriptionId | Description | - | 1600 | Ping Pong | - | 1605 | {{Pad:X:123}} | + | 666 | Ping Pong | + | 777 | {{Pad:X:123}} | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | models | {{models}} | IEnumerable | @@ -28,13 +28,13 @@ Scenario: UpdateBatchAsync01 | False | True | | And the results property 'Value' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 5/24/2024 12:34:56 PM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Ping Pong | - | 1605 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:X:123}} | + | 666 | 5/24/2024 12:34:56 PM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Ping Pong | + | 777 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:X:123}} | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 5/24/2024 12:34:56 PM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Ping Pong | - | 1605 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:X:123}} | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 5/24/2024 12:34:56 PM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Ping Pong | + | 777 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:X:123}} | Scenario: UpdateBatchAsynNoRecords Given I don't reset the database after the scenario @@ -51,15 +51,13 @@ Scenario: UpdateBatchAsynNoRecords | True | False | Please select some records to update! | And the results property 'Value' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | - - Scenario: UpdateBatchAsyncOneBadRecord Given I don't reset the database after the scenario When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel' | ProductDescriptionId | Description | - | 1599 | {{Pad:X:123}} | - | 1600 | A | + | 666 | {{Pad:X:123}} | + | 777 | A | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | models | {{models}} | IEnumerable | @@ -71,11 +69,10 @@ Scenario: UpdateBatchAsyncOneBadRecord | True | False | 'Description' must be between 3 and 400 characters. You entered 1 characters. | And the results property 'Value' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1599 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | {{Pad:X:123}} | - | 1600 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | A | - - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | 666 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | {{Pad:X:123}} | + | 777 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | A | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateTests.feature index 45a62f9..ae8a3eb 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateTests.feature @@ -8,15 +8,14 @@ Background: Given The service to test is 'AdventureWorksDemo.Data.Services.IProductDescriptionService' And I reset the database after the scenario -Scenario: Update01 - Given the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - +Scenario: Update666 + Given the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | When I populate the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel' | ProductDescriptionId | Description | - | 1605 | Ping Pong | + | 666 | Ping Pong | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductDescriptionModel | @@ -28,23 +27,23 @@ Scenario: Update01 | False | True | | And the results property 'Value' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1605 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Ping Pong | + | 666 | 5/24/2024 12:34:56 PM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Ping Pong | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Ping Pong | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555 ' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 5/24/2024 12:34:56 PM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Ping Pong | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: UpdateShortName - Given the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | +Scenario: Update666ShortName + Given the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | When I populate the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel' | ProductDescriptionId | Description | - | 1600 | Hi | + | 666 | Hi | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductDescriptionModel | @@ -59,21 +58,20 @@ Scenario: UpdateShortName | 'Description' must be between 3 and 400 characters. You entered 2 characters. | And the results property 'Value' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Hi | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Hi | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: UpdateLongName - Given the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | - +Scenario: Update777LongName + Given the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | When I populate the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel' | ProductDescriptionId | Description | - | 1600 | {{Pad:x:401}} | + | 777 | {{Pad:x:401}} | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductDescriptionModel | @@ -83,20 +81,20 @@ Scenario: UpdateLongName And the result is | IsFailure | IsSuccess | Message | | True | False | 'Description' must be between 3 and 400 characters. You entered 401 characters. | - And the results property 'Value' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | {{Pad:x:401}} | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:x:401}} | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | + -Scenario: UpdateNoChange +Scenario: Update777NoChange Given I don't reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel' | ProductDescriptionId | Description | - | 1600 | Orphan record to deletion test | + | 777 | Orphan record to deletion test | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductDescriptionModel | @@ -104,16 +102,15 @@ Scenario: UpdateNoChange | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is - | IsFailure | IsSuccess | Message | - | False | True | Record is already up to date! | + | IsFailure | IsSuccess | Message | + | False | True | | And the results property 'Value' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 777 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Orphan record to deletion test | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Orphan record to deletion test | Scenario: UpdateUnknownRecord Given I don't reset the database after the scenario @@ -134,7 +131,7 @@ Scenario: UpdateUnknownRecord And the results property 'Value' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | | 1234 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | UpdateUnknownRecord | - And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test | - | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. | + And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains + | ProductDescriptionId | ModifiedDate | Rowguid | Description | + | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | + | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature index 53b4391..2023e20 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature @@ -8,35 +8,11 @@ Testing the methods AddAsync Background: Given The service to test is 'AdventureWorksDemo.Data.Services.IProductCategoryService' And I don't reset the database after the scenario - -Scenario: AddAsyncNoParent - Given I reset the database after the scenario - When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | Name | ParentProductCategoryId | Rowguid | - | PingPong | | 00000000-1111-0000-0000-000000000002 | - And I call the method 'AddAsync' with the parameter values - | Key | Value | TypeName | - | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | - Then the result is of type - | Expected | - | AdventureWorksDemo.Data.Models.ServiceResult | - And the result is - | IsFailure | IsSuccess | Message | - | False | True | | - And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 5001 | | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | - | 5001 | | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | - -Scenario: AddAsyncNoParentShortName - Given I reset the database after the scenario + +Scenario: AddAsyncShortName When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | Name | ParentProductCategoryId | Rowguid | - | Hi | | 00000000-1111-0000-0000-000000000002 | + | Name | Rowguid | + | Hi | 00000000-1111-0000-0000-000000000002 | And I call the method 'AddAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | @@ -48,19 +24,19 @@ Scenario: AddAsyncNoParentShortName | True | False | 'Name' must be between 3 and 50 characters. You entered 2 characters. | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 0 | | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 | + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 0 | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | -Scenario: AddAsyncParent +Scenario: AddAsync Given I reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | Name | ParentProductCategoryId | Rowguid | - | PingPong | 42 | 00000000-1111-0000-0000-000000000002 | + | Name | Rowguid | + | PingPong | 00000000-1111-0000-0000-000000000002 | And I call the method 'AddAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | @@ -71,45 +47,22 @@ Scenario: AddAsyncParent | IsFailure | IsSuccess | Message | | False | True | | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 5001 | 42 | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | - | 5001 | 42 | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | - -Scenario: AddAsyncParentShortName - Given I reset the database after the scenario - When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | Name | ParentProductCategoryId | Rowguid | - | Hi | 42 | 00000000-1111-0000-0000-000000000002 | - And I call the method 'AddAsync' with the parameter values - | Key | Value | TypeName | - | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | - Then the result is of type - | Expected | - | AdventureWorksDemo.Data.Models.ServiceResult | - And the result is - | IsFailure | IsSuccess | Message | - | True | False | 'Name' must be between 3 and 50 characters. You entered 2 characters. | - - And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 0 | 42 | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 5001 | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | + And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | + | 5001 | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | Scenario: AddBatchAsync Given I reset the database after the scenario When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | Name | ParentProductCategoryId | Rowguid | - | How | 4 | 00000000-1111-1111-0000-000000000001 | - | Now | 5 | 00000000-1111-1111-0000-000000000002 | - | Brown | 41 | 00000000-1111-1111-0000-000000000003 | - | Cow | | 00000000-1111-1111-0000-000000000004 | + | Name | Rowguid | + | How | 00000000-1111-1111-0000-000000000001 | + | Now | 00000000-1111-1111-0000-000000000002 | + | Brown | 00000000-1111-1111-0000-000000000003 | + | Cow | 00000000-1111-1111-0000-000000000004 | And I call the method 'AddBatchAsync' with the parameter values | Key | Value | TypeName | | model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable | @@ -121,29 +74,28 @@ Scenario: AddBatchAsync | false | true | | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 5001 | 4 | How | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 | - | 5002 | 5 | Now | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 | - | 5003 | 41 | Brown | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 | - | 5004 | | Cow | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 5001 | How | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 | + | 5002 | Now | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 | + | 5003 | Brown | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 | + | 5004 | Cow | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | - | 5001 | 4 | How | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 | - | 5002 | 5 | Now | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 | - | 5003 | 41 | Brown | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 | - | 5004 | | Cow | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | + And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | + | 5001 | How | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 | + | 5002 | Now | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 | + | 5003 | Brown | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 | + | 5004 | Cow | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | Scenario: AddBatchAsync2ShortName - Given I reset the database after the scenario When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | Name | ParentProductCategoryId | Rowguid | - | Hi | 4 | 00000000-1111-1111-0000-000000000001 | - | Now | 5 | 00000000-1111-1111-0000-000000000002 | - | Brown | 41 | 00000000-1111-1111-0000-000000000003 | - | It | | 00000000-1111-1111-0000-000000000004 | + | Name | Rowguid | + | Hi | 00000000-1111-1111-0000-000000000001 | + | Now | 00000000-1111-1111-0000-000000000002 | + | Brown | 00000000-1111-1111-0000-000000000003 | + | It | 00000000-1111-1111-0000-000000000004 | And I call the method 'AddBatchAsync' with the parameter values | Key | Value | TypeName | | model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable | @@ -158,13 +110,13 @@ Scenario: AddBatchAsync2ShortName | 'Name' must be between 3 and 50 characters. You entered 2 characters. | | 'Name' must be between 3 and 50 characters. You entered 2 characters. | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 0 | 4 | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000001 | - | 0 | 5 | Now | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000002 | - | 0 | 41 | Brown | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000003 | - | 0 | | It | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000004 | + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 0 | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000001 | + | 0 | Now | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000002 | + | 0 | Brown | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000003 | + | 0 | It | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000004 | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature.cs index b3c7c6f..8476ddc 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature.cs +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature.cs @@ -108,13 +108,13 @@ await testRunner.GivenAsync("The service to test is \'AdventureWorksDemo.Data.Se } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncNoParent")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncShortName")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceAddTests")] - public async System.Threading.Tasks.Task AddAsyncNoParent() + public async System.Threading.Tasks.Task AddAsyncShortName() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncNoParent", null, tagsOfScenario, argumentsOfScenario, featureTags); + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncShortName", null, tagsOfScenario, argumentsOfScenario, featureTags); #line 12 this.ScenarioInitialize(scenarioInfo); #line hidden @@ -128,212 +128,90 @@ public async System.Threading.Tasks.Task AddAsyncNoParent() #line 8 await this.FeatureBackgroundAsync(); #line hidden -#line 13 - await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - global::Reqnroll.Table table403 = new global::Reqnroll.Table(new string[] { - "Name", - "ParentProductCategoryId", - "Rowguid"}); - table403.AddRow(new string[] { - "PingPong", - "", - "00000000-1111-0000-0000-000000000002"}); -#line 14 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table403, "When "); -#line hidden - global::Reqnroll.Table table404 = new global::Reqnroll.Table(new string[] { - "Key", - "Value", - "TypeName"}); - table404.AddRow(new string[] { - "model", - "{{model}}", - "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 17 - await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table404, "And "); -#line hidden - global::Reqnroll.Table table405 = new global::Reqnroll.Table(new string[] { - "Expected"}); - table405.AddRow(new string[] { - "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 20 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table405, "Then "); -#line hidden - global::Reqnroll.Table table406 = new global::Reqnroll.Table(new string[] { - "IsFailure", - "IsSuccess", - "Message"}); - table406.AddRow(new string[] { - "False", - "True", - ""}); -#line 23 - await testRunner.AndAsync("the result is", ((string)(null)), table406, "And "); -#line hidden - global::Reqnroll.Table table407 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", - "Name", - "ModifiedDate", - "Rowguid"}); - table407.AddRow(new string[] { - "5001", - "", - "PingPong", - "5/24/2024 12:34:56 PM", - "00000000-1111-0000-0000-000000000002"}); -#line 26 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table407, "And "); -#line hidden - global::Reqnroll.Table table408 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", + global::Reqnroll.Table table397 = new global::Reqnroll.Table(new string[] { "Name", - "ModifiedDate", "Rowguid"}); - table408.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", - "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table408.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); - table408.AddRow(new string[] { - "5001", - "", - "PingPong", - "5/24/2024 12:34:56 PM", - "00000000-1111-0000-0000-000000000002"}); -#line 29 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table408, "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncNoParentShortName")] - [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceAddTests")] - public async System.Threading.Tasks.Task AddAsyncNoParentShortName() - { - string[] tagsOfScenario = ((string[])(null)); - System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncNoParentShortName", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 35 -this.ScenarioInitialize(scenarioInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - testRunner.SkipScenario(); - } - else - { - await this.ScenarioStartAsync(); -#line 8 -await this.FeatureBackgroundAsync(); -#line hidden -#line 36 - await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - global::Reqnroll.Table table409 = new global::Reqnroll.Table(new string[] { - "Name", - "ParentProductCategoryId", - "Rowguid"}); - table409.AddRow(new string[] { + table397.AddRow(new string[] { "Hi", - "", "00000000-1111-0000-0000-000000000002"}); -#line 37 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table409, "When "); +#line 13 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table397, "When "); #line hidden - global::Reqnroll.Table table410 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table398 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table410.AddRow(new string[] { + table398.AddRow(new string[] { "model", "{{model}}", "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 40 - await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table410, "And "); +#line 16 + await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table398, "And "); #line hidden - global::Reqnroll.Table table411 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table399 = new global::Reqnroll.Table(new string[] { "Expected"}); - table411.AddRow(new string[] { + table399.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 43 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table411, "Then "); +#line 19 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table399, "Then "); #line hidden - global::Reqnroll.Table table412 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table400 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess", "Message"}); - table412.AddRow(new string[] { + table400.AddRow(new string[] { "True", "False", "\'Name\' must be between 3 and 50 characters. You entered 2 characters."}); -#line 46 - await testRunner.AndAsync("the result is", ((string)(null)), table412, "And "); +#line 22 + await testRunner.AndAsync("the result is", ((string)(null)), table400, "And "); #line hidden - global::Reqnroll.Table table413 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table401 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table413.AddRow(new string[] { + table401.AddRow(new string[] { "0", - "", "Hi", "1/1/0001 12:00:00 AM", "00000000-1111-0000-0000-000000000002"}); -#line 50 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table413, "And "); +#line 26 + await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table401, "And "); #line hidden - global::Reqnroll.Table table414 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table402 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table414.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table402.AddRow(new string[] { + "6", + "Road Bikes", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table414.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 54 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table414, "And "); + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table402.AddRow(new string[] { + "7", + "For Delete Tests Only", + "6/1/2002 12:00:00 AM", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 30 + await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table402, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncParent")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsync")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceAddTests")] - public async System.Threading.Tasks.Task AddAsyncParent() + public async System.Threading.Tasks.Task AddAsync() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncParent", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 59 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsync", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 35 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -346,198 +224,84 @@ public async System.Threading.Tasks.Task AddAsyncParent() #line 8 await this.FeatureBackgroundAsync(); #line hidden -#line 60 +#line 36 await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden - global::Reqnroll.Table table415 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table403 = new global::Reqnroll.Table(new string[] { "Name", - "ParentProductCategoryId", "Rowguid"}); - table415.AddRow(new string[] { + table403.AddRow(new string[] { "PingPong", - "42", "00000000-1111-0000-0000-000000000002"}); -#line 61 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table415, "When "); +#line 37 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table403, "When "); #line hidden - global::Reqnroll.Table table416 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table404 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table416.AddRow(new string[] { + table404.AddRow(new string[] { "model", "{{model}}", "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 64 - await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table416, "And "); +#line 40 + await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table404, "And "); #line hidden - global::Reqnroll.Table table417 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table405 = new global::Reqnroll.Table(new string[] { "Expected"}); - table417.AddRow(new string[] { + table405.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 67 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table417, "Then "); +#line 43 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table405, "Then "); #line hidden - global::Reqnroll.Table table418 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table406 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess", "Message"}); - table418.AddRow(new string[] { + table406.AddRow(new string[] { "False", "True", ""}); -#line 70 - await testRunner.AndAsync("the result is", ((string)(null)), table418, "And "); +#line 46 + await testRunner.AndAsync("the result is", ((string)(null)), table406, "And "); #line hidden - global::Reqnroll.Table table419 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table407 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table419.AddRow(new string[] { + table407.AddRow(new string[] { "5001", - "42", "PingPong", "5/24/2024 12:34:56 PM", "00000000-1111-0000-0000-000000000002"}); -#line 73 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table419, "And "); +#line 49 + await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table407, "And "); #line hidden - global::Reqnroll.Table table420 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table408 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table420.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table408.AddRow(new string[] { + "6", + "Road Bikes", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table420.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); - table420.AddRow(new string[] { + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table408.AddRow(new string[] { + "7", + "For Delete Tests Only", + "6/1/2002 12:00:00 AM", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); + table408.AddRow(new string[] { "5001", - "42", "PingPong", "5/24/2024 12:34:56 PM", "00000000-1111-0000-0000-000000000002"}); -#line 76 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table420, "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncParentShortName")] - [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceAddTests")] - public async System.Threading.Tasks.Task AddAsyncParentShortName() - { - string[] tagsOfScenario = ((string[])(null)); - System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncParentShortName", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 82 -this.ScenarioInitialize(scenarioInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - testRunner.SkipScenario(); - } - else - { - await this.ScenarioStartAsync(); -#line 8 -await this.FeatureBackgroundAsync(); -#line hidden -#line 83 - await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - global::Reqnroll.Table table421 = new global::Reqnroll.Table(new string[] { - "Name", - "ParentProductCategoryId", - "Rowguid"}); - table421.AddRow(new string[] { - "Hi", - "42", - "00000000-1111-0000-0000-000000000002"}); -#line 84 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table421, "When "); -#line hidden - global::Reqnroll.Table table422 = new global::Reqnroll.Table(new string[] { - "Key", - "Value", - "TypeName"}); - table422.AddRow(new string[] { - "model", - "{{model}}", - "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 87 - await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table422, "And "); -#line hidden - global::Reqnroll.Table table423 = new global::Reqnroll.Table(new string[] { - "Expected"}); - table423.AddRow(new string[] { - "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 90 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table423, "Then "); -#line hidden - global::Reqnroll.Table table424 = new global::Reqnroll.Table(new string[] { - "IsFailure", - "IsSuccess", - "Message"}); - table424.AddRow(new string[] { - "True", - "False", - "\'Name\' must be between 3 and 50 characters. You entered 2 characters."}); -#line 93 - await testRunner.AndAsync("the result is", ((string)(null)), table424, "And "); -#line hidden - global::Reqnroll.Table table425 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", - "Name", - "ModifiedDate", - "Rowguid"}); - table425.AddRow(new string[] { - "0", - "42", - "Hi", - "1/1/0001 12:00:00 AM", - "00000000-1111-0000-0000-000000000002"}); -#line 97 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table425, "And "); -#line hidden - global::Reqnroll.Table table426 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", - "Name", - "ModifiedDate", - "Rowguid"}); - table426.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", - "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table426.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 100 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table426, "And "); +#line 52 + await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table408, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -551,7 +315,7 @@ public async System.Threading.Tasks.Task AddBatchAsync() string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddBatchAsync", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 105 +#line 58 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -564,142 +328,125 @@ public async System.Threading.Tasks.Task AddBatchAsync() #line 8 await this.FeatureBackgroundAsync(); #line hidden -#line 106 +#line 59 await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden - global::Reqnroll.Table table427 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table409 = new global::Reqnroll.Table(new string[] { "Name", - "ParentProductCategoryId", "Rowguid"}); - table427.AddRow(new string[] { + table409.AddRow(new string[] { "How", - "4", "00000000-1111-1111-0000-000000000001"}); - table427.AddRow(new string[] { + table409.AddRow(new string[] { "Now", - "5", "00000000-1111-1111-0000-000000000002"}); - table427.AddRow(new string[] { + table409.AddRow(new string[] { "Brown", - "41", "00000000-1111-1111-0000-000000000003"}); - table427.AddRow(new string[] { + table409.AddRow(new string[] { "Cow", - "", "00000000-1111-1111-0000-000000000004"}); -#line 107 +#line 60 await testRunner.WhenAsync("I populate a list of the model \'AdventureWorksDemo.Data.Models.ProductCategoryMod" + - "el\'", ((string)(null)), table427, "When "); + "el\'", ((string)(null)), table409, "When "); #line hidden - global::Reqnroll.Table table428 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table410 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table428.AddRow(new string[] { + table410.AddRow(new string[] { "model", "{{ListOfObjects}}", "System.Collections.Generic.IEnumerable"}); -#line 113 - await testRunner.AndAsync("I call the method \'AddBatchAsync\' with the parameter values", ((string)(null)), table428, "And "); +#line 66 + await testRunner.AndAsync("I call the method \'AddBatchAsync\' with the parameter values", ((string)(null)), table410, "And "); #line hidden - global::Reqnroll.Table table429 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table411 = new global::Reqnroll.Table(new string[] { "Expected"}); - table429.AddRow(new string[] { + table411.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 116 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table429, "Then "); +#line 69 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table411, "Then "); #line hidden - global::Reqnroll.Table table430 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table412 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess", "Message"}); - table430.AddRow(new string[] { + table412.AddRow(new string[] { "false", "true", ""}); -#line 119 - await testRunner.AndAsync("the result is", ((string)(null)), table430, "And "); +#line 72 + await testRunner.AndAsync("the result is", ((string)(null)), table412, "And "); #line hidden - global::Reqnroll.Table table431 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table413 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table431.AddRow(new string[] { + table413.AddRow(new string[] { "5001", - "4", "How", "5/24/2024 12:34:56 PM", "00000000-1111-1111-0000-000000000001"}); - table431.AddRow(new string[] { + table413.AddRow(new string[] { "5002", - "5", "Now", "5/24/2024 12:34:56 PM", "00000000-1111-1111-0000-000000000002"}); - table431.AddRow(new string[] { + table413.AddRow(new string[] { "5003", - "41", "Brown", "5/24/2024 12:34:56 PM", "00000000-1111-1111-0000-000000000003"}); - table431.AddRow(new string[] { + table413.AddRow(new string[] { "5004", - "", "Cow", "5/24/2024 12:34:56 PM", "00000000-1111-1111-0000-000000000004"}); -#line 123 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table431, "And "); +#line 76 + await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table413, "And "); #line hidden - global::Reqnroll.Table table432 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table414 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table432.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table414.AddRow(new string[] { + "6", + "Road Bikes", + "6/1/2002 12:00:00 AM", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table414.AddRow(new string[] { + "7", + "For Delete Tests Only", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table432.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); - table432.AddRow(new string[] { + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); + table414.AddRow(new string[] { "5001", - "4", "How", "5/24/2024 12:34:56 PM", "00000000-1111-1111-0000-000000000001"}); - table432.AddRow(new string[] { + table414.AddRow(new string[] { "5002", - "5", "Now", "5/24/2024 12:34:56 PM", "00000000-1111-1111-0000-000000000002"}); - table432.AddRow(new string[] { + table414.AddRow(new string[] { "5003", - "41", "Brown", "5/24/2024 12:34:56 PM", "00000000-1111-1111-0000-000000000003"}); - table432.AddRow(new string[] { + table414.AddRow(new string[] { "5004", - "", "Cow", "5/24/2024 12:34:56 PM", "00000000-1111-1111-0000-000000000004"}); -#line 130 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table432, "And "); +#line 83 + await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table414, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -713,7 +460,7 @@ public async System.Threading.Tasks.Task AddBatchAsync2ShortName() string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddBatchAsync2ShortName", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 139 +#line 92 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -726,125 +473,109 @@ public async System.Threading.Tasks.Task AddBatchAsync2ShortName() #line 8 await this.FeatureBackgroundAsync(); #line hidden -#line 140 - await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - global::Reqnroll.Table table433 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table415 = new global::Reqnroll.Table(new string[] { "Name", - "ParentProductCategoryId", "Rowguid"}); - table433.AddRow(new string[] { + table415.AddRow(new string[] { "Hi", - "4", "00000000-1111-1111-0000-000000000001"}); - table433.AddRow(new string[] { + table415.AddRow(new string[] { "Now", - "5", "00000000-1111-1111-0000-000000000002"}); - table433.AddRow(new string[] { + table415.AddRow(new string[] { "Brown", - "41", "00000000-1111-1111-0000-000000000003"}); - table433.AddRow(new string[] { + table415.AddRow(new string[] { "It", - "", "00000000-1111-1111-0000-000000000004"}); -#line 141 +#line 93 await testRunner.WhenAsync("I populate a list of the model \'AdventureWorksDemo.Data.Models.ProductCategoryMod" + - "el\'", ((string)(null)), table433, "When "); + "el\'", ((string)(null)), table415, "When "); #line hidden - global::Reqnroll.Table table434 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table416 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table434.AddRow(new string[] { + table416.AddRow(new string[] { "model", "{{ListOfObjects}}", "System.Collections.Generic.IEnumerable"}); -#line 147 - await testRunner.AndAsync("I call the method \'AddBatchAsync\' with the parameter values", ((string)(null)), table434, "And "); +#line 99 + await testRunner.AndAsync("I call the method \'AddBatchAsync\' with the parameter values", ((string)(null)), table416, "And "); #line hidden - global::Reqnroll.Table table435 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table417 = new global::Reqnroll.Table(new string[] { "Expected"}); - table435.AddRow(new string[] { + table417.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 150 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table435, "Then "); +#line 102 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table417, "Then "); #line hidden - global::Reqnroll.Table table436 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table418 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess"}); - table436.AddRow(new string[] { + table418.AddRow(new string[] { "True", "False"}); -#line 153 - await testRunner.AndAsync("the result is", ((string)(null)), table436, "And "); +#line 105 + await testRunner.AndAsync("the result is", ((string)(null)), table418, "And "); #line hidden - global::Reqnroll.Table table437 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table419 = new global::Reqnroll.Table(new string[] { "Expected"}); - table437.AddRow(new string[] { + table419.AddRow(new string[] { "\'Name\' must be between 3 and 50 characters. You entered 2 characters."}); - table437.AddRow(new string[] { + table419.AddRow(new string[] { "\'Name\' must be between 3 and 50 characters. You entered 2 characters."}); -#line 156 - await testRunner.AndAsync("the results property \'Message\' contains", ((string)(null)), table437, "And "); +#line 108 + await testRunner.AndAsync("the results property \'Message\' contains", ((string)(null)), table419, "And "); #line hidden - global::Reqnroll.Table table438 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table420 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table438.AddRow(new string[] { + table420.AddRow(new string[] { "0", - "4", "Hi", "1/1/0001 12:00:00 AM", "00000000-1111-1111-0000-000000000001"}); - table438.AddRow(new string[] { + table420.AddRow(new string[] { "0", - "5", "Now", "1/1/0001 12:00:00 AM", "00000000-1111-1111-0000-000000000002"}); - table438.AddRow(new string[] { + table420.AddRow(new string[] { "0", - "41", "Brown", "1/1/0001 12:00:00 AM", "00000000-1111-1111-0000-000000000003"}); - table438.AddRow(new string[] { + table420.AddRow(new string[] { "0", - "", "It", "1/1/0001 12:00:00 AM", "00000000-1111-1111-0000-000000000004"}); -#line 160 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table438, "And "); +#line 112 + await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table420, "And "); #line hidden - global::Reqnroll.Table table439 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table421 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table439.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table421.AddRow(new string[] { + "6", + "Road Bikes", + "6/1/2002 12:00:00 AM", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table421.AddRow(new string[] { + "7", + "For Delete Tests Only", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table439.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 167 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table439, "And "); + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 119 + await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table421, "And "); #line hidden } await this.ScenarioCleanupAsync(); diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature index dc5c152..492e347 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature @@ -10,7 +10,6 @@ Background: Scenario: DeleteAsync1234 - When I call the method 'DeleteAsync' with the parameter values | Key | Value | TypeName | ModifiedDate | | productCategoryId | 1234 | int | 21 Apr 2024 12:34:56 | @@ -18,36 +17,37 @@ Scenario: DeleteAsync1234 | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is - | IsFailure | IsSuccess | Message | + | IsFailure | IsSuccess | Message | | True | False | Unable to find record to delete! | - And the ServiceResult is of type 'System.Boolean' with the value - | Expected | - | False | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | - - - + And the table 'Production.ProductCategory' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 1 | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | -Scenario: DeleteAsync42 +Scenario: DeleteAsync7 Given I reset the database after the scenario When I call the method 'DeleteAsync' with the parameter values | Key | Value | TypeName | - | productCategoryId | 42 | int | + | productCategoryId | 7 | int | Then the result is of type | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is | IsFailure | IsSuccess | Message | | False | True | | - And the ServiceResult is of type 'System.Boolean' with the value - | Expected | - | True | - Then the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | + Then the table 'Production.ProductCategory' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 1 | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature.cs index d1526f2..7d9be85 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature.cs +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature.cs @@ -128,79 +128,93 @@ public async System.Threading.Tasks.Task DeleteAsync1234() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table440 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table422 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName", "ModifiedDate"}); - table440.AddRow(new string[] { + table422.AddRow(new string[] { "productCategoryId", "1234", "int", "21 Apr 2024 12:34:56"}); -#line 14 - await testRunner.WhenAsync("I call the method \'DeleteAsync\' with the parameter values", ((string)(null)), table440, "When "); +#line 13 + await testRunner.WhenAsync("I call the method \'DeleteAsync\' with the parameter values", ((string)(null)), table422, "When "); #line hidden - global::Reqnroll.Table table441 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table423 = new global::Reqnroll.Table(new string[] { "Expected"}); - table441.AddRow(new string[] { + table423.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 17 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table441, "Then "); +#line 16 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table423, "Then "); #line hidden - global::Reqnroll.Table table442 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table424 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess", "Message"}); - table442.AddRow(new string[] { + table424.AddRow(new string[] { "True", "False", "Unable to find record to delete!"}); -#line 20 - await testRunner.AndAsync("the result is", ((string)(null)), table442, "And "); +#line 19 + await testRunner.AndAsync("the result is", ((string)(null)), table424, "And "); #line hidden - global::Reqnroll.Table table443 = new global::Reqnroll.Table(new string[] { - "Expected"}); - table443.AddRow(new string[] { - "False"}); -#line 24 - await testRunner.AndAsync("the ServiceResult is of type \'System.Boolean\' with the value", ((string)(null)), table443, "And "); -#line hidden - global::Reqnroll.Table table444 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table425 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table444.AddRow(new string[] { - "41", + table425.AddRow(new string[] { + "1", + "Bikes", + "6/1/2002 12:00:00 AM", + "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); + table425.AddRow(new string[] { + "2", + "Components", + "6/1/2002 12:00:00 AM", + "c657828d-d808-4aba-91a3-af2ce02300e9"}); + table425.AddRow(new string[] { + "3", + "Clothing", + "6/1/2002 12:00:00 AM", + "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); + table425.AddRow(new string[] { "4", - "Tires and Tubes", + "Accessories", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table444.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 27 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table444, "And "); + "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); + table425.AddRow(new string[] { + "5", + "Mountain Bikes", + "6/1/2002 12:00:00 AM", + "2d364ade-264a-433c-b092-4fcbf3804e01"}); + table425.AddRow(new string[] { + "6", + "Road Bikes", + "6/1/2002 12:00:00 AM", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table425.AddRow(new string[] { + "7", + "For Delete Tests Only", + "6/1/2002 12:00:00 AM", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 23 + await testRunner.AndAsync("the table \'Production.ProductCategory\' contains", ((string)(null)), table425, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("DeleteAsync42")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("DeleteAsync7")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceDeleteTests")] - public async System.Threading.Tasks.Task DeleteAsync42() + public async System.Threading.Tasks.Task DeleteAsync7() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("DeleteAsync42", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 35 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("DeleteAsync7", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 33 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -213,60 +227,75 @@ public async System.Threading.Tasks.Task DeleteAsync42() #line 7 await this.FeatureBackgroundAsync(); #line hidden -#line 36 +#line 34 await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden - global::Reqnroll.Table table445 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table426 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table445.AddRow(new string[] { + table426.AddRow(new string[] { "productCategoryId", - "42", + "7", "int"}); -#line 37 - await testRunner.WhenAsync("I call the method \'DeleteAsync\' with the parameter values", ((string)(null)), table445, "When "); +#line 35 + await testRunner.WhenAsync("I call the method \'DeleteAsync\' with the parameter values", ((string)(null)), table426, "When "); #line hidden - global::Reqnroll.Table table446 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table427 = new global::Reqnroll.Table(new string[] { "Expected"}); - table446.AddRow(new string[] { + table427.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 40 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table446, "Then "); +#line 38 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table427, "Then "); #line hidden - global::Reqnroll.Table table447 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table428 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess", "Message"}); - table447.AddRow(new string[] { + table428.AddRow(new string[] { "False", "True", ""}); -#line 43 - await testRunner.AndAsync("the result is", ((string)(null)), table447, "And "); -#line hidden - global::Reqnroll.Table table448 = new global::Reqnroll.Table(new string[] { - "Expected"}); - table448.AddRow(new string[] { - "True"}); -#line 46 - await testRunner.AndAsync("the ServiceResult is of type \'System.Boolean\' with the value", ((string)(null)), table448, "And "); +#line 41 + await testRunner.AndAsync("the result is", ((string)(null)), table428, "And "); #line hidden - global::Reqnroll.Table table449 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table429 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table449.AddRow(new string[] { - "41", + table429.AddRow(new string[] { + "1", + "Bikes", + "6/1/2002 12:00:00 AM", + "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); + table429.AddRow(new string[] { + "2", + "Components", + "6/1/2002 12:00:00 AM", + "c657828d-d808-4aba-91a3-af2ce02300e9"}); + table429.AddRow(new string[] { + "3", + "Clothing", + "6/1/2002 12:00:00 AM", + "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); + table429.AddRow(new string[] { "4", - "Tires and Tubes", + "Accessories", + "6/1/2002 12:00:00 AM", + "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); + table429.AddRow(new string[] { + "5", + "Mountain Bikes", + "6/1/2002 12:00:00 AM", + "2d364ade-264a-433c-b092-4fcbf3804e01"}); + table429.AddRow(new string[] { + "6", + "Road Bikes", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); -#line 49 - await testRunner.ThenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table449, "Then "); + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); +#line 44 + await testRunner.ThenAsync("the table \'Production.ProductCategory\' contains", ((string)(null)), table429, "Then "); #line hidden } await this.ScenarioCleanupAsync(); diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature index 2639b09..d66642f 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature @@ -15,8 +15,8 @@ Scenario: FindAsync01 | Expected | | AdventureWorksDemo.Data.Models.ProductCategoryModel | And the result is - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Bikes | | 1 | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | Scenario: FindAsync04 When I call the method 'FindAsync' with the parameter values @@ -26,39 +26,54 @@ Scenario: FindAsync04 | Expected | | AdventureWorksDemo.Data.Models.ProductCategoryModel | And the result is - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Accessories | | 4 | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | - -Scenario: FindAsync1234 - When I call the method 'FindAsync' with the parameter values - | Key | Value | TypeName | - | productCategoryId | 1234 | int | - + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + +Scenario: FindAllAsync_0_5 + When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' + | PageNumber | PageSize | + | 0 | 5 | + And I call the method 'FindAllAsync' with the parameter values + | Key | Value | TypeName | + | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | Then the result is of type - | Expected | - | AdventureWorksDemo.Data.Models.ProductCategoryModel | - And the result is null - -Scenario: FindAllAsync_1_5 + | Expected | + | AdventureWorksDemo.Data.Paging.PagedList | + + And the PagedList values are + | TotalPages | TotalCount | PageSize | CurrentPage | + | 2 | 7 | 5 | 0 | + And the sorted results are + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + +Scenario: FindAllAsync_0_0 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 1 | 5 | + | 0 | 0 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | Then the result is of type | Expected | | AdventureWorksDemo.Data.Paging.PagedList | + And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 9 | 42 | 5 | 1 | + | 1 | 7 | 25 | 0 | And the sorted results are - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Road Bikes | 1 | 6 | 000310c0-bcc8-42c4-b0c3-45ae611af06b | - | 6/1/2002 12:00:00 AM | Touring Bikes | 1 | 7 | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | - | 6/1/2002 12:00:00 AM | Handlebars | 2 | 8 | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 | - | 6/1/2002 12:00:00 AM | Bottom Brackets | 2 | 9 | a9e54089-8a1e-4cf5-8646-e3801f685934 | - | 6/1/2002 12:00:00 AM | Brakes | 2 | 10 | d43ba4a3-ef0d-426b-90eb-4be4547dd30c | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | Scenario: FindAllAsync_0_500 @@ -73,51 +88,17 @@ Scenario: FindAllAsync_0_500 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 42 | 100 | 0 | + | 1 | 7 | 100 | 0 | And the sorted results are - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 1 | | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c | - | 2 | | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 | - | 3 | | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | - | 4 | | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | - | 5 | 1 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 | - | 6 | 1 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | - | 7 | 1 | Touring Bikes | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | - | 8 | 2 | Handlebars | 6/1/2002 12:00:00 AM | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 | - | 9 | 2 | Bottom Brackets | 6/1/2002 12:00:00 AM | a9e54089-8a1e-4cf5-8646-e3801f685934 | - | 10 | 2 | Brakes | 6/1/2002 12:00:00 AM | d43ba4a3-ef0d-426b-90eb-4be4547dd30c | - | 11 | 2 | Chains | 6/1/2002 12:00:00 AM | e93a7231-f16c-4b0f-8c41-c73fdec62da0 | - | 12 | 2 | Cranksets | 6/1/2002 12:00:00 AM | 4f644521-422b-4f19-974a-e3df6102567e | - | 13 | 2 | Derailleurs | 6/1/2002 12:00:00 AM | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf | - | 14 | 2 | Forks | 6/1/2002 12:00:00 AM | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf | - | 15 | 2 | Headsets | 6/1/2002 12:00:00 AM | 7c782bbe-5a16-495a-aa50-10afe5a84af2 | - | 16 | 2 | Mountain Frames | 6/1/2002 12:00:00 AM | 61b21b65-e16a-4be7-9300-4d8e9db861be | - | 17 | 2 | Pedals | 6/1/2002 12:00:00 AM | 6d24ac07-7a84-4849-864a-865a14125bc9 | - | 18 | 2 | Road Frames | 6/1/2002 12:00:00 AM | 5515f857-075b-4f9a-87b7-43b4997077b3 | - | 19 | 2 | Saddles | 6/1/2002 12:00:00 AM | 049fffa3-9d30-46df-82f7-f20730ec02b3 | - | 20 | 2 | Touring Frames | 6/1/2002 12:00:00 AM | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 | - | 21 | 2 | Wheels | 6/1/2002 12:00:00 AM | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 | - | 22 | 3 | Bib-Shorts | 6/1/2002 12:00:00 AM | 67b58d2b-5798-4a90-8c6c-5ddacf057171 | - | 23 | 3 | Caps | 6/1/2002 12:00:00 AM | 430dd6a8-a755-4b23-bb05-52520107da5f | - | 24 | 3 | Gloves | 6/1/2002 12:00:00 AM | 92d5657b-0032-4e49-bad5-41a441a70942 | - | 25 | 3 | Jerseys | 6/1/2002 12:00:00 AM | 09e91437-ba4f-4b1a-8215-74184fd95db8 | - | 26 | 3 | Shorts | 6/1/2002 12:00:00 AM | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da | - | 27 | 3 | Socks | 6/1/2002 12:00:00 AM | 701019c3-09fe-4949-8386-c6ce686474e5 | - | 28 | 3 | Tights | 6/1/2002 12:00:00 AM | 5deb3e55-9897-4416-b18a-515e970bc2d1 | - | 29 | 3 | Vests | 6/1/2002 12:00:00 AM | 9ad7fe93-5ba0-4736-b578-ff80a2071297 | - | 30 | 4 | Bike Racks | 6/1/2002 12:00:00 AM | 4624b5ce-66d6-496b-9201-c053df3556cc | - | 31 | 4 | Bike Stands | 6/1/2002 12:00:00 AM | 43b445c8-b820-424e-a1d5-90d81da0b46f | - | 32 | 4 | Bottles and Cages | 6/1/2002 12:00:00 AM | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 | - | 33 | 4 | Cleaners | 6/1/2002 12:00:00 AM | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 | - | 34 | 4 | Fenders | 6/1/2002 12:00:00 AM | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 | - | 35 | 4 | Helmets | 6/1/2002 12:00:00 AM | f5e07a33-c9e0-439c-b5f3-9f25fb65becc | - | 36 | 4 | Hydration Packs | 6/1/2002 12:00:00 AM | 646a8906-fc87-4267-a443-9c6d791e6693 | - | 37 | 4 | Lights | 6/1/2002 12:00:00 AM | 954178ba-624f-42db-95f6-ca035f36d130 | - | 38 | 4 | Locks | 6/1/2002 12:00:00 AM | 19646983-3fa0-4773-9a0c-f34c49df9bc8 | - | 39 | 4 | Panniers | 6/1/2002 12:00:00 AM | 3002a5d5-fec3-464b-bef3-e0f81d35f431 | - | 40 | 4 | Pumps | 6/1/2002 12:00:00 AM | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | + Scenario: FindAllAsync_0_500_Sort_ProductCategoryId When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -131,51 +112,16 @@ Scenario: FindAllAsync_0_500_Sort_ProductCategoryId | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 42 | 100 | 0 | + | 1 | 7 | 100 | 0 | And the sorted results are - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 1 | | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c | - | 2 | | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 | - | 3 | | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | - | 4 | | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | - | 5 | 1 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 | - | 6 | 1 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | - | 7 | 1 | Touring Bikes | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | - | 8 | 2 | Handlebars | 6/1/2002 12:00:00 AM | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 | - | 9 | 2 | Bottom Brackets | 6/1/2002 12:00:00 AM | a9e54089-8a1e-4cf5-8646-e3801f685934 | - | 10 | 2 | Brakes | 6/1/2002 12:00:00 AM | d43ba4a3-ef0d-426b-90eb-4be4547dd30c | - | 11 | 2 | Chains | 6/1/2002 12:00:00 AM | e93a7231-f16c-4b0f-8c41-c73fdec62da0 | - | 12 | 2 | Cranksets | 6/1/2002 12:00:00 AM | 4f644521-422b-4f19-974a-e3df6102567e | - | 13 | 2 | Derailleurs | 6/1/2002 12:00:00 AM | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf | - | 14 | 2 | Forks | 6/1/2002 12:00:00 AM | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf | - | 15 | 2 | Headsets | 6/1/2002 12:00:00 AM | 7c782bbe-5a16-495a-aa50-10afe5a84af2 | - | 16 | 2 | Mountain Frames | 6/1/2002 12:00:00 AM | 61b21b65-e16a-4be7-9300-4d8e9db861be | - | 17 | 2 | Pedals | 6/1/2002 12:00:00 AM | 6d24ac07-7a84-4849-864a-865a14125bc9 | - | 18 | 2 | Road Frames | 6/1/2002 12:00:00 AM | 5515f857-075b-4f9a-87b7-43b4997077b3 | - | 19 | 2 | Saddles | 6/1/2002 12:00:00 AM | 049fffa3-9d30-46df-82f7-f20730ec02b3 | - | 20 | 2 | Touring Frames | 6/1/2002 12:00:00 AM | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 | - | 21 | 2 | Wheels | 6/1/2002 12:00:00 AM | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 | - | 22 | 3 | Bib-Shorts | 6/1/2002 12:00:00 AM | 67b58d2b-5798-4a90-8c6c-5ddacf057171 | - | 23 | 3 | Caps | 6/1/2002 12:00:00 AM | 430dd6a8-a755-4b23-bb05-52520107da5f | - | 24 | 3 | Gloves | 6/1/2002 12:00:00 AM | 92d5657b-0032-4e49-bad5-41a441a70942 | - | 25 | 3 | Jerseys | 6/1/2002 12:00:00 AM | 09e91437-ba4f-4b1a-8215-74184fd95db8 | - | 26 | 3 | Shorts | 6/1/2002 12:00:00 AM | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da | - | 27 | 3 | Socks | 6/1/2002 12:00:00 AM | 701019c3-09fe-4949-8386-c6ce686474e5 | - | 28 | 3 | Tights | 6/1/2002 12:00:00 AM | 5deb3e55-9897-4416-b18a-515e970bc2d1 | - | 29 | 3 | Vests | 6/1/2002 12:00:00 AM | 9ad7fe93-5ba0-4736-b578-ff80a2071297 | - | 30 | 4 | Bike Racks | 6/1/2002 12:00:00 AM | 4624b5ce-66d6-496b-9201-c053df3556cc | - | 31 | 4 | Bike Stands | 6/1/2002 12:00:00 AM | 43b445c8-b820-424e-a1d5-90d81da0b46f | - | 32 | 4 | Bottles and Cages | 6/1/2002 12:00:00 AM | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 | - | 33 | 4 | Cleaners | 6/1/2002 12:00:00 AM | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 | - | 34 | 4 | Fenders | 6/1/2002 12:00:00 AM | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 | - | 35 | 4 | Helmets | 6/1/2002 12:00:00 AM | f5e07a33-c9e0-439c-b5f3-9f25fb65becc | - | 36 | 4 | Hydration Packs | 6/1/2002 12:00:00 AM | 646a8906-fc87-4267-a443-9c6d791e6693 | - | 37 | 4 | Lights | 6/1/2002 12:00:00 AM | 954178ba-624f-42db-95f6-ca035f36d130 | - | 38 | 4 | Locks | 6/1/2002 12:00:00 AM | 19646983-3fa0-4773-9a0c-f34c49df9bc8 | - | 39 | 4 | Panniers | 6/1/2002 12:00:00 AM | 3002a5d5-fec3-464b-bef3-e0f81d35f431 | - | 40 | 4 | Pumps | 6/1/2002 12:00:00 AM | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | Scenario: FindAllAsync_0_500_Sort_ProductCategoryIdDesc @@ -190,51 +136,16 @@ Scenario: FindAllAsync_0_500_Sort_ProductCategoryIdDesc | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 42 | 100 | 0 | + | 1 | 7 | 100 | 0 | And the sorted results are - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 40 | 4 | Pumps | 6/1/2002 12:00:00 AM | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 | - | 39 | 4 | Panniers | 6/1/2002 12:00:00 AM | 3002a5d5-fec3-464b-bef3-e0f81d35f431 | - | 38 | 4 | Locks | 6/1/2002 12:00:00 AM | 19646983-3fa0-4773-9a0c-f34c49df9bc8 | - | 37 | 4 | Lights | 6/1/2002 12:00:00 AM | 954178ba-624f-42db-95f6-ca035f36d130 | - | 36 | 4 | Hydration Packs | 6/1/2002 12:00:00 AM | 646a8906-fc87-4267-a443-9c6d791e6693 | - | 35 | 4 | Helmets | 6/1/2002 12:00:00 AM | f5e07a33-c9e0-439c-b5f3-9f25fb65becc | - | 34 | 4 | Fenders | 6/1/2002 12:00:00 AM | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 | - | 33 | 4 | Cleaners | 6/1/2002 12:00:00 AM | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 | - | 32 | 4 | Bottles and Cages | 6/1/2002 12:00:00 AM | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 | - | 31 | 4 | Bike Stands | 6/1/2002 12:00:00 AM | 43b445c8-b820-424e-a1d5-90d81da0b46f | - | 30 | 4 | Bike Racks | 6/1/2002 12:00:00 AM | 4624b5ce-66d6-496b-9201-c053df3556cc | - | 29 | 3 | Vests | 6/1/2002 12:00:00 AM | 9ad7fe93-5ba0-4736-b578-ff80a2071297 | - | 28 | 3 | Tights | 6/1/2002 12:00:00 AM | 5deb3e55-9897-4416-b18a-515e970bc2d1 | - | 27 | 3 | Socks | 6/1/2002 12:00:00 AM | 701019c3-09fe-4949-8386-c6ce686474e5 | - | 26 | 3 | Shorts | 6/1/2002 12:00:00 AM | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da | - | 25 | 3 | Jerseys | 6/1/2002 12:00:00 AM | 09e91437-ba4f-4b1a-8215-74184fd95db8 | - | 24 | 3 | Gloves | 6/1/2002 12:00:00 AM | 92d5657b-0032-4e49-bad5-41a441a70942 | - | 23 | 3 | Caps | 6/1/2002 12:00:00 AM | 430dd6a8-a755-4b23-bb05-52520107da5f | - | 22 | 3 | Bib-Shorts | 6/1/2002 12:00:00 AM | 67b58d2b-5798-4a90-8c6c-5ddacf057171 | - | 21 | 2 | Wheels | 6/1/2002 12:00:00 AM | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 | - | 20 | 2 | Touring Frames | 6/1/2002 12:00:00 AM | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 | - | 19 | 2 | Saddles | 6/1/2002 12:00:00 AM | 049fffa3-9d30-46df-82f7-f20730ec02b3 | - | 18 | 2 | Road Frames | 6/1/2002 12:00:00 AM | 5515f857-075b-4f9a-87b7-43b4997077b3 | - | 17 | 2 | Pedals | 6/1/2002 12:00:00 AM | 6d24ac07-7a84-4849-864a-865a14125bc9 | - | 16 | 2 | Mountain Frames | 6/1/2002 12:00:00 AM | 61b21b65-e16a-4be7-9300-4d8e9db861be | - | 15 | 2 | Headsets | 6/1/2002 12:00:00 AM | 7c782bbe-5a16-495a-aa50-10afe5a84af2 | - | 14 | 2 | Forks | 6/1/2002 12:00:00 AM | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf | - | 13 | 2 | Derailleurs | 6/1/2002 12:00:00 AM | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf | - | 12 | 2 | Cranksets | 6/1/2002 12:00:00 AM | 4f644521-422b-4f19-974a-e3df6102567e | - | 11 | 2 | Chains | 6/1/2002 12:00:00 AM | e93a7231-f16c-4b0f-8c41-c73fdec62da0 | - | 10 | 2 | Brakes | 6/1/2002 12:00:00 AM | d43ba4a3-ef0d-426b-90eb-4be4547dd30c | - | 9 | 2 | Bottom Brackets | 6/1/2002 12:00:00 AM | a9e54089-8a1e-4cf5-8646-e3801f685934 | - | 8 | 2 | Handlebars | 6/1/2002 12:00:00 AM | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 | - | 7 | 1 | Touring Bikes | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | - | 6 | 1 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | - | 5 | 1 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 | - | 4 | | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | - | 3 | | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | - | 2 | | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 | - | 1 | | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | Scenario: FindAllAsync_0_500_Sort_ProductCategoryIdASC @@ -249,76 +160,31 @@ Scenario: FindAllAsync_0_500_Sort_ProductCategoryIdASC | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 1 | 42 | 100 | 0 | + | 1 | 7 | 100 | 0 | And the sorted results are - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 1 | | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c | - | 2 | | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 | - | 3 | | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | - | 4 | | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | - | 5 | 1 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 | - | 6 | 1 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | - | 7 | 1 | Touring Bikes | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | - | 8 | 2 | Handlebars | 6/1/2002 12:00:00 AM | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 | - | 9 | 2 | Bottom Brackets | 6/1/2002 12:00:00 AM | a9e54089-8a1e-4cf5-8646-e3801f685934 | - | 10 | 2 | Brakes | 6/1/2002 12:00:00 AM | d43ba4a3-ef0d-426b-90eb-4be4547dd30c | - | 11 | 2 | Chains | 6/1/2002 12:00:00 AM | e93a7231-f16c-4b0f-8c41-c73fdec62da0 | - | 12 | 2 | Cranksets | 6/1/2002 12:00:00 AM | 4f644521-422b-4f19-974a-e3df6102567e | - | 13 | 2 | Derailleurs | 6/1/2002 12:00:00 AM | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf | - | 14 | 2 | Forks | 6/1/2002 12:00:00 AM | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf | - | 15 | 2 | Headsets | 6/1/2002 12:00:00 AM | 7c782bbe-5a16-495a-aa50-10afe5a84af2 | - | 16 | 2 | Mountain Frames | 6/1/2002 12:00:00 AM | 61b21b65-e16a-4be7-9300-4d8e9db861be | - | 17 | 2 | Pedals | 6/1/2002 12:00:00 AM | 6d24ac07-7a84-4849-864a-865a14125bc9 | - | 18 | 2 | Road Frames | 6/1/2002 12:00:00 AM | 5515f857-075b-4f9a-87b7-43b4997077b3 | - | 19 | 2 | Saddles | 6/1/2002 12:00:00 AM | 049fffa3-9d30-46df-82f7-f20730ec02b3 | - | 20 | 2 | Touring Frames | 6/1/2002 12:00:00 AM | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 | - | 21 | 2 | Wheels | 6/1/2002 12:00:00 AM | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 | - | 22 | 3 | Bib-Shorts | 6/1/2002 12:00:00 AM | 67b58d2b-5798-4a90-8c6c-5ddacf057171 | - | 23 | 3 | Caps | 6/1/2002 12:00:00 AM | 430dd6a8-a755-4b23-bb05-52520107da5f | - | 24 | 3 | Gloves | 6/1/2002 12:00:00 AM | 92d5657b-0032-4e49-bad5-41a441a70942 | - | 25 | 3 | Jerseys | 6/1/2002 12:00:00 AM | 09e91437-ba4f-4b1a-8215-74184fd95db8 | - | 26 | 3 | Shorts | 6/1/2002 12:00:00 AM | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da | - | 27 | 3 | Socks | 6/1/2002 12:00:00 AM | 701019c3-09fe-4949-8386-c6ce686474e5 | - | 28 | 3 | Tights | 6/1/2002 12:00:00 AM | 5deb3e55-9897-4416-b18a-515e970bc2d1 | - | 29 | 3 | Vests | 6/1/2002 12:00:00 AM | 9ad7fe93-5ba0-4736-b578-ff80a2071297 | - | 30 | 4 | Bike Racks | 6/1/2002 12:00:00 AM | 4624b5ce-66d6-496b-9201-c053df3556cc | - | 31 | 4 | Bike Stands | 6/1/2002 12:00:00 AM | 43b445c8-b820-424e-a1d5-90d81da0b46f | - | 32 | 4 | Bottles and Cages | 6/1/2002 12:00:00 AM | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 | - | 33 | 4 | Cleaners | 6/1/2002 12:00:00 AM | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 | - | 34 | 4 | Fenders | 6/1/2002 12:00:00 AM | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 | - | 35 | 4 | Helmets | 6/1/2002 12:00:00 AM | f5e07a33-c9e0-439c-b5f3-9f25fb65becc | - | 36 | 4 | Hydration Packs | 6/1/2002 12:00:00 AM | 646a8906-fc87-4267-a443-9c6d791e6693 | - | 37 | 4 | Lights | 6/1/2002 12:00:00 AM | 954178ba-624f-42db-95f6-ca035f36d130 | - | 38 | 4 | Locks | 6/1/2002 12:00:00 AM | 19646983-3fa0-4773-9a0c-f34c49df9bc8 | - | 39 | 4 | Panniers | 6/1/2002 12:00:00 AM | 3002a5d5-fec3-464b-bef3-e0f81d35f431 | - | 40 | 4 | Pumps | 6/1/2002 12:00:00 AM | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | -Scenario: FindAllAsync_2_5 - When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' - | PageNumber | PageSize | - | 2 | 5 | - And I call the method 'FindAllAsync' with the parameter values - | Key | Value | TypeName | - | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | + +Scenario: FindAsync1234 + When I call the method 'FindAsync' with the parameter values + | Key | Value | TypeName | + | productCategoryId | 1234 | int | + Then the result is of type - | Expected | - | AdventureWorksDemo.Data.Paging.PagedList | - And the PagedList values are - | TotalPages | TotalCount | PageSize | CurrentPage | - | 9 | 42 | 5 | 2 | - And the sorted results are - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Chains | 2 | 11 | e93a7231-f16c-4b0f-8c41-c73fdec62da0 | - | 6/1/2002 12:00:00 AM | Cranksets | 2 | 12 | 4f644521-422b-4f19-974a-e3df6102567e | - | 6/1/2002 12:00:00 AM | Derailleurs | 2 | 13 | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf | - | 6/1/2002 12:00:00 AM | Forks | 2 | 14 | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf | - | 6/1/2002 12:00:00 AM | Headsets | 2 | 15 | 7c782bbe-5a16-495a-aa50-10afe5a84af2 | + | Expected | + | AdventureWorksDemo.Data.Models.ProductCategoryModel | + And the result is null -Scenario: FindAllAsync_2_8 +Scenario: FindAllAsync_1_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 2 | 8 | + | 1 | 5 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -327,22 +193,16 @@ Scenario: FindAllAsync_2_8 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 6 | 42 | 8 | 2 | + | 2 | 7 | 5 | 1 | And the sorted results are - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Pedals | 2 | 17 | 6d24ac07-7a84-4849-864a-865a14125bc9 | - | 6/1/2002 12:00:00 AM | Road Frames | 2 | 18 | 5515f857-075b-4f9a-87b7-43b4997077b3 | - | 6/1/2002 12:00:00 AM | Saddles | 2 | 19 | 049fffa3-9d30-46df-82f7-f20730ec02b3 | - | 6/1/2002 12:00:00 AM | Touring Frames | 2 | 20 | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 | - | 6/1/2002 12:00:00 AM | Wheels | 2 | 21 | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 | - | 6/1/2002 12:00:00 AM | Bib-Shorts | 3 | 22 | 67b58d2b-5798-4a90-8c6c-5ddacf057171 | - | 6/1/2002 12:00:00 AM | Caps | 3 | 23 | 430dd6a8-a755-4b23-bb05-52520107da5f | - | 6/1/2002 12:00:00 AM | Gloves | 3 | 24 | 92d5657b-0032-4e49-bad5-41a441a70942 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | -Scenario: FindAllAsync_1234_5 +Scenario: FindAllAsync_2_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 1234 | 5 | + | 2 | 5 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | @@ -351,75 +211,52 @@ Scenario: FindAllAsync_1234_5 | AdventureWorksDemo.Data.Paging.PagedList | And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 9 | 42 | 5 | 8 | + | 2 | 7 | 5 | 1 | And the sorted results are - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Tires and Tubes | 4 | 41 | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 6/1/2005 12:00:00 AM | Record to Delete | | 42 | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | -Scenario: FindAllAsync_0_5 +Scenario: FindAllAsync_2_8 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 0 | 5 | + | 2 | 8 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | Then the result is of type | Expected | | AdventureWorksDemo.Data.Paging.PagedList | - And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 9 | 42 | 5 | 0 | + | 1 | 7 | 8 | 0 | And the sorted results are - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Bikes | | 1 | cfbda25c-df71-47a7-b81b-64ee161aa37c | - | 6/1/2002 12:00:00 AM | Components | | 2 | c657828d-d808-4aba-91a3-af2ce02300e9 | - | 6/1/2002 12:00:00 AM | Clothing | | 3 | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | - | 6/1/2002 12:00:00 AM | Accessories | | 4 | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | - | 6/1/2002 12:00:00 AM | Mountain Bikes | 1 | 5 | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | -Scenario: FindAllAsync_0_0 +Scenario: FindAllAsync_1234_5 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' | PageNumber | PageSize | - | 0 | 0 | + | 1234 | 5 | And I call the method 'FindAllAsync' with the parameter values | Key | Value | TypeName | | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter | Then the result is of type | Expected | | AdventureWorksDemo.Data.Paging.PagedList | - And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 2 | 42 | 25 | 0 | + | 2 | 7 | 5 | 1 | And the sorted results are - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Bikes | | 1 | cfbda25c-df71-47a7-b81b-64ee161aa37c | - | 6/1/2002 12:00:00 AM | Components | | 2 | c657828d-d808-4aba-91a3-af2ce02300e9 | - | 6/1/2002 12:00:00 AM | Clothing | | 3 | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | - | 6/1/2002 12:00:00 AM | Accessories | | 4 | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | - | 6/1/2002 12:00:00 AM | Mountain Bikes | 1 | 5 | 2d364ade-264a-433c-b092-4fcbf3804e01 | - | 6/1/2002 12:00:00 AM | Road Bikes | 1 | 6 | 000310c0-bcc8-42c4-b0c3-45ae611af06b | - | 6/1/2002 12:00:00 AM | Touring Bikes | 1 | 7 | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | - | 6/1/2002 12:00:00 AM | Handlebars | 2 | 8 | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 | - | 6/1/2002 12:00:00 AM | Bottom Brackets | 2 | 9 | a9e54089-8a1e-4cf5-8646-e3801f685934 | - | 6/1/2002 12:00:00 AM | Brakes | 2 | 10 | d43ba4a3-ef0d-426b-90eb-4be4547dd30c | - | 6/1/2002 12:00:00 AM | Chains | 2 | 11 | e93a7231-f16c-4b0f-8c41-c73fdec62da0 | - | 6/1/2002 12:00:00 AM | Cranksets | 2 | 12 | 4f644521-422b-4f19-974a-e3df6102567e | - | 6/1/2002 12:00:00 AM | Derailleurs | 2 | 13 | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf | - | 6/1/2002 12:00:00 AM | Forks | 2 | 14 | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf | - | 6/1/2002 12:00:00 AM | Headsets | 2 | 15 | 7c782bbe-5a16-495a-aa50-10afe5a84af2 | - | 6/1/2002 12:00:00 AM | Mountain Frames | 2 | 16 | 61b21b65-e16a-4be7-9300-4d8e9db861be | - | 6/1/2002 12:00:00 AM | Pedals | 2 | 17 | 6d24ac07-7a84-4849-864a-865a14125bc9 | - | 6/1/2002 12:00:00 AM | Road Frames | 2 | 18 | 5515f857-075b-4f9a-87b7-43b4997077b3 | - | 6/1/2002 12:00:00 AM | Saddles | 2 | 19 | 049fffa3-9d30-46df-82f7-f20730ec02b3 | - | 6/1/2002 12:00:00 AM | Touring Frames | 2 | 20 | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 | - | 6/1/2002 12:00:00 AM | Wheels | 2 | 21 | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 | - | 6/1/2002 12:00:00 AM | Bib-Shorts | 3 | 22 | 67b58d2b-5798-4a90-8c6c-5ddacf057171 | - | 6/1/2002 12:00:00 AM | Caps | 3 | 23 | 430dd6a8-a755-4b23-bb05-52520107da5f | - | 6/1/2002 12:00:00 AM | Gloves | 3 | 24 | 92d5657b-0032-4e49-bad5-41a441a70942 | - | 6/1/2002 12:00:00 AM | Jerseys | 3 | 25 | 09e91437-ba4f-4b1a-8215-74184fd95db8 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | Scenario: FindAllAsync_5_0 When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter' @@ -434,24 +271,14 @@ Scenario: FindAllAsync_5_0 And the PagedList values are | TotalPages | TotalCount | PageSize | CurrentPage | - | 2 | 42 | 25 | 1 | + | 1 | 7 | 25 | 0 | And the sorted results are - | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid | - | 6/1/2002 12:00:00 AM | Shorts | 3 | 26 | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da | - | 6/1/2002 12:00:00 AM | Socks | 3 | 27 | 701019c3-09fe-4949-8386-c6ce686474e5 | - | 6/1/2002 12:00:00 AM | Tights | 3 | 28 | 5deb3e55-9897-4416-b18a-515e970bc2d1 | - | 6/1/2002 12:00:00 AM | Vests | 3 | 29 | 9ad7fe93-5ba0-4736-b578-ff80a2071297 | - | 6/1/2002 12:00:00 AM | Bike Racks | 4 | 30 | 4624b5ce-66d6-496b-9201-c053df3556cc | - | 6/1/2002 12:00:00 AM | Bike Stands | 4 | 31 | 43b445c8-b820-424e-a1d5-90d81da0b46f | - | 6/1/2002 12:00:00 AM | Bottles and Cages | 4 | 32 | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 | - | 6/1/2002 12:00:00 AM | Cleaners | 4 | 33 | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 | - | 6/1/2002 12:00:00 AM | Fenders | 4 | 34 | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 | - | 6/1/2002 12:00:00 AM | Helmets | 4 | 35 | f5e07a33-c9e0-439c-b5f3-9f25fb65becc | - | 6/1/2002 12:00:00 AM | Hydration Packs | 4 | 36 | 646a8906-fc87-4267-a443-9c6d791e6693 | - | 6/1/2002 12:00:00 AM | Lights | 4 | 37 | 954178ba-624f-42db-95f6-ca035f36d130 | - | 6/1/2002 12:00:00 AM | Locks | 4 | 38 | 19646983-3fa0-4773-9a0c-f34c49df9bc8 | - | 6/1/2002 12:00:00 AM | Panniers | 4 | 39 | 3002a5d5-fec3-464b-bef3-e0f81d35f431 | - | 6/1/2002 12:00:00 AM | Pumps | 4 | 40 | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 | - | 6/1/2002 12:00:00 AM | Tires and Tubes | 4 | 41 | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 6/1/2005 12:00:00 AM | Record to Delete | | 42 | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature.cs index 79a52b4..1a5b272 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature.cs +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature.cs @@ -126,38 +126,36 @@ public async System.Threading.Tasks.Task FindAsync01() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table450 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table430 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table450.AddRow(new string[] { + table430.AddRow(new string[] { "productCategoryId", "1", "int"}); #line 11 - await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table450, "When "); + await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table430, "When "); #line hidden - global::Reqnroll.Table table451 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table431 = new global::Reqnroll.Table(new string[] { "Expected"}); - table451.AddRow(new string[] { + table431.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); #line 14 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table451, "Then "); + await testRunner.ThenAsync("the result is of type", ((string)(null)), table431, "Then "); #line hidden - global::Reqnroll.Table table452 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table432 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", "ModifiedDate", "Name", - "ParentProductCategoryId", - "ProductCategoryId", "Rowguid"}); - table452.AddRow(new string[] { + table432.AddRow(new string[] { + "1", "6/1/2002 12:00:00 AM", "Bikes", - "", - "1", "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); #line 17 - await testRunner.AndAsync("the result is", ((string)(null)), table452, "And "); + await testRunner.AndAsync("the result is", ((string)(null)), table432, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -184,51 +182,49 @@ public async System.Threading.Tasks.Task FindAsync04() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table453 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table433 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table453.AddRow(new string[] { + table433.AddRow(new string[] { "productCategoryId", "4", "int"}); #line 22 - await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table453, "When "); + await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table433, "When "); #line hidden - global::Reqnroll.Table table454 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table434 = new global::Reqnroll.Table(new string[] { "Expected"}); - table454.AddRow(new string[] { + table434.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); #line 25 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table454, "Then "); + await testRunner.ThenAsync("the result is of type", ((string)(null)), table434, "Then "); #line hidden - global::Reqnroll.Table table455 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table435 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", "ModifiedDate", "Name", - "ParentProductCategoryId", - "ProductCategoryId", "Rowguid"}); - table455.AddRow(new string[] { + table435.AddRow(new string[] { + "4", "6/1/2002 12:00:00 AM", "Accessories", - "", - "4", "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); #line 28 - await testRunner.AndAsync("the result is", ((string)(null)), table455, "And "); + await testRunner.AndAsync("the result is", ((string)(null)), table435, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAsync1234")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_0_5")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")] - public async System.Threading.Tasks.Task FindAsync1234() + public async System.Threading.Tasks.Task FindAllAsync_0_5() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAsync1234", null, tagsOfScenario, argumentsOfScenario, featureTags); + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_5", null, tagsOfScenario, argumentsOfScenario, featureTags); #line 32 this.ScenarioInitialize(scenarioInfo); #line hidden @@ -242,40 +238,93 @@ public async System.Threading.Tasks.Task FindAsync1234() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table456 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table436 = new global::Reqnroll.Table(new string[] { + "PageNumber", + "PageSize"}); + table436.AddRow(new string[] { + "0", + "5"}); +#line 33 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table436, "When "); +#line hidden + global::Reqnroll.Table table437 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table456.AddRow(new string[] { - "productCategoryId", - "1234", - "int"}); -#line 33 - await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table456, "When "); + table437.AddRow(new string[] { + "pageingFilter", + "{{model}}", + "AdventureWorksDemo.Data.Paging.PagingFilter"}); +#line 36 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table437, "And "); #line hidden - global::Reqnroll.Table table457 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table438 = new global::Reqnroll.Table(new string[] { "Expected"}); - table457.AddRow(new string[] { - "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 37 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table457, "Then "); + table438.AddRow(new string[] { + "AdventureWorksDemo.Data.Paging.PagedList"}); +#line 39 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table438, "Then "); #line hidden -#line 40 - await testRunner.AndAsync("the result is null", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); + global::Reqnroll.Table table439 = new global::Reqnroll.Table(new string[] { + "TotalPages", + "TotalCount", + "PageSize", + "CurrentPage"}); + table439.AddRow(new string[] { + "2", + "7", + "5", + "0"}); +#line 43 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table439, "And "); +#line hidden + global::Reqnroll.Table table440 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", + "ModifiedDate", + "Name", + "Rowguid"}); + table440.AddRow(new string[] { + "1", + "6/1/2002 12:00:00 AM", + "Bikes", + "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); + table440.AddRow(new string[] { + "2", + "6/1/2002 12:00:00 AM", + "Components", + "c657828d-d808-4aba-91a3-af2ce02300e9"}); + table440.AddRow(new string[] { + "3", + "6/1/2002 12:00:00 AM", + "Clothing", + "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); + table440.AddRow(new string[] { + "4", + "6/1/2002 12:00:00 AM", + "Accessories", + "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); + table440.AddRow(new string[] { + "5", + "6/1/2002 12:00:00 AM", + "Mountain Bikes", + "2d364ade-264a-433c-b092-4fcbf3804e01"}); +#line 46 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table440, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_1_5")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_0_0")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")] - public async System.Threading.Tasks.Task FindAllAsync_1_5() + public async System.Threading.Tasks.Task FindAllAsync_0_0() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_1_5", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 42 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_0", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 54 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -288,85 +337,89 @@ public async System.Threading.Tasks.Task FindAllAsync_1_5() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table458 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table441 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize"}); - table458.AddRow(new string[] { - "1", - "5"}); -#line 43 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table458, "When "); + table441.AddRow(new string[] { + "0", + "0"}); +#line 55 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table441, "When "); #line hidden - global::Reqnroll.Table table459 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table442 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table459.AddRow(new string[] { + table442.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 46 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table459, "And "); +#line 58 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table442, "And "); #line hidden - global::Reqnroll.Table table460 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table443 = new global::Reqnroll.Table(new string[] { "Expected"}); - table460.AddRow(new string[] { + table443.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 49 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table460, "Then "); +#line 61 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table443, "Then "); #line hidden - global::Reqnroll.Table table461 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table444 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table461.AddRow(new string[] { - "9", - "42", - "5", - "1"}); -#line 52 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table461, "And "); + table444.AddRow(new string[] { + "1", + "7", + "25", + "0"}); +#line 65 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table444, "And "); #line hidden - global::Reqnroll.Table table462 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table445 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", "ModifiedDate", "Name", - "ParentProductCategoryId", - "ProductCategoryId", "Rowguid"}); - table462.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Road Bikes", - "1", - "6", - "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); - table462.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Touring Bikes", + table445.AddRow(new string[] { "1", - "7", - "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); - table462.AddRow(new string[] { "6/1/2002 12:00:00 AM", - "Handlebars", + "Bikes", + "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); + table445.AddRow(new string[] { "2", - "8", - "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"}); - table462.AddRow(new string[] { "6/1/2002 12:00:00 AM", - "Bottom Brackets", - "2", - "9", - "a9e54089-8a1e-4cf5-8646-e3801f685934"}); - table462.AddRow(new string[] { + "Components", + "c657828d-d808-4aba-91a3-af2ce02300e9"}); + table445.AddRow(new string[] { + "3", "6/1/2002 12:00:00 AM", - "Brakes", - "2", - "10", - "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"}); -#line 55 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table462, "And "); + "Clothing", + "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); + table445.AddRow(new string[] { + "4", + "6/1/2002 12:00:00 AM", + "Accessories", + "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); + table445.AddRow(new string[] { + "5", + "6/1/2002 12:00:00 AM", + "Mountain Bikes", + "2d364ade-264a-433c-b092-4fcbf3804e01"}); + table445.AddRow(new string[] { + "6", + "6/1/2002 12:00:00 AM", + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table445.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 68 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table445, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -380,7 +433,7 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500() string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_500", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 64 +#line 79 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -393,307 +446,89 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table463 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table446 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize"}); - table463.AddRow(new string[] { + table446.AddRow(new string[] { "0", "500"}); -#line 65 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table463, "When "); +#line 80 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table446, "When "); #line hidden - global::Reqnroll.Table table464 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table447 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table464.AddRow(new string[] { + table447.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 68 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table464, "And "); +#line 83 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table447, "And "); #line hidden - global::Reqnroll.Table table465 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table448 = new global::Reqnroll.Table(new string[] { "Expected"}); - table465.AddRow(new string[] { + table448.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 71 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table465, "Then "); +#line 86 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table448, "Then "); #line hidden - global::Reqnroll.Table table466 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table449 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table466.AddRow(new string[] { + table449.AddRow(new string[] { "1", - "42", + "7", "100", "0"}); -#line 74 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table466, "And "); +#line 89 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table449, "And "); #line hidden - global::Reqnroll.Table table467 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table450 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table467.AddRow(new string[] { + table450.AddRow(new string[] { "1", - "", - "Bikes", "6/1/2002 12:00:00 AM", + "Bikes", "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); - table467.AddRow(new string[] { + table450.AddRow(new string[] { "2", - "", - "Components", "6/1/2002 12:00:00 AM", + "Components", "c657828d-d808-4aba-91a3-af2ce02300e9"}); - table467.AddRow(new string[] { + table450.AddRow(new string[] { "3", - "", - "Clothing", "6/1/2002 12:00:00 AM", + "Clothing", "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); - table467.AddRow(new string[] { + table450.AddRow(new string[] { "4", - "", - "Accessories", "6/1/2002 12:00:00 AM", + "Accessories", "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); - table467.AddRow(new string[] { + table450.AddRow(new string[] { "5", - "1", - "Mountain Bikes", "6/1/2002 12:00:00 AM", + "Mountain Bikes", "2d364ade-264a-433c-b092-4fcbf3804e01"}); - table467.AddRow(new string[] { + table450.AddRow(new string[] { "6", - "1", - "Road Bikes", "6/1/2002 12:00:00 AM", + "Road Bikes", "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); - table467.AddRow(new string[] { + table450.AddRow(new string[] { "7", - "1", - "Touring Bikes", "6/1/2002 12:00:00 AM", + "For Delete Tests Only", "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); - table467.AddRow(new string[] { - "8", - "2", - "Handlebars", - "6/1/2002 12:00:00 AM", - "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"}); - table467.AddRow(new string[] { - "9", - "2", - "Bottom Brackets", - "6/1/2002 12:00:00 AM", - "a9e54089-8a1e-4cf5-8646-e3801f685934"}); - table467.AddRow(new string[] { - "10", - "2", - "Brakes", - "6/1/2002 12:00:00 AM", - "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"}); - table467.AddRow(new string[] { - "11", - "2", - "Chains", - "6/1/2002 12:00:00 AM", - "e93a7231-f16c-4b0f-8c41-c73fdec62da0"}); - table467.AddRow(new string[] { - "12", - "2", - "Cranksets", - "6/1/2002 12:00:00 AM", - "4f644521-422b-4f19-974a-e3df6102567e"}); - table467.AddRow(new string[] { - "13", - "2", - "Derailleurs", - "6/1/2002 12:00:00 AM", - "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"}); - table467.AddRow(new string[] { - "14", - "2", - "Forks", - "6/1/2002 12:00:00 AM", - "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"}); - table467.AddRow(new string[] { - "15", - "2", - "Headsets", - "6/1/2002 12:00:00 AM", - "7c782bbe-5a16-495a-aa50-10afe5a84af2"}); - table467.AddRow(new string[] { - "16", - "2", - "Mountain Frames", - "6/1/2002 12:00:00 AM", - "61b21b65-e16a-4be7-9300-4d8e9db861be"}); - table467.AddRow(new string[] { - "17", - "2", - "Pedals", - "6/1/2002 12:00:00 AM", - "6d24ac07-7a84-4849-864a-865a14125bc9"}); - table467.AddRow(new string[] { - "18", - "2", - "Road Frames", - "6/1/2002 12:00:00 AM", - "5515f857-075b-4f9a-87b7-43b4997077b3"}); - table467.AddRow(new string[] { - "19", - "2", - "Saddles", - "6/1/2002 12:00:00 AM", - "049fffa3-9d30-46df-82f7-f20730ec02b3"}); - table467.AddRow(new string[] { - "20", - "2", - "Touring Frames", - "6/1/2002 12:00:00 AM", - "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"}); - table467.AddRow(new string[] { - "21", - "2", - "Wheels", - "6/1/2002 12:00:00 AM", - "43521287-4b0b-438e-b80e-d82d9ad7c9f0"}); - table467.AddRow(new string[] { - "22", - "3", - "Bib-Shorts", - "6/1/2002 12:00:00 AM", - "67b58d2b-5798-4a90-8c6c-5ddacf057171"}); - table467.AddRow(new string[] { - "23", - "3", - "Caps", - "6/1/2002 12:00:00 AM", - "430dd6a8-a755-4b23-bb05-52520107da5f"}); - table467.AddRow(new string[] { - "24", - "3", - "Gloves", - "6/1/2002 12:00:00 AM", - "92d5657b-0032-4e49-bad5-41a441a70942"}); - table467.AddRow(new string[] { - "25", - "3", - "Jerseys", - "6/1/2002 12:00:00 AM", - "09e91437-ba4f-4b1a-8215-74184fd95db8"}); - table467.AddRow(new string[] { - "26", - "3", - "Shorts", - "6/1/2002 12:00:00 AM", - "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"}); - table467.AddRow(new string[] { - "27", - "3", - "Socks", - "6/1/2002 12:00:00 AM", - "701019c3-09fe-4949-8386-c6ce686474e5"}); - table467.AddRow(new string[] { - "28", - "3", - "Tights", - "6/1/2002 12:00:00 AM", - "5deb3e55-9897-4416-b18a-515e970bc2d1"}); - table467.AddRow(new string[] { - "29", - "3", - "Vests", - "6/1/2002 12:00:00 AM", - "9ad7fe93-5ba0-4736-b578-ff80a2071297"}); - table467.AddRow(new string[] { - "30", - "4", - "Bike Racks", - "6/1/2002 12:00:00 AM", - "4624b5ce-66d6-496b-9201-c053df3556cc"}); - table467.AddRow(new string[] { - "31", - "4", - "Bike Stands", - "6/1/2002 12:00:00 AM", - "43b445c8-b820-424e-a1d5-90d81da0b46f"}); - table467.AddRow(new string[] { - "32", - "4", - "Bottles and Cages", - "6/1/2002 12:00:00 AM", - "9b7dff41-9fa3-4776-8def-2c9a48c8b779"}); - table467.AddRow(new string[] { - "33", - "4", - "Cleaners", - "6/1/2002 12:00:00 AM", - "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"}); - table467.AddRow(new string[] { - "34", - "4", - "Fenders", - "6/1/2002 12:00:00 AM", - "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"}); - table467.AddRow(new string[] { - "35", - "4", - "Helmets", - "6/1/2002 12:00:00 AM", - "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"}); - table467.AddRow(new string[] { - "36", - "4", - "Hydration Packs", - "6/1/2002 12:00:00 AM", - "646a8906-fc87-4267-a443-9c6d791e6693"}); - table467.AddRow(new string[] { - "37", - "4", - "Lights", - "6/1/2002 12:00:00 AM", - "954178ba-624f-42db-95f6-ca035f36d130"}); - table467.AddRow(new string[] { - "38", - "4", - "Locks", - "6/1/2002 12:00:00 AM", - "19646983-3fa0-4773-9a0c-f34c49df9bc8"}); - table467.AddRow(new string[] { - "39", - "4", - "Panniers", - "6/1/2002 12:00:00 AM", - "3002a5d5-fec3-464b-bef3-e0f81d35f431"}); - table467.AddRow(new string[] { - "40", - "4", - "Pumps", - "6/1/2002 12:00:00 AM", - "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"}); - table467.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", - "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table467.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 77 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table467, "And "); +#line 92 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table450, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -707,7 +542,7 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_500_Sort_ProductCategoryId", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 122 +#line 103 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -720,309 +555,91 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table468 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table451 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize", "Sorting"}); - table468.AddRow(new string[] { + table451.AddRow(new string[] { "0", "500", "ProductCategoryId"}); -#line 123 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table468, "When "); +#line 104 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table451, "When "); #line hidden - global::Reqnroll.Table table469 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table452 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table469.AddRow(new string[] { + table452.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 126 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table469, "And "); +#line 107 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table452, "And "); #line hidden - global::Reqnroll.Table table470 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table453 = new global::Reqnroll.Table(new string[] { "Expected"}); - table470.AddRow(new string[] { + table453.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 129 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table470, "Then "); +#line 110 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table453, "Then "); #line hidden - global::Reqnroll.Table table471 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table454 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table471.AddRow(new string[] { + table454.AddRow(new string[] { "1", - "42", + "7", "100", "0"}); -#line 132 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table471, "And "); +#line 113 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table454, "And "); #line hidden - global::Reqnroll.Table table472 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table455 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table472.AddRow(new string[] { + table455.AddRow(new string[] { "1", - "", - "Bikes", "6/1/2002 12:00:00 AM", + "Bikes", "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); - table472.AddRow(new string[] { + table455.AddRow(new string[] { "2", - "", - "Components", "6/1/2002 12:00:00 AM", + "Components", "c657828d-d808-4aba-91a3-af2ce02300e9"}); - table472.AddRow(new string[] { + table455.AddRow(new string[] { "3", - "", - "Clothing", "6/1/2002 12:00:00 AM", + "Clothing", "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); - table472.AddRow(new string[] { + table455.AddRow(new string[] { "4", - "", - "Accessories", "6/1/2002 12:00:00 AM", + "Accessories", "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); - table472.AddRow(new string[] { + table455.AddRow(new string[] { "5", - "1", - "Mountain Bikes", "6/1/2002 12:00:00 AM", + "Mountain Bikes", "2d364ade-264a-433c-b092-4fcbf3804e01"}); - table472.AddRow(new string[] { + table455.AddRow(new string[] { "6", - "1", - "Road Bikes", "6/1/2002 12:00:00 AM", + "Road Bikes", "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); - table472.AddRow(new string[] { + table455.AddRow(new string[] { "7", - "1", - "Touring Bikes", "6/1/2002 12:00:00 AM", + "For Delete Tests Only", "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); - table472.AddRow(new string[] { - "8", - "2", - "Handlebars", - "6/1/2002 12:00:00 AM", - "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"}); - table472.AddRow(new string[] { - "9", - "2", - "Bottom Brackets", - "6/1/2002 12:00:00 AM", - "a9e54089-8a1e-4cf5-8646-e3801f685934"}); - table472.AddRow(new string[] { - "10", - "2", - "Brakes", - "6/1/2002 12:00:00 AM", - "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"}); - table472.AddRow(new string[] { - "11", - "2", - "Chains", - "6/1/2002 12:00:00 AM", - "e93a7231-f16c-4b0f-8c41-c73fdec62da0"}); - table472.AddRow(new string[] { - "12", - "2", - "Cranksets", - "6/1/2002 12:00:00 AM", - "4f644521-422b-4f19-974a-e3df6102567e"}); - table472.AddRow(new string[] { - "13", - "2", - "Derailleurs", - "6/1/2002 12:00:00 AM", - "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"}); - table472.AddRow(new string[] { - "14", - "2", - "Forks", - "6/1/2002 12:00:00 AM", - "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"}); - table472.AddRow(new string[] { - "15", - "2", - "Headsets", - "6/1/2002 12:00:00 AM", - "7c782bbe-5a16-495a-aa50-10afe5a84af2"}); - table472.AddRow(new string[] { - "16", - "2", - "Mountain Frames", - "6/1/2002 12:00:00 AM", - "61b21b65-e16a-4be7-9300-4d8e9db861be"}); - table472.AddRow(new string[] { - "17", - "2", - "Pedals", - "6/1/2002 12:00:00 AM", - "6d24ac07-7a84-4849-864a-865a14125bc9"}); - table472.AddRow(new string[] { - "18", - "2", - "Road Frames", - "6/1/2002 12:00:00 AM", - "5515f857-075b-4f9a-87b7-43b4997077b3"}); - table472.AddRow(new string[] { - "19", - "2", - "Saddles", - "6/1/2002 12:00:00 AM", - "049fffa3-9d30-46df-82f7-f20730ec02b3"}); - table472.AddRow(new string[] { - "20", - "2", - "Touring Frames", - "6/1/2002 12:00:00 AM", - "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"}); - table472.AddRow(new string[] { - "21", - "2", - "Wheels", - "6/1/2002 12:00:00 AM", - "43521287-4b0b-438e-b80e-d82d9ad7c9f0"}); - table472.AddRow(new string[] { - "22", - "3", - "Bib-Shorts", - "6/1/2002 12:00:00 AM", - "67b58d2b-5798-4a90-8c6c-5ddacf057171"}); - table472.AddRow(new string[] { - "23", - "3", - "Caps", - "6/1/2002 12:00:00 AM", - "430dd6a8-a755-4b23-bb05-52520107da5f"}); - table472.AddRow(new string[] { - "24", - "3", - "Gloves", - "6/1/2002 12:00:00 AM", - "92d5657b-0032-4e49-bad5-41a441a70942"}); - table472.AddRow(new string[] { - "25", - "3", - "Jerseys", - "6/1/2002 12:00:00 AM", - "09e91437-ba4f-4b1a-8215-74184fd95db8"}); - table472.AddRow(new string[] { - "26", - "3", - "Shorts", - "6/1/2002 12:00:00 AM", - "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"}); - table472.AddRow(new string[] { - "27", - "3", - "Socks", - "6/1/2002 12:00:00 AM", - "701019c3-09fe-4949-8386-c6ce686474e5"}); - table472.AddRow(new string[] { - "28", - "3", - "Tights", - "6/1/2002 12:00:00 AM", - "5deb3e55-9897-4416-b18a-515e970bc2d1"}); - table472.AddRow(new string[] { - "29", - "3", - "Vests", - "6/1/2002 12:00:00 AM", - "9ad7fe93-5ba0-4736-b578-ff80a2071297"}); - table472.AddRow(new string[] { - "30", - "4", - "Bike Racks", - "6/1/2002 12:00:00 AM", - "4624b5ce-66d6-496b-9201-c053df3556cc"}); - table472.AddRow(new string[] { - "31", - "4", - "Bike Stands", - "6/1/2002 12:00:00 AM", - "43b445c8-b820-424e-a1d5-90d81da0b46f"}); - table472.AddRow(new string[] { - "32", - "4", - "Bottles and Cages", - "6/1/2002 12:00:00 AM", - "9b7dff41-9fa3-4776-8def-2c9a48c8b779"}); - table472.AddRow(new string[] { - "33", - "4", - "Cleaners", - "6/1/2002 12:00:00 AM", - "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"}); - table472.AddRow(new string[] { - "34", - "4", - "Fenders", - "6/1/2002 12:00:00 AM", - "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"}); - table472.AddRow(new string[] { - "35", - "4", - "Helmets", - "6/1/2002 12:00:00 AM", - "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"}); - table472.AddRow(new string[] { - "36", - "4", - "Hydration Packs", - "6/1/2002 12:00:00 AM", - "646a8906-fc87-4267-a443-9c6d791e6693"}); - table472.AddRow(new string[] { - "37", - "4", - "Lights", - "6/1/2002 12:00:00 AM", - "954178ba-624f-42db-95f6-ca035f36d130"}); - table472.AddRow(new string[] { - "38", - "4", - "Locks", - "6/1/2002 12:00:00 AM", - "19646983-3fa0-4773-9a0c-f34c49df9bc8"}); - table472.AddRow(new string[] { - "39", - "4", - "Panniers", - "6/1/2002 12:00:00 AM", - "3002a5d5-fec3-464b-bef3-e0f81d35f431"}); - table472.AddRow(new string[] { - "40", - "4", - "Pumps", - "6/1/2002 12:00:00 AM", - "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"}); - table472.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", - "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table472.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 135 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table472, "And "); +#line 116 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table455, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -1036,7 +653,7 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_500_Sort_ProductCategoryIdDesc", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 181 +#line 127 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -1049,309 +666,91 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table473 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table456 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize", "Sorting"}); - table473.AddRow(new string[] { + table456.AddRow(new string[] { "0", "500", "ProductCategoryId DESC"}); -#line 182 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table473, "When "); +#line 128 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table456, "When "); #line hidden - global::Reqnroll.Table table474 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table457 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table474.AddRow(new string[] { + table457.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 185 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table474, "And "); +#line 131 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table457, "And "); #line hidden - global::Reqnroll.Table table475 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table458 = new global::Reqnroll.Table(new string[] { "Expected"}); - table475.AddRow(new string[] { + table458.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 188 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table475, "Then "); +#line 134 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table458, "Then "); #line hidden - global::Reqnroll.Table table476 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table459 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table476.AddRow(new string[] { + table459.AddRow(new string[] { "1", - "42", + "7", "100", "0"}); -#line 191 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table476, "And "); +#line 137 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table459, "And "); #line hidden - global::Reqnroll.Table table477 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table460 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table477.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); - table477.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table460.AddRow(new string[] { + "7", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table477.AddRow(new string[] { - "40", - "4", - "Pumps", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); + table460.AddRow(new string[] { + "6", "6/1/2002 12:00:00 AM", - "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"}); - table477.AddRow(new string[] { - "39", - "4", - "Panniers", + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table460.AddRow(new string[] { + "5", "6/1/2002 12:00:00 AM", - "3002a5d5-fec3-464b-bef3-e0f81d35f431"}); - table477.AddRow(new string[] { - "38", + "Mountain Bikes", + "2d364ade-264a-433c-b092-4fcbf3804e01"}); + table460.AddRow(new string[] { "4", - "Locks", "6/1/2002 12:00:00 AM", - "19646983-3fa0-4773-9a0c-f34c49df9bc8"}); - table477.AddRow(new string[] { - "37", - "4", - "Lights", - "6/1/2002 12:00:00 AM", - "954178ba-624f-42db-95f6-ca035f36d130"}); - table477.AddRow(new string[] { - "36", - "4", - "Hydration Packs", - "6/1/2002 12:00:00 AM", - "646a8906-fc87-4267-a443-9c6d791e6693"}); - table477.AddRow(new string[] { - "35", - "4", - "Helmets", - "6/1/2002 12:00:00 AM", - "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"}); - table477.AddRow(new string[] { - "34", - "4", - "Fenders", - "6/1/2002 12:00:00 AM", - "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"}); - table477.AddRow(new string[] { - "33", - "4", - "Cleaners", - "6/1/2002 12:00:00 AM", - "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"}); - table477.AddRow(new string[] { - "32", - "4", - "Bottles and Cages", - "6/1/2002 12:00:00 AM", - "9b7dff41-9fa3-4776-8def-2c9a48c8b779"}); - table477.AddRow(new string[] { - "31", - "4", - "Bike Stands", - "6/1/2002 12:00:00 AM", - "43b445c8-b820-424e-a1d5-90d81da0b46f"}); - table477.AddRow(new string[] { - "30", - "4", - "Bike Racks", - "6/1/2002 12:00:00 AM", - "4624b5ce-66d6-496b-9201-c053df3556cc"}); - table477.AddRow(new string[] { - "29", - "3", - "Vests", - "6/1/2002 12:00:00 AM", - "9ad7fe93-5ba0-4736-b578-ff80a2071297"}); - table477.AddRow(new string[] { - "28", - "3", - "Tights", - "6/1/2002 12:00:00 AM", - "5deb3e55-9897-4416-b18a-515e970bc2d1"}); - table477.AddRow(new string[] { - "27", - "3", - "Socks", - "6/1/2002 12:00:00 AM", - "701019c3-09fe-4949-8386-c6ce686474e5"}); - table477.AddRow(new string[] { - "26", - "3", - "Shorts", - "6/1/2002 12:00:00 AM", - "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"}); - table477.AddRow(new string[] { - "25", - "3", - "Jerseys", - "6/1/2002 12:00:00 AM", - "09e91437-ba4f-4b1a-8215-74184fd95db8"}); - table477.AddRow(new string[] { - "24", - "3", - "Gloves", - "6/1/2002 12:00:00 AM", - "92d5657b-0032-4e49-bad5-41a441a70942"}); - table477.AddRow(new string[] { - "23", - "3", - "Caps", - "6/1/2002 12:00:00 AM", - "430dd6a8-a755-4b23-bb05-52520107da5f"}); - table477.AddRow(new string[] { - "22", - "3", - "Bib-Shorts", - "6/1/2002 12:00:00 AM", - "67b58d2b-5798-4a90-8c6c-5ddacf057171"}); - table477.AddRow(new string[] { - "21", - "2", - "Wheels", - "6/1/2002 12:00:00 AM", - "43521287-4b0b-438e-b80e-d82d9ad7c9f0"}); - table477.AddRow(new string[] { - "20", - "2", - "Touring Frames", - "6/1/2002 12:00:00 AM", - "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"}); - table477.AddRow(new string[] { - "19", - "2", - "Saddles", - "6/1/2002 12:00:00 AM", - "049fffa3-9d30-46df-82f7-f20730ec02b3"}); - table477.AddRow(new string[] { - "18", - "2", - "Road Frames", - "6/1/2002 12:00:00 AM", - "5515f857-075b-4f9a-87b7-43b4997077b3"}); - table477.AddRow(new string[] { - "17", - "2", - "Pedals", - "6/1/2002 12:00:00 AM", - "6d24ac07-7a84-4849-864a-865a14125bc9"}); - table477.AddRow(new string[] { - "16", - "2", - "Mountain Frames", - "6/1/2002 12:00:00 AM", - "61b21b65-e16a-4be7-9300-4d8e9db861be"}); - table477.AddRow(new string[] { - "15", - "2", - "Headsets", - "6/1/2002 12:00:00 AM", - "7c782bbe-5a16-495a-aa50-10afe5a84af2"}); - table477.AddRow(new string[] { - "14", - "2", - "Forks", - "6/1/2002 12:00:00 AM", - "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"}); - table477.AddRow(new string[] { - "13", - "2", - "Derailleurs", - "6/1/2002 12:00:00 AM", - "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"}); - table477.AddRow(new string[] { - "12", - "2", - "Cranksets", - "6/1/2002 12:00:00 AM", - "4f644521-422b-4f19-974a-e3df6102567e"}); - table477.AddRow(new string[] { - "11", - "2", - "Chains", - "6/1/2002 12:00:00 AM", - "e93a7231-f16c-4b0f-8c41-c73fdec62da0"}); - table477.AddRow(new string[] { - "10", - "2", - "Brakes", - "6/1/2002 12:00:00 AM", - "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"}); - table477.AddRow(new string[] { - "9", - "2", - "Bottom Brackets", - "6/1/2002 12:00:00 AM", - "a9e54089-8a1e-4cf5-8646-e3801f685934"}); - table477.AddRow(new string[] { - "8", - "2", - "Handlebars", - "6/1/2002 12:00:00 AM", - "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"}); - table477.AddRow(new string[] { - "7", - "1", - "Touring Bikes", - "6/1/2002 12:00:00 AM", - "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); - table477.AddRow(new string[] { - "6", - "1", - "Road Bikes", - "6/1/2002 12:00:00 AM", - "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); - table477.AddRow(new string[] { - "5", - "1", - "Mountain Bikes", - "6/1/2002 12:00:00 AM", - "2d364ade-264a-433c-b092-4fcbf3804e01"}); - table477.AddRow(new string[] { - "4", - "", "Accessories", - "6/1/2002 12:00:00 AM", "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); - table477.AddRow(new string[] { + table460.AddRow(new string[] { "3", - "", - "Clothing", "6/1/2002 12:00:00 AM", + "Clothing", "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); - table477.AddRow(new string[] { + table460.AddRow(new string[] { "2", - "", - "Components", "6/1/2002 12:00:00 AM", + "Components", "c657828d-d808-4aba-91a3-af2ce02300e9"}); - table477.AddRow(new string[] { + table460.AddRow(new string[] { "1", - "", - "Bikes", "6/1/2002 12:00:00 AM", + "Bikes", "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); -#line 194 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table477, "And "); +#line 140 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table460, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -1365,7 +764,7 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_500_Sort_ProductCategoryIdASC", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 240 +#line 151 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -1378,323 +777,105 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table478 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table461 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize", "Sorting"}); - table478.AddRow(new string[] { + table461.AddRow(new string[] { "0", "500", "ProductCategoryId ASC"}); -#line 241 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table478, "When "); +#line 152 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table461, "When "); #line hidden - global::Reqnroll.Table table479 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table462 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table479.AddRow(new string[] { + table462.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 244 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table479, "And "); +#line 155 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table462, "And "); #line hidden - global::Reqnroll.Table table480 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table463 = new global::Reqnroll.Table(new string[] { "Expected"}); - table480.AddRow(new string[] { + table463.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 247 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table480, "Then "); +#line 158 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table463, "Then "); #line hidden - global::Reqnroll.Table table481 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table464 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table481.AddRow(new string[] { + table464.AddRow(new string[] { "1", - "42", + "7", "100", "0"}); -#line 250 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table481, "And "); +#line 161 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table464, "And "); #line hidden - global::Reqnroll.Table table482 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table465 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table482.AddRow(new string[] { + table465.AddRow(new string[] { "1", - "", - "Bikes", "6/1/2002 12:00:00 AM", + "Bikes", "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); - table482.AddRow(new string[] { + table465.AddRow(new string[] { "2", - "", - "Components", "6/1/2002 12:00:00 AM", + "Components", "c657828d-d808-4aba-91a3-af2ce02300e9"}); - table482.AddRow(new string[] { + table465.AddRow(new string[] { "3", - "", - "Clothing", "6/1/2002 12:00:00 AM", + "Clothing", "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); - table482.AddRow(new string[] { + table465.AddRow(new string[] { "4", - "", - "Accessories", "6/1/2002 12:00:00 AM", + "Accessories", "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); - table482.AddRow(new string[] { + table465.AddRow(new string[] { "5", - "1", - "Mountain Bikes", "6/1/2002 12:00:00 AM", + "Mountain Bikes", "2d364ade-264a-433c-b092-4fcbf3804e01"}); - table482.AddRow(new string[] { + table465.AddRow(new string[] { "6", - "1", - "Road Bikes", "6/1/2002 12:00:00 AM", + "Road Bikes", "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); - table482.AddRow(new string[] { + table465.AddRow(new string[] { "7", - "1", - "Touring Bikes", "6/1/2002 12:00:00 AM", + "For Delete Tests Only", "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); - table482.AddRow(new string[] { - "8", - "2", - "Handlebars", - "6/1/2002 12:00:00 AM", - "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"}); - table482.AddRow(new string[] { - "9", - "2", - "Bottom Brackets", - "6/1/2002 12:00:00 AM", - "a9e54089-8a1e-4cf5-8646-e3801f685934"}); - table482.AddRow(new string[] { - "10", - "2", - "Brakes", - "6/1/2002 12:00:00 AM", - "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"}); - table482.AddRow(new string[] { - "11", - "2", - "Chains", - "6/1/2002 12:00:00 AM", - "e93a7231-f16c-4b0f-8c41-c73fdec62da0"}); - table482.AddRow(new string[] { - "12", - "2", - "Cranksets", - "6/1/2002 12:00:00 AM", - "4f644521-422b-4f19-974a-e3df6102567e"}); - table482.AddRow(new string[] { - "13", - "2", - "Derailleurs", - "6/1/2002 12:00:00 AM", - "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"}); - table482.AddRow(new string[] { - "14", - "2", - "Forks", - "6/1/2002 12:00:00 AM", - "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"}); - table482.AddRow(new string[] { - "15", - "2", - "Headsets", - "6/1/2002 12:00:00 AM", - "7c782bbe-5a16-495a-aa50-10afe5a84af2"}); - table482.AddRow(new string[] { - "16", - "2", - "Mountain Frames", - "6/1/2002 12:00:00 AM", - "61b21b65-e16a-4be7-9300-4d8e9db861be"}); - table482.AddRow(new string[] { - "17", - "2", - "Pedals", - "6/1/2002 12:00:00 AM", - "6d24ac07-7a84-4849-864a-865a14125bc9"}); - table482.AddRow(new string[] { - "18", - "2", - "Road Frames", - "6/1/2002 12:00:00 AM", - "5515f857-075b-4f9a-87b7-43b4997077b3"}); - table482.AddRow(new string[] { - "19", - "2", - "Saddles", - "6/1/2002 12:00:00 AM", - "049fffa3-9d30-46df-82f7-f20730ec02b3"}); - table482.AddRow(new string[] { - "20", - "2", - "Touring Frames", - "6/1/2002 12:00:00 AM", - "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"}); - table482.AddRow(new string[] { - "21", - "2", - "Wheels", - "6/1/2002 12:00:00 AM", - "43521287-4b0b-438e-b80e-d82d9ad7c9f0"}); - table482.AddRow(new string[] { - "22", - "3", - "Bib-Shorts", - "6/1/2002 12:00:00 AM", - "67b58d2b-5798-4a90-8c6c-5ddacf057171"}); - table482.AddRow(new string[] { - "23", - "3", - "Caps", - "6/1/2002 12:00:00 AM", - "430dd6a8-a755-4b23-bb05-52520107da5f"}); - table482.AddRow(new string[] { - "24", - "3", - "Gloves", - "6/1/2002 12:00:00 AM", - "92d5657b-0032-4e49-bad5-41a441a70942"}); - table482.AddRow(new string[] { - "25", - "3", - "Jerseys", - "6/1/2002 12:00:00 AM", - "09e91437-ba4f-4b1a-8215-74184fd95db8"}); - table482.AddRow(new string[] { - "26", - "3", - "Shorts", - "6/1/2002 12:00:00 AM", - "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"}); - table482.AddRow(new string[] { - "27", - "3", - "Socks", - "6/1/2002 12:00:00 AM", - "701019c3-09fe-4949-8386-c6ce686474e5"}); - table482.AddRow(new string[] { - "28", - "3", - "Tights", - "6/1/2002 12:00:00 AM", - "5deb3e55-9897-4416-b18a-515e970bc2d1"}); - table482.AddRow(new string[] { - "29", - "3", - "Vests", - "6/1/2002 12:00:00 AM", - "9ad7fe93-5ba0-4736-b578-ff80a2071297"}); - table482.AddRow(new string[] { - "30", - "4", - "Bike Racks", - "6/1/2002 12:00:00 AM", - "4624b5ce-66d6-496b-9201-c053df3556cc"}); - table482.AddRow(new string[] { - "31", - "4", - "Bike Stands", - "6/1/2002 12:00:00 AM", - "43b445c8-b820-424e-a1d5-90d81da0b46f"}); - table482.AddRow(new string[] { - "32", - "4", - "Bottles and Cages", - "6/1/2002 12:00:00 AM", - "9b7dff41-9fa3-4776-8def-2c9a48c8b779"}); - table482.AddRow(new string[] { - "33", - "4", - "Cleaners", - "6/1/2002 12:00:00 AM", - "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"}); - table482.AddRow(new string[] { - "34", - "4", - "Fenders", - "6/1/2002 12:00:00 AM", - "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"}); - table482.AddRow(new string[] { - "35", - "4", - "Helmets", - "6/1/2002 12:00:00 AM", - "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"}); - table482.AddRow(new string[] { - "36", - "4", - "Hydration Packs", - "6/1/2002 12:00:00 AM", - "646a8906-fc87-4267-a443-9c6d791e6693"}); - table482.AddRow(new string[] { - "37", - "4", - "Lights", - "6/1/2002 12:00:00 AM", - "954178ba-624f-42db-95f6-ca035f36d130"}); - table482.AddRow(new string[] { - "38", - "4", - "Locks", - "6/1/2002 12:00:00 AM", - "19646983-3fa0-4773-9a0c-f34c49df9bc8"}); - table482.AddRow(new string[] { - "39", - "4", - "Panniers", - "6/1/2002 12:00:00 AM", - "3002a5d5-fec3-464b-bef3-e0f81d35f431"}); - table482.AddRow(new string[] { - "40", - "4", - "Pumps", - "6/1/2002 12:00:00 AM", - "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"}); - table482.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", - "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table482.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 253 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table482, "And "); +#line 164 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table465, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_2_5")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAsync1234")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")] - public async System.Threading.Tasks.Task FindAllAsync_2_5() + public async System.Threading.Tasks.Task FindAsync1234() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_2_5", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 297 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAsync1234", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 174 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -1707,99 +888,40 @@ public async System.Threading.Tasks.Task FindAllAsync_2_5() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table483 = new global::Reqnroll.Table(new string[] { - "PageNumber", - "PageSize"}); - table483.AddRow(new string[] { - "2", - "5"}); -#line 298 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table483, "When "); -#line hidden - global::Reqnroll.Table table484 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table466 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table484.AddRow(new string[] { - "pageingFilter", - "{{model}}", - "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 301 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table484, "And "); + table466.AddRow(new string[] { + "productCategoryId", + "1234", + "int"}); +#line 175 + await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table466, "When "); #line hidden - global::Reqnroll.Table table485 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table467 = new global::Reqnroll.Table(new string[] { "Expected"}); - table485.AddRow(new string[] { - "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 304 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table485, "Then "); -#line hidden - global::Reqnroll.Table table486 = new global::Reqnroll.Table(new string[] { - "TotalPages", - "TotalCount", - "PageSize", - "CurrentPage"}); - table486.AddRow(new string[] { - "9", - "42", - "5", - "2"}); -#line 307 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table486, "And "); + table467.AddRow(new string[] { + "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); +#line 179 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table467, "Then "); #line hidden - global::Reqnroll.Table table487 = new global::Reqnroll.Table(new string[] { - "ModifiedDate", - "Name", - "ParentProductCategoryId", - "ProductCategoryId", - "Rowguid"}); - table487.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Chains", - "2", - "11", - "e93a7231-f16c-4b0f-8c41-c73fdec62da0"}); - table487.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Cranksets", - "2", - "12", - "4f644521-422b-4f19-974a-e3df6102567e"}); - table487.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Derailleurs", - "2", - "13", - "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"}); - table487.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Forks", - "2", - "14", - "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"}); - table487.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Headsets", - "2", - "15", - "7c782bbe-5a16-495a-aa50-10afe5a84af2"}); -#line 310 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table487, "And "); +#line 182 + await testRunner.AndAsync("the result is null", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_2_8")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_1_5")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")] - public async System.Threading.Tasks.Task FindAllAsync_2_8() + public async System.Threading.Tasks.Task FindAllAsync_1_5() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_2_8", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 318 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_1_5", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 184 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -1812,117 +934,78 @@ public async System.Threading.Tasks.Task FindAllAsync_2_8() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table488 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table468 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize"}); - table488.AddRow(new string[] { - "2", - "8"}); -#line 319 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table488, "When "); + table468.AddRow(new string[] { + "1", + "5"}); +#line 185 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table468, "When "); #line hidden - global::Reqnroll.Table table489 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table469 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table489.AddRow(new string[] { + table469.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 322 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table489, "And "); +#line 188 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table469, "And "); #line hidden - global::Reqnroll.Table table490 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table470 = new global::Reqnroll.Table(new string[] { "Expected"}); - table490.AddRow(new string[] { + table470.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 325 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table490, "Then "); +#line 191 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table470, "Then "); #line hidden - global::Reqnroll.Table table491 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table471 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table491.AddRow(new string[] { - "6", - "42", - "8", - "2"}); -#line 328 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table491, "And "); + table471.AddRow(new string[] { + "2", + "7", + "5", + "1"}); +#line 194 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table471, "And "); #line hidden - global::Reqnroll.Table table492 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table472 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", "ModifiedDate", "Name", - "ParentProductCategoryId", - "ProductCategoryId", "Rowguid"}); - table492.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Pedals", - "2", - "17", - "6d24ac07-7a84-4849-864a-865a14125bc9"}); - table492.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Road Frames", - "2", - "18", - "5515f857-075b-4f9a-87b7-43b4997077b3"}); - table492.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Saddles", - "2", - "19", - "049fffa3-9d30-46df-82f7-f20730ec02b3"}); - table492.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Touring Frames", - "2", - "20", - "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"}); - table492.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Wheels", - "2", - "21", - "43521287-4b0b-438e-b80e-d82d9ad7c9f0"}); - table492.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Bib-Shorts", - "3", - "22", - "67b58d2b-5798-4a90-8c6c-5ddacf057171"}); - table492.AddRow(new string[] { + table472.AddRow(new string[] { + "6", "6/1/2002 12:00:00 AM", - "Caps", - "3", - "23", - "430dd6a8-a755-4b23-bb05-52520107da5f"}); - table492.AddRow(new string[] { + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table472.AddRow(new string[] { + "7", "6/1/2002 12:00:00 AM", - "Gloves", - "3", - "24", - "92d5657b-0032-4e49-bad5-41a441a70942"}); -#line 331 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table492, "And "); + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 197 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table472, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_1234_5")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_2_5")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")] - public async System.Threading.Tasks.Task FindAllAsync_1234_5() + public async System.Threading.Tasks.Task FindAllAsync_2_5() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_1234_5", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 342 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_2_5", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 202 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -1935,81 +1018,78 @@ public async System.Threading.Tasks.Task FindAllAsync_1234_5() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table493 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table473 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize"}); - table493.AddRow(new string[] { - "1234", + table473.AddRow(new string[] { + "2", "5"}); -#line 343 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table493, "When "); +#line 203 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table473, "When "); #line hidden - global::Reqnroll.Table table494 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table474 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table494.AddRow(new string[] { + table474.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 346 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table494, "And "); +#line 206 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table474, "And "); #line hidden - global::Reqnroll.Table table495 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table475 = new global::Reqnroll.Table(new string[] { "Expected"}); - table495.AddRow(new string[] { + table475.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 349 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table495, "Then "); +#line 209 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table475, "Then "); #line hidden - global::Reqnroll.Table table496 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table476 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table496.AddRow(new string[] { - "9", - "42", + table476.AddRow(new string[] { + "2", + "7", "5", - "8"}); -#line 352 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table496, "And "); + "1"}); +#line 212 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table476, "And "); #line hidden - global::Reqnroll.Table table497 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table477 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", "ModifiedDate", "Name", - "ParentProductCategoryId", - "ProductCategoryId", "Rowguid"}); - table497.AddRow(new string[] { + table477.AddRow(new string[] { + "6", "6/1/2002 12:00:00 AM", - "Tires and Tubes", - "4", - "41", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table497.AddRow(new string[] { - "6/1/2005 12:00:00 AM", - "Record to Delete", - "", - "42", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 355 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table497, "And "); + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table477.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 215 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table477, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_0_5")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_2_8")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")] - public async System.Threading.Tasks.Task FindAllAsync_0_5() + public async System.Threading.Tasks.Task FindAllAsync_2_8() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_5", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 360 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_2_8", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 220 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -2022,99 +1102,103 @@ public async System.Threading.Tasks.Task FindAllAsync_0_5() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table498 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table478 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize"}); - table498.AddRow(new string[] { - "0", - "5"}); -#line 361 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table498, "When "); + table478.AddRow(new string[] { + "2", + "8"}); +#line 221 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table478, "When "); #line hidden - global::Reqnroll.Table table499 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table479 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table499.AddRow(new string[] { + table479.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 364 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table499, "And "); +#line 224 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table479, "And "); #line hidden - global::Reqnroll.Table table500 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table480 = new global::Reqnroll.Table(new string[] { "Expected"}); - table500.AddRow(new string[] { + table480.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 367 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table500, "Then "); +#line 227 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table480, "Then "); #line hidden - global::Reqnroll.Table table501 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table481 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table501.AddRow(new string[] { - "9", - "42", - "5", + table481.AddRow(new string[] { + "1", + "7", + "8", "0"}); -#line 371 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table501, "And "); +#line 230 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table481, "And "); #line hidden - global::Reqnroll.Table table502 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table482 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", "ModifiedDate", "Name", - "ParentProductCategoryId", - "ProductCategoryId", "Rowguid"}); - table502.AddRow(new string[] { + table482.AddRow(new string[] { + "1", "6/1/2002 12:00:00 AM", "Bikes", - "", - "1", "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); - table502.AddRow(new string[] { + table482.AddRow(new string[] { + "2", "6/1/2002 12:00:00 AM", "Components", - "", - "2", "c657828d-d808-4aba-91a3-af2ce02300e9"}); - table502.AddRow(new string[] { + table482.AddRow(new string[] { + "3", "6/1/2002 12:00:00 AM", "Clothing", - "", - "3", "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); - table502.AddRow(new string[] { + table482.AddRow(new string[] { + "4", "6/1/2002 12:00:00 AM", "Accessories", - "", - "4", "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); - table502.AddRow(new string[] { + table482.AddRow(new string[] { + "5", "6/1/2002 12:00:00 AM", "Mountain Bikes", - "1", - "5", "2d364ade-264a-433c-b092-4fcbf3804e01"}); -#line 374 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table502, "And "); + table482.AddRow(new string[] { + "6", + "6/1/2002 12:00:00 AM", + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table482.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 233 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table482, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_0_0")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_1234_5")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")] - public async System.Threading.Tasks.Task FindAllAsync_0_0() + public async System.Threading.Tasks.Task FindAllAsync_1234_5() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_0", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 382 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_1234_5", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 243 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -2127,205 +1211,64 @@ public async System.Threading.Tasks.Task FindAllAsync_0_0() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table503 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table483 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize"}); - table503.AddRow(new string[] { - "0", - "0"}); -#line 383 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table503, "When "); + table483.AddRow(new string[] { + "1234", + "5"}); +#line 244 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table483, "When "); #line hidden - global::Reqnroll.Table table504 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table484 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table504.AddRow(new string[] { + table484.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 386 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table504, "And "); +#line 247 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table484, "And "); #line hidden - global::Reqnroll.Table table505 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table485 = new global::Reqnroll.Table(new string[] { "Expected"}); - table505.AddRow(new string[] { + table485.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 389 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table505, "Then "); +#line 250 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table485, "Then "); #line hidden - global::Reqnroll.Table table506 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table486 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table506.AddRow(new string[] { + table486.AddRow(new string[] { "2", - "42", - "25", - "0"}); -#line 393 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table506, "And "); + "7", + "5", + "1"}); +#line 253 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table486, "And "); #line hidden - global::Reqnroll.Table table507 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table487 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", "ModifiedDate", "Name", - "ParentProductCategoryId", - "ProductCategoryId", "Rowguid"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Bikes", - "", - "1", - "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Components", - "", - "2", - "c657828d-d808-4aba-91a3-af2ce02300e9"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Clothing", - "", - "3", - "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Accessories", - "", - "4", - "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Mountain Bikes", - "1", - "5", - "2d364ade-264a-433c-b092-4fcbf3804e01"}); - table507.AddRow(new string[] { + table487.AddRow(new string[] { + "6", "6/1/2002 12:00:00 AM", "Road Bikes", - "1", - "6", "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Touring Bikes", - "1", + table487.AddRow(new string[] { "7", - "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Handlebars", - "2", - "8", - "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Bottom Brackets", - "2", - "9", - "a9e54089-8a1e-4cf5-8646-e3801f685934"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Brakes", - "2", - "10", - "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Chains", - "2", - "11", - "e93a7231-f16c-4b0f-8c41-c73fdec62da0"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Cranksets", - "2", - "12", - "4f644521-422b-4f19-974a-e3df6102567e"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Derailleurs", - "2", - "13", - "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Forks", - "2", - "14", - "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Headsets", - "2", - "15", - "7c782bbe-5a16-495a-aa50-10afe5a84af2"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Mountain Frames", - "2", - "16", - "61b21b65-e16a-4be7-9300-4d8e9db861be"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Pedals", - "2", - "17", - "6d24ac07-7a84-4849-864a-865a14125bc9"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Road Frames", - "2", - "18", - "5515f857-075b-4f9a-87b7-43b4997077b3"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Saddles", - "2", - "19", - "049fffa3-9d30-46df-82f7-f20730ec02b3"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Touring Frames", - "2", - "20", - "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Wheels", - "2", - "21", - "43521287-4b0b-438e-b80e-d82d9ad7c9f0"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Bib-Shorts", - "3", - "22", - "67b58d2b-5798-4a90-8c6c-5ddacf057171"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Caps", - "3", - "23", - "430dd6a8-a755-4b23-bb05-52520107da5f"}); - table507.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Gloves", - "3", - "24", - "92d5657b-0032-4e49-bad5-41a441a70942"}); - table507.AddRow(new string[] { "6/1/2002 12:00:00 AM", - "Jerseys", - "3", - "25", - "09e91437-ba4f-4b1a-8215-74184fd95db8"}); -#line 396 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table507, "And "); + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 256 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table487, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -2339,7 +1282,7 @@ public async System.Threading.Tasks.Task FindAllAsync_5_0() string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_5_0", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 424 +#line 261 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -2352,157 +1295,89 @@ public async System.Threading.Tasks.Task FindAllAsync_5_0() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table508 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table488 = new global::Reqnroll.Table(new string[] { "PageNumber", "PageSize"}); - table508.AddRow(new string[] { + table488.AddRow(new string[] { "5", "0"}); -#line 425 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table508, "When "); +#line 262 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table488, "When "); #line hidden - global::Reqnroll.Table table509 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table489 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table509.AddRow(new string[] { + table489.AddRow(new string[] { "pageingFilter", "{{model}}", "AdventureWorksDemo.Data.Paging.PagingFilter"}); -#line 428 - await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table509, "And "); +#line 265 + await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table489, "And "); #line hidden - global::Reqnroll.Table table510 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table490 = new global::Reqnroll.Table(new string[] { "Expected"}); - table510.AddRow(new string[] { + table490.AddRow(new string[] { "AdventureWorksDemo.Data.Paging.PagedList"}); -#line 431 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table510, "Then "); +#line 268 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table490, "Then "); #line hidden - global::Reqnroll.Table table511 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table491 = new global::Reqnroll.Table(new string[] { "TotalPages", "TotalCount", "PageSize", "CurrentPage"}); - table511.AddRow(new string[] { - "2", - "42", + table491.AddRow(new string[] { + "1", + "7", "25", - "1"}); -#line 435 - await testRunner.AndAsync("the PagedList values are", ((string)(null)), table511, "And "); + "0"}); +#line 272 + await testRunner.AndAsync("the PagedList values are", ((string)(null)), table491, "And "); #line hidden - global::Reqnroll.Table table512 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table492 = new global::Reqnroll.Table(new string[] { + "ProductCategoryId", "ModifiedDate", "Name", - "ParentProductCategoryId", - "ProductCategoryId", "Rowguid"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Shorts", - "3", - "26", - "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Socks", - "3", - "27", - "701019c3-09fe-4949-8386-c6ce686474e5"}); - table512.AddRow(new string[] { + table492.AddRow(new string[] { + "1", "6/1/2002 12:00:00 AM", - "Tights", - "3", - "28", - "5deb3e55-9897-4416-b18a-515e970bc2d1"}); - table512.AddRow(new string[] { + "Bikes", + "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); + table492.AddRow(new string[] { + "2", "6/1/2002 12:00:00 AM", - "Vests", + "Components", + "c657828d-d808-4aba-91a3-af2ce02300e9"}); + table492.AddRow(new string[] { "3", - "29", - "9ad7fe93-5ba0-4736-b578-ff80a2071297"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Bike Racks", - "4", - "30", - "4624b5ce-66d6-496b-9201-c053df3556cc"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Bike Stands", - "4", - "31", - "43b445c8-b820-424e-a1d5-90d81da0b46f"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Bottles and Cages", - "4", - "32", - "9b7dff41-9fa3-4776-8def-2c9a48c8b779"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Cleaners", - "4", - "33", - "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Fenders", - "4", - "34", - "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Helmets", - "4", - "35", - "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"}); - table512.AddRow(new string[] { - "6/1/2002 12:00:00 AM", - "Hydration Packs", - "4", - "36", - "646a8906-fc87-4267-a443-9c6d791e6693"}); - table512.AddRow(new string[] { "6/1/2002 12:00:00 AM", - "Lights", + "Clothing", + "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); + table492.AddRow(new string[] { "4", - "37", - "954178ba-624f-42db-95f6-ca035f36d130"}); - table512.AddRow(new string[] { "6/1/2002 12:00:00 AM", - "Locks", - "4", - "38", - "19646983-3fa0-4773-9a0c-f34c49df9bc8"}); - table512.AddRow(new string[] { + "Accessories", + "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); + table492.AddRow(new string[] { + "5", "6/1/2002 12:00:00 AM", - "Panniers", - "4", - "39", - "3002a5d5-fec3-464b-bef3-e0f81d35f431"}); - table512.AddRow(new string[] { + "Mountain Bikes", + "2d364ade-264a-433c-b092-4fcbf3804e01"}); + table492.AddRow(new string[] { + "6", "6/1/2002 12:00:00 AM", - "Pumps", - "4", - "40", - "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"}); - table512.AddRow(new string[] { + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table492.AddRow(new string[] { + "7", "6/1/2002 12:00:00 AM", - "Tires and Tubes", - "4", - "41", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table512.AddRow(new string[] { - "6/1/2005 12:00:00 AM", - "Record to Delete", - "", - "42", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 438 - await testRunner.AndAsync("the sorted results are", ((string)(null)), table512, "And "); + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 275 + await testRunner.AndAsync("the sorted results are", ((string)(null)), table492, "And "); #line hidden } await this.ScenarioCleanupAsync(); diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateBatchTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateBatchTests.feature index 42984b4..2aa0ed9 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateBatchTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateBatchTests.feature @@ -8,14 +8,14 @@ Background: And I reset the database after the scenario Scenario: UpdateBatchAsync01 - Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + Given the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | ProductCategoryId | Name | ParentProductCategoryId | - | 41 | Ping Pong | 3 | - | 42 | Donald Duck | 12 | + | ProductCategoryId | Name | + | 6 | Ping Pong | + | 7 | Donald Duck | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | models | {{models}} | IEnumerable | @@ -26,18 +26,23 @@ Scenario: UpdateBatchAsync01 | IsFailure | IsSuccess | Message | | False | True | | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 3 | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | 12 | Donald Duck | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-000000000001 | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 3 | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | 12 | Donald Duck | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 6 | Ping Pong | 5/24/2024 12:34:56 PM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | Donald Duck | 5/24/2024 12:34:56 PM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | + And the table 'Production.ProductCategory' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 1 | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | Ping Pong | 5/24/2024 12:34:56 PM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | Donald Duck | 5/24/2024 12:34:56 PM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | -Scenario: UpdateBatchAsync02 +Scenario: UpdateBatchAsyncNoRecords Given I don't reset the database after the scenario When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | ProductCategoryId | Name | ParentProductCategoryId | + | ProductCategoryId | Name | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | models | {{models}} | IEnumerable | @@ -45,11 +50,16 @@ Scenario: UpdateBatchAsync02 | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is - | IsFailure | IsSuccess | Message | - | True | False | Please select some records to update! | + | IsFailure | IsSuccess | Message | + | True | False | Please select some records to update! | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | Name | ModifiedDate | Rowguid | + And the table 'Production.ProductCategory' contains + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 1 | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature index 324b129..b4b0218 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature @@ -8,14 +8,14 @@ Background: Given The service to test is 'AdventureWorksDemo.Data.Services.IProductCategoryService' And I reset the database after the scenario -Scenario: Update01 - Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | +Scenario: UpdateAsync + Given the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | ProductCategoryId | Name | ParentProductCategoryId | - | 41 | Ping Pong | | + | ProductCategoryId | Name | + | 6 | How Now Brown Cow | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | @@ -26,45 +26,19 @@ Scenario: Update01 | IsFailure | IsSuccess | Message | | False | True | | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 5/24/2024 12:34:56 PM | How Now Brown Cow | 000310c0-bcc8-42c4-b0c3-45ae611af06b | -Scenario: Update02 - Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | - When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | ProductCategoryId | Name | ParentProductCategoryId | - | 41 | Ping Pong | 42 | - And I call the method 'UpdateAsync' with the parameter values - | Key | Value | TypeName | - | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | - Then the result is of type - | Expected | - | AdventureWorksDemo.Data.Models.ServiceResult | - And the result is - | IsFailure | IsSuccess | Message | - | False | True | | - And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 42 | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 42 | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | -Scenario: Update03 - Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 5/24/2024 12:34:56 PM | How Now Brown Cow | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | + +Scenario: UpdateNoChange + Given I don't reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | ProductCategoryId | Name | ParentProductCategoryId | - | 41 | Tires and Tubes | 42 | + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | @@ -72,25 +46,25 @@ Scenario: Update03 | Expected | | AdventureWorksDemo.Data.Models.ServiceResult | And the result is - | IsFailure | IsSuccess | Message | - | False | True | | + | IsFailure | IsSuccess | Message | + | False | True | Record is already up to date! | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 42 | Tires and Tubes | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 42 | Tires and Tubes | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | - + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | + And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | -Scenario: UpdateInvalidName - Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | +Scenario: UpdateShortName + Given I don't reset the database after the scenario + And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | ProductCategoryId | Name | ParentProductCategoryId | - | 41 | Hi | 42 | + | ProductCategoryId | Name | + | 6 | Hi | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | @@ -104,40 +78,19 @@ Scenario: UpdateInvalidName | Expected | | 'Name' must be between 3 and 50 characters. You entered 2 characters. | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 42 | Hi | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + | ProductCategoryId | Name | ModifiedDate | Rowguid | + | 6 | Hi | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b | -Scenario: UpdateNoChange - Given I don't reset the database after the scenario - When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | ProductCategoryId | ParentProductCategoryId | Name | - | 41 | 4 | Tires and Tubes | - And I call the method 'UpdateAsync' with the parameter values - | Key | Value | TypeName | - | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | - Then the result is of type - | Expected | - | AdventureWorksDemo.Data.Models.ServiceResult | - And the result is - | IsFailure | IsSuccess | Message | - | False | True | Record is already up to date! | - And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | + And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | Scenario: UpdateUnknownRecord Given I don't reset the database after the scenario When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel' - | ProductCategoryId | ParentProductCategoryId | Name | - | 1234 | 4 | UpdateUnknownRecord | + | ProductCategoryId | Name | + | 1234 | UpdateUnknownRecord | And I call the method 'UpdateAsync' with the parameter values | Key | Value | TypeName | | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel | @@ -150,9 +103,15 @@ Scenario: UpdateUnknownRecord | True | False | Unable to locate record to update! | And the results property 'Value' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 1234 | 4 | UpdateUnknownRecord | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | - And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains - | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid | - | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf | - | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 | \ No newline at end of file + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1234 | 1/1/0001 12:00:00 AM | UpdateUnknownRecord | 00000000-0000-0000-0000-000000000000 | + + And the table 'Production.ProductCategory' contains + | ProductCategoryId | ModifiedDate | Name | Rowguid | + | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c | + | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 | + | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 | + | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 | + | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 | + | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b | + | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 | diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature.cs index 1d20c6e..624c257 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature.cs +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature.cs @@ -108,13 +108,13 @@ await testRunner.GivenAsync("The service to test is \'AdventureWorksDemo.Data.Se } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("Update01")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateAsync")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")] - public async System.Threading.Tasks.Task Update01() + public async System.Threading.Tasks.Task UpdateAsync() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update01", null, tagsOfScenario, argumentsOfScenario, featureTags); + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateAsync", null, tagsOfScenario, argumentsOfScenario, featureTags); #line 11 this.ScenarioInitialize(scenarioInfo); #line hidden @@ -128,119 +128,109 @@ public async System.Threading.Tasks.Task Update01() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table526 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table506 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table526.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table506.AddRow(new string[] { + "6", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table526.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table506.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); #line 12 - await testRunner.GivenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table526, "Given "); + await testRunner.GivenAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table506, "Given "); #line hidden - global::Reqnroll.Table table527 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table507 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "Name", - "ParentProductCategoryId"}); - table527.AddRow(new string[] { - "41", - "Ping Pong", - ""}); + "Name"}); + table507.AddRow(new string[] { + "6", + "How Now Brown Cow"}); #line 16 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table527, "When "); + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table507, "When "); #line hidden - global::Reqnroll.Table table528 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table508 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table528.AddRow(new string[] { + table508.AddRow(new string[] { "model", "{{model}}", "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); #line 19 - await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table528, "And "); + await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table508, "And "); #line hidden - global::Reqnroll.Table table529 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table509 = new global::Reqnroll.Table(new string[] { "Expected"}); - table529.AddRow(new string[] { + table509.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); #line 22 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table529, "Then "); + await testRunner.ThenAsync("the result is of type", ((string)(null)), table509, "Then "); #line hidden - global::Reqnroll.Table table530 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table510 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess", "Message"}); - table530.AddRow(new string[] { + table510.AddRow(new string[] { "False", "True", ""}); #line 25 - await testRunner.AndAsync("the result is", ((string)(null)), table530, "And "); + await testRunner.AndAsync("the result is", ((string)(null)), table510, "And "); #line hidden - global::Reqnroll.Table table531 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table511 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table531.AddRow(new string[] { - "41", - "", - "Ping Pong", + table511.AddRow(new string[] { + "6", "5/24/2024 12:34:56 PM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); + "How Now Brown Cow", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); #line 28 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table531, "And "); + await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table511, "And "); #line hidden - global::Reqnroll.Table table532 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table512 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table532.AddRow(new string[] { - "41", - "", - "Ping Pong", + table512.AddRow(new string[] { + "6", "5/24/2024 12:34:56 PM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table532.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 31 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table532, "And "); + "How Now Brown Cow", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table512.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 32 + await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table512, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("Update02")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateNoChange")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")] - public async System.Threading.Tasks.Task Update02() + public async System.Threading.Tasks.Task UpdateNoChange() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update02", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 36 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateNoChange", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 37 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -253,119 +243,97 @@ public async System.Threading.Tasks.Task Update02() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table533 = new global::Reqnroll.Table(new string[] { +#line 38 + await testRunner.GivenAsync("I don\'t reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden + global::Reqnroll.Table table513 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table533.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table513.AddRow(new string[] { + "7", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table533.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 37 - await testRunner.GivenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table533, "Given "); + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 39 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table513, "When "); #line hidden - global::Reqnroll.Table table534 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "Name", - "ParentProductCategoryId"}); - table534.AddRow(new string[] { - "41", - "Ping Pong", - "42"}); -#line 41 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table534, "When "); -#line hidden - global::Reqnroll.Table table535 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table514 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table535.AddRow(new string[] { + table514.AddRow(new string[] { "model", "{{model}}", "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 44 - await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table535, "And "); +#line 42 + await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table514, "And "); #line hidden - global::Reqnroll.Table table536 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table515 = new global::Reqnroll.Table(new string[] { "Expected"}); - table536.AddRow(new string[] { + table515.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 47 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table536, "Then "); +#line 45 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table515, "Then "); #line hidden - global::Reqnroll.Table table537 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table516 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess", "Message"}); - table537.AddRow(new string[] { + table516.AddRow(new string[] { "False", "True", - ""}); -#line 50 - await testRunner.AndAsync("the result is", ((string)(null)), table537, "And "); + "Record is already up to date!"}); +#line 48 + await testRunner.AndAsync("the result is", ((string)(null)), table516, "And "); #line hidden - global::Reqnroll.Table table538 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table517 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table538.AddRow(new string[] { - "41", - "42", - "Ping Pong", - "5/24/2024 12:34:56 PM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); -#line 53 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table538, "And "); + table517.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 51 + await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table517, "And "); #line hidden - global::Reqnroll.Table table539 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table518 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table539.AddRow(new string[] { - "41", - "42", - "Ping Pong", - "5/24/2024 12:34:56 PM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table539.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 56 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table539, "And "); + table518.AddRow(new string[] { + "6", + "6/1/2002 12:00:00 AM", + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table518.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 54 + await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table518, "And "); #line hidden } await this.ScenarioCleanupAsync(); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("Update03")] + [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateShortName")] [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")] - public async System.Threading.Tasks.Task Update03() + public async System.Threading.Tasks.Task UpdateShortName() { string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update03", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 60 + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateShortName", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 59 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -378,341 +346,103 @@ public async System.Threading.Tasks.Task Update03() #line 7 await this.FeatureBackgroundAsync(); #line hidden - global::Reqnroll.Table table540 = new global::Reqnroll.Table(new string[] { +#line 60 + await testRunner.GivenAsync("I don\'t reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden + global::Reqnroll.Table table519 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table540.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table519.AddRow(new string[] { + "6", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table540.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table519.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); #line 61 - await testRunner.GivenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table540, "Given "); + await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table519, "And "); #line hidden - global::Reqnroll.Table table541 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table520 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "Name", - "ParentProductCategoryId"}); - table541.AddRow(new string[] { - "41", - "Tires and Tubes", - "42"}); + "Name"}); + table520.AddRow(new string[] { + "6", + "Hi"}); #line 65 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table541, "When "); + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table520, "When "); #line hidden - global::Reqnroll.Table table542 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table521 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table542.AddRow(new string[] { + table521.AddRow(new string[] { "model", "{{model}}", "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); #line 68 - await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table542, "And "); + await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table521, "And "); #line hidden - global::Reqnroll.Table table543 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table522 = new global::Reqnroll.Table(new string[] { "Expected"}); - table543.AddRow(new string[] { + table522.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); #line 71 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table543, "Then "); + await testRunner.ThenAsync("the result is of type", ((string)(null)), table522, "Then "); #line hidden - global::Reqnroll.Table table544 = new global::Reqnroll.Table(new string[] { - "IsFailure", - "IsSuccess", - "Message"}); - table544.AddRow(new string[] { - "False", - "True", - ""}); -#line 74 - await testRunner.AndAsync("the result is", ((string)(null)), table544, "And "); -#line hidden - global::Reqnroll.Table table545 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", - "Name", - "ModifiedDate", - "Rowguid"}); - table545.AddRow(new string[] { - "41", - "42", - "Tires and Tubes", - "5/24/2024 12:34:56 PM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); -#line 77 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table545, "And "); -#line hidden - global::Reqnroll.Table table546 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", - "Name", - "ModifiedDate", - "Rowguid"}); - table546.AddRow(new string[] { - "41", - "42", - "Tires and Tubes", - "5/24/2024 12:34:56 PM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table546.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 80 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table546, "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateInvalidName")] - [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")] - public async System.Threading.Tasks.Task UpdateInvalidName() - { - string[] tagsOfScenario = ((string[])(null)); - System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateInvalidName", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 86 -this.ScenarioInitialize(scenarioInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - testRunner.SkipScenario(); - } - else - { - await this.ScenarioStartAsync(); -#line 7 -await this.FeatureBackgroundAsync(); -#line hidden - global::Reqnroll.Table table547 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", - "Name", - "ModifiedDate", - "Rowguid"}); - table547.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", - "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table547.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 87 - await testRunner.GivenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table547, "Given "); -#line hidden - global::Reqnroll.Table table548 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "Name", - "ParentProductCategoryId"}); - table548.AddRow(new string[] { - "41", - "Hi", - "42"}); -#line 91 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table548, "When "); -#line hidden - global::Reqnroll.Table table549 = new global::Reqnroll.Table(new string[] { - "Key", - "Value", - "TypeName"}); - table549.AddRow(new string[] { - "model", - "{{model}}", - "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 94 - await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table549, "And "); -#line hidden - global::Reqnroll.Table table550 = new global::Reqnroll.Table(new string[] { - "Expected"}); - table550.AddRow(new string[] { - "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 97 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table550, "Then "); -#line hidden - global::Reqnroll.Table table551 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table523 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess"}); - table551.AddRow(new string[] { + table523.AddRow(new string[] { "True", "False"}); -#line 100 - await testRunner.AndAsync("the result is", ((string)(null)), table551, "And "); +#line 74 + await testRunner.AndAsync("the result is", ((string)(null)), table523, "And "); #line hidden - global::Reqnroll.Table table552 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table524 = new global::Reqnroll.Table(new string[] { "Expected"}); - table552.AddRow(new string[] { + table524.AddRow(new string[] { "\'Name\' must be between 3 and 50 characters. You entered 2 characters."}); -#line 103 - await testRunner.AndAsync("the results property \'Message\' contains", ((string)(null)), table552, "And "); +#line 77 + await testRunner.AndAsync("the results property \'Message\' contains", ((string)(null)), table524, "And "); #line hidden - global::Reqnroll.Table table553 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table525 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name", "ModifiedDate", "Rowguid"}); - table553.AddRow(new string[] { - "41", - "42", + table525.AddRow(new string[] { + "6", "Hi", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); -#line 106 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table553, "And "); + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); +#line 80 + await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table525, "And "); #line hidden - global::Reqnroll.Table table554 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table526 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", - "Rowguid"}); - table554.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", - "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table554.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 109 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table554, "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()] - [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateNoChange")] - [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")] - public async System.Threading.Tasks.Task UpdateNoChange() - { - string[] tagsOfScenario = ((string[])(null)); - System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateNoChange", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 114 -this.ScenarioInitialize(scenarioInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - testRunner.SkipScenario(); - } - else - { - await this.ScenarioStartAsync(); -#line 7 -await this.FeatureBackgroundAsync(); -#line hidden -#line 115 - await testRunner.GivenAsync("I don\'t reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - global::Reqnroll.Table table555 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", - "Name"}); - table555.AddRow(new string[] { - "41", - "4", - "Tires and Tubes"}); -#line 116 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table555, "When "); -#line hidden - global::Reqnroll.Table table556 = new global::Reqnroll.Table(new string[] { - "Key", - "Value", - "TypeName"}); - table556.AddRow(new string[] { - "model", - "{{model}}", - "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 119 - await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table556, "And "); -#line hidden - global::Reqnroll.Table table557 = new global::Reqnroll.Table(new string[] { - "Expected"}); - table557.AddRow(new string[] { - "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 122 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table557, "Then "); -#line hidden - global::Reqnroll.Table table558 = new global::Reqnroll.Table(new string[] { - "IsFailure", - "IsSuccess", - "Message"}); - table558.AddRow(new string[] { - "False", - "True", - "Record is already up to date!"}); -#line 125 - await testRunner.AndAsync("the result is", ((string)(null)), table558, "And "); -#line hidden - global::Reqnroll.Table table559 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", "Name", - "ModifiedDate", "Rowguid"}); - table559.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + table526.AddRow(new string[] { + "6", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); -#line 128 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table559, "And "); -#line hidden - global::Reqnroll.Table table560 = new global::Reqnroll.Table(new string[] { - "ProductCategoryId", - "ParentProductCategoryId", - "Name", - "ModifiedDate", - "Rowguid"}); - table560.AddRow(new string[] { - "41", - "4", - "Tires and Tubes", + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table526.AddRow(new string[] { + "7", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table560.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 131 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table560, "And "); + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 84 + await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" + + "ns", ((string)(null)), table526, "And "); #line hidden } await this.ScenarioCleanupAsync(); @@ -726,7 +456,7 @@ public async System.Threading.Tasks.Task UpdateUnknownRecord() string[] tagsOfScenario = ((string[])(null)); System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateUnknownRecord", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 136 +#line 89 this.ScenarioInitialize(scenarioInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -739,86 +469,103 @@ public async System.Threading.Tasks.Task UpdateUnknownRecord() #line 7 await this.FeatureBackgroundAsync(); #line hidden -#line 137 +#line 90 await testRunner.GivenAsync("I don\'t reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden - global::Reqnroll.Table table561 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table527 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", "Name"}); - table561.AddRow(new string[] { + table527.AddRow(new string[] { "1234", - "4", "UpdateUnknownRecord"}); -#line 138 - await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table561, "When "); +#line 91 + await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table527, "When "); #line hidden - global::Reqnroll.Table table562 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table528 = new global::Reqnroll.Table(new string[] { "Key", "Value", "TypeName"}); - table562.AddRow(new string[] { + table528.AddRow(new string[] { "model", "{{model}}", "AdventureWorksDemo.Data.Models.ProductCategoryModel"}); -#line 141 - await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table562, "And "); +#line 94 + await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table528, "And "); #line hidden - global::Reqnroll.Table table563 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table529 = new global::Reqnroll.Table(new string[] { "Expected"}); - table563.AddRow(new string[] { + table529.AddRow(new string[] { "AdventureWorksDemo.Data.Models.ServiceResult"}); -#line 144 - await testRunner.ThenAsync("the result is of type", ((string)(null)), table563, "Then "); +#line 97 + await testRunner.ThenAsync("the result is of type", ((string)(null)), table529, "Then "); #line hidden - global::Reqnroll.Table table564 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table530 = new global::Reqnroll.Table(new string[] { "IsFailure", "IsSuccess", "Message"}); - table564.AddRow(new string[] { + table530.AddRow(new string[] { "True", "False", "Unable to locate record to update!"}); -#line 148 - await testRunner.AndAsync("the result is", ((string)(null)), table564, "And "); +#line 101 + await testRunner.AndAsync("the result is", ((string)(null)), table530, "And "); #line hidden - global::Reqnroll.Table table565 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table531 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table565.AddRow(new string[] { + table531.AddRow(new string[] { "1234", - "4", - "UpdateUnknownRecord", "1/1/0001 12:00:00 AM", + "UpdateUnknownRecord", "00000000-0000-0000-0000-000000000000"}); -#line 152 - await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table565, "And "); +#line 105 + await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table531, "And "); #line hidden - global::Reqnroll.Table table566 = new global::Reqnroll.Table(new string[] { + global::Reqnroll.Table table532 = new global::Reqnroll.Table(new string[] { "ProductCategoryId", - "ParentProductCategoryId", - "Name", "ModifiedDate", + "Name", "Rowguid"}); - table566.AddRow(new string[] { - "41", + table532.AddRow(new string[] { + "1", + "6/1/2002 12:00:00 AM", + "Bikes", + "cfbda25c-df71-47a7-b81b-64ee161aa37c"}); + table532.AddRow(new string[] { + "2", + "6/1/2002 12:00:00 AM", + "Components", + "c657828d-d808-4aba-91a3-af2ce02300e9"}); + table532.AddRow(new string[] { + "3", + "6/1/2002 12:00:00 AM", + "Clothing", + "10a7c342-ca82-48d4-8a38-46a2eb089b74"}); + table532.AddRow(new string[] { "4", - "Tires and Tubes", "6/1/2002 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"}); - table566.AddRow(new string[] { - "42", - "", - "Record to Delete", - "6/1/2005 12:00:00 AM", - "3c17c9ae-e906-48b4-bdd3-000000000001"}); -#line 155 - await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" + - "", ((string)(null)), table566, "And "); + "Accessories", + "2be3be36-d9a2-4eee-b593-ed895d97c2a6"}); + table532.AddRow(new string[] { + "5", + "6/1/2002 12:00:00 AM", + "Mountain Bikes", + "2d364ade-264a-433c-b092-4fcbf3804e01"}); + table532.AddRow(new string[] { + "6", + "6/1/2002 12:00:00 AM", + "Road Bikes", + "000310c0-bcc8-42c4-b0c3-45ae611af06b"}); + table532.AddRow(new string[] { + "7", + "6/1/2002 12:00:00 AM", + "For Delete Tests Only", + "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"}); +#line 109 + await testRunner.AndAsync("the table \'Production.ProductCategory\' contains", ((string)(null)), table532, "And "); #line hidden } await this.ScenarioCleanupAsync(); diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs index 2eaf1cb..7f4001a 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs @@ -47,10 +47,10 @@ private static bool CreateTestingDatabaseBakFile() string location = AppSettings["Database:Location"]? .Replace("<>", CommonHelper.IO.TryGetSolutionDirectoryInfo()?.FullName) ?? string.Empty; - string source = Path.Combine(location, AppSettings["Database:SourceDatabase"] ?? ""); string destination = Path.Combine(location, AppSettings["Database:DataBaseForTesting"] ?? ""); if (!File.Exists(destination)) { + string source = Path.Combine(location, AppSettings["Database:SourceDatabase"] ?? ""); File.Copy(source, destination); return true; } diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/DirectDataTableSteps.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/DirectDataTableSteps.cs index e26cb56..46c125e 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/DirectDataTableSteps.cs +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/DirectDataTableSteps.cs @@ -17,16 +17,19 @@ public void ThenTheTableContains(string tableName, Reqnroll.DataTable table) [Then("the table {string} filtered by {string} contains")] public void ThenTheTableFilteredByContains(string tableName, string filter, Reqnroll.DataTable table) { - string sqlQuery = $"SELECT * FROM {tableName} "; - if (filter != string.Empty) - sqlQuery += $" WHERE {filter};"; - else - sqlQuery += ";"; + string sqlQuery = $"SELECT * FROM {tableName} " + + (string.IsNullOrEmpty(filter) ? ";" : $"WHERE {filter};"); + // // // if there are nullable columns you need to specify the column names switch (tableName) { - case "SalesLT.Address": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList
(sqlQuery)); break; - case "SalesLT.ProductDescription": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break; - case "SalesLT.ProductCategory": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break; + case "Person.Address": + sqlQuery = "SELECT AddressID, AddressLine1, AddressLine2, City, StateProvinceID, PostalCode,RowGuid ,ModifiedDate FROM Person.Address " + + (string.IsNullOrEmpty(filter) ? ";" : $"WHERE {filter};"); + table.CompareToSet(CommonHelper.Sql.GetDataTableAsList
(sqlQuery)); + break; + + case "Production.ProductDescription": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break; + case "Production.ProductCategory": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break; default: throw new NotImplementedException(tableName); } diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/StepDefinitions.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/StepDefinitions.cs index 1720927..b522f29 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/StepDefinitions.cs +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/StepDefinitions.cs @@ -123,7 +123,7 @@ public void ThenTheResultIs(DataTable table) break; default: - throw new NotImplementedException($"Type [{resultTypeName}] is not handled!"); + throw new NotImplementedException($"Type [{resultTypeName}] is not handled in step {nameof(ThenTheResultIs)}!"); } } @@ -237,6 +237,7 @@ public void WhenIPopulateTheModel(string modelTypeName, DataTable dataTable) var model = Helper.Types.PopulateModelFromRow(modelTypeName, dataTable.Rows[0], null); Helper.ScenarioContexts.AddToContext(ScenarioContextKey.Model, model); } + [When("I update the model {string}")] public void WhenIUpdateTheModel(string modelTypeName, DataTable dataTable) { diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json index 5a505c6..03ea212 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json @@ -1,4 +1,9 @@ { + "Logging": { + "TestContainers": { + "SQLDBConfiguration": "None" + } + }, "TestContainers": { "RemoveTestContainersAfterTestRun": true }, diff --git a/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj b/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj index 91e51bb..a31caa7 100644 --- a/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj +++ b/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj @@ -32,18 +32,18 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + diff --git a/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs b/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs index c50d504..25506d1 100644 --- a/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs +++ b/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using AdventureWorksDemo.Data.Entities; diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs index da3b72f..d32a7ec 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,16 +25,14 @@ public partial class Department /// /// Name of the department. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Name of the group to which the department belongs. /// - [Required] [StringLength(50)] - public string GroupName { get; set; } + public string GroupName { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs index 289f51e..b84409e 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -27,18 +27,16 @@ public partial class Employee /// /// Unique national identification number such as a social security number. /// - [Required] [Column("NationalIDNumber")] [StringLength(15)] - public string NationalIdnumber { get; set; } + public string NationalIdnumber { get; set; } = null!; /// /// Network login. /// - [Required] [Column("LoginID")] [StringLength(256)] - public string LoginId { get; set; } + public string LoginId { get; set; } = null!; /// /// The depth of the employee in the corporate hierarchy. @@ -48,9 +46,8 @@ public partial class Employee /// /// Work title such as Buyer or Sales Representative. /// - [Required] [StringLength(50)] - public string JobTitle { get; set; } + public string JobTitle { get; set; } = null!; /// /// Date of birth. @@ -60,16 +57,14 @@ public partial class Employee /// /// M = Married, S = Single /// - [Required] [StringLength(1)] - public string MaritalStatus { get; set; } + public string MaritalStatus { get; set; } = null!; /// /// M = Male, F = Female /// - [Required] [StringLength(1)] - public string Gender { get; set; } + public string Gender { get; set; } = null!; /// /// Employee hired on this date. @@ -110,7 +105,7 @@ public partial class Employee [ForeignKey("BusinessEntityId")] [InverseProperty("Employee")] - public virtual Person BusinessEntity { get; set; } + public virtual Person BusinessEntity { get; set; } = null!; [InverseProperty("BusinessEntity")] public virtual ICollection EmployeeDepartmentHistories { get; set; } = new List(); @@ -125,5 +120,5 @@ public partial class Employee public virtual ICollection PurchaseOrderHeaders { get; set; } = new List(); [InverseProperty("BusinessEntity")] - public virtual SalesPerson SalesPerson { get; set; } + public virtual SalesPerson? SalesPerson { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs index 860fff5..6dd7ca4 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -57,13 +57,13 @@ public partial class EmployeeDepartmentHistory [ForeignKey("BusinessEntityId")] [InverseProperty("EmployeeDepartmentHistories")] - public virtual Employee BusinessEntity { get; set; } + public virtual Employee BusinessEntity { get; set; } = null!; [ForeignKey("DepartmentId")] [InverseProperty("EmployeeDepartmentHistories")] - public virtual Department Department { get; set; } + public virtual Department Department { get; set; } = null!; [ForeignKey("ShiftId")] [InverseProperty("EmployeeDepartmentHistories")] - public virtual Shift Shift { get; set; } + public virtual Shift Shift { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs index c48a518..f8dfdda 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -48,5 +48,5 @@ public partial class EmployeePayHistory [ForeignKey("BusinessEntityId")] [InverseProperty("EmployeePayHistories")] - public virtual Employee BusinessEntity { get; set; } + public virtual Employee BusinessEntity { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs index c84aeaf..aa83b8c 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -32,7 +32,7 @@ public partial class JobCandidate /// Résumé in XML format. /// [Column(TypeName = "xml")] - public string Resume { get; set; } + public string? Resume { get; set; } /// /// Date and time the record was last updated. @@ -42,5 +42,5 @@ public partial class JobCandidate [ForeignKey("BusinessEntityId")] [InverseProperty("JobCandidates")] - public virtual Employee BusinessEntity { get; set; } + public virtual Employee? BusinessEntity { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs index 5545e8a..546637d 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -26,9 +26,8 @@ public partial class Shift /// /// Shift description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Shift start time. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs index 26e581f..13f8362 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -27,22 +27,20 @@ public partial class Address /// /// First street address line. /// - [Required] [StringLength(60)] - public string AddressLine1 { get; set; } + public string AddressLine1 { get; set; } = null!; /// /// Second street address line. /// [StringLength(60)] - public string AddressLine2 { get; set; } + public string? AddressLine2 { get; set; } /// /// Name of the city. /// - [Required] [StringLength(30)] - public string City { get; set; } + public string City { get; set; } = null!; /// /// Unique identification number for the state or province. Foreign key to StateProvince table. @@ -53,9 +51,8 @@ public partial class Address /// /// Postal code for the street address. /// - [Required] [StringLength(15)] - public string PostalCode { get; set; } + public string PostalCode { get; set; } = null!; /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -80,5 +77,5 @@ public partial class Address [ForeignKey("StateProvinceId")] [InverseProperty("Addresses")] - public virtual StateProvince StateProvince { get; set; } + public virtual StateProvince StateProvince { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs index 645c647..1800b3c 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -26,9 +26,8 @@ public partial class AddressType /// /// Address type description. For example, Billing, Home, or Shipping. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs index df9ffa7..bbf785e 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -41,11 +41,11 @@ public partial class BusinessEntity public virtual ICollection BusinessEntityContacts { get; set; } = new List(); [InverseProperty("BusinessEntity")] - public virtual Person Person { get; set; } + public virtual Person? Person { get; set; } [InverseProperty("BusinessEntity")] - public virtual Store Store { get; set; } + public virtual Store? Store { get; set; } [InverseProperty("BusinessEntity")] - public virtual Vendor Vendor { get; set; } + public virtual Vendor? Vendor { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs index 586f3b4..9dfbd74 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -53,13 +53,13 @@ public partial class BusinessEntityAddress [ForeignKey("AddressId")] [InverseProperty("BusinessEntityAddresses")] - public virtual Address Address { get; set; } + public virtual Address Address { get; set; } = null!; [ForeignKey("AddressTypeId")] [InverseProperty("BusinessEntityAddresses")] - public virtual AddressType AddressType { get; set; } + public virtual AddressType AddressType { get; set; } = null!; [ForeignKey("BusinessEntityId")] [InverseProperty("BusinessEntityAddresses")] - public virtual BusinessEntity BusinessEntity { get; set; } + public virtual BusinessEntity BusinessEntity { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs index 6fab40d..780b46b 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -53,13 +53,13 @@ public partial class BusinessEntityContact [ForeignKey("BusinessEntityId")] [InverseProperty("BusinessEntityContacts")] - public virtual BusinessEntity BusinessEntity { get; set; } + public virtual BusinessEntity BusinessEntity { get; set; } = null!; [ForeignKey("ContactTypeId")] [InverseProperty("BusinessEntityContacts")] - public virtual ContactType ContactType { get; set; } + public virtual ContactType ContactType { get; set; } = null!; [ForeignKey("PersonId")] [InverseProperty("BusinessEntityContacts")] - public virtual Person Person { get; set; } + public virtual Person Person { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs index 1b1578c..13ab2da 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,9 +25,8 @@ public partial class ContactType /// /// Contact type description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs index e28e91c..953f85b 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -20,14 +20,13 @@ public partial class CountryRegion /// [Key] [StringLength(3)] - public string CountryRegionCode { get; set; } + public string CountryRegionCode { get; set; } = null!; /// /// Country or region name. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs index 7621bec..76e58b3 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -35,7 +35,7 @@ public partial class EmailAddress /// [Column("EmailAddress")] [StringLength(50)] - public string EmailAddress1 { get; set; } + public string? EmailAddress1 { get; set; } /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -51,5 +51,5 @@ public partial class EmailAddress [ForeignKey("BusinessEntityId")] [InverseProperty("EmailAddresses")] - public virtual Person BusinessEntity { get; set; } + public virtual Person BusinessEntity { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs index 3516691..595ad2d 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -21,18 +21,16 @@ public partial class Password /// /// Password for the e-mail account. /// - [Required] [StringLength(128)] [Unicode(false)] - public string PasswordHash { get; set; } + public string PasswordHash { get; set; } = null!; /// /// Random value concatenated with the password string before the password is hashed. /// - [Required] [StringLength(10)] [Unicode(false)] - public string PasswordSalt { get; set; } + public string PasswordSalt { get; set; } = null!; /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -48,5 +46,5 @@ public partial class Password [ForeignKey("BusinessEntityId")] [InverseProperty("Password")] - public virtual Person BusinessEntity { get; set; } + public virtual Person BusinessEntity { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs index 7a67fbf..11e970a 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -31,9 +31,8 @@ public partial class Person /// /// Primary type of person: SC = Store Contact, IN = Individual (retail) customer, SP = Sales person, EM = Employee (non-sales), VC = Vendor contact, GC = General contact /// - [Required] [StringLength(2)] - public string PersonType { get; set; } + public string PersonType { get; set; } = null!; /// /// 0 = The data in FirstName and LastName are stored in western style (first name, last name) order. 1 = Eastern style (last name, first name) order. @@ -44,33 +43,31 @@ public partial class Person /// A courtesy title. For example, Mr. or Ms. /// [StringLength(8)] - public string Title { get; set; } + public string? Title { get; set; } /// /// First name of the person. /// - [Required] [StringLength(50)] - public string FirstName { get; set; } + public string FirstName { get; set; } = null!; /// /// Middle name or middle initial of the person. /// [StringLength(50)] - public string MiddleName { get; set; } + public string? MiddleName { get; set; } /// /// Last name of the person. /// - [Required] [StringLength(50)] - public string LastName { get; set; } + public string LastName { get; set; } = null!; /// /// Surname suffix. For example, Sr. or Jr. /// [StringLength(10)] - public string Suffix { get; set; } + public string? Suffix { get; set; } /// /// 0 = Contact does not wish to receive e-mail promotions, 1 = Contact does wish to receive e-mail promotions from AdventureWorks, 2 = Contact does wish to receive e-mail promotions from AdventureWorks and selected partners. @@ -81,13 +78,13 @@ public partial class Person /// Additional contact information about the person stored in xml format. /// [Column(TypeName = "xml")] - public string AdditionalContactInfo { get; set; } + public string? AdditionalContactInfo { get; set; } /// /// Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis. /// [Column(TypeName = "xml")] - public string Demographics { get; set; } + public string? Demographics { get; set; } /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -103,7 +100,7 @@ public partial class Person [ForeignKey("BusinessEntityId")] [InverseProperty("Person")] - public virtual BusinessEntity BusinessEntity { get; set; } + public virtual BusinessEntity BusinessEntity { get; set; } = null!; [InverseProperty("Person")] public virtual ICollection BusinessEntityContacts { get; set; } = new List(); @@ -115,10 +112,10 @@ public partial class Person public virtual ICollection EmailAddresses { get; set; } = new List(); [InverseProperty("BusinessEntity")] - public virtual Employee Employee { get; set; } + public virtual Employee? Employee { get; set; } [InverseProperty("BusinessEntity")] - public virtual Password Password { get; set; } + public virtual Password? Password { get; set; } [InverseProperty("BusinessEntity")] public virtual ICollection PersonCreditCards { get; set; } = new List(); diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs index 723fbc5..5c736ba 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -28,7 +28,7 @@ public partial class PersonPhone /// [Key] [StringLength(25)] - public string PhoneNumber { get; set; } + public string PhoneNumber { get; set; } = null!; /// /// Kind of phone number. Foreign key to PhoneNumberType.PhoneNumberTypeID. @@ -45,9 +45,9 @@ public partial class PersonPhone [ForeignKey("BusinessEntityId")] [InverseProperty("PersonPhones")] - public virtual Person BusinessEntity { get; set; } + public virtual Person BusinessEntity { get; set; } = null!; [ForeignKey("PhoneNumberTypeId")] [InverseProperty("PersonPhones")] - public virtual PhoneNumberType PhoneNumberType { get; set; } + public virtual PhoneNumberType PhoneNumberType { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs index 2a2f287..63aa6e6 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -24,9 +24,8 @@ public partial class PhoneNumberType /// /// Name of the telephone number type /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs index 3cfd5b1..464394e 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -27,16 +27,14 @@ public partial class StateProvince /// /// ISO standard state or province code. /// - [Required] [StringLength(3)] - public string StateProvinceCode { get; set; } + public string StateProvinceCode { get; set; } = null!; /// /// ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode. /// - [Required] [StringLength(3)] - public string CountryRegionCode { get; set; } + public string CountryRegionCode { get; set; } = null!; /// /// 0 = StateProvinceCode exists. 1 = StateProvinceCode unavailable, using CountryRegionCode. @@ -46,9 +44,8 @@ public partial class StateProvince /// /// State or province description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// ID of the territory in which the state or province is located. Foreign key to SalesTerritory.SalesTerritoryID. @@ -73,12 +70,12 @@ public partial class StateProvince [ForeignKey("CountryRegionCode")] [InverseProperty("StateProvinces")] - public virtual CountryRegion CountryRegionCodeNavigation { get; set; } + public virtual CountryRegion CountryRegionCodeNavigation { get; set; } = null!; [InverseProperty("StateProvince")] public virtual ICollection SalesTaxRates { get; set; } = new List(); [ForeignKey("TerritoryId")] [InverseProperty("StateProvinces")] - public virtual SalesTerritory Territory { get; set; } + public virtual SalesTerritory Territory { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs index 8f56737..0361cb7 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -49,9 +49,8 @@ public partial class BillOfMaterial /// /// Standard code identifying the unit of measure for the quantity. /// - [Required] [StringLength(3)] - public string UnitMeasureCode { get; set; } + public string UnitMeasureCode { get; set; } = null!; /// /// Indicates the depth the component is from its parent (AssemblyID). @@ -73,13 +72,13 @@ public partial class BillOfMaterial [ForeignKey("ComponentId")] [InverseProperty("BillOfMaterialComponents")] - public virtual Product Component { get; set; } + public virtual Product Component { get; set; } = null!; [ForeignKey("ProductAssemblyId")] [InverseProperty("BillOfMaterialProductAssemblies")] - public virtual Product ProductAssembly { get; set; } + public virtual Product? ProductAssembly { get; set; } [ForeignKey("UnitMeasureCode")] [InverseProperty("BillOfMaterials")] - public virtual UnitMeasure UnitMeasureCodeNavigation { get; set; } + public virtual UnitMeasure UnitMeasureCodeNavigation { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs index a1dde2d..8216958 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -21,14 +21,13 @@ public partial class Culture [Key] [Column("CultureID")] [StringLength(6)] - public string CultureId { get; set; } + public string CultureId { get; set; } = null!; /// /// Culture description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs index c546e68..9b10541 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,7 +25,7 @@ public partial class Illustration /// Illustrations used in manufacturing instructions. Stored as XML. /// [Column(TypeName = "xml")] - public string Diagram { get; set; } + public string? Diagram { get; set; } /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs index 9c41e73..0fb6390 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,9 +25,8 @@ public partial class Location /// /// Location description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Standard hourly cost of the manufacturing location. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs index e2c2676..86a3c91 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -27,16 +27,14 @@ public partial class Product /// /// Name of the product. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Unique product identification number. /// - [Required] [StringLength(25)] - public string ProductNumber { get; set; } + public string ProductNumber { get; set; } = null!; /// /// 0 = Product is purchased, 1 = Product is manufactured in-house. @@ -52,7 +50,7 @@ public partial class Product /// Product color. /// [StringLength(15)] - public string Color { get; set; } + public string? Color { get; set; } /// /// Minimum inventory quantity. @@ -80,19 +78,19 @@ public partial class Product /// Product size. /// [StringLength(5)] - public string Size { get; set; } + public string? Size { get; set; } /// /// Unit of measure for Size column. /// [StringLength(3)] - public string SizeUnitMeasureCode { get; set; } + public string? SizeUnitMeasureCode { get; set; } /// /// Unit of measure for Weight column. /// [StringLength(3)] - public string WeightUnitMeasureCode { get; set; } + public string? WeightUnitMeasureCode { get; set; } /// /// Product weight. @@ -109,19 +107,19 @@ public partial class Product /// R = Road, M = Mountain, T = Touring, S = Standard /// [StringLength(2)] - public string ProductLine { get; set; } + public string? ProductLine { get; set; } /// /// H = High, M = Medium, L = Low /// [StringLength(2)] - public string Class { get; set; } + public string? Class { get; set; } /// /// W = Womens, M = Mens, U = Universal /// [StringLength(2)] - public string Style { get; set; } + public string? Style { get; set; } /// /// Product is a member of this product subcategory. Foreign key to ProductSubCategory.ProductSubCategoryID. @@ -182,7 +180,7 @@ public partial class Product [ForeignKey("ProductModelId")] [InverseProperty("Products")] - public virtual ProductModel ProductModel { get; set; } + public virtual ProductModel? ProductModel { get; set; } [InverseProperty("Product")] public virtual ICollection ProductProductPhotos { get; set; } = new List(); @@ -192,7 +190,7 @@ public partial class Product [ForeignKey("ProductSubcategoryId")] [InverseProperty("Products")] - public virtual ProductSubcategory ProductSubcategory { get; set; } + public virtual ProductSubcategory? ProductSubcategory { get; set; } [InverseProperty("Product")] public virtual ICollection ProductVendors { get; set; } = new List(); @@ -205,7 +203,7 @@ public partial class Product [ForeignKey("SizeUnitMeasureCode")] [InverseProperty("ProductSizeUnitMeasureCodeNavigations")] - public virtual UnitMeasure SizeUnitMeasureCodeNavigation { get; set; } + public virtual UnitMeasure? SizeUnitMeasureCodeNavigation { get; set; } [InverseProperty("Product")] public virtual ICollection SpecialOfferProducts { get; set; } = new List(); @@ -215,7 +213,7 @@ public partial class Product [ForeignKey("WeightUnitMeasureCode")] [InverseProperty("ProductWeightUnitMeasureCodeNavigations")] - public virtual UnitMeasure WeightUnitMeasureCodeNavigation { get; set; } + public virtual UnitMeasure? WeightUnitMeasureCodeNavigation { get; set; } [InverseProperty("Product")] public virtual ICollection WorkOrders { get; set; } = new List(); diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs index cd871b8..3dc0650 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -26,9 +26,8 @@ public partial class ProductCategory /// /// Category description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCostHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCostHistory.cs index 432ebce..9618862 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCostHistory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCostHistory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -49,5 +49,5 @@ public partial class ProductCostHistory [ForeignKey("ProductId")] [InverseProperty("ProductCostHistories")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductDescription.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductDescription.cs index 03779dc..eee7e09 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductDescription.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductDescription.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,9 +25,8 @@ public partial class ProductDescription /// /// Description of the product. /// - [Required] [StringLength(400)] - public string Description { get; set; } + public string Description { get; set; } = null!; /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductInventory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductInventory.cs index 7ad9265..58b8ef0 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductInventory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductInventory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -32,9 +32,8 @@ public partial class ProductInventory /// /// Storage compartment within an inventory location. /// - [Required] [StringLength(10)] - public string Shelf { get; set; } + public string Shelf { get; set; } = null!; /// /// Storage container on a shelf in an inventory location. @@ -60,9 +59,9 @@ public partial class ProductInventory [ForeignKey("LocationId")] [InverseProperty("ProductInventories")] - public virtual Location Location { get; set; } + public virtual Location Location { get; set; } = null!; [ForeignKey("ProductId")] [InverseProperty("ProductInventories")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductListPriceHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductListPriceHistory.cs index bf35922..eb50930 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductListPriceHistory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductListPriceHistory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -49,5 +49,5 @@ public partial class ProductListPriceHistory [ForeignKey("ProductId")] [InverseProperty("ProductListPriceHistories")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModel.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModel.cs index 7693674..eed080a 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModel.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModel.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -28,21 +28,20 @@ public partial class ProductModel /// /// Product model description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Detailed product catalog information in xml format. /// [Column(TypeName = "xml")] - public string CatalogDescription { get; set; } + public string? CatalogDescription { get; set; } /// /// Manufacturing instructions in xml format. /// [Column(TypeName = "xml")] - public string Instructions { get; set; } + public string? Instructions { get; set; } /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelIllustration.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelIllustration.cs index 58b171f..922acc5 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelIllustration.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelIllustration.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -37,9 +37,9 @@ public partial class ProductModelIllustration [ForeignKey("IllustrationId")] [InverseProperty("ProductModelIllustrations")] - public virtual Illustration Illustration { get; set; } + public virtual Illustration Illustration { get; set; } = null!; [ForeignKey("ProductModelId")] [InverseProperty("ProductModelIllustrations")] - public virtual ProductModel ProductModel { get; set; } + public virtual ProductModel ProductModel { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelProductDescriptionCulture.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelProductDescriptionCulture.cs index aab1cad..9e27cc6 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelProductDescriptionCulture.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductModelProductDescriptionCulture.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -35,7 +35,7 @@ public partial class ProductModelProductDescriptionCulture [Key] [Column("CultureID")] [StringLength(6)] - public string CultureId { get; set; } + public string CultureId { get; set; } = null!; /// /// Date and time the record was last updated. @@ -45,13 +45,13 @@ public partial class ProductModelProductDescriptionCulture [ForeignKey("CultureId")] [InverseProperty("ProductModelProductDescriptionCultures")] - public virtual Culture Culture { get; set; } + public virtual Culture Culture { get; set; } = null!; [ForeignKey("ProductDescriptionId")] [InverseProperty("ProductModelProductDescriptionCultures")] - public virtual ProductDescription ProductDescription { get; set; } + public virtual ProductDescription ProductDescription { get; set; } = null!; [ForeignKey("ProductModelId")] [InverseProperty("ProductModelProductDescriptionCultures")] - public virtual ProductModel ProductModel { get; set; } + public virtual ProductModel ProductModel { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductPhoto.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductPhoto.cs index 328b984..01faf75 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductPhoto.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductPhoto.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -24,24 +24,24 @@ public partial class ProductPhoto /// /// Small image of the product. /// - public byte[] ThumbNailPhoto { get; set; } + public byte[]? ThumbNailPhoto { get; set; } /// /// Small image file name. /// [StringLength(50)] - public string ThumbnailPhotoFileName { get; set; } + public string? ThumbnailPhotoFileName { get; set; } /// /// Large image of the product. /// - public byte[] LargePhoto { get; set; } + public byte[]? LargePhoto { get; set; } /// /// Large image file name. /// [StringLength(50)] - public string LargePhotoFileName { get; set; } + public string? LargePhotoFileName { get; set; } /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductProductPhoto.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductProductPhoto.cs index c4dfb27..abaff53 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductProductPhoto.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductProductPhoto.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -42,9 +42,9 @@ public partial class ProductProductPhoto [ForeignKey("ProductId")] [InverseProperty("ProductProductPhotos")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; [ForeignKey("ProductPhotoId")] [InverseProperty("ProductProductPhotos")] - public virtual ProductPhoto ProductPhoto { get; set; } + public virtual ProductPhoto ProductPhoto { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductReview.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductReview.cs index 789287e..b9638cb 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductReview.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductReview.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -31,9 +31,8 @@ public partial class ProductReview /// /// Name of the reviewer. /// - [Required] [StringLength(50)] - public string ReviewerName { get; set; } + public string ReviewerName { get; set; } = null!; /// /// Date review was submitted. @@ -44,9 +43,8 @@ public partial class ProductReview /// /// Reviewer's e-mail address. /// - [Required] [StringLength(50)] - public string EmailAddress { get; set; } + public string EmailAddress { get; set; } = null!; /// /// Product rating given by the reviewer. Scale is 1 to 5 with 5 as the highest rating. @@ -57,7 +55,7 @@ public partial class ProductReview /// Reviewer's comments /// [StringLength(3850)] - public string Comments { get; set; } + public string? Comments { get; set; } /// /// Date and time the record was last updated. @@ -67,5 +65,5 @@ public partial class ProductReview [ForeignKey("ProductId")] [InverseProperty("ProductReviews")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductSubcategory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductSubcategory.cs index c330788..c5505e6 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ProductSubcategory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductSubcategory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -32,9 +32,8 @@ public partial class ProductSubcategory /// /// Subcategory description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -50,7 +49,7 @@ public partial class ProductSubcategory [ForeignKey("ProductCategoryId")] [InverseProperty("ProductSubcategories")] - public virtual ProductCategory ProductCategory { get; set; } + public virtual ProductCategory ProductCategory { get; set; } = null!; [InverseProperty("ProductSubcategory")] public virtual ICollection Products { get; set; } = new List(); diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/ScrapReason.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ScrapReason.cs index ae215dd..d49f427 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/ScrapReason.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ScrapReason.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,9 +25,8 @@ public partial class ScrapReason /// /// Failure description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistory.cs index ff45339..49767f3 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -50,9 +50,8 @@ public partial class TransactionHistory /// /// W = WorkOrder, S = SalesOrder, P = PurchaseOrder /// - [Required] [StringLength(1)] - public string TransactionType { get; set; } + public string TransactionType { get; set; } = null!; /// /// Product quantity. @@ -73,5 +72,5 @@ public partial class TransactionHistory [ForeignKey("ProductId")] [InverseProperty("TransactionHistories")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistoryArchive.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistoryArchive.cs index b12815b..aa2d7b5 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistoryArchive.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/TransactionHistoryArchive.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -50,9 +50,8 @@ public partial class TransactionHistoryArchive /// /// W = Work Order, S = Sales Order, P = Purchase Order /// - [Required] [StringLength(1)] - public string TransactionType { get; set; } + public string TransactionType { get; set; } = null!; /// /// Product quantity. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/UnitMeasure.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/UnitMeasure.cs index 80384f9..14efb3c 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/UnitMeasure.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/UnitMeasure.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -20,14 +20,13 @@ public partial class UnitMeasure /// [Key] [StringLength(3)] - public string UnitMeasureCode { get; set; } + public string UnitMeasureCode { get; set; } = null!; /// /// Unit of measure description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrder.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrder.cs index 34b03ca..68f8ab6 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrder.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrder.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -76,11 +76,11 @@ public partial class WorkOrder [ForeignKey("ProductId")] [InverseProperty("WorkOrders")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; [ForeignKey("ScrapReasonId")] [InverseProperty("WorkOrders")] - public virtual ScrapReason ScrapReason { get; set; } + public virtual ScrapReason? ScrapReason { get; set; } [InverseProperty("WorkOrder")] public virtual ICollection WorkOrderRoutings { get; set; } = new List(); diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrderRouting.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrderRouting.cs index c61f83e..e42c341 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrderRouting.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Production/WorkOrderRouting.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -92,9 +92,9 @@ public partial class WorkOrderRouting [ForeignKey("LocationId")] [InverseProperty("WorkOrderRoutings")] - public virtual Location Location { get; set; } + public virtual Location Location { get; set; } = null!; [ForeignKey("WorkOrderId")] [InverseProperty("WorkOrderRoutings")] - public virtual WorkOrder WorkOrder { get; set; } + public virtual WorkOrder WorkOrder { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ProductVendor.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ProductVendor.cs index 2ebde2d..a90d5a0 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ProductVendor.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ProductVendor.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -72,9 +72,8 @@ public partial class ProductVendor /// /// The product's unit of measure. /// - [Required] [StringLength(3)] - public string UnitMeasureCode { get; set; } + public string UnitMeasureCode { get; set; } = null!; /// /// Date and time the record was last updated. @@ -84,13 +83,13 @@ public partial class ProductVendor [ForeignKey("BusinessEntityId")] [InverseProperty("ProductVendors")] - public virtual Vendor BusinessEntity { get; set; } + public virtual Vendor BusinessEntity { get; set; } = null!; [ForeignKey("ProductId")] [InverseProperty("ProductVendors")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; [ForeignKey("UnitMeasureCode")] [InverseProperty("ProductVendors")] - public virtual UnitMeasure UnitMeasureCodeNavigation { get; set; } + public virtual UnitMeasure UnitMeasureCodeNavigation { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderDetail.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderDetail.cs index 0a83934..56f2c7f 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderDetail.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderDetail.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -85,9 +85,9 @@ public partial class PurchaseOrderDetail [ForeignKey("ProductId")] [InverseProperty("PurchaseOrderDetails")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; [ForeignKey("PurchaseOrderId")] [InverseProperty("PurchaseOrderDetails")] - public virtual PurchaseOrderHeader PurchaseOrder { get; set; } + public virtual PurchaseOrderHeader PurchaseOrder { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderHeader.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderHeader.cs index ed364cd..e64fcaf 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderHeader.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/PurchaseOrderHeader.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -95,16 +95,16 @@ public partial class PurchaseOrderHeader [ForeignKey("EmployeeId")] [InverseProperty("PurchaseOrderHeaders")] - public virtual Employee Employee { get; set; } + public virtual Employee Employee { get; set; } = null!; [InverseProperty("PurchaseOrder")] public virtual ICollection PurchaseOrderDetails { get; set; } = new List(); [ForeignKey("ShipMethodId")] [InverseProperty("PurchaseOrderHeaders")] - public virtual ShipMethod ShipMethod { get; set; } + public virtual ShipMethod ShipMethod { get; set; } = null!; [ForeignKey("VendorId")] [InverseProperty("PurchaseOrderHeaders")] - public virtual Vendor Vendor { get; set; } + public virtual Vendor Vendor { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ShipMethod.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ShipMethod.cs index bc9287f..4c6b46b 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ShipMethod.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/ShipMethod.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -26,9 +26,8 @@ public partial class ShipMethod /// /// Shipping company name. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Minimum shipping charge. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/Vendor.cs b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/Vendor.cs index 7578be9..b7210e3 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Purchasing/Vendor.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Purchasing/Vendor.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,16 +25,14 @@ public partial class Vendor /// /// Vendor account (identification) number. /// - [Required] [StringLength(15)] - public string AccountNumber { get; set; } + public string AccountNumber { get; set; } = null!; /// /// Company name. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// 1 = Superior, 2 = Excellent, 3 = Above average, 4 = Average, 5 = Below average @@ -56,7 +54,7 @@ public partial class Vendor /// [Column("PurchasingWebServiceURL")] [StringLength(1024)] - public string PurchasingWebServiceUrl { get; set; } + public string? PurchasingWebServiceUrl { get; set; } /// /// Date and time the record was last updated. @@ -66,7 +64,7 @@ public partial class Vendor [ForeignKey("BusinessEntityId")] [InverseProperty("Vendor")] - public virtual BusinessEntity BusinessEntity { get; set; } + public virtual BusinessEntity BusinessEntity { get; set; } = null!; [InverseProperty("BusinessEntity")] public virtual ICollection ProductVendors { get; set; } = new List(); diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/CountryRegionCurrency.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/CountryRegionCurrency.cs index a09d89b..7aec2ba 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/CountryRegionCurrency.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/CountryRegionCurrency.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -21,14 +21,14 @@ public partial class CountryRegionCurrency /// [Key] [StringLength(3)] - public string CountryRegionCode { get; set; } + public string CountryRegionCode { get; set; } = null!; /// /// ISO standard currency code. Foreign key to Currency.CurrencyCode. /// [Key] [StringLength(3)] - public string CurrencyCode { get; set; } + public string CurrencyCode { get; set; } = null!; /// /// Date and time the record was last updated. @@ -38,9 +38,9 @@ public partial class CountryRegionCurrency [ForeignKey("CountryRegionCode")] [InverseProperty("CountryRegionCurrencies")] - public virtual CountryRegion CountryRegionCodeNavigation { get; set; } + public virtual CountryRegion CountryRegionCodeNavigation { get; set; } = null!; [ForeignKey("CurrencyCode")] [InverseProperty("CountryRegionCurrencies")] - public virtual Currency CurrencyCodeNavigation { get; set; } + public virtual Currency CurrencyCodeNavigation { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/CreditCard.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/CreditCard.cs index 3aa02a5..22bfbdf 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/CreditCard.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/CreditCard.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,16 +25,14 @@ public partial class CreditCard /// /// Credit card name. /// - [Required] [StringLength(50)] - public string CardType { get; set; } + public string CardType { get; set; } = null!; /// /// Credit card number. /// - [Required] [StringLength(25)] - public string CardNumber { get; set; } + public string CardNumber { get; set; } = null!; /// /// Credit card expiration month. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/Currency.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/Currency.cs index 7b24605..686e67d 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/Currency.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/Currency.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -20,14 +20,13 @@ public partial class Currency /// [Key] [StringLength(3)] - public string CurrencyCode { get; set; } + public string CurrencyCode { get; set; } = null!; /// /// Currency name. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/CurrencyRate.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/CurrencyRate.cs index bebbfb5..eb799f7 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/CurrencyRate.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/CurrencyRate.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -31,16 +31,14 @@ public partial class CurrencyRate /// /// Exchange rate was converted from this currency code. /// - [Required] [StringLength(3)] - public string FromCurrencyCode { get; set; } + public string FromCurrencyCode { get; set; } = null!; /// /// Exchange rate was converted to this currency code. /// - [Required] [StringLength(3)] - public string ToCurrencyCode { get; set; } + public string ToCurrencyCode { get; set; } = null!; /// /// Average exchange rate for the day. @@ -62,12 +60,12 @@ public partial class CurrencyRate [ForeignKey("FromCurrencyCode")] [InverseProperty("CurrencyRateFromCurrencyCodeNavigations")] - public virtual Currency FromCurrencyCodeNavigation { get; set; } + public virtual Currency FromCurrencyCodeNavigation { get; set; } = null!; [InverseProperty("CurrencyRate")] public virtual ICollection SalesOrderHeaders { get; set; } = new List(); [ForeignKey("ToCurrencyCode")] [InverseProperty("CurrencyRateToCurrencyCodeNavigations")] - public virtual Currency ToCurrencyCodeNavigation { get; set; } + public virtual Currency ToCurrencyCodeNavigation { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/Customer.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/Customer.cs index a57bc1d..e950b27 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/Customer.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/Customer.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -45,10 +45,9 @@ public partial class Customer /// /// Unique number identifying the customer assigned by the accounting system. /// - [Required] [StringLength(10)] [Unicode(false)] - public string AccountNumber { get; set; } + public string AccountNumber { get; set; } = null!; /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -64,16 +63,16 @@ public partial class Customer [ForeignKey("PersonId")] [InverseProperty("Customers")] - public virtual Person Person { get; set; } + public virtual Person? Person { get; set; } [InverseProperty("Customer")] public virtual ICollection SalesOrderHeaders { get; set; } = new List(); [ForeignKey("StoreId")] [InverseProperty("Customers")] - public virtual Store Store { get; set; } + public virtual Store? Store { get; set; } [ForeignKey("TerritoryId")] [InverseProperty("Customers")] - public virtual SalesTerritory Territory { get; set; } + public virtual SalesTerritory? Territory { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/PersonCreditCard.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/PersonCreditCard.cs index f645448..c9a604b 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/PersonCreditCard.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/PersonCreditCard.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -37,9 +37,9 @@ public partial class PersonCreditCard [ForeignKey("BusinessEntityId")] [InverseProperty("PersonCreditCards")] - public virtual Person BusinessEntity { get; set; } + public virtual Person BusinessEntity { get; set; } = null!; [ForeignKey("CreditCardId")] [InverseProperty("PersonCreditCards")] - public virtual CreditCard CreditCard { get; set; } + public virtual CreditCard CreditCard { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderDetail.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderDetail.cs index 05f0a82..89d2350 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderDetail.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderDetail.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -35,7 +35,7 @@ public partial class SalesOrderDetail /// Shipment tracking number supplied by the shipper. /// [StringLength(25)] - public string CarrierTrackingNumber { get; set; } + public string? CarrierTrackingNumber { get; set; } /// /// Quantity ordered per product. @@ -86,9 +86,9 @@ public partial class SalesOrderDetail [ForeignKey("SalesOrderId")] [InverseProperty("SalesOrderDetails")] - public virtual SalesOrderHeader SalesOrder { get; set; } + public virtual SalesOrderHeader SalesOrder { get; set; } = null!; [ForeignKey("SpecialOfferId, ProductId")] [InverseProperty("SalesOrderDetails")] - public virtual SpecialOfferProduct SpecialOfferProduct { get; set; } + public virtual SpecialOfferProduct SpecialOfferProduct { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeader.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeader.cs index 444748b..d8f3bd5 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeader.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeader.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -61,21 +61,20 @@ public partial class SalesOrderHeader /// /// Unique sales order identification number. /// - [Required] [StringLength(25)] - public string SalesOrderNumber { get; set; } + public string SalesOrderNumber { get; set; } = null!; /// /// Customer purchase order number reference. /// [StringLength(25)] - public string PurchaseOrderNumber { get; set; } + public string? PurchaseOrderNumber { get; set; } /// /// Financial accounting number reference. /// [StringLength(15)] - public string AccountNumber { get; set; } + public string? AccountNumber { get; set; } /// /// Customer identification number. Foreign key to Customer.BusinessEntityID. @@ -124,7 +123,7 @@ public partial class SalesOrderHeader /// [StringLength(15)] [Unicode(false)] - public string CreditCardApprovalCode { get; set; } + public string? CreditCardApprovalCode { get; set; } /// /// Currency exchange rate used. Foreign key to CurrencyRate.CurrencyRateID. @@ -160,7 +159,7 @@ public partial class SalesOrderHeader /// Sales representative comments. /// [StringLength(128)] - public string Comment { get; set; } + public string? Comment { get; set; } /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -176,19 +175,19 @@ public partial class SalesOrderHeader [ForeignKey("BillToAddressId")] [InverseProperty("SalesOrderHeaderBillToAddresses")] - public virtual Address BillToAddress { get; set; } + public virtual Address BillToAddress { get; set; } = null!; [ForeignKey("CreditCardId")] [InverseProperty("SalesOrderHeaders")] - public virtual CreditCard CreditCard { get; set; } + public virtual CreditCard? CreditCard { get; set; } [ForeignKey("CurrencyRateId")] [InverseProperty("SalesOrderHeaders")] - public virtual CurrencyRate CurrencyRate { get; set; } + public virtual CurrencyRate? CurrencyRate { get; set; } [ForeignKey("CustomerId")] [InverseProperty("SalesOrderHeaders")] - public virtual Customer Customer { get; set; } + public virtual Customer Customer { get; set; } = null!; [InverseProperty("SalesOrder")] public virtual ICollection SalesOrderDetails { get; set; } = new List(); @@ -198,17 +197,17 @@ public partial class SalesOrderHeader [ForeignKey("SalesPersonId")] [InverseProperty("SalesOrderHeaders")] - public virtual SalesPerson SalesPerson { get; set; } + public virtual SalesPerson? SalesPerson { get; set; } [ForeignKey("ShipMethodId")] [InverseProperty("SalesOrderHeaders")] - public virtual ShipMethod ShipMethod { get; set; } + public virtual ShipMethod ShipMethod { get; set; } = null!; [ForeignKey("ShipToAddressId")] [InverseProperty("SalesOrderHeaderShipToAddresses")] - public virtual Address ShipToAddress { get; set; } + public virtual Address ShipToAddress { get; set; } = null!; [ForeignKey("TerritoryId")] [InverseProperty("SalesOrderHeaders")] - public virtual SalesTerritory Territory { get; set; } + public virtual SalesTerritory? Territory { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeaderSalesReason.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeaderSalesReason.cs index 5fcf4fb..5c179cd 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeaderSalesReason.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesOrderHeaderSalesReason.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -37,9 +37,9 @@ public partial class SalesOrderHeaderSalesReason [ForeignKey("SalesOrderId")] [InverseProperty("SalesOrderHeaderSalesReasons")] - public virtual SalesOrderHeader SalesOrder { get; set; } + public virtual SalesOrderHeader SalesOrder { get; set; } = null!; [ForeignKey("SalesReasonId")] [InverseProperty("SalesOrderHeaderSalesReasons")] - public virtual SalesReason SalesReason { get; set; } + public virtual SalesReason SalesReason { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPerson.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPerson.cs index d1da48b..27d0d86 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPerson.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPerson.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -72,7 +72,7 @@ public partial class SalesPerson [ForeignKey("BusinessEntityId")] [InverseProperty("SalesPerson")] - public virtual Employee BusinessEntity { get; set; } + public virtual Employee BusinessEntity { get; set; } = null!; [InverseProperty("SalesPerson")] public virtual ICollection SalesOrderHeaders { get; set; } = new List(); @@ -88,5 +88,5 @@ public partial class SalesPerson [ForeignKey("TerritoryId")] [InverseProperty("SalesPeople")] - public virtual SalesTerritory Territory { get; set; } + public virtual SalesTerritory? Territory { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPersonQuotaHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPersonQuotaHistory.cs index 095594d..f56c2b6 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPersonQuotaHistory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesPersonQuotaHistory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -50,5 +50,5 @@ public partial class SalesPersonQuotaHistory [ForeignKey("BusinessEntityId")] [InverseProperty("SalesPersonQuotaHistories")] - public virtual SalesPerson BusinessEntity { get; set; } + public virtual SalesPerson BusinessEntity { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesReason.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesReason.cs index 2569069..c17bce0 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesReason.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesReason.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -24,16 +24,14 @@ public partial class SalesReason /// /// Sales reason description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// Category the sales reason belongs to. /// - [Required] [StringLength(50)] - public string ReasonType { get; set; } + public string ReasonType { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTaxRate.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTaxRate.cs index fa09bb9..def98ae 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTaxRate.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTaxRate.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -43,9 +43,8 @@ public partial class SalesTaxRate /// /// Tax rate description. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -61,5 +60,5 @@ public partial class SalesTaxRate [ForeignKey("StateProvinceId")] [InverseProperty("SalesTaxRates")] - public virtual StateProvince StateProvince { get; set; } + public virtual StateProvince StateProvince { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritory.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritory.cs index ecebdfb..d13889f 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -26,23 +26,20 @@ public partial class SalesTerritory /// /// Sales territory description /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode. /// - [Required] [StringLength(3)] - public string CountryRegionCode { get; set; } + public string CountryRegionCode { get; set; } = null!; /// /// Geographic area to which the sales territory belong. /// - [Required] [StringLength(50)] - public string Group { get; set; } + public string Group { get; set; } = null!; /// /// Sales in the territory year to date. @@ -82,7 +79,7 @@ public partial class SalesTerritory [ForeignKey("CountryRegionCode")] [InverseProperty("SalesTerritories")] - public virtual CountryRegion CountryRegionCodeNavigation { get; set; } + public virtual CountryRegion CountryRegionCodeNavigation { get; set; } = null!; [InverseProperty("Territory")] public virtual ICollection Customers { get; set; } = new List(); diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritoryHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritoryHistory.cs index 6024bca..3449052 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritoryHistory.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SalesTerritoryHistory.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -57,9 +57,9 @@ public partial class SalesTerritoryHistory [ForeignKey("BusinessEntityId")] [InverseProperty("SalesTerritoryHistories")] - public virtual SalesPerson BusinessEntity { get; set; } + public virtual SalesPerson BusinessEntity { get; set; } = null!; [ForeignKey("TerritoryId")] [InverseProperty("SalesTerritoryHistories")] - public virtual SalesTerritory Territory { get; set; } + public virtual SalesTerritory Territory { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/ShoppingCartItem.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/ShoppingCartItem.cs index 10e0981..a09a619 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/ShoppingCartItem.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/ShoppingCartItem.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,10 +25,9 @@ public partial class ShoppingCartItem /// /// Shopping cart identification number. /// - [Required] [Column("ShoppingCartID")] [StringLength(50)] - public string ShoppingCartId { get; set; } + public string ShoppingCartId { get; set; } = null!; /// /// Product quantity ordered. @@ -55,5 +54,5 @@ public partial class ShoppingCartItem [ForeignKey("ProductId")] [InverseProperty("ShoppingCartItems")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOffer.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOffer.cs index d635bdd..9455297 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOffer.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOffer.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -25,9 +25,8 @@ public partial class SpecialOffer /// /// Discount description. /// - [Required] [StringLength(255)] - public string Description { get; set; } + public string Description { get; set; } = null!; /// /// Discount precentage. @@ -38,16 +37,14 @@ public partial class SpecialOffer /// /// Discount type category. /// - [Required] [StringLength(50)] - public string Type { get; set; } + public string Type { get; set; } = null!; /// /// Group the discount applies to such as Reseller or Customer. /// - [Required] [StringLength(50)] - public string Category { get; set; } + public string Category { get; set; } = null!; /// /// Discount start date. diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOfferProduct.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOfferProduct.cs index e979c2f..2b33db1 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOfferProduct.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/SpecialOfferProduct.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -45,12 +45,12 @@ public partial class SpecialOfferProduct [ForeignKey("ProductId")] [InverseProperty("SpecialOfferProducts")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; [InverseProperty("SpecialOfferProduct")] public virtual ICollection SalesOrderDetails { get; set; } = new List(); [ForeignKey("SpecialOfferId")] [InverseProperty("SpecialOfferProducts")] - public virtual SpecialOffer SpecialOffer { get; set; } + public virtual SpecialOffer SpecialOffer { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/Sales/Store.cs b/src/API/AdventureWorksDemo.Data/Entities/Sales/Store.cs index 17ef30c..5157fde 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/Sales/Store.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/Sales/Store.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -27,9 +27,8 @@ public partial class Store /// /// Name of the store. /// - [Required] [StringLength(50)] - public string Name { get; set; } + public string Name { get; set; } = null!; /// /// ID of the sales person assigned to the customer. Foreign key to SalesPerson.BusinessEntityID. @@ -41,7 +40,7 @@ public partial class Store /// Demographic informationg about the store such as the number of employees, annual sales and store type. /// [Column(TypeName = "xml")] - public string Demographics { get; set; } + public string? Demographics { get; set; } /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. @@ -57,12 +56,12 @@ public partial class Store [ForeignKey("BusinessEntityId")] [InverseProperty("Store")] - public virtual BusinessEntity BusinessEntity { get; set; } + public virtual BusinessEntity BusinessEntity { get; set; } = null!; [InverseProperty("Store")] public virtual ICollection Customers { get; set; } = new List(); [ForeignKey("SalesPersonId")] [InverseProperty("Stores")] - public virtual SalesPerson SalesPerson { get; set; } + public virtual SalesPerson? SalesPerson { get; set; } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/dbo/AwbuildVersion.cs b/src/API/AdventureWorksDemo.Data/Entities/dbo/AwbuildVersion.cs index 8b3ff1d..dd1a8cc 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/dbo/AwbuildVersion.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/dbo/AwbuildVersion.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -24,10 +24,9 @@ public partial class AwbuildVersion /// /// Version number of the database in 9.yy.mm.dd.00 format. /// - [Required] [Column("Database Version")] [StringLength(25)] - public string DatabaseVersion { get; set; } + public string DatabaseVersion { get; set; } = null!; /// /// Date and time the record was last updated. diff --git a/src/API/AdventureWorksDemo.Data/Entities/dbo/DatabaseLog.cs b/src/API/AdventureWorksDemo.Data/Entities/dbo/DatabaseLog.cs index 09fa49a..4b1a05e 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/dbo/DatabaseLog.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/dbo/DatabaseLog.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -30,40 +30,36 @@ public partial class DatabaseLog /// /// The user who implemented the DDL change. /// - [Required] [StringLength(128)] - public string DatabaseUser { get; set; } + public string DatabaseUser { get; set; } = null!; /// /// The type of DDL statement that was executed. /// - [Required] [StringLength(128)] - public string Event { get; set; } + public string Event { get; set; } = null!; /// /// The schema to which the changed object belongs. /// [StringLength(128)] - public string Schema { get; set; } + public string? Schema { get; set; } /// /// The object that was changed by the DDL statment. /// [StringLength(128)] - public string Object { get; set; } + public string? Object { get; set; } /// /// The exact Transact-SQL statement that was executed. /// - [Required] [Column("TSQL")] - public string Tsql { get; set; } + public string Tsql { get; set; } = null!; /// /// The raw XML data generated by database trigger. /// - [Required] [Column(TypeName = "xml")] - public string XmlEvent { get; set; } + public string XmlEvent { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Entities/dbo/ErrorLog.cs b/src/API/AdventureWorksDemo.Data/Entities/dbo/ErrorLog.cs index f68845a..8052a77 100644 --- a/src/API/AdventureWorksDemo.Data/Entities/dbo/ErrorLog.cs +++ b/src/API/AdventureWorksDemo.Data/Entities/dbo/ErrorLog.cs @@ -1,5 +1,5 @@ // This file has been auto generated by EF Core Power Tools. -#nullable disable +#nullable enable using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -30,9 +30,8 @@ public partial class ErrorLog /// /// The user who executed the batch in which the error occurred. /// - [Required] [StringLength(128)] - public string UserName { get; set; } + public string UserName { get; set; } = null!; /// /// The error number of the error that occurred. @@ -53,7 +52,7 @@ public partial class ErrorLog /// The name of the stored procedure or trigger where the error occurred. /// [StringLength(126)] - public string ErrorProcedure { get; set; } + public string? ErrorProcedure { get; set; } /// /// The line number at which the error occurred. @@ -63,7 +62,6 @@ public partial class ErrorLog /// /// The message text of the error that occurred. /// - [Required] [StringLength(4000)] - public string ErrorMessage { get; set; } + public string ErrorMessage { get; set; } = null!; } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Extentions/IQueryableExtensionsPaging.cs b/src/API/AdventureWorksDemo.Data/Extentions/IQueryableExtensionsPaging.cs index 4e03441..28c506e 100644 --- a/src/API/AdventureWorksDemo.Data/Extentions/IQueryableExtensionsPaging.cs +++ b/src/API/AdventureWorksDemo.Data/Extentions/IQueryableExtensionsPaging.cs @@ -8,15 +8,15 @@ namespace AdventureWorksDemo.Data.Extentions public static class IQueryableExtensions { #region ApplyFilters + public static IQueryable? ApplyFilters(this IQueryable query, PageingFilter? pagingfilter) { if (pagingfilter == null || query == null || !query!.Any() - || pagingfilter.Filter==null) + || pagingfilter.Filter == null) return query; pagingfilter.Sanitise(); - foreach (var filter in pagingfilter.Filter!) { var parts = filter.Split('|'); @@ -31,6 +31,7 @@ public static class IQueryableExtensions } return query; } + private static IQueryable ApplyFilter(IQueryable query, string propertyName, string expression, string value) { var parameter = Expression.Parameter(typeof(T), "x"); @@ -56,14 +57,15 @@ private static IQueryable ApplyFilter(IQueryable query, string property var lambda = Expression.Lambda>(comparison, parameter); return query.Where(lambda); } - #endregion + + #endregion ApplyFilters public static IQueryable? ApplyPageing(this IQueryable? query, PageingFilter? filter) //where T : class { if (filter == null) return query; if (query == null || !query.Any()) - return default!; + return query!; filter.Sanitise(); @@ -87,10 +89,9 @@ private static IQueryable ApplyFilter(IQueryable query, string property bool descending = parts.Length > 1 && parts[1].Equals("DESC", StringComparison.OrdinalIgnoreCase); // Get the property info - var property = typeof(T).GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase) + var property = typeof(T).GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase) ?? throw new ArgumentException($"Property '{propertyName}' not found on type '{typeof(T).Name}'."); - // Build the sorting expression dynamically var parameter = Expression.Parameter(typeof(T), "x"); var propertyAccess = Expression.Property(parameter, property); diff --git a/src/API/AdventureWorksDemo.Data/Models/ProductCategoryModel.cs b/src/API/AdventureWorksDemo.Data/Models/ProductCategoryModel.cs index 415f52e..1b31331 100644 --- a/src/API/AdventureWorksDemo.Data/Models/ProductCategoryModel.cs +++ b/src/API/AdventureWorksDemo.Data/Models/ProductCategoryModel.cs @@ -1,7 +1,5 @@ #nullable disable -using System.Diagnostics.CodeAnalysis; - namespace AdventureWorksDemo.Data.Models; /// @@ -9,6 +7,10 @@ namespace AdventureWorksDemo.Data.Models; /// public sealed record ProductCategoryModel { + /// + /// Primary key for ProductCategory records. + /// + public int ProductCategoryId { get; set; } /// /// Date and time the record was last updated. /// @@ -19,16 +21,6 @@ public sealed record ProductCategoryModel /// public string Name { get; set; } - /// - /// Product category identification number of immediate ancestor category. Foreign key to ProductCategory.ProductCategoryID. - /// - public int? ParentProductCategoryId { get; set; } - - /// - /// Primary key for ProductCategory records. - /// - public int ProductCategoryId { get; set; } - /// /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample. /// @@ -37,8 +29,7 @@ public sealed record ProductCategoryModel public bool Equals(ProductCategoryModel revised) { return revised != null - && Name.Equals(revised.Name) - && ParentProductCategoryId.Equals(revised.ParentProductCategoryId); + && Name.Equals(revised.Name); } public override int GetHashCode() => ProductCategoryId.GetHashCode(); } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/Services/BaseService.cs b/src/API/AdventureWorksDemo.Data/Services/BaseService.cs index 2b62ad8..03701e6 100644 --- a/src/API/AdventureWorksDemo.Data/Services/BaseService.cs +++ b/src/API/AdventureWorksDemo.Data/Services/BaseService.cs @@ -168,19 +168,20 @@ public virtual async Task>> UpdateAsync(IEnum internal static string TransposeIfNotNull(string original, string mutated) { - if (mutated != null && !original.Equals(mutated)) + if ((original == null) + || mutated != null && !original.Equals(mutated)) original = mutated; return original; } internal static int TransposeIfNotNull(int original, int mutated) { - return TransposeIfNotNull(original, mutated); + return (int)TransposeIfNotNull((int?)original, (int?)mutated); } internal static int? TransposeIfNotNull(int? original, int? mutated) { - if (mutated != null && !original.Equals(mutated)) + if (mutated != null && !original.Equals(mutated) && mutated != 0) original = mutated; return original; } diff --git a/src/API/AdventureWorksDemo.Data/Services/ProductCategoryService.cs b/src/API/AdventureWorksDemo.Data/Services/ProductCategoryService.cs index 469b162..5dd38a2 100644 --- a/src/API/AdventureWorksDemo.Data/Services/ProductCategoryService.cs +++ b/src/API/AdventureWorksDemo.Data/Services/ProductCategoryService.cs @@ -37,8 +37,7 @@ public async Task> UpdateAsync(ProductCateg internal override bool IsModelDirty(ProductCategoryModel original, ProductCategoryModel mutated) { - return !original.Name.Equals(mutated.Name) - || !original.ParentProductCategoryId.Equals(mutated.ParentProductCategoryId); + return !original.Name.Equals(mutated.Name); } internal override void PreDataMutation(ProductCategory entity) @@ -50,7 +49,6 @@ internal override void TransposeModel(ProductCategoryModel original, ProductCategoryModel mutated) { original.Name = mutated.Name; - original.ParentProductCategoryId = mutated.ParentProductCategoryId; } } } \ No newline at end of file diff --git a/src/API/AdventureWorksDemo.Data/efpt.config.json b/src/API/AdventureWorksDemo.Data/efpt.config.json index 14120bd..a5c9810 100644 --- a/src/API/AdventureWorksDemo.Data/efpt.config.json +++ b/src/API/AdventureWorksDemo.Data/efpt.config.json @@ -319,7 +319,7 @@ "UseNoNavigations": false, "UseNoObjectFilter": false, "UseNodaTime": false, - "UseNullableReferences": false, + "UseNullableReferences": true, "UsePrefixNavigationNaming": false, "UseSchemaFolders": true, "UseSchemaNamespaces": false, diff --git a/src/FrontEnd/AdventureWorksDemo.MudBlazor/AdventureWorksDemo.MudBlazor.csproj b/src/FrontEnd/AdventureWorksDemo.MudBlazor/AdventureWorksDemo.MudBlazor.csproj index 81755bb..8b5d7c3 100644 --- a/src/FrontEnd/AdventureWorksDemo.MudBlazor/AdventureWorksDemo.MudBlazor.csproj +++ b/src/FrontEnd/AdventureWorksDemo.MudBlazor/AdventureWorksDemo.MudBlazor.csproj @@ -8,7 +8,7 @@ - + From 6fb817ba548b6d481ac391fc785c5ddd8723ec75 Mon Sep 17 00:00:00 2001 From: CodeTile <43536260+CodeTile@users.noreply.github.com> Date: Wed, 26 Feb 2025 17:09:31 +0000 Subject: [PATCH 5/5] Remove redundant tests #30 --- .../AddressServiceDeleteTests.feature | 22 +----------------- ...oductDescriptionServiceDeleteTests.feature | 23 +------------------ 2 files changed, 2 insertions(+), 43 deletions(-) diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature index 4d27e22..8f04eb3 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature @@ -28,27 +28,7 @@ Scenario: DeleteAsync1234 | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | -Scenario: DeleteAsync3 - Given I reset the database after the scenario - When I call the method 'DeleteAsync' with the parameter values - | Key | Value | TypeName | - | AddressId | 3 | int | - Then the result is of type - | Expected | - | AdventureWorksDemo.Data.Models.ServiceResult | - And the result is - | IsFailure | IsSuccess | Message | - | True | False | Unable to delete, record is referenced elsewhere! | - And the table 'Person.Address' contains - | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | - | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 | - | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 | - | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 | - | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 | - | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 | - | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 | - | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 | - + Scenario: DeleteAsync7 Given I reset the database after the scenario When I call the method 'DeleteAsync' with the parameter values diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature index 73da73a..d4ce750 100644 --- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature +++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature @@ -30,27 +30,6 @@ Scenario: DeleteAsync1234 | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | -Scenario: DeleteAsync2 - Given I reset the database after the scenario - When I call the method 'DeleteAsync' with the parameter values - | Key | Value | TypeName | - | ProductDescriptionId | 2 | int | - Then the result is of type - | Expected | - | AdventureWorksDemo.Data.Models.ServiceResult | - And the result is - | IsFailure | IsSuccess | Message | - | True | False | Unable to delete, record is referenced elsewhere! | - Then the table 'Production.ProductDescription' contains - | ProductDescriptionId | ModifiedDate | Rowguid | Description | - | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. | - | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. | - | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. | - | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. | - | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. | - | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. | - | 7777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only | - Scenario: DeleteAsync777 Given I reset the database after the scenario @@ -62,7 +41,7 @@ Scenario: DeleteAsync777 | AdventureWorksDemo.Data.Models.ServiceResult | And the result is | IsFailure | IsSuccess | Message | - | False | True | | + | False | True | | Then the table 'Production.ProductDescription' contains | ProductDescriptionId | ModifiedDate | Rowguid | Description | | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |