You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
9.5 KiB
197 lines
9.5 KiB
using Microsoft.AspNetCore.Http; |
|
using Microsoft.AspNetCore.Mvc; |
|
using Microsoft.AspNetCore.Mvc.ModelBinding; |
|
using Microsoft.EntityFrameworkCore; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.Linq; |
|
using System.Threading.Tasks; |
|
|
|
namespace AX.FireTrainingSys.Controllers.V1 |
|
{ |
|
/// <summary> |
|
/// 课件基本信息控制器。 |
|
/// </summary> |
|
[Produces("application/json")] |
|
[Route("api/[controller]")] |
|
[ApiVersion("1.0")] |
|
[ApiController] |
|
public class CoursewareBaseInfosController : ControllerBase |
|
{ |
|
private readonly DriveDbContext dbContext; |
|
|
|
public CoursewareBaseInfosController(DriveDbContext dbContext) |
|
{ |
|
this.dbContext = dbContext; |
|
} |
|
|
|
/// <summary> |
|
/// 获得指定课件的所有相关基本信息。 |
|
/// </summary> |
|
/// <param name="coursewareId">课件编号</param> |
|
/// <returns></returns> |
|
[ProducesResponseType(StatusCodes.Status200OK)] |
|
[ProducesResponseType(StatusCodes.Status400BadRequest)] |
|
[HttpGet] |
|
public async Task<Microsoft.AspNetCore.Mvc.ActionResult> Get([FromQuery, BindRequired]string coursewareId) |
|
{ |
|
if (string.IsNullOrEmpty(coursewareId)) |
|
return BadRequest($"{nameof(coursewareId)}:{coursewareId}"); |
|
|
|
using (var transaction = dbContext.Database.BeginTransaction()) |
|
{ |
|
//暂未找到在 EF Core 中合适的临时表方案 |
|
//或许可以使用 Dapper 写临时表查询 |
|
|
|
var buildingAdjoins = await dbContext.BuildingAdjoins |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var buildingBasicInfos = await dbContext.BuildingBasicInfos |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var buildingFeatures = await dbContext.BuildingFeatures |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var exits = await dbContext.Exits |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var fireControlRooms = await dbContext.FireControlRooms |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var fireLifts = await dbContext.FireLifts |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var fireWaterMonitors = await dbContext.FireWaterMonitors |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var foamHydrants = await dbContext.FoamHydrants |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var foamPumpRooms = await dbContext.FoamPumpRooms |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var imageMarkers = await dbContext.ImageMarkers |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var importantLocations = await dbContext.ImportantLocations |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var municipalFireHydrants = await dbContext.MunicipalFireHydrants |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var noParkingAreas = await dbContext.NoParkingAreas |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var outdoorFireHydrants = await dbContext.OutdoorFireHydrants |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var protectedStairways = await dbContext.ProtectedStairways |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var pumpRooms = await dbContext.PumpRooms |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var siameseConnections = await dbContext.SiameseConnections |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var storageTanks = await dbContext.StorageTanks |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var waterTanks = await dbContext.WaterTanks |
|
.AsNoTracking() |
|
.Where(e => e.CoursewareId == coursewareId) |
|
.Select(e => e.Content) |
|
.ToListAsync(); |
|
|
|
var result = new Dictionary<string, List<string>> |
|
{ |
|
{ nameof(buildingAdjoins), buildingAdjoins }, |
|
{ nameof(buildingBasicInfos), buildingBasicInfos }, |
|
{ nameof(buildingFeatures), buildingFeatures }, |
|
{ nameof(exits), exits }, |
|
{ nameof(fireControlRooms), fireControlRooms }, |
|
{ nameof(fireLifts), fireLifts }, |
|
{ nameof(fireWaterMonitors), fireWaterMonitors }, |
|
{ nameof(foamHydrants), foamHydrants }, |
|
{ nameof(foamPumpRooms), foamPumpRooms }, |
|
{ nameof(imageMarkers), imageMarkers }, |
|
{ nameof(importantLocations), importantLocations }, |
|
{ nameof(municipalFireHydrants), municipalFireHydrants }, |
|
{ nameof(noParkingAreas), noParkingAreas }, |
|
{ nameof(outdoorFireHydrants), outdoorFireHydrants }, |
|
{ nameof(protectedStairways), protectedStairways }, |
|
{ nameof(pumpRooms), pumpRooms }, |
|
{ nameof(siameseConnections), siameseConnections }, |
|
{ nameof(storageTanks), storageTanks }, |
|
{ nameof(waterTanks), waterTanks }, |
|
}; |
|
|
|
transaction.Commit(); |
|
|
|
return Ok(result); |
|
} |
|
} |
|
} |
|
|
|
public class BaseInfo |
|
{ |
|
public string CoursewareId { get; set; } |
|
public string Id { get; set; } |
|
public string Content { get; set; } |
|
public string Type { get; set; } |
|
} |
|
}
|
|
|