diff --git a/samples/databases/wide-world-importers/wwi-app/Controllers/ODataController.cs b/samples/databases/wide-world-importers/wwi-app/Controllers/ODataController.cs index af50759d..de928a88 100644 --- a/samples/databases/wide-world-importers/wwi-app/Controllers/ODataController.cs +++ b/samples/databases/wide-world-importers/wwi-app/Controllers/ODataController.cs @@ -2,7 +2,7 @@ using Belgrade.SqlClient; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using SqlServerRestApi; +using MsSql.RestApi; using System; using System.IO; using System.Security.Claims; @@ -18,14 +18,14 @@ namespace wwi_app.Controllers { this.sqlCmd = sqlCommandService; } - + TableSpec salesorders = new TableSpec("WebApi","SalesOrders", "OrderID,OrderDate,CustomerPurchaseOrderNumber,ExpectedDeliveryDate,PickingCompletedWhen,CustomerID,CustomerName,PhoneNumber,FaxNumber,WebsiteURL,DeliveryLocation,SalesPerson,SalesPersonPhone,SalesPersonEmail"); [HttpGet] public async Task SalesOrders(int? id) { - await this.OData(salesorders, this.sqlCmd, id: id).Process(); + await this.OData(salesorders, id: id).Process(this.sqlCmd); } [Authorize] @@ -61,12 +61,12 @@ namespace wwi_app.Controllers } - TableSpec salesorderlines = new TableSpec("WebApi","SalesOrderLines", "OrderLineID,OrderID,Description,Quantity,UnitPrice,TaxRate,ProductName,Brand,Size,ColorName,PackageTypeName"); + TableSpec salesorderlines = new TableSpec("WebApi","SalesOrderLines", "OrderLineID,OrderID,Description,Quantity,UnitPrice,TaxRate,ProductName,Brand,Size,ColorName,PackageTypeName,PickingCompletedWhen"); [HttpGet] public async Task SalesOrderLines(int? id) { - await this.OData(salesorderlines, this.sqlCmd, id: id).Process(); + await this.OData(salesorderlines, id: id).Process(this.sqlCmd); } [Authorize] @@ -107,7 +107,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task PurchaseOrders(int? id) { - await this.OData(purchaseorders, this.sqlCmd, id: id).Process(); + await this.OData(purchaseorders, id: id).Process(this.sqlCmd); } [Authorize] @@ -148,7 +148,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task PurchaseOrderLines(int? id) { - await this.OData(purchaseorderlines, this.sqlCmd, id: id).Process(); + await this.OData(purchaseorderlines, id: id).Process(this.sqlCmd); } [Authorize] @@ -189,7 +189,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task Invoices(int? id) { - await this.OData(invoices, this.sqlCmd, id: id).Process(); + await this.OData(invoices, id: id).Process(this.sqlCmd); } [Authorize] @@ -230,7 +230,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task SpecialDeals(int? id) { - await this.OData(specialdeals, this.sqlCmd, id: id).Process(); + await this.OData(specialdeals, id: id).Process(this.sqlCmd); } [Authorize] @@ -271,7 +271,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task CustomerTransactions(int? id) { - await this.OData(customertransactions, this.sqlCmd, id: id).Process(); + await this.OData(customertransactions, id: id).Process(this.sqlCmd); } [Authorize] @@ -312,7 +312,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task SupplierTransactions(int? id) { - await this.OData(suppliertransactions, this.sqlCmd, id: id).Process(); + await this.OData(suppliertransactions, id: id).Process(this.sqlCmd); } [Authorize] @@ -353,7 +353,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task Customers(int? id) { - await this.OData(customers, this.sqlCmd, id: id).Process(); + await this.OData(customers, id: id).Process(this.sqlCmd); } [Authorize] @@ -394,7 +394,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task Suppliers(int? id) { - await this.OData(suppliers, this.sqlCmd, id: id).Process(); + await this.OData(suppliers, id: id).Process(this.sqlCmd); } [Authorize] @@ -435,7 +435,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task Countries(int? id) { - await this.OData(countries, this.sqlCmd, id: id).Process(); + await this.OData(countries, id: id).Process(this.sqlCmd); } [Authorize] @@ -476,7 +476,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task Cities(int? id) { - await this.OData(cities, this.sqlCmd, id: id).Process(); + await this.OData(cities, id: id).Process(this.sqlCmd); } [Authorize] @@ -517,7 +517,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task StateProvinces(int? id) { - await this.OData(stateprovinces, this.sqlCmd, id: id).Process(); + await this.OData(stateprovinces, id: id).Process(this.sqlCmd); } [Authorize] @@ -558,7 +558,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task StockItems(int? id) { - await this.OData(stockitems, this.sqlCmd, id: id).Process(); + await this.OData(stockitems, id: id).Process(this.sqlCmd); } [Authorize] @@ -599,7 +599,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task PackageTypes(int? id) { - await this.OData(packagetypes, this.sqlCmd, id: id).Process(); + await this.OData(packagetypes, id: id).Process(this.sqlCmd); } [Authorize] @@ -640,7 +640,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task Colors(int? id) { - await this.OData(colors, this.sqlCmd, id: id).Process(); + await this.OData(colors, id: id).Process(this.sqlCmd); } [Authorize] @@ -681,7 +681,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task StockGroups(int? id) { - await this.OData(stockgroups, this.sqlCmd, id: id).Process(); + await this.OData(stockgroups, id: id).Process(this.sqlCmd); } [Authorize] @@ -722,7 +722,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task BuyingGroups(int? id) { - await this.OData(buyinggroups, this.sqlCmd, id: id).Process(); + await this.OData(buyinggroups, id: id).Process(this.sqlCmd); } [Authorize] @@ -763,7 +763,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task CustomerCategories(int? id) { - await this.OData(customercategories, this.sqlCmd, id: id).Process(); + await this.OData(customercategories, id: id).Process(this.sqlCmd); } [Authorize] @@ -804,7 +804,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task SupplierCategories(int? id) { - await this.OData(suppliercategories, this.sqlCmd, id: id).Process(); + await this.OData(suppliercategories, id: id).Process(this.sqlCmd); } [Authorize] @@ -845,7 +845,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task TransactionTypes(int? id) { - await this.OData(transactiontypes, this.sqlCmd, id: id).Process(); + await this.OData(transactiontypes, id: id).Process(this.sqlCmd); } [Authorize] @@ -886,7 +886,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task PaymentMethods(int? id) { - await this.OData(paymentmethods, this.sqlCmd, id: id).Process(); + await this.OData(paymentmethods, id: id).Process(this.sqlCmd); } [Authorize] @@ -927,7 +927,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task DeliveryMethods(int? id) { - await this.OData(deliverymethods, this.sqlCmd, id: id).Process(); + await this.OData(deliverymethods, id: id).Process(this.sqlCmd); } [Authorize] diff --git a/samples/databases/wide-world-importers/wwi-app/Controllers/ODataController.tt b/samples/databases/wide-world-importers/wwi-app/Controllers/ODataController.tt index e85a24e6..d441df80 100644 --- a/samples/databases/wide-world-importers/wwi-app/Controllers/ODataController.tt +++ b/samples/databases/wide-world-importers/wwi-app/Controllers/ODataController.tt @@ -2,7 +2,7 @@ <#@ assembly name="Newtonsoft.Json" #> <#@ template language="C#" hostspecific="True" #> <# - var o = Newtonsoft.Json.Linq.JObject.Parse(System.IO.File.ReadAllText(this.Host.ResolvePath("..") + "\\appsettings.Development.json")); + var o = Newtonsoft.Json.Linq.JObject.Parse(System.IO.File.ReadAllText(this.Host.ResolvePath("..") + "\\appsettings.json")); var json = o["ApiModel"].ToString(); TableDef[] config = Newtonsoft.Json.JsonConvert.DeserializeObject(json); #> @@ -10,7 +10,7 @@ using Belgrade.SqlClient; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using SqlServerRestApi; +using MsSql.RestApi; using System; using System.IO; using System.Security.Claims; @@ -26,7 +26,7 @@ namespace wwi_app.Controllers { this.sqlCmd = sqlCommandService; } - + <# foreach(var t in config) {#> <# if(string.IsNullOrEmpty(t.ODataColumns)) continue; #> @@ -35,7 +35,7 @@ namespace wwi_app.Controllers [HttpGet] public async Task <#= t.Table #>(int? id) { - await this.OData(<#= t.Table.ToLower() #>, this.sqlCmd, id: id).Process(); + await this.OData(<#= t.Table.ToLower() #>, id: id).Process(this.sqlCmd); } <# if(!t.IsReadOnly) { #> diff --git a/samples/databases/wide-world-importers/wwi-app/Controllers/TableController.cs b/samples/databases/wide-world-importers/wwi-app/Controllers/TableController.cs index 7d8295e9..a3c808dd 100644 --- a/samples/databases/wide-world-importers/wwi-app/Controllers/TableController.cs +++ b/samples/databases/wide-world-importers/wwi-app/Controllers/TableController.cs @@ -1,7 +1,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Belgrade.SqlClient; -using SqlServerRestApi; +using MsSql.RestApi; namespace wwi_app.Controllers { @@ -19,99 +19,99 @@ namespace wwi_app.Controllers public async Task SalesOrders() { await this - .Table(salesorders, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(salesorders) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec purchaseorders = new TableSpec("WebApi","PurchaseOrders", "OrderDate,SupplierReference,ExpectedDeliveryDate,ContactName,ContactPhone,IsOrderFinalized,PurchaseOrderID"); public async Task PurchaseOrders() { await this - .Table(purchaseorders, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(purchaseorders) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec invoices = new TableSpec("WebApi","Invoices", "InvoiceDate,CustomerPurchaseOrderNumber,CustomerName,SalesPersonName,ContactName,ContactPhone,SalesPersonEmail,InvoiceID"); public async Task Invoices() { await this - .Table(invoices, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(invoices) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec customertransactions = new TableSpec("WebApi","CustomerTransactions", "TransactionDate,TransactionAmount,IsFinalized,CustomerName,TransactionTypeName,PaymentMethodName,InvoiceDate,CustomerTransactionID"); public async Task CustomerTransactions() { await this - .Table(customertransactions, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(customertransactions) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec suppliertransactions = new TableSpec("WebApi","SupplierTransactions", "TransactionDate,TransactionAmount,IsFinalized,SupplierName,TransactionTypeName,PaymentMethodName,SupplierTransactionID"); public async Task SupplierTransactions() { await this - .Table(suppliertransactions, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(suppliertransactions) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec customers = new TableSpec("WebApi","Customers", "CustomerName,CustomerCategoryName,PhoneNumber,FaxNumber,BuyingGroupName,CustomerID"); public async Task Customers() { await this - .Table(customers, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(customers) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec suppliers = new TableSpec("WebApi","Suppliers", "SupplierName,SupplierCategoryName,PhoneNumber,FaxNumber,PrimaryContact,SupplierID"); public async Task Suppliers() { await this - .Table(suppliers, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(suppliers) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec countries = new TableSpec("WebApi","Countries", "FormalName,Subregion,Region,Continent,LatestRecordedPopulation,CountryID"); public async Task Countries() { await this - .Table(countries, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(countries) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec cities = new TableSpec("WebApi","Cities", "CityName,LatestRecordedPopulation,StateProvinceName,CityID"); public async Task Cities() { await this - .Table(cities, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(cities) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec stateprovinces = new TableSpec("WebApi","StateProvinces", "StateProvinceName,StateProvinceCode,SalesTerritory,LatestRecordedPopulation,CountryName,StateProvinceID"); public async Task StateProvinces() { await this - .Table(stateprovinces, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(stateprovinces) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } private static readonly TableSpec stockitems = new TableSpec("WebApi","StockItems", "StockItemName,SupplierName,UnitPrice,TaxRate,RecommendedRetailPrice,StockItemID"); public async Task StockItems() { await this - .Table(stockitems, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(stockitems) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } } } diff --git a/samples/databases/wide-world-importers/wwi-app/Controllers/TableController.tt b/samples/databases/wide-world-importers/wwi-app/Controllers/TableController.tt index 39923597..a8b6d0af 100644 --- a/samples/databases/wide-world-importers/wwi-app/Controllers/TableController.tt +++ b/samples/databases/wide-world-importers/wwi-app/Controllers/TableController.tt @@ -2,14 +2,14 @@ <#@ assembly name="Newtonsoft.Json" #> <#@ template language="C#" hostspecific="True" #> <# - var o = Newtonsoft.Json.Linq.JObject.Parse(System.IO.File.ReadAllText(this.Host.ResolvePath("..") + "\\appsettings.Development.json")); + var o = Newtonsoft.Json.Linq.JObject.Parse(System.IO.File.ReadAllText(this.Host.ResolvePath("..") + "\\appsettings.json")); var json = o["ApiModel"].ToString(); TableDef[] config = Newtonsoft.Json.JsonConvert.DeserializeObject(json); #> using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Belgrade.SqlClient; -using SqlServerRestApi; +using MsSql.RestApi; namespace wwi_app.Controllers { @@ -29,9 +29,9 @@ namespace wwi_app.Controllers public async Task <#= t.Table #>() { await this - .Table(<#= t.Table.ToLower() #>, this.sqlQuery) - .OnError(e => { this.Response.Body.Dispose(); throw e; }) - .Process(); + .Table(<#= t.Table.ToLower() #>) + //.OnError(e => { this.Response.Body.Dispose(); throw e; }) + .Process(this.sqlQuery); } <# } #> } diff --git a/samples/databases/wide-world-importers/wwi-app/Startup.cs b/samples/databases/wide-world-importers/wwi-app/Startup.cs index 340734de..72fb38c3 100644 --- a/samples/databases/wide-world-importers/wwi-app/Startup.cs +++ b/samples/databases/wide-world-importers/wwi-app/Startup.cs @@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using SqlServerRestApi; +using MsSql.RestApi; using System; using System.Linq; diff --git a/samples/databases/wide-world-importers/wwi-app/Views/FrontEnd/Dashboard.cshtml b/samples/databases/wide-world-importers/wwi-app/Views/FrontEnd/Dashboard.cshtml index 3ed304f6..171ad589 100644 --- a/samples/databases/wide-world-importers/wwi-app/Views/FrontEnd/Dashboard.cshtml +++ b/samples/databases/wide-world-importers/wwi-app/Views/FrontEnd/Dashboard.cshtml @@ -4,8 +4,8 @@
-

