From 4d9ada6731dc5a2f8c93f1ee1a8db21cc4bb0440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A8=81=E5=8B=9D=20=E5=BC=B5?= Date: Thu, 2 May 2024 12:27:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=85=A8=E6=A0=A1=E8=BB=8A?= =?UTF-8?q?=E4=BD=8D=E6=95=B8=E9=87=8F=E8=A8=88=E6=95=B8=20=E9=81=95?= =?UTF-8?q?=E8=A6=8F=E8=BB=8A=E8=BC=9B=20=E6=94=B9=E4=B8=8B=E5=8D=885?= =?UTF-8?q?=E9=BB=9E=E5=88=B0=E9=81=AD=E4=B8=8A6=E9=BB=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Violation_car_tableController.cs | 36 ++++- .../Yuntech_in_car_tableController.cs | 30 ++++ .../Controllers/Yuntech_parkingController.cs | 141 ++++++++++++++++++ WebApi_data_value/Models/Yuntech_parking.cs | 8 + WebApi_data_value/Services/SqlContext.cs | 5 +- WebApi_data_value/WebApi_data_value.csproj | 2 +- 6 files changed, 216 insertions(+), 6 deletions(-) create mode 100644 WebApi_data_value/Controllers/Yuntech_parkingController.cs create mode 100644 WebApi_data_value/Models/Yuntech_parking.cs diff --git a/WebApi_data_value/Controllers/Violation_car_tableController.cs b/WebApi_data_value/Controllers/Violation_car_tableController.cs index b0aedb8..b7b99db 100644 --- a/WebApi_data_value/Controllers/Violation_car_tableController.cs +++ b/WebApi_data_value/Controllers/Violation_car_tableController.cs @@ -260,6 +260,20 @@ namespace Parking_space_WebAPI.Controllers } violation_car_table.create_data_time= DateTime.Now; _context.violation_car_table.Add(violation_car_table); + + // 車位數量+1 + var yuntech_parking = await _context.yuntech_parking.FirstOrDefaultAsync(); + if (yuntech_parking != null) + { + string now_num_str = yuntech_parking.now_num; + int now_num_int; + Int32.TryParse(now_num_str, out now_num_int); + now_num_int = now_num_int + 1; + now_num_str = now_num_int.ToString(); + yuntech_parking.now_num = now_num_str; + // 保存更改 + await _context.SaveChangesAsync(); + } try { await _context.SaveChangesAsync(); @@ -339,15 +353,15 @@ namespace Parking_space_WebAPI.Controllers await _context.SaveChangesAsync(); data.license_plate_number = license_plate_number; - if (time.Hour <= 17) + if (time.Hour >= 17 || time.Hour < 6) { - // 如果时间早于或等于17:00,则只更新车牌号码 + // 如果时间晚于或等于17:00,或者早于6:00,则同时更新车牌号码和车辆入场图片 + data.car_start_img = in_car_img; _context.violation_car_table.Add(data); } else { - // 如果时间晚于17:00,则同时更新车牌号码和车辆入场图片 - data.car_start_img = in_car_img; + // 如果时间早于或等于17:00,则只更新车牌号码 _context.violation_car_table.Add(data); } @@ -383,6 +397,20 @@ namespace Parking_space_WebAPI.Controllers } _context.violation_car_table.Add(violation_car_table); await _context.SaveChangesAsync(); + + // 車位數量+1 + var yuntech_parking = await _context.yuntech_parking.FirstOrDefaultAsync(); + if (yuntech_parking != null) + { + string now_num_str = yuntech_parking.now_num; + int now_num_int; + Int32.TryParse(now_num_str, out now_num_int); + now_num_int = now_num_int + 1; + now_num_str = now_num_int.ToString(); + yuntech_parking.now_num = now_num_str; + // 保存更改 + await _context.SaveChangesAsync(); + } return Ok(); } #endregion diff --git a/WebApi_data_value/Controllers/Yuntech_in_car_tableController.cs b/WebApi_data_value/Controllers/Yuntech_in_car_tableController.cs index 7681811..2ab20c5 100644 --- a/WebApi_data_value/Controllers/Yuntech_in_car_tableController.cs +++ b/WebApi_data_value/Controllers/Yuntech_in_car_tableController.cs @@ -265,6 +265,21 @@ namespace Parking_space_WebAPI.Controllers yuntech_in_car_table.out_time = null; _context.yuntech_in_car_table.Add(yuntech_in_car_table); await _context.SaveChangesAsync(); + + // 車位數量-1 + var yuntech_parking = await _context.yuntech_parking.FirstOrDefaultAsync(); + if (yuntech_parking != null) + { + string now_num_str = yuntech_parking.now_num; + int now_num_int; + Int32.TryParse(now_num_str, out now_num_int); + now_num_int = now_num_int - 1; + now_num_str=now_num_int.ToString(); + yuntech_parking.now_num = now_num_str; + // 保存更改 + await _context.SaveChangesAsync(); + } + } catch (DbUpdateException) { @@ -314,6 +329,21 @@ namespace Parking_space_WebAPI.Controllers in_car_data.out_car_img = out_car_img; _context.yuntech_in_car_table.Add(in_car_data); await _context.SaveChangesAsync(); + + // 車位數量+1 + var yuntech_parking = await _context.yuntech_parking.FirstOrDefaultAsync(); + + if (yuntech_parking != null) + { + string now_num_str = yuntech_parking.now_num; + int now_num_int; + Int32.TryParse(now_num_str, out now_num_int); + now_num_int = now_num_int + 1; + now_num_str = now_num_int.ToString(); + yuntech_parking.now_num = now_num_str; + // 保存更改 + await _context.SaveChangesAsync(); + } } else { diff --git a/WebApi_data_value/Controllers/Yuntech_parkingController.cs b/WebApi_data_value/Controllers/Yuntech_parkingController.cs new file mode 100644 index 0000000..b203356 --- /dev/null +++ b/WebApi_data_value/Controllers/Yuntech_parkingController.cs @@ -0,0 +1,141 @@ +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 Parking_space_WebAPI.Services; +using WebApi_data_value.Models; +using Parking_space_WebAPI.Authorization; + +namespace WebApi_data_value.Controllers +{ + [Route("api/[controller]")] + [ApiController] + [Authorize] + [ApiExplorerSettings(GroupName = "校園大內網")] + public class Yuntech_parkingController : ControllerBase + { + private readonly SqlContext _context; + + public Yuntech_parkingController(SqlContext context) + { + _context = context; + } + + // GET: api/Yuntech_parking + [HttpGet] + public async Task>> Getyuntech_parking() + { + if (_context.yuntech_parking == null) + { + return NotFound(); + } + return await _context.yuntech_parking.ToListAsync(); + } + + // GET: api/Yuntech_parking/5 + [HttpGet("{id}")] + public async Task> GetYuntech_parking(string id) + { + if (_context.yuntech_parking == null) + { + return NotFound(); + } + var yuntech_parking = await _context.yuntech_parking.FindAsync(id); + + if (yuntech_parking == null) + { + return NotFound(); + } + + return yuntech_parking; + } + + // PUT: api/Yuntech_parking/5 + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPut("{id}")] + public async Task PutYuntech_parking(string id, Yuntech_parking yuntech_parking) + { + if (id != yuntech_parking.all_num) + { + return BadRequest(); + } + + _context.Entry(yuntech_parking).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!Yuntech_parkingExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return NoContent(); + } + + // POST: api/Yuntech_parking + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPost] + public async Task> PostYuntech_parking(Yuntech_parking yuntech_parking) + { + if (_context.yuntech_parking == null) + { + return Problem("Entity set 'SqlContext.yuntech_parking' is null."); + } + _context.yuntech_parking.Add(yuntech_parking); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + if (Yuntech_parkingExists(yuntech_parking.all_num)) + { + return Conflict(); + } + else + { + throw; + } + } + + return CreatedAtAction("GetYuntech_parking", new { id = yuntech_parking.all_num }, yuntech_parking); + } + + // DELETE: api/Yuntech_parking/5 + [HttpDelete("{id}")] + public async Task DeleteYuntech_parking(string id) + { + if (_context.yuntech_parking == null) + { + return NotFound(); + } + var yuntech_parking = await _context.yuntech_parking.FindAsync(id); + if (yuntech_parking == null) + { + return NotFound(); + } + + _context.yuntech_parking.Remove(yuntech_parking); + await _context.SaveChangesAsync(); + + return NoContent(); + } + + private bool Yuntech_parkingExists(string id) + { + return (_context.yuntech_parking?.Any(e => e.all_num == id)).GetValueOrDefault(); + } + } +} diff --git a/WebApi_data_value/Models/Yuntech_parking.cs b/WebApi_data_value/Models/Yuntech_parking.cs new file mode 100644 index 0000000..1c6b83e --- /dev/null +++ b/WebApi_data_value/Models/Yuntech_parking.cs @@ -0,0 +1,8 @@ +namespace WebApi_data_value.Models +{ + public class Yuntech_parking + { + public string? all_num { get; set; } + public string? now_num { get; set; } + } +} diff --git a/WebApi_data_value/Services/SqlContext.cs b/WebApi_data_value/Services/SqlContext.cs index c9513c0..87a1983 100644 --- a/WebApi_data_value/Services/SqlContext.cs +++ b/WebApi_data_value/Services/SqlContext.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Parking_space_WebAPI.Models; using Parking_space_WebAPI.Entities; +using WebApi_data_value.Models; namespace Parking_space_WebAPI.Services @@ -52,7 +53,7 @@ namespace Parking_space_WebAPI.Services //雲科校內相機 public DbSet yuntech_cam_total_table { get; set; } = null!; public DbSet yuntech_cam { get; set; } = null!; - + public DbSet yuntech_parking { get; set; } = null!; protected override void OnModelCreating(ModelBuilder builder) @@ -83,6 +84,8 @@ namespace Parking_space_WebAPI.Services builder.Entity().HasKey(o => new { o.location_name }); //Primary Key builder.Entity().HasKey(o => new { o.ip }); //Primary Key + + builder.Entity().HasKey(o => new { o.all_num }); //Primary Key } diff --git a/WebApi_data_value/WebApi_data_value.csproj b/WebApi_data_value/WebApi_data_value.csproj index a9c0fdb..d0beb31 100644 --- a/WebApi_data_value/WebApi_data_value.csproj +++ b/WebApi_data_value/WebApi_data_value.csproj @@ -25,7 +25,7 @@ - + all