新增從大暪口紀錄數據

This commit is contained in:
威勝 張 2024-02-04 19:20:00 +08:00
parent f58be7970d
commit 53287bb390
5 changed files with 141 additions and 2 deletions

View File

@ -0,0 +1,123 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using WebApi_data_value.Models;
using WebApi_data_value.Services;
using WebApi_data_value.ViewModel;
namespace WebApi_data_value.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class Yuntech_in_car_tableController : ControllerBase
{
private readonly SqlContext _context;
public Yuntech_in_car_tableController(SqlContext context)
{
_context = context;
}
// GET: api/Yuntech_in_car_table
[HttpGet]
public async Task<ActionResult<IEnumerable<Yuntech_in_car_table>>> Getyuntech_in_car_table()
{
var in_car_table = await (from c in _context.yuntech_in_car_table
orderby c.in_time descending
select new Yuntech_in_car_table
{
license_plate_number = c.license_plate_number,
in_time = c.in_time,
out_time = c.out_time,
location = c.location,
}
).ToListAsync();
return in_car_table;
}
#region
// GET: api/Yuntech_in_car_table/5
[HttpGet("location-{id}")]
public async Task<IEnumerable<Yuntech_in_car_table>> GetYuntech_in_car_table(string id)
{
var in_car_table = await (from c in _context.yuntech_in_car_table
where c.location == id
orderby c.in_time descending
select new Yuntech_in_car_table
{
license_plate_number = c.license_plate_number,
in_time = c.in_time,
out_time = c.out_time,
location = c.location,
}
).ToListAsync();
return in_car_table;
}
#endregion
#region
// GET: api/Yuntech_in_car_table/5
[HttpGet("location-{id}-time-{time}")]
public async Task<ActionResult<Yuntech_in_car_table>> One_data(string id, DateTime time)
{
var in_car_table = await (from c in _context.yuntech_in_car_table
where c.location == id
where c.in_time == time
select c).FirstAsync();
return in_car_table;
}
#endregion
// POST: api/Yuntech_in_car_table
// To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754
[HttpPost]
public async Task<ActionResult<Yuntech_in_car_table>> PostYuntech_in_car_table(Yuntech_in_car_table yuntech_in_car_table)
{
if (_context.yuntech_in_car_table == null)
{
return Problem("Entity set 'SqlContext.yuntech_in_car_table' is null.");
}
_context.yuntech_in_car_table.Add(yuntech_in_car_table);
try
{
yuntech_in_car_table.in_time = DateTime.Now;
yuntech_in_car_table.out_time = null;
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (Yuntech_in_car_tableExists(yuntech_in_car_table.in_time))
{
return Conflict();
}
else
{
throw;
}
}
return CreatedAtAction("GetYuntech_in_car_table", new { id = yuntech_in_car_table.in_time }, yuntech_in_car_table);
}
private bool Yuntech_in_car_tableExists(DateTime? id)
{
return (_context.yuntech_in_car_table?.Any(e => e.in_time == id)).GetValueOrDefault();
}
}
}

View File

@ -0,0 +1,11 @@
namespace WebApi_data_value.Models
{
public class Yuntech_in_car_table
{
public string? license_plate_number { get; set; }
public string? car_img { get; set; }
public string? location { get; set; }
public DateTime? in_time { get; set; }
public DateTime? out_time { get; set; }
}
}

View File

@ -17,8 +17,8 @@ builder.Services.AddCors();
builder.Services.AddControllers(); builder.Services.AddControllers();
// 連線PostgreSQL資料庫 // 連線PostgreSQL資料庫
//var connectionString = "Server=140.125.20.183;UserID=postgres;password=EL404el404;Database=postgres;port=5432;Search Path=public;CommandTimeout=1800"; var connectionString = "Server=140.125.20.183;UserID=postgres;password=EL404el404;Database=postgres;port=5432;Search Path=public;CommandTimeout=1800";
var connectionString = "Server=127.0.0.1;UserID=postgres;password=EL404el404;Database=postgres;port=5432;Search Path=public;CommandTimeout=1800"; //var connectionString = "Server=127.0.0.1;UserID=postgres;password=EL404el404;Database=postgres;port=5432;Search Path=public;CommandTimeout=1800";
builder.Services.AddDbContext<SqlContext>(opt => opt.UseNpgsql(connectionString)); builder.Services.AddDbContext<SqlContext>(opt => opt.UseNpgsql(connectionString));

View File

@ -46,6 +46,9 @@ namespace WebApi_data_value.Services
// 演算法 // 演算法
public DbSet<Parking_space_algorithm> parking_space_algorithm { get; set; } = null!; public DbSet<Parking_space_algorithm> parking_space_algorithm { get; set; } = null!;
//大門口
public DbSet<Yuntech_in_car_table> yuntech_in_car_table { get; set; } = null!;
protected override void OnModelCreating(ModelBuilder builder) protected override void OnModelCreating(ModelBuilder builder)
{ {
@ -71,6 +74,7 @@ namespace WebApi_data_value.Services
builder.Entity<Parking_space_algorithm>().HasKey(o => new { o.algorithm_serial_num }); //Primary Key builder.Entity<Parking_space_algorithm>().HasKey(o => new { o.algorithm_serial_num }); //Primary Key
builder.Entity<Yuntech_in_car_table>().HasKey(o => new { o.in_time }); //Primary Key
} }

View File

@ -22,6 +22,7 @@
<PackageReference Include="JWT" Version="10.0.2" /> <PackageReference Include="JWT" Version="10.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.7" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.7" />
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.7" /> <PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.7" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.26" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.4" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.4"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.4">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>