Number of orders per day in @User.Claims.FirstOrDefault(c => c.Type == "Territory").Value region

- +

Daily sales in @User.Claims.FirstOrDefault(c => c.Type == "Territory").Value region

+
diff --git a/samples/databases/wide-world-importers/wwi-app/appsettings.json b/samples/databases/wide-world-importers/wwi-app/appsettings.json index c4d1f5b6..a0e671a6 100644 --- a/samples/databases/wide-world-importers/wwi-app/appsettings.json +++ b/samples/databases/wide-world-importers/wwi-app/appsettings.json @@ -12,7 +12,7 @@ { "Schema": "WebApi", "Table": "SalesOrderLines", - "ODataColumns": "OrderLineID,OrderID,Description,Quantity,UnitPrice,TaxRate,ProductName,Brand,Size,ColorName,PackageTypeName" + "ODataColumns": "OrderLineID,OrderID,Description,Quantity,UnitPrice,TaxRate,ProductName,Brand,Size,ColorName,PackageTypeName,PickingCompletedWhen" }, { "Schema": "WebApi", diff --git a/samples/databases/wide-world-importers/wwi-app/wwi-app.csproj b/samples/databases/wide-world-importers/wwi-app/wwi-app.csproj index c370ef2d..266181e1 100644 --- a/samples/databases/wide-world-importers/wwi-app/wwi-app.csproj +++ b/samples/databases/wide-world-importers/wwi-app/wwi-app.csproj @@ -27,8 +27,8 @@ + - diff --git a/samples/databases/wide-world-importers/wwi-app/wwwroot/js/Dashboard.js b/samples/databases/wide-world-importers/wwi-app/wwwroot/js/Dashboard.js index dd735a20..8ab773f7 100644 --- a/samples/databases/wide-world-importers/wwi-app/wwwroot/js/Dashboard.js +++ b/samples/databases/wide-world-importers/wwi-app/wwwroot/js/Dashboard.js @@ -1,11 +1,11 @@ $(() => { - $.ajax('/odata/Customers?$apply=(groupby(PostalCity),aggregate(CustomerID with sum as Total))&$orderby=CustomerID with sum desc&$top=5', { dataType: 'json' }) + $.ajax('/odata/Customers?$apply=groupby((PostalCity),aggregate(CustomerID with sum as Total))&$orderby=CustomerID with sum desc&$top=5', { dataType: 'json' }) .done(data => { $("#part1 table tbody tr").view(data.value); }); - $.ajax('/odata/SalesOrderLines?$apply=(groupby(ColorName),aggregate(Quantity mul UnitPrice with sum as Total))', { dataType: 'json' }) + $.ajax('/odata/SalesOrderLines?$apply=groupby((ColorName),aggregate(Quantity mul UnitPrice with sum as Total))', { dataType: 'json' }) .done(data => { nv.addGraph(function () { @@ -26,7 +26,7 @@ }); }); - $.ajax('/odata/PurchaseOrderLines?$apply=(groupby(ColorName),aggregate(OrderedOuters mul ExpectedUnitPricePerOuter with sum as Total))', { dataType: 'json' }) + $.ajax('/odata/PurchaseOrderLines?$apply=groupby((ColorName),aggregate(OrderedOuters mul ExpectedUnitPricePerOuter with sum as Total))', { dataType: 'json' }) .done(data => { nv.addGraph(function () { @@ -50,31 +50,31 @@ }); - $.ajax('/odata/SalesOrders?$apply=(groupby(OrderDate),aggregate(OrderID%20with%20sum%20as%20Total))&$orderby=OrderDate%20desc&$filter=OrderDate lt \'2016-07-04\'', { dataType: 'json' }) + $.ajax('/odata/SalesOrderLines?$apply=groupby((PickingCompletedWhen),aggregate(Quantity mul UnitPrice with sum as Total))&$orderby=PickingCompletedWhen desc&$filter=PickingCompletedWhen ge \'2000-01-01\'', { dataType: 'json' }) .done(data => { nv.addGraph(function () { var chart = nv.models.lineChart() .margin({ right: 100 }) - .x(function (d) { return new Date(d.OrderDate).getTime() }) //We can modify the data accessor functions... - .y(function (d) { return d.Total }) //...in case your data is formatted differently. + .x(function (d) { return new Date(d.PickingCompletedWhen).getTime(); }) //We can modify the data accessor functions... + .y(function (d) { return d.Total; }) //...in case your data is formatted differently. .useInteractiveGuideline(true) //Tooltips which show all data points. Very nice! .rightAlignYAxis(true) //Let's move the y-axis to the right side. - .height(300) + .height(250) .showXAxis(true) - .showYAxis(true) + .showYAxis(true); //Format x-axis labels with custom function. chart.xAxis .tickFormat(function (d) { - return d3.time.format('%x')(new Date(d)) + return d3.time.format('%x')(new Date(d)); }); d3.select("#part4 svg") .datum([{ values: data.value, - key: 'Number of sales orders', + key: 'Daily sales ($)', color: '#2ca02c' }]) .call(chart); diff --git a/samples/databases/wide-world-importers/wwi-ssdt/wwi-ssdt/PostDeploymentScripts/Script.PostDeployment1.sql b/samples/databases/wide-world-importers/wwi-ssdt/wwi-ssdt/PostDeploymentScripts/Script.PostDeployment1.sql index 7d559a31..434b3751 100644 --- a/samples/databases/wide-world-importers/wwi-ssdt/wwi-ssdt/PostDeploymentScripts/Script.PostDeployment1.sql +++ b/samples/databases/wide-world-importers/wwi-ssdt/wwi-ssdt/PostDeploymentScripts/Script.PostDeployment1.sql @@ -161,8 +161,8 @@ SET NOCOUNT ON; depricated in future releases. */ EXEC DataLoadSimulation.DailyProcessToCreateHistory - @StartDate = '20130101', - @EndDate = '20130201', + @StartDate = '20180101', + @EndDate = '20181001', @AverageNumberOfCustomerOrdersPerDay = 60, @SaturdayPercentageOfNormalWorkDay = 25, @SundayPercentageOfNormalWorkDay = 0, diff --git a/samples/databases/wide-world-importers/wwi-ssdt/wwi-ssdt/WebApi/Views/SalesOrderLines.sql b/samples/databases/wide-world-importers/wwi-ssdt/wwi-ssdt/WebApi/Views/SalesOrderLines.sql index c979535b..997ea86e 100644 --- a/samples/databases/wide-world-importers/wwi-ssdt/wwi-ssdt/WebApi/Views/SalesOrderLines.sql +++ b/samples/databases/wide-world-importers/wwi-ssdt/wwi-ssdt/WebApi/Views/SalesOrderLines.sql @@ -1,6 +1,6 @@ CREATE VIEW [WebApi].[SalesOrderLines] AS -SELECT ol.OrderLineID, ol.OrderID, ol.Description, ol.Quantity, ol.UnitPrice, ol.TaxRate, +SELECT ol.OrderLineID, ol.OrderID, ol.Description, ol.Quantity, ol.UnitPrice, ol.TaxRate, ol.PickingCompletedWhen, ProductName = si.StockItemName, si.Brand, si.Size, c.ColorName, pt.PackageTypeName FROM Sales.OrderLines ol INNER JOIN Warehouse.StockItems si