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 0000000..51afe25 Binary files /dev/null and b/WebStarter/wwwroot/20240523/0.jpg differ diff --git a/WebStarter/wwwroot/20240524/0.jpg b/WebStarter/wwwroot/20240524/0.jpg new file mode 100644 index 0000000..51afe25 Binary files /dev/null and b/WebStarter/wwwroot/20240524/0.jpg differ diff --git a/WebStarter/wwwroot/20240524/0.png b/WebStarter/wwwroot/20240524/0.png new file mode 100644 index 0000000..10e2f9f Binary files /dev/null and b/WebStarter/wwwroot/20240524/0.png differ