-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Documentation(EJ2-890211): OdataV4adaptor
- Loading branch information
1 parent
ee870a4
commit 3f65702
Showing
14 changed files
with
389 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio Version 17 | ||
VisualStudioVersion = 17.9.34728.123 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ODataV4Adaptor", "ODataV4Adaptor\ODataV4Adaptor.csproj", "{CAB1491F-D43B-4513-9A9D-F5A56AA8F093}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{CAB1491F-D43B-4513-9A9D-F5A56AA8F093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{CAB1491F-D43B-4513-9A9D-F5A56AA8F093}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{CAB1491F-D43B-4513-9A9D-F5A56AA8F093}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{CAB1491F-D43B-4513-9A9D-F5A56AA8F093}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(ExtensibilityGlobals) = postSolution | ||
SolutionGuid = {C4A3478D-2390-4B78-982F-E0AC583C0E9D} | ||
EndGlobalSection | ||
EndGlobal |
79 changes: 79 additions & 0 deletions
79
ODataV4Adaptor/ODataV4Adaptor/Controllers/OrdersController.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
using Microsoft.AspNetCore.Mvc; | ||
using Microsoft.AspNetCore.OData.Query; | ||
using Microsoft.AspNetCore.OData.Routing.Controllers; | ||
using ODataV4Adaptor.Models; | ||
namespace OdataV4Adaptor.Controllers | ||
{ | ||
|
||
public class OrdersController : Controller | ||
{ | ||
/// <summary> | ||
/// Retrieves all orders. | ||
/// </summary> | ||
/// <returns>The collection of orders.</returns> | ||
[HttpGet] | ||
[EnableQuery] | ||
public IActionResult Get() | ||
{ | ||
var data = OrdersDetails.GetAllRecords().AsQueryable(); | ||
return Ok(data); | ||
} | ||
|
||
/// <summary> | ||
/// Inserts a new order to the collection. | ||
/// </summary> | ||
/// <param name="addRecord">The order to be inserted.</param> | ||
/// <returns>It returns the newly inserted record detail.</returns> | ||
[HttpPost] | ||
[EnableQuery] | ||
public IActionResult Post([FromBody] OrdersDetails addRecord) | ||
{ | ||
if (addRecord == null) | ||
{ | ||
return BadRequest("Null order"); | ||
} | ||
OrdersDetails.GetAllRecords().Insert(0, addRecord); | ||
return Json(addRecord); | ||
} | ||
|
||
/// <summary> | ||
/// Updates an existing order. | ||
/// </summary> | ||
/// <param name="key">The ID of the order to update.</param> | ||
/// <param name="updateRecord">The updated order details.</param> | ||
/// <returns>It returns the updated order details.</returns> | ||
[HttpPatch("{key}")] | ||
public IActionResult Patch(int key, [FromBody] OrdersDetails updateRecord) | ||
{ | ||
if (updateRecord == null) | ||
{ | ||
return BadRequest("No records"); | ||
} | ||
var existingOrder = OrdersDetails.GetAllRecords().FirstOrDefault(order => order.OrderID == key); | ||
if (existingOrder != null) | ||
{ | ||
// If the order exists, update its properties | ||
existingOrder.CustomerID = updateRecord.CustomerID ?? existingOrder.CustomerID; | ||
existingOrder.ShipCity = updateRecord.ShipCity ?? existingOrder.ShipCity; | ||
existingOrder.ShipCountry = updateRecord.ShipCountry ?? existingOrder.ShipCountry; | ||
} | ||
return Json(updateRecord); | ||
} | ||
|
||
/// <summary> | ||
/// Deletes an order. | ||
/// </summary> | ||
/// <param name="key">The ID of the order to delete.</param> | ||
/// <returns>It returns the deleted record detail</returns> | ||
[HttpDelete("{key}")] | ||
public IActionResult Delete(int key) | ||
{ | ||
var deleteRecord = OrdersDetails.GetAllRecords().FirstOrDefault(order => order.OrderID == key); | ||
if (deleteRecord != null) | ||
{ | ||
OrdersDetails.GetAllRecords().Remove(deleteRecord); | ||
} | ||
return Json(deleteRecord); | ||
} | ||
} | ||
} |
33 changes: 33 additions & 0 deletions
33
ODataV4Adaptor/ODataV4Adaptor/Controllers/WeatherForecastController.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
using Microsoft.AspNetCore.Mvc; | ||
|
||
namespace ODataV4Adaptor.Controllers | ||
{ | ||
[ApiController] | ||
[Route("[controller]")] | ||
public class WeatherForecastController : ControllerBase | ||
{ | ||
private static readonly string[] Summaries = new[] | ||
{ | ||
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" | ||
}; | ||
|
||
private readonly ILogger<WeatherForecastController> _logger; | ||
|
||
public WeatherForecastController(ILogger<WeatherForecastController> logger) | ||
{ | ||
_logger = logger; | ||
} | ||
|
||
[HttpGet(Name = "GetWeatherForecast")] | ||
public IEnumerable<WeatherForecast> Get() | ||
{ | ||
return Enumerable.Range(1, 5).Select(index => new WeatherForecast | ||
{ | ||
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)), | ||
TemperatureC = Random.Shared.Next(-20, 55), | ||
Summary = Summaries[Random.Shared.Next(Summaries.Length)] | ||
}) | ||
.ToArray(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
using System.ComponentModel.DataAnnotations; | ||
|
||
namespace ODataV4Adaptor.Models | ||
{ | ||
public class OrdersDetails | ||
{ | ||
public static List<OrdersDetails> order = new List<OrdersDetails>(); | ||
public OrdersDetails() | ||
{ | ||
|
||
} | ||
public OrdersDetails( | ||
int OrderID, string CustomerId, string ShipCity, string ShipCountry) | ||
{ | ||
this.OrderID = OrderID; | ||
this.CustomerID = CustomerId; | ||
this.ShipCity = ShipCity; | ||
this.ShipCountry = ShipCountry; | ||
} | ||
|
||
public static List<OrdersDetails> GetAllRecords() | ||
{ | ||
if (order.Count() == 0) | ||
{ | ||
int code = 10000; | ||
for (int i = 1; i < 10; i++) | ||
{ | ||
order.Add(new OrdersDetails(code + 1, "ALFKI","Berlin", "Denmark")); | ||
order.Add(new OrdersDetails(code + 2, "ANATR", "Madrid", "Brazil")); | ||
order.Add(new OrdersDetails(code + 3, "ANTON", "Cholchester", "Germany")); | ||
order.Add(new OrdersDetails(code + 4, "BLONP", "Marseille", "Austria")); | ||
order.Add(new OrdersDetails(code + 5, "BOLID", "tsawassen", "Switzerland")); | ||
code += 5; | ||
} | ||
} | ||
return order; | ||
} | ||
[Key] | ||
public int? OrderID { get; set; } | ||
public string? CustomerID { get; set; } | ||
public string? ShipCity { get; set; } | ||
public string? ShipCountry { get; set; } | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<Project Sdk="Microsoft.NET.Sdk.Web"> | ||
|
||
<PropertyGroup> | ||
<TargetFramework>net8.0</TargetFramework> | ||
<Nullable>enable</Nullable> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="Microsoft.AspNetCore.OData" Version="8.2.5" /> | ||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<Folder Include="wwwroot\css\" /> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<PropertyGroup> | ||
<ActiveDebugProfile>https</ActiveDebugProfile> | ||
<Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID> | ||
<Controller_SelectedScaffolderCategoryPath>root/Common/Api</Controller_SelectedScaffolderCategoryPath> | ||
</PropertyGroup> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
@ODataV4Adaptor_HostAddress = http://localhost:5214 | ||
|
||
GET {{ODataV4Adaptor_HostAddress}}/weatherforecast/ | ||
Accept: application/json | ||
|
||
### |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
using Microsoft.AspNetCore.OData; | ||
using Microsoft.OData.ModelBuilder; | ||
using ODataV4Adaptor.Models; | ||
|
||
var builder = WebApplication.CreateBuilder(args); | ||
|
||
// Add services to the container. | ||
|
||
builder.Services.AddControllers(); | ||
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle | ||
builder.Services.AddEndpointsApiExplorer(); | ||
builder.Services.AddSwaggerGen(); | ||
|
||
// Create an ODataConventionModelBuilder to build the OData model | ||
var modelBuilder = new ODataConventionModelBuilder(); | ||
|
||
// Register the "Orders" entity set with the OData model builder | ||
modelBuilder.EntitySet<OrdersDetails>("Orders"); | ||
|
||
var recordCount = OrdersDetails.GetAllRecords().Count; | ||
|
||
builder.Services.AddControllers().AddOData( | ||
options => options | ||
.Count() | ||
.OrderBy() | ||
.Filter() | ||
.SetMaxTop(recordCount) | ||
.AddRouteComponents( | ||
"odata", | ||
modelBuilder.GetEdmModel())); | ||
|
||
var app = builder.Build(); | ||
|
||
app.UseDefaultFiles(); | ||
app.UseStaticFiles(); | ||
|
||
// Configure the HTTP request pipeline. | ||
if (app.Environment.IsDevelopment()) | ||
{ | ||
app.UseSwagger(); | ||
app.UseSwaggerUI(); | ||
} | ||
|
||
app.UseHttpsRedirection(); | ||
|
||
app.UseAuthorization(); | ||
|
||
app.MapControllers(); | ||
|
||
app.Run(); |
41 changes: 41 additions & 0 deletions
41
ODataV4Adaptor/ODataV4Adaptor/Properties/launchSettings.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
{ | ||
"$schema": "http://json.schemastore.org/launchsettings.json", | ||
"iisSettings": { | ||
"windowsAuthentication": false, | ||
"anonymousAuthentication": true, | ||
"iisExpress": { | ||
"applicationUrl": "http://localhost:5430", | ||
"sslPort": 44372 | ||
} | ||
}, | ||
"profiles": { | ||
"http": { | ||
"commandName": "Project", | ||
"dotnetRunMessages": true, | ||
"launchBrowser": true, | ||
"launchUrl": "swagger", | ||
"applicationUrl": "http://localhost:5214", | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
} | ||
}, | ||
"https": { | ||
"commandName": "Project", | ||
"dotnetRunMessages": true, | ||
"launchBrowser": true, | ||
// "launchUrl": "swagger", | ||
"applicationUrl": "https://localhost:7047;http://localhost:5214", | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
} | ||
}, | ||
"IIS Express": { | ||
"commandName": "IISExpress", | ||
"launchBrowser": true, | ||
"launchUrl": "swagger", | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
namespace ODataV4Adaptor | ||
{ | ||
public class WeatherForecast | ||
{ | ||
public DateOnly Date { get; set; } | ||
|
||
public int TemperatureC { get; set; } | ||
|
||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); | ||
|
||
public string? Summary { get; set; } | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"Logging": { | ||
"LogLevel": { | ||
"Default": "Information", | ||
"Microsoft.AspNetCore": "Warning" | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"Logging": { | ||
"LogLevel": { | ||
"Default": "Information", | ||
"Microsoft.AspNetCore": "Warning" | ||
} | ||
}, | ||
"AllowedHosts": "*" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<title>ODataV4Adaptor</title> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<meta name="description" content="Typescript Grid Control"> | ||
<meta name="author" content="Syncfusion"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-base/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-grids/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-buttons/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-popups/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-richtexteditor/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-navigations/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-dropdowns/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-lists/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-inputs/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-calendars/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-notifications/styles/material.css" rel="stylesheet"> | ||
<link href="https://cdn.syncfusion.com/ej2/26.1.35/ej2-splitbuttons/styles/material.css" rel="stylesheet"> | ||
|
||
<script src="https://cdn.syncfusion.com/ej2/26.1.35/dist/ej2.min.js" type="text/javascript"></script> | ||
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type="text/javascript"></script> | ||
</head> | ||
<body> | ||
|
||
<div id="container"> | ||
<div id="Grid"></div> | ||
</div> | ||
|
||
<script src="js/index.js" type="text/javascript"></script> | ||
</body> | ||
</html> |
Oops, something went wrong.