Migrape API to NET8
Use entity schema from root, add controller, add CORS for proxy
This commit is contained in:
parent
b5688b9b94
commit
89e215aec3
@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
@ -6,4 +6,14 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\DbCycleVDP\DbFurnace.cs" Link="Db/DbFurnace.cs" />
|
||||
<Compile Include="..\DbCycleVDP\TableCycle.cs" Link="Db/TableCycle.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@ -1,6 +0,0 @@
|
||||
@APICycleVDP_HostAddress = http://localhost:5127
|
||||
|
||||
GET {{APICycleVDP_HostAddress}}/weatherforecast/
|
||||
Accept: application/json
|
||||
|
||||
###
|
71
APICycleVDP/Controller/CyclesController.cs
Normal file
71
APICycleVDP/Controller/CyclesController.cs
Normal file
@ -0,0 +1,71 @@
|
||||
using Microsoft.AspNetCore.Cors;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using DbCycleVDP;
|
||||
|
||||
namespace APICycleVDP.Controller
|
||||
{
|
||||
[EnableCors("All")]
|
||||
public class CyclesController : ControllerBase
|
||||
{
|
||||
[HttpPost]
|
||||
public ActionResult<string> CurrCycles()
|
||||
{
|
||||
var result = new JObject
|
||||
{
|
||||
["currTime"] = DateTime.Now
|
||||
};
|
||||
|
||||
var tasks = new List<Task<TableCycle>>();
|
||||
//var v = new DB.WorkDB();
|
||||
for (var i = 1; i <= 48; i++)
|
||||
tasks.Add(WorkDB.GetCycle(i));
|
||||
|
||||
var arr = new JArray();
|
||||
for (var i = 0; i < tasks.Count; i++)
|
||||
{
|
||||
var tmp = tasks[i].GetAwaiter().GetResult();
|
||||
if (tmp != null)
|
||||
{
|
||||
var t = new JObject();
|
||||
t["vdp"] = tmp.NumVdp;
|
||||
t["cycle"] = tmp.NumCycle;
|
||||
t["factStart"] = tmp.FactStart;
|
||||
t["factEnd"] = tmp.FactEnd;
|
||||
t["thinkEnd"] = tmp.ThinkEnd;
|
||||
arr.Add(t);
|
||||
}
|
||||
}
|
||||
result["data"] = arr;
|
||||
|
||||
return Content(result.ToString(), "application/json");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class WorkDB
|
||||
{
|
||||
async public static Task<TableCycle> GetCycle(int vdp)
|
||||
{
|
||||
var result = new TableCycle();
|
||||
await Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
using var db = new DbFurnace();
|
||||
var tmp = (from u in db.Cycles
|
||||
where
|
||||
u.NumVdp == vdp
|
||||
orderby u.FactStart descending
|
||||
select u).FirstOrDefault();
|
||||
result = tmp;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.Message);
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,27 +1,22 @@
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
var app = builder.Build();
|
||||
|
||||
var summaries = new[]
|
||||
builder.Services.AddControllers();
|
||||
builder.Services.AddCors(options =>
|
||||
{
|
||||
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
|
||||
};
|
||||
|
||||
app.MapGet("/weatherforecast", () =>
|
||||
{
|
||||
var forecast = Enumerable.Range(1, 5).Select(index =>
|
||||
new WeatherForecast
|
||||
(
|
||||
DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
|
||||
Random.Shared.Next(-20, 55),
|
||||
summaries[Random.Shared.Next(summaries.Length)]
|
||||
))
|
||||
.ToArray();
|
||||
return forecast;
|
||||
options.AddPolicy("AllowAllOrigins",
|
||||
builder =>
|
||||
{
|
||||
builder.AllowAnyOrigin()
|
||||
.AllowAnyMethod()
|
||||
.AllowAnyHeader();
|
||||
});
|
||||
});
|
||||
|
||||
app.Run();
|
||||
var app = builder.Build();
|
||||
|
||||
internal record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
|
||||
{
|
||||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||
}
|
||||
app.UseCors("AllowAllOrigins");
|
||||
|
||||
app.MapControllerRoute(name: "CurrCycles", pattern: "/currcycles",
|
||||
defaults: new { controller = "Cycles", action = "CurrCycles" });
|
||||
|
||||
app.Run();
|
@ -13,8 +13,8 @@
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "weatherforecast",
|
||||
"applicationUrl": "http://localhost:5127",
|
||||
"launchUrl": "currcycles",
|
||||
"applicationUrl": "http://localhost:65041",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
@ -22,7 +22,7 @@
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "weatherforecast",
|
||||
"launchUrl": "currcycles",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
|
@ -1,4 +1,11 @@
|
||||
{
|
||||
"Kestrel": {
|
||||
"Endpoints": {
|
||||
"Http": {
|
||||
"Url": "http://*:65041"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
|
Loading…
Reference in New Issue
Block a user