diff --git a/src/Simple.OData.Client.Core/Simple.OData.Client.Core.csproj b/src/Simple.OData.Client.Core/Simple.OData.Client.Core.csproj index ddb07212..786a46bc 100644 --- a/src/Simple.OData.Client.Core/Simple.OData.Client.Core.csproj +++ b/src/Simple.OData.Client.Core/Simple.OData.Client.Core.csproj @@ -1,7 +1,7 @@  - net8.0;net7.0;netstandard2.0 + net8.0 Simple.OData.Client $(DocumentationFile)\$(AssemblyName).xml $(StrongNamePublicKey) diff --git a/src/Simple.OData.Client.V3.Adapter/Simple.OData.Client.V3.Adapter.csproj b/src/Simple.OData.Client.V3.Adapter/Simple.OData.Client.V3.Adapter.csproj index f35d683f..90b9d346 100644 --- a/src/Simple.OData.Client.V3.Adapter/Simple.OData.Client.V3.Adapter.csproj +++ b/src/Simple.OData.Client.V3.Adapter/Simple.OData.Client.V3.Adapter.csproj @@ -1,7 +1,7 @@  - net8.0;net7.0;netstandard2.0 + net8.0 $(DocumentationFile)\$(AssemblyName).xml $(StrongNamePublicKey) diff --git a/src/Simple.OData.Client.V4.Adapter/ResourceProperties.cs b/src/Simple.OData.Client.V4.Adapter/ResourceProperties.cs index d09c9875..d1e9123d 100644 --- a/src/Simple.OData.Client.V4.Adapter/ResourceProperties.cs +++ b/src/Simple.OData.Client.V4.Adapter/ResourceProperties.cs @@ -6,7 +6,7 @@ public class ResourceProperties(ODataResource resource) { public ODataResource Resource { get; } = resource; public string TypeName { get; set; } - public IEnumerable PrimitiveProperties => Resource.Properties; + public IEnumerable PrimitiveProperties => (IEnumerable)Resource.Properties; public IDictionary CollectionProperties { get; set; } public IDictionary StructuralProperties { get; set; } } diff --git a/src/Simple.OData.Client.V4.Adapter/ResponseReader.cs b/src/Simple.OData.Client.V4.Adapter/ResponseReader.cs index b243b6f0..9b0e99ac 100644 --- a/src/Simple.OData.Client.V4.Adapter/ResponseReader.cs +++ b/src/Simple.OData.Client.V4.Adapter/ResponseReader.cs @@ -199,7 +199,7 @@ protected override void ConvertEntry(ResponseNode entryNode, object entry) var odataEntry = entry as ODataResource; foreach (var property in odataEntry.Properties) { - entryNode.Entry.Data.Add(property.Name, GetPropertyValue(property.Value)); + entryNode.Entry.Data.Add(property.Name, GetPropertyValue(((ODataProperty)property).Value)); } entryNode.Entry.SetAnnotations(CreateAnnotations(odataEntry)); @@ -267,7 +267,7 @@ private object GetPropertyValue(object value) { if (value is ODataResource resource) { - return resource.Properties.ToDictionary(x => x.Name, x => GetPropertyValue(x.Value)); + return resource.Properties.ToDictionary(x => x.Name, x => GetPropertyValue(((ODataProperty)x).Value)); } else if (value is ODataCollectionValue collectionValue) { diff --git a/src/Simple.OData.Client.V4.Adapter/Simple.OData.Client.V4.Adapter.csproj b/src/Simple.OData.Client.V4.Adapter/Simple.OData.Client.V4.Adapter.csproj index 0f3f7788..43b004b1 100644 --- a/src/Simple.OData.Client.V4.Adapter/Simple.OData.Client.V4.Adapter.csproj +++ b/src/Simple.OData.Client.V4.Adapter/Simple.OData.Client.V4.Adapter.csproj @@ -1,7 +1,7 @@  - net8.0;net7.0;netstandard2.0 + net8.0 $(DocumentationFile)\$(AssemblyName).xml $(StrongNamePublicKey) @@ -20,7 +20,7 @@ - + diff --git a/src/Simple.OData.Client.sln b/src/Simple.OData.Client.sln index 60848958..1bc67e50 100644 --- a/src/Simple.OData.Client.sln +++ b/src/Simple.OData.Client.sln @@ -22,12 +22,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.V3.Adap EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Client.V4.Adapter", "Simple.OData.Client.V4.Adapter\Simple.OData.Client.V4.Adapter.csproj", "{31D1CC1D-316E-4516-A2BD-F07423B394F6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Samples.ApiV4", "Simple.OData.Samples.ApiV4\Simple.OData.Samples.ApiV4.csproj", "{25EEBCD4-0604-4B5A-AAF5-8A788939A217}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Tests.Samples.ApiV4", "Simple.OData.Tests.Samples.ApiV4\Simple.OData.Tests.Samples.ApiV4.csproj", "{F01F7750-85F6-43D8-9C7B-34C75A3861E7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Samples.ApiV3", "Simple.OData.Samples.ApiV3\Simple.OData.Samples.ApiV3.csproj", "{09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Tests.Samples.ApiV3", "Simple.OData.Tests.Samples.ApiV3\Simple.OData.Tests.Samples.ApiV3.csproj", "{57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.OData.Tests.Client", "Simple.OData.Tests.Client\Simple.OData.Tests.Client.csproj", "{10A14EE1-39A6-4AE2-9A30-3B5573317E2C}" @@ -78,18 +74,10 @@ Global {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Debug|Any CPU.Build.0 = Debug|Any CPU {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|Any CPU.ActiveCfg = Release|Any CPU {31D1CC1D-316E-4516-A2BD-F07423B394F6}.Release|Any CPU.Build.0 = Release|Any CPU - {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25EEBCD4-0604-4B5A-AAF5-8A788939A217}.Release|Any CPU.Build.0 = Release|Any CPU {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Debug|Any CPU.Build.0 = Debug|Any CPU {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|Any CPU.ActiveCfg = Release|Any CPU {F01F7750-85F6-43D8-9C7B-34C75A3861E7}.Release|Any CPU.Build.0 = Release|Any CPU - {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4}.Release|Any CPU.Build.0 = Release|Any CPU {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Debug|Any CPU.Build.0 = Debug|Any CPU {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -120,9 +108,7 @@ Global {812D678E-B428-41A1-BC05-8160695AD186} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} {A08B2D3D-91A6-4ECD-B7AF-5977E840E383} = {A1B189A0-8C64-4F23-A8FC-9DDD79B8AF36} {31D1CC1D-316E-4516-A2BD-F07423B394F6} = {A1B189A0-8C64-4F23-A8FC-9DDD79B8AF36} - {25EEBCD4-0604-4B5A-AAF5-8A788939A217} = {6173C837-D890-4BF8-84F0-D8525997C52F} {F01F7750-85F6-43D8-9C7B-34C75A3861E7} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} - {09CD2CB4-0B5B-4018-BFBB-7367CA7E10A4} = {6173C837-D890-4BF8-84F0-D8525997C52F} {57AA878B-3DD3-4B79-AB0B-ECC29563AAAC} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} {10A14EE1-39A6-4AE2-9A30-3B5573317E2C} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} {6E44E884-4949-4330-98B8-A919F814123E} = {78D04AF9-B9B4-4025-93C6-B3DB01EDAAE9} diff --git a/src/Simple.OData.Client/Simple.OData.Client.csproj b/src/Simple.OData.Client/Simple.OData.Client.csproj index 9f9732df..d9b71150 100644 --- a/src/Simple.OData.Client/Simple.OData.Client.csproj +++ b/src/Simple.OData.Client/Simple.OData.Client.csproj @@ -1,7 +1,7 @@  - net8.0;net7.0;netstandard2.0 + net8.0 $(DocumentationFile)\$(AssemblyName).xml $(StrongNamePublicKey) diff --git a/src/Simple.OData.Samples.ApiV3/Models/MoviesContext.cs b/src/Simple.OData.Samples.ApiV3/Models/MoviesContext.cs index 2ec535f9..e4ca463b 100644 --- a/src/Simple.OData.Samples.ApiV3/Models/MoviesContext.cs +++ b/src/Simple.OData.Samples.ApiV3/Models/MoviesContext.cs @@ -1,5 +1,5 @@ using System.ComponentModel.DataAnnotations.Schema; -using System.Data.Entity; +using Microsoft.EntityFrameworkCore; namespace WebApiOData.V3.Samples.Models; diff --git a/src/Simple.OData.Samples.ApiV3/Simple.OData.Samples.ApiV3.csproj b/src/Simple.OData.Samples.ApiV3/Simple.OData.Samples.ApiV3.csproj index f8192a64..d8b0013e 100644 --- a/src/Simple.OData.Samples.ApiV3/Simple.OData.Samples.ApiV3.csproj +++ b/src/Simple.OData.Samples.ApiV3/Simple.OData.Samples.ApiV3.csproj @@ -1,7 +1,7 @@  - net48 + net8.0 true Simple.OData.Samples.ApiV3 true @@ -9,9 +9,10 @@ - - - + + + + \ No newline at end of file diff --git a/src/Simple.OData.Samples.ApiV4/Controllers/MoviesController.cs b/src/Simple.OData.Samples.ApiV4/Controllers/MoviesController.cs index aa401e5c..0d04b8cc 100644 --- a/src/Simple.OData.Samples.ApiV4/Controllers/MoviesController.cs +++ b/src/Simple.OData.Samples.ApiV4/Controllers/MoviesController.cs @@ -1,7 +1,11 @@ -using System.Web.Http; -using Microsoft.AspNet.OData; -using Microsoft.AspNet.OData.Routing; +using Microsoft.AspNetCore.OData; +using Microsoft.AspNetCore.OData.Routing; +using Microsoft.AspNetCore.OData; +using Microsoft.AspNetCore.OData.Routing; using WebApiOData.V4.Samples.Models; +using Microsoft.AspNetCore.OData.Routing.Controllers; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.OData.Formatter; namespace WebApiOData.V4.Samples.Controllers; @@ -9,13 +13,13 @@ public class MoviesController : ODataController { private readonly MoviesContext _db = new(); - public IHttpActionResult Get() + public IActionResult Get() { return Ok(_db.Movies); } [HttpPost] - public IHttpActionResult CheckOut(int key) + public IActionResult CheckOut(int key) { var movie = _db.Movies.FirstOrDefault(m => m.ID == key); if (movie is null) @@ -32,7 +36,7 @@ public IHttpActionResult CheckOut(int key) } [HttpPost] - public IHttpActionResult Return(int key) + public IActionResult Return(int key) { var movie = _db.Movies.FirstOrDefault(m => m.ID == key); if (movie is null) @@ -47,7 +51,7 @@ public IHttpActionResult Return(int key) // Check out a list of movies. [HttpPost] - public IHttpActionResult CheckOutMany(ODataActionParameters parameters) + public IActionResult CheckOutMany(ODataActionParameters parameters) { if (!ModelState.IsValid) { @@ -73,7 +77,7 @@ public IHttpActionResult CheckOutMany(ODataActionParameters parameters) [HttpPost] [ODataRoute("CreateMovie")] - public IHttpActionResult CreateMovie(ODataActionParameters parameters) + public IActionResult CreateMovie(ODataActionParameters parameters) { if (!ModelState.IsValid) { diff --git a/src/Simple.OData.Samples.ApiV4/Controllers/ProductsController.cs b/src/Simple.OData.Samples.ApiV4/Controllers/ProductsController.cs index 2830a860..6b15550c 100644 --- a/src/Simple.OData.Samples.ApiV4/Controllers/ProductsController.cs +++ b/src/Simple.OData.Samples.ApiV4/Controllers/ProductsController.cs @@ -1,8 +1,11 @@ using System.Collections.Concurrent; -using System.Web.Http; -using Microsoft.AspNet.OData; -using Microsoft.AspNet.OData.Query; -using Microsoft.AspNet.OData.Routing; +using System.Web.Http.OData.Routing; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.OData; +using Microsoft.AspNetCore.OData.Formatter; +using Microsoft.AspNetCore.OData.Query; +using Microsoft.AspNetCore.OData.Routing; +using Microsoft.AspNetCore.OData.Routing.Controllers; using WebApiOData.V4.Samples.Models; namespace WebApiOData.V4.Samples.Controllers; @@ -32,7 +35,7 @@ public ProductsController() } [Route("*")] - public IHttpActionResult Default() + public IActionResult Default() { return Ok("OK!!!"); } @@ -43,7 +46,7 @@ public static IQueryable Get() return _data.Values.AsQueryable(); } - public IHttpActionResult GetProduct(int key) + public IActionResult GetProduct(int key) { if (_data.TryGetValue(key, out var retval)) { @@ -56,7 +59,7 @@ public IHttpActionResult GetProduct(int key) } [HttpGet] - public IHttpActionResult MostExpensive() + public IActionResult MostExpensive() { var retval = _data.Max(pair => pair.Value.Price); @@ -66,7 +69,7 @@ public IHttpActionResult MostExpensive() // Returns top 3 most expensive products // This is needed to check function name matching [HttpGet] - public IHttpActionResult MostExpensives() + public IActionResult MostExpensives() { var retval = _data.Values.OrderByDescending(p => p.Price).Take(3).ToList(); @@ -75,7 +78,7 @@ public IHttpActionResult MostExpensives() // Returns the top ten most expensive products [HttpGet] - public IHttpActionResult Top10() + public IActionResult Top10() { var retval = _data.Values.OrderByDescending(p => p.Price).Take(10).ToList(); @@ -83,7 +86,7 @@ public IHttpActionResult Top10() } [HttpGet] - public IHttpActionResult GetPriceRank(int key) + public IActionResult GetPriceRank(int key) { if (_data.TryGetValue(key, out var product)) { @@ -99,7 +102,7 @@ public IHttpActionResult GetPriceRank(int key) } [HttpGet] - public IHttpActionResult CalculateGeneralSalesTax(int key, string state) + public IActionResult CalculateGeneralSalesTax(int key, string state) { var taxRate = GetRate(state); @@ -116,7 +119,7 @@ public IHttpActionResult CalculateGeneralSalesTax(int key, string state) [HttpGet] [ODataRoute("GetSalesTaxRate(state={state})")] - public IHttpActionResult GetSalesTaxRate([FromODataUri] string state) + public IActionResult GetSalesTaxRate([FromODataUri] string state) { return Ok(GetRate(state)); } @@ -124,7 +127,7 @@ public IHttpActionResult GetSalesTaxRate([FromODataUri] string state) [HttpGet] [EnableQuery] [ODataRoute("Products({key})/Default.Placements()")] - public IHttpActionResult Placements([FromODataUri] int key, ODataQueryOptions options) + public IActionResult Placements([FromODataUri] int key, ODataQueryOptions options) { var source = new MoviesContext().Movies.Where(x => x.ID < key).AsQueryable(); return Ok(source); diff --git a/src/Simple.OData.Samples.ApiV4/CustomHttpControllerTypeResolver.cs b/src/Simple.OData.Samples.ApiV4/CustomHttpControllerTypeResolver.cs index 2bf62e3d..ea26d760 100644 --- a/src/Simple.OData.Samples.ApiV4/CustomHttpControllerTypeResolver.cs +++ b/src/Simple.OData.Samples.ApiV4/CustomHttpControllerTypeResolver.cs @@ -1,5 +1,6 @@ using System.Web.Http.Dispatcher; -using Microsoft.AspNet.OData; +using Microsoft.AspNetCore.OData; +using Microsoft.AspNetCore.OData.Routing.Controllers; namespace WebApiOData.V4.Samples; diff --git a/src/Simple.OData.Samples.ApiV4/Simple.OData.Samples.ApiV4.csproj b/src/Simple.OData.Samples.ApiV4/Simple.OData.Samples.ApiV4.csproj index 28e2e1bb..98dd6996 100644 --- a/src/Simple.OData.Samples.ApiV4/Simple.OData.Samples.ApiV4.csproj +++ b/src/Simple.OData.Samples.ApiV4/Simple.OData.Samples.ApiV4.csproj @@ -1,15 +1,20 @@  - net48 + net8.0 true Simple.OData.Samples.ApiV4 - - + + + + - + + + + \ No newline at end of file diff --git a/src/Simple.OData.Samples.ApiV4/Startup.cs b/src/Simple.OData.Samples.ApiV4/Startup.cs index f5428a06..efcfbf1a 100644 --- a/src/Simple.OData.Samples.ApiV4/Startup.cs +++ b/src/Simple.OData.Samples.ApiV4/Startup.cs @@ -1,6 +1,5 @@ using System.Web.Http; using System.Web.Http.Dispatcher; -using Microsoft.AspNet.OData.Extensions; using Owin; namespace WebApiOData.V4.Samples; diff --git a/src/Simple.OData.Samples.ApiV4/Startups/ActionStartup.cs b/src/Simple.OData.Samples.ApiV4/Startups/ActionStartup.cs index 3f6075c9..b1dfe7a4 100644 --- a/src/Simple.OData.Samples.ApiV4/Startups/ActionStartup.cs +++ b/src/Simple.OData.Samples.ApiV4/Startups/ActionStartup.cs @@ -1,8 +1,7 @@ using System.Web.Http; -using Microsoft.AspNet.OData.Batch; -using Microsoft.AspNet.OData.Builder; -using Microsoft.AspNet.OData.Extensions; +using Microsoft.AspNetCore.OData.Batch; using Microsoft.OData.Edm; +using Microsoft.OData.ModelBuilder; using WebApiOData.V4.Samples.Controllers; using WebApiOData.V4.Samples.Models; diff --git a/src/Simple.OData.Samples.ApiV4/Startups/FunctionStartup.cs b/src/Simple.OData.Samples.ApiV4/Startups/FunctionStartup.cs index 4d2b24e9..cc63ce7c 100644 --- a/src/Simple.OData.Samples.ApiV4/Startups/FunctionStartup.cs +++ b/src/Simple.OData.Samples.ApiV4/Startups/FunctionStartup.cs @@ -1,7 +1,5 @@ using System.Web.Http; -using Microsoft.AspNet.OData.Batch; -using Microsoft.AspNet.OData.Builder; -using Microsoft.AspNet.OData.Extensions; +using Microsoft.AspNetCore.OData.Batch; using Microsoft.OData.Edm; using WebApiOData.V4.Samples.Controllers; using WebApiOData.V4.Samples.Models; diff --git a/src/Simple.OData.Tests.Client.Integration/Simple.OData.Tests.Client.Integration.csproj b/src/Simple.OData.Tests.Client.Integration/Simple.OData.Tests.Client.Integration.csproj index ed1856df..201e8601 100644 --- a/src/Simple.OData.Tests.Client.Integration/Simple.OData.Tests.Client.Integration.csproj +++ b/src/Simple.OData.Tests.Client.Integration/Simple.OData.Tests.Client.Integration.csproj @@ -1,7 +1,7 @@  - net8.0;net7.0;net48; + net8.0 true true @@ -15,6 +15,7 @@ + diff --git a/src/Simple.OData.Tests.Client/Simple.OData.Tests.Client.csproj b/src/Simple.OData.Tests.Client/Simple.OData.Tests.Client.csproj index 750ce90e..d06bf02a 100644 --- a/src/Simple.OData.Tests.Client/Simple.OData.Tests.Client.csproj +++ b/src/Simple.OData.Tests.Client/Simple.OData.Tests.Client.csproj @@ -1,7 +1,7 @@  - net8.0;net7.0;net48; + net8.0 @@ -9,6 +9,7 @@ + diff --git a/src/Simple.OData.Tests.Samples.ApiV3/Simple.OData.Tests.Samples.ApiV3.csproj b/src/Simple.OData.Tests.Samples.ApiV3/Simple.OData.Tests.Samples.ApiV3.csproj index ab65b5ad..85ee752c 100644 --- a/src/Simple.OData.Tests.Samples.ApiV3/Simple.OData.Tests.Samples.ApiV3.csproj +++ b/src/Simple.OData.Tests.Samples.ApiV3/Simple.OData.Tests.Samples.ApiV3.csproj @@ -1,7 +1,7 @@  - net8.0;net7.0;net48; + net8.0 diff --git a/src/Simple.OData.Tests.Samples.ApiV4/Simple.OData.Tests.Samples.ApiV4.csproj b/src/Simple.OData.Tests.Samples.ApiV4/Simple.OData.Tests.Samples.ApiV4.csproj index cfa0a9cf..8c7eb4ae 100644 --- a/src/Simple.OData.Tests.Samples.ApiV4/Simple.OData.Tests.Samples.ApiV4.csproj +++ b/src/Simple.OData.Tests.Samples.ApiV4/Simple.OData.Tests.Samples.ApiV4.csproj @@ -1,7 +1,7 @@  - net8.0;net7.0;net48; + net8.0 @@ -10,6 +10,7 @@ +