From c6c56bdc5fbcd436c85186a42b02bce45467152f Mon Sep 17 00:00:00 2001
From: lch <1627445470@qq.com>
Date: Fri, 24 May 2024 15:44:13 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AB=99=E7=82=B9=E5=9F=BA=E6=9C=AC=E4=BF=A1?=
=?UTF-8?q?=E6=81=AFController?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Entity/Api/Req/ChargePositionQueryReq.cs | 4 +-
Entity/Api/Req/StationBaseInfoReq.cs | 139 +++++++++++++++++-
Entity/Api/Resp/StationBaseInfoResp.cs | 78 ++++++++--
Repository/BaseRepository.cs | 8 +-
Service/Station/BinInfoService.cs | 4 +-
.../Station/ExStationDayRunResultService.cs | 3 +-
Service/Station/StationParamConst.cs | 2 +-
Service/System/SysConfigService.cs | 16 +-
.../ExStationDayRunResultController.cs | 6 +-
.../Controllers/System/SysConfigController.cs | 127 +++++++++++-----
.../Debug/net6.0/staticwebassets.build.json | 72 ++++++++-
WebStarter/wwwroot/20240523/0.jpg | Bin 0 -> 24825 bytes
WebStarter/wwwroot/20240524/0.jpg | Bin 0 -> 24825 bytes
WebStarter/wwwroot/20240524/0.png | Bin 0 -> 409523 bytes
14 files changed, 383 insertions(+), 76 deletions(-)
create mode 100644 WebStarter/wwwroot/20240523/0.jpg
create mode 100644 WebStarter/wwwroot/20240524/0.jpg
create mode 100644 WebStarter/wwwroot/20240524/0.png
diff --git a/Entity/Api/Req/ChargePositionQueryReq.cs b/Entity/Api/Req/ChargePositionQueryReq.cs
index 6277405..71ee990 100644
--- a/Entity/Api/Req/ChargePositionQueryReq.cs
+++ b/Entity/Api/Req/ChargePositionQueryReq.cs
@@ -15,11 +15,11 @@ namespace Entity.Api.Req
///
/// 仓位编号
///
- public string? BinNum { get; set; }
+ public string No { get; set; } = "";
///
/// 仓位名称
///
- public string? BinName { get; set; }
+ public string Name { get; set; } = "";
}
}
diff --git a/Entity/Api/Req/StationBaseInfoReq.cs b/Entity/Api/Req/StationBaseInfoReq.cs
index 30d5c8a..bc5aec4 100644
--- a/Entity/Api/Req/StationBaseInfoReq.cs
+++ b/Entity/Api/Req/StationBaseInfoReq.cs
@@ -12,12 +12,143 @@ namespace Entity.Api.Req
public class StationBaseInfoReq
{
///
- /// 站控基础信息名称
+ /// 换电站编码
///
- public string BaseStationInfoName { get; set; }
+ public string StationNo { get; set; }
///
- /// 站控基础信息内容
+ /// 换电站名称
///
- public string BaseStationInfoContent { get; set; }
+ public string StationName { get; set; }
+ ///
+ /// 站类型
+ ///
+ public string StationType { get; set; }
+ ///
+ /// 换电站识别号
+ ///
+ public string StationSn { get; set; }
+ ///
+ /// 地理位置
+ ///
+ public string? StationLocation { get; set; }
+ ///
+ /// 经度
+ ///
+ public string? Longitude { get; set; }
+ ///
+ /// 纬度
+ ///
+ public string? Latitude { get; set; }
+ ///
+ /// 区域编号
+ ///
+ public string? AreaCode { get; set; }
+ ///
+ /// 区域名称
+ ///
+ public string? AreaName { get; set; }
+ ///
+ /// 营运开始时间
+ ///
+ public DateTime Operatetionstime { get; set; }
+ ///
+ /// 营运结束时间
+ ///
+ public DateTime Operatetionetime { get; set; }
+ ///
+ /// 服务状态
+ ///
+ public sbyte Sevstatus { get; set; }
+ ///
+ /// 换电站状态: 1:营运中 2:歇业中 3:设备维护状态 4:暂停营业
+ ///
+ public sbyte Status { get; set; }
+ ///
+ /// 投放时间
+ ///
+ public DateTime? LaunchTime { get; set; }
+ ///
+ /// 联系方式
+ ///
+ public string ContactWay { get; set; }
+ ///
+ /// 负责人
+ ///
+ public string Principal { get; set; }
+ ///
+ /// 所属运营企业
+ ///
+ public string? StationCompany { get; set; }
+ ///
+ /// 所属运营企业统一社会信用代码
+ ///
+ public string? SocialCreditCode { get; set; }
+ ///
+ /// 站控主机软件版本号
+ ///
+ public string StationSftVer { get; set; }
+ ///
+ /// 供应商代码
+ ///
+ public string SupplierCode { get; set; }
+ ///
+ /// 换电站基础信息版本号
+ ///
+ public string StationVersion { get; set; }
+ ///
+ /// 换电站硬件版本
+ ///
+ public sbyte? HardwareVersion { get; set; }
+
+ ///
+ /// 总体故障等级
+ ///
+ public int? Faultlevel { get; set; }
+
+ ///
+ /// 加解锁方式
+ ///
+ public sbyte? LockType { get; set; }
+
+ ///
+ /// 进入方式
+ ///
+ public sbyte? AccessType { get; set; }
+ ///
+ /// 举升方式
+ ///
+ public sbyte? RiseType { get; set; }
+ ///
+ /// 创建时间
+ ///
+ public DateTime CreateTime { get; set; }
+ ///
+ /// 修改时间
+ ///
+ public DateTime? ModifyTime { get; set; }
+ ///
+ /// 配电容量(kVA)
+ ///
+ public int? DistributionCapacity { get; set; }
+ ///
+ /// 总功率(kW)
+ ///
+ public int? TotalPower { get; set; }
+ ///
+ /// 省份
+ ///
+ public string StationProvince { get; set; }
+ ///
+ /// 城市
+ ///
+ public string StationCity { get; set; }
+ ///
+ /// 组织机构ID
+ ///
+ public int? OrganizationId { get; set; }
+ ///
+ /// 站控电脑MAC地址
+ ///
+ public string StationMac { get; set; }
}
}
diff --git a/Entity/Api/Resp/StationBaseInfoResp.cs b/Entity/Api/Resp/StationBaseInfoResp.cs
index f77a32b..35f35e4 100644
--- a/Entity/Api/Resp/StationBaseInfoResp.cs
+++ b/Entity/Api/Resp/StationBaseInfoResp.cs
@@ -14,39 +14,39 @@ namespace Entity.Api.Resp
///
/// 换电站编码
///
- public string StationNo { get; set; } = null!;
+ public string StationNo { get; set; }
///
/// 换电站名称
///
- public string StationName { get; set; } = null!;
+ public string StationName { get; set; }
///
/// 站类型
///
- public string StationType { get; set; } = null!;
+ public string StationType { get; set; }
///
/// 换电站识别号
///
- public string StationSn { get; set; } = null!;
+ public string StationSn { get; set; }
///
/// 地理位置
///
- public string StationLocation { get; set; } = null!;
+ public string? StationLocation { get; set; }
///
/// 经度
///
- public string Longitude { get; set; } = null!;
+ public string? Longitude { get; set; }
///
/// 纬度
///
- public string Latitude { get; set; } = null!;
+ public string? Latitude { get; set; }
///
/// 区域编号
///
- public string AreaCode { get; set; } = null!;
+ public string? AreaCode { get; set; }
///
/// 区域名称
///
- public string AreaName { get; set; } = null!;
+ public string? AreaName { get; set; }
///
/// 营运开始时间
///
@@ -60,7 +60,7 @@ namespace Entity.Api.Resp
///
public sbyte Sevstatus { get; set; }
///
- /// 运营状态:1营业状态 2暂停营业 3设备维护 4歇业状态
+ /// 换电站状态: 1:营运中 2:歇业中 3:设备维护状态 4:暂停营业
///
public sbyte Status { get; set; }
///
@@ -78,11 +78,11 @@ namespace Entity.Api.Resp
///
/// 所属运营企业
///
- public string StationCompany { get; set; }
+ public string? StationCompany { get; set; }
///
/// 所属运营企业统一社会信用代码
///
- public string SocialCreditCode { get; set; } = null!;
+ public string? SocialCreditCode { get; set; }
///
/// 站控主机软件版本号
///
@@ -90,7 +90,7 @@ namespace Entity.Api.Resp
///
/// 供应商代码
///
- public string SupplierCode { get; set; } = null!;
+ public string SupplierCode { get; set; }
///
/// 换电站基础信息版本号
///
@@ -100,5 +100,57 @@ namespace Entity.Api.Resp
///
public sbyte? HardwareVersion { get; set; }
+ ///
+ /// 封面图片文件id
+ ///
+ public string Cover { get; set; }
+
+ ///
+ /// 总体故障等级
+ ///
+ public int? Faultlevel { get; set; }
+
+ ///
+ /// 加解锁方式
+ ///
+ public sbyte? LockType { get; set; }
+
+ ///
+ /// 进入方式
+ ///
+ public sbyte? AccessType { get; set; }
+ ///
+ /// 举升方式
+ ///
+ public sbyte? RiseType { get; set; }
+ ///
+ /// 修改时间
+ ///
+ public string? ModifyTime { get; set; }
+ ///
+ /// 配电容量(kVA)
+ ///
+ public int? DistributionCapacity { get; set; }
+ ///
+ /// 总功率(kW)
+ ///
+ public int? TotalPower { get; set; }
+ ///
+ /// 省份
+ ///
+ public string StationProvince { get; set; }
+ ///
+ /// 城市
+ ///
+ public string StationCity { get; set; }
+ ///
+ /// 组织机构ID
+ ///
+ public int? OrganizationId { get; set; }
+ ///
+ /// 站控电脑MAC地址
+ ///
+ public string StationMac { get; set; }
+
}
}
diff --git a/Repository/BaseRepository.cs b/Repository/BaseRepository.cs
index ff4dd1e..019e471 100644
--- a/Repository/BaseRepository.cs
+++ b/Repository/BaseRepository.cs
@@ -632,16 +632,12 @@ public abstract class BaseRepository where T : class, new()
}
- public async Task> QueryByClauseAsync(
- Expression> expression,
- bool isWhere, Expression> expression2,
- Expression> expression3)
+ public async Task> QueryListByClauseAsync(
+ Expression> expression)
{
return await DbBaseClient
.Queryable()
.Where(expression)
- .WhereIF(isWhere, expression2)
- .Select(expression3)
.ToListAsync();
}
diff --git a/Service/Station/BinInfoService.cs b/Service/Station/BinInfoService.cs
index 1e1c144..2edfd3b 100644
--- a/Service/Station/BinInfoService.cs
+++ b/Service/Station/BinInfoService.cs
@@ -37,8 +37,8 @@ namespace Service.Station
{
RefAsync total = 0;
var items = await _binInfoRepository.QueryPageAsync(
- !string.IsNullOrEmpty(input.BinNum), u => u.No == input.BinNum,
- !string.IsNullOrEmpty(input.BinName), u => u.Name == input.BinName,
+ !string.IsNullOrEmpty(input.No), u => u.No == input.No,
+ !string.IsNullOrEmpty(input.Name), u => u.Name == input.Name,
input.Page, input.PageSize, total
);
return SqlSugarPagedExtensions.CreateSqlSugarPagedList(items, total, input.Page, input.PageSize);
diff --git a/Service/Station/ExStationDayRunResultService.cs b/Service/Station/ExStationDayRunResultService.cs
index f12850e..59e86a8 100644
--- a/Service/Station/ExStationDayRunResultService.cs
+++ b/Service/Station/ExStationDayRunResultService.cs
@@ -29,9 +29,8 @@ namespace Service.Station
/// 展示换电站日运行统计结果
///
///
- public async Task> ExStationDaySwapRunRes()
+ public async Task> ExStationDaySwapRunRes(QueryPageModel queryPageModel)
{
- QueryPageModel queryPageModel = new QueryPageModel();
return PageResult.ConvertPage(_exStationDayRunResultRepository.QueryIPageByCause(queryPageModel, null));
}
diff --git a/Service/Station/StationParamConst.cs b/Service/Station/StationParamConst.cs
index ae1604d..6e01836 100644
--- a/Service/Station/StationParamConst.cs
+++ b/Service/Station/StationParamConst.cs
@@ -52,7 +52,7 @@ public class StationParamConst
///
public static readonly string Sevstatus = "Station.Sevstatus";
///
- /// 运营状态:1营业状态 2暂停营业 3设备维护 4歇业状态
+ /// 换电站状态: 1:营运中 2:歇业中 3:设备维护状态 4:暂停营业
///
public static readonly string Status = "Station.Status";
///
diff --git a/Service/System/SysConfigService.cs b/Service/System/SysConfigService.cs
index 534a0b9..5664e14 100644
--- a/Service/System/SysConfigService.cs
+++ b/Service/System/SysConfigService.cs
@@ -67,6 +67,15 @@ namespace Service.System
{
return await _sysConfigRep.QueryByGroupByAsync(u => u.GroupCode, u => u.GroupCode);
}
+ ///
+ /// 获得同一分组下 SysConfig
+ ///
+ ///
+ ///
+ public async Task> GetGroupList(string GroupCode)
+ {
+ return await _sysConfigRep.QueryListByClauseAsync(u => u.GroupCode == GroupCode);
+ }
///
@@ -235,8 +244,11 @@ namespace Service.System
public async Task UploadAvatar([Required] IFormFile file, string path)
{
var sysFile = await _sysFileMgr.HandleUploadFile(file, path, _imageType);
- Set(StationParamConst.Cover,sysFile.Url);
- return sysFile;
+ bool setResult = Set(StationParamConst.Cover, sysFile.Url);
+ if (setResult)
+ return sysFile;
+ else
+ return null;
}
}
diff --git a/WebStarter/Controllers/ExStationDayRunResultController.cs b/WebStarter/Controllers/ExStationDayRunResultController.cs
index ea4ac8d..743bccb 100644
--- a/WebStarter/Controllers/ExStationDayRunResultController.cs
+++ b/WebStarter/Controllers/ExStationDayRunResultController.cs
@@ -25,10 +25,10 @@ namespace WebStarter.Controllers
/// 展示换电站日运行统计结果
///
///
- [HttpGet("GetExStationDaySwapRunRes")]
- public async Task> GetExStationDaySwapRunRes()
+ [HttpPost("GetExStationDaySwapRunRes")]
+ public async Task> GetExStationDaySwapRunRes([FromBody] QueryPageModel queryPageModel)
{
- return await _exStationDayRunResultService.ExStationDaySwapRunRes();
+ return await _exStationDayRunResultService.ExStationDaySwapRunRes(queryPageModel);
}
///
diff --git a/WebStarter/Controllers/System/SysConfigController.cs b/WebStarter/Controllers/System/SysConfigController.cs
index f5944a3..c852e3a 100644
--- a/WebStarter/Controllers/System/SysConfigController.cs
+++ b/WebStarter/Controllers/System/SysConfigController.cs
@@ -5,15 +5,23 @@ using Entity.DbModel.System.SysBaseObject;
using Entity.Dto.Req;
using HybirdFrameworkCore.Entity;
using Microsoft.AspNetCore.Mvc;
+using NetTaste;
+using NewLife.Reflection;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using Org.BouncyCastle.Ocsp;
+using Qiniu.Storage;
using Service.Mgr;
using Service.Station;
using Service.System;
+using SqlSugar;
using System.ComponentModel.DataAnnotations;
+using System.Reflection;
namespace WebStarter.Controllers.System
{
[Produces("application/json")]
[ApiController]
+ [Route("api/[controller]")]
public class SysConfigController
{
private readonly SysConfigService _sysConfigService;
@@ -26,56 +34,56 @@ namespace WebStarter.Controllers.System
}
[HttpPost]
- [Route("/api/sysConfig/page")]
+ [Route("page")]
public async Task> Page(PageConfigReq input)
{
return await _sysConfigService.Page(input);
}
[HttpGet]
- [Route("/api/sysConfig/list")]
+ [Route("list")]
public async Task> GetList()
{
return await _sysConfigService.GetList();
}
[HttpGet]
- [Route("/api/sysConfig/detail")]
+ [Route("detail")]
public async Task GetDetail([FromQuery] ConfigReq input)
{
return await _sysConfigService.GetDetail(input);
}
[HttpGet]
- [Route("/api/sysConfig/groupList")]
+ [Route("groupList")]
public async Task> GetGroupList()
{
return await _sysConfigService.GetGroupList();
}
[HttpPost]
- [Route("/api/sysConfig/add")]
+ [Route("add")]
public async Task Add(AddConfigReq input)
{
await _sysConfigService.AddConfig(input);
}
[HttpPost]
- [Route("/api/sysConfig/update")]
+ [Route("update")]
public async Task Update(UpdateConfigReq input)
{
await _sysConfigService.UpdateConfig(input);
}
[HttpPost]
- [Route("/api/sysConfig/delete")]
+ [Route("delete")]
public async Task Delete(DeleteConfigReq input)
{
await _sysConfigService.DeleteConfig(input);
}
[HttpPost]
- [Route("/api/sysConfig/batchDelete")]
+ [Route("batchDelete")]
public async Task BatchDelete(List input)
{
await _sysConfigService.BatchDeleteConfig(input);
@@ -87,31 +95,49 @@ namespace WebStarter.Controllers.System
[HttpGet("StationBaseInfo")]
public async Task> StationBaseInfo()
{
- StationBaseInfoResp stationBaseInfoResp = new StationBaseInfoResp
+ StationBaseInfoResp stationBaseInfoResp = new StationBaseInfoResp();
+ List sysConfigs = await _sysConfigService.GetGroupList("Station");
+ foreach (var item in sysConfigs)
{
- StationNo = _sysConfigService.Get(StationParamConst.StationNo),
- StationName = _sysConfigService.Get(StationParamConst.StationName),
- StationType = _sysConfigService.Get(StationParamConst.StationType),
- StationSn = _sysConfigService.Get(StationParamConst.StationSn),
- StationLocation = _sysConfigService.Get(StationParamConst.StationLocation),
- Longitude = _sysConfigService.Get(StationParamConst.Longitude),
- Latitude = _sysConfigService.Get(StationParamConst.Latitude),
- AreaCode = _sysConfigService.Get(StationParamConst.AreaCode),
- AreaName = _sysConfigService.Get(StationParamConst.AreaName),
- Operatetionstime = _sysConfigService.Get(StationParamConst.StationNo),
- Operatetionetime = _sysConfigService.Get(StationParamConst.StationNo),
- Sevstatus = Convert.ToSByte(_sysConfigService.Get(StationParamConst.StationNo)),
- Status = Convert.ToSByte(_sysConfigService.Get(StationParamConst.StationNo)),
- LaunchTime = _sysConfigService.Get(StationParamConst.StationNo),
- ContactWay = _sysConfigService.Get(StationParamConst.StationNo),
- Principal = _sysConfigService.Get(StationParamConst.StationNo),
- StationCompany = _sysConfigService.Get(StationParamConst.StationNo),
- SocialCreditCode = _sysConfigService.Get(StationParamConst.StationNo),
- StationSftVer = _sysConfigService.Get(StationParamConst.StationNo),
- SupplierCode = _sysConfigService.Get(StationParamConst.StationNo),
- StationVersion = _sysConfigService.Get(StationParamConst.StationNo),
- HardwareVersion = Convert.ToSByte(_sysConfigService.Get(StationParamConst.StationNo)),
- };
+ switch (item.Code)
+ {
+ case "StationNo": stationBaseInfoResp.StationNo = item.Value; break;
+ case "StationName": stationBaseInfoResp.StationName = item.Value; break;
+ case "StationType": stationBaseInfoResp.StationType = item.Value; break;
+ case "StationSn": stationBaseInfoResp.StationSn = item.Value; break;
+ case "StationLocation": stationBaseInfoResp.StationLocation = item.Value; break;
+ case "Longitude": stationBaseInfoResp.Longitude = item.Value; break;
+ case "Latitude": stationBaseInfoResp.Latitude = item.Value; break;
+ case "AreaCode": stationBaseInfoResp.AreaCode = item.Value; break;
+ case "AreaName": stationBaseInfoResp.AreaName = item.Value; break;
+ case "Operatetionstime": stationBaseInfoResp.Operatetionstime = item.Value; break;
+ case "Sevstatus": stationBaseInfoResp.Sevstatus = Convert.ToSByte(item.Value); break;
+ case "Operatetionetime": stationBaseInfoResp.Operatetionetime = item.Value; break;
+ case "Status": stationBaseInfoResp.Status = Convert.ToSByte(item.Value); break;
+ case "LaunchTime": stationBaseInfoResp.LaunchTime = item.Value; break;
+ case "ContactWay": stationBaseInfoResp.ContactWay = item.Value; break;
+ case "Principal": stationBaseInfoResp.Principal = item.Value; break;
+ case "StationCompany": stationBaseInfoResp.StationCompany = item.Value; break;
+ case "SocialCreditCode": stationBaseInfoResp.SocialCreditCode = item.Value; break;
+ case "StationSftVer": stationBaseInfoResp.StationSftVer = item.Value; break;
+ case "SupplierCode": stationBaseInfoResp.SupplierCode = item.Value; break;
+ case "StationVersion": stationBaseInfoResp.StationVersion = item.Value; break;
+ case "HardwareVersion": stationBaseInfoResp.HardwareVersion = Convert.ToSByte(item.Value); break;
+ case "Cover": stationBaseInfoResp.Cover = item.Value; break;
+ case "Faultlevel": stationBaseInfoResp.Faultlevel = Convert.ToInt32(item.Value); break;
+ case "LockType": stationBaseInfoResp.LockType = Convert.ToSByte(item.Value); break;
+ case "AccessType": stationBaseInfoResp.AccessType = Convert.ToSByte(item.Value); break;
+ case "RiseType": stationBaseInfoResp.RiseType = Convert.ToSByte(item.Value); break;
+ case "ModifyTime": stationBaseInfoResp.ModifyTime = item.Value; break;
+ case "DistributionCapacity": stationBaseInfoResp.DistributionCapacity = Convert.ToInt32(item.Value); break;
+ case "TotalPower": stationBaseInfoResp.TotalPower = Convert.ToInt32(item.Value); break;
+ case "StationProvince": stationBaseInfoResp.StationProvince = item.Value; break;
+ case "StationCity": stationBaseInfoResp.StationCity = item.Value; break;
+ case "OrganizationId": stationBaseInfoResp.OrganizationId = Convert.ToInt32(item.Value); break;
+ case "StationMac": stationBaseInfoResp.StationMac = item.Value; break;
+
+ }
+ }
return Result.Success(stationBaseInfoResp);
}
@@ -119,23 +145,48 @@ namespace WebStarter.Controllers.System
/// 站点编辑
///
[HttpPost("StationInfoEditor")]
- public void StationInfoEditor(List listStationBaseInfoReq)
+ public Result StationInfoEditor([FromBody] StationBaseInfoReq listStationBaseInfoReq)
{
- foreach(var req in listStationBaseInfoReq)
+ bool setResult = false;
+
+ PropertyInfo[] props = typeof(StationBaseInfoReq).GetProperties();
+
+ foreach (PropertyInfo fieldInfo in props)
{
- _sysConfigService.Set(req.BaseStationInfoName, req.BaseStationInfoContent);
- }
+ string newConstConfigInfo = "Station" + "." + fieldInfo.Name;
+ object getContent = fieldInfo.GetValue(listStationBaseInfoReq);
+
+ if (fieldInfo.Name == "ModifyTime")
+ {
+ if (getContent == null)
+ {
+ setResult = _sysConfigService.Set(newConstConfigInfo, DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
+ }
+ else
+ setResult = _sysConfigService.Set(newConstConfigInfo, getContent);
+ }
+ if (getContent != null)
+ setResult = _sysConfigService.Set(newConstConfigInfo, getContent);
+
+
+ }
+ return Result.Success(setResult);
}
+
///
/// 系统基础配置 上传图片
///
///
///
[HttpPost("ImgUpLoad")]
- public async Task ImgUpLoad([Required] IFormFile file)
+ public async Task> ImgUpLoad([Required] IFormFile file)
{
- return await _sysConfigService.UploadAvatar(file, _webHostEnvironment.WebRootPath);
+ SysFile sysFile = await _sysConfigService.UploadAvatar(file, _webHostEnvironment.WebRootPath);
+ if (sysFile != null)
+ return Result.Success(sysFile);
+ else
+ return Result.Fail();
}
}
}
diff --git a/WebStarter/obj/Debug/net6.0/staticwebassets.build.json b/WebStarter/obj/Debug/net6.0/staticwebassets.build.json
index 309b0b1..60f4e29 100644
--- a/WebStarter/obj/Debug/net6.0/staticwebassets.build.json
+++ b/WebStarter/obj/Debug/net6.0/staticwebassets.build.json
@@ -1,11 +1,77 @@
{
"Version": 1,
- "Hash": "7euZr+Skxn+CPwHhQ3H6LZuur9IzJqC+CYg6oY75X7A=",
+ "Hash": "SIbd/wMGDFDb4PVjR2gB4U/BUVTP3CxZPCnoMCemIoA=",
"Source": "WebStarter",
"BasePath": "_content/WebStarter",
"Mode": "Default",
"ManifestType": "Build",
"ReferencedProjectsConfiguration": [],
- "DiscoveryPatterns": [],
- "Assets": []
+ "DiscoveryPatterns": [
+ {
+ "Name": "WebStarter\\wwwroot",
+ "Source": "WebStarter",
+ "ContentRoot": "D:\\AprojectFile\\huanneng\\huannengMain\\WebStarter\\wwwroot\\",
+ "BasePath": "_content/WebStarter",
+ "Pattern": "**"
+ }
+ ],
+ "Assets": [
+ {
+ "Identity": "D:\\AprojectFile\\huanneng\\huannengMain\\WebStarter\\wwwroot\\20240523\\0.jpg",
+ "SourceId": "WebStarter",
+ "SourceType": "Discovered",
+ "ContentRoot": "D:\\AprojectFile\\huanneng\\huannengMain\\WebStarter\\wwwroot\\",
+ "BasePath": "_content/WebStarter",
+ "RelativePath": "20240523/0.jpg",
+ "AssetKind": "All",
+ "AssetMode": "All",
+ "AssetRole": "Primary",
+ "AssetMergeBehavior": "PreferTarget",
+ "AssetMergeSource": "",
+ "RelatedAsset": "",
+ "AssetTraitName": "",
+ "AssetTraitValue": "",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "wwwroot\\20240523\\0.jpg"
+ },
+ {
+ "Identity": "D:\\AprojectFile\\huanneng\\huannengMain\\WebStarter\\wwwroot\\20240524\\0.jpg",
+ "SourceId": "WebStarter",
+ "SourceType": "Discovered",
+ "ContentRoot": "D:\\AprojectFile\\huanneng\\huannengMain\\WebStarter\\wwwroot\\",
+ "BasePath": "_content/WebStarter",
+ "RelativePath": "20240524/0.jpg",
+ "AssetKind": "All",
+ "AssetMode": "All",
+ "AssetRole": "Primary",
+ "AssetMergeBehavior": "PreferTarget",
+ "AssetMergeSource": "",
+ "RelatedAsset": "",
+ "AssetTraitName": "",
+ "AssetTraitValue": "",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "wwwroot\\20240524\\0.jpg"
+ },
+ {
+ "Identity": "D:\\AprojectFile\\huanneng\\huannengMain\\WebStarter\\wwwroot\\20240524\\0.png",
+ "SourceId": "WebStarter",
+ "SourceType": "Discovered",
+ "ContentRoot": "D:\\AprojectFile\\huanneng\\huannengMain\\WebStarter\\wwwroot\\",
+ "BasePath": "_content/WebStarter",
+ "RelativePath": "20240524/0.png",
+ "AssetKind": "All",
+ "AssetMode": "All",
+ "AssetRole": "Primary",
+ "AssetMergeBehavior": "PreferTarget",
+ "AssetMergeSource": "",
+ "RelatedAsset": "",
+ "AssetTraitName": "",
+ "AssetTraitValue": "",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "wwwroot\\20240524\\0.png"
+ }
+ ]
}
\ No newline at end of file
diff --git a/WebStarter/wwwroot/20240523/0.jpg b/WebStarter/wwwroot/20240523/0.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..51afe2533fb26dd96ce0e742786d0adf76a9a843
GIT binary patch
literal 24825
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
C+LyEd
literal 0
HcmV?d00001
diff --git a/WebStarter/wwwroot/20240524/0.jpg b/WebStarter/wwwroot/20240524/0.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..51afe2533fb26dd96ce0e742786d0adf76a9a843
GIT binary patch
literal 24825
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