This commit is contained in:
itcsx committed 2026-09-22 23:09:11 +08:00
1 parent 4adae1bd7d
commit adcf94df4a
17 files changed
+274 -97

No files matched your search

@@ -1,19 +1,21 @@
using CloudBuilder.Core.DatabaseAccessor.Entity;
using Microsoft.AspNetCore.Authorization;
using CloudBuilder.Core.DatabaseAccessor;
using CloudBuilder.Core.DatabaseAccessor.Entity;
using CloudBuilder.Core.Extensions;
using CloudBuilder.Core.Policy;
using CloudBuilder.Core.Service;
using CloudBuilder.Master.Data;
using CloudBuilder.Master.Entity;
using CloudBuilder.Master.Policy;
using CloudBuilder.Master.SearchCriteria;
using CloudBuilder.Master.Data;
using CloudBuilder.Core.Service;
using System.Diagnostics;
using CloudBuilder.Security.Service;
using Microsoft.Extensions.DependencyInjection;
using CloudBuilder.Security.Entity;
using CloudBuilder.Security.Utility;
using CloudBuilder.Security.Policy;
using CloudBuilder.Core.Policy;
using CloudBuilder.Security.Service;
using CloudBuilder.Security.Utility;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.Extensions.DependencyInjection;
using System.Diagnostics;
namespace CloudBuilder.Master.Service
{
public class PublishPhotoService : IPublishPhotoService
@@ -73,13 +75,14 @@ namespace CloudBuilder.Master.Service
data.PublishPhoto = publish;
IRepository<PublishPhotoDetailEntity> repositoryPublishPhotoDetail = repository.GetRepository<IRepository<PublishPhotoDetailEntity>>();
data.Details = repositoryPublishPhotoDetail.DetachedEntities.Where(x => x.PublishName == publish.PublishName).OrderBy(x => x.OrderBy).ToArray();
data.Details = repositoryPublishPhotoDetail.DetachedEntities.Where(x => x.PublishName == publish.PublishName).OrderBy(x => x.OrderBy).Select(x => new PublishPhotoDetailDisplayData(x)).ToArray();
bool isAttached = Debugger.IsAttached;
if (data.Details != null || data.Details.Length > 0)
foreach (var item in data.Details)
{
item.FormattedPic = PackImageScareFileName(isAttached, item.FileName);
item.FileName = PackImageFileName(isAttached, item.FileName);
}
@@ -87,10 +90,20 @@ namespace CloudBuilder.Master.Service
return data;
}
private string PackImageFileName(bool isAttached,string fileName)
private string PackImageScareFileName(bool isAttached, string fileName)
{
return (isAttached ? service.Configuration[AppsettingsPolicy.ApplicationUrl] : "")
+ fileName?.Replace("\\", "/");
var phy = service.Configuration[ServiceSettingsPolicy.PhysicalFileDirectory] ?? "";
var backup = (ServiceSettingsPolicy.GetDmsFileBackupDirectory(service) ?? "").Replace(phy ?? "", "");
var scale = (ServiceSettingsPolicy.GetDmsFileScaleDirectory(service) ?? "").Replace(phy ?? "", "");
return (isAttached ? service.Configuration[AppsettingsPolicy.ApplicationUrl] : "")
+ fileName?.Replace("\\", "/").Replace(backup.Replace("\\", "/"), scale.Replace("\\", "/"));
}
private string PackImageFileName(bool isAttached, string fileName)
{
return (isAttached ? service.Configuration[AppsettingsPolicy.ApplicationUrl] : "")
+ fileName?.Replace("\\", "/");
}
[PermissionOperate(name: MasterPermissionPolicy.PublishPhoto, operate: Operate.Find)]
@@ -336,9 +349,9 @@ namespace CloudBuilder.Master.Service
}
[AllowAnonymous]
public PublishPhotoDetailEntity[] FindPublishPhotoDetailByPublishName(string publishName)
public PublishPhotoDetailDisplayData[] FindPublishPhotoDetailByPublishName(string publishName)
{
List<PublishPhotoDetailEntity> publishPhotoDetails = new List<PublishPhotoDetailEntity>();
List<PublishPhotoDetailDisplayData> publishPhotoDetails = new List<PublishPhotoDetailDisplayData>();
if (string.IsNullOrEmpty(publishName)) return publishPhotoDetails.ToArray();
IRepository<PublishPhotoEntity> repositoryPublishPhoto = repository.GetRepository<IRepository<PublishPhotoEntity>>();
@@ -348,7 +361,7 @@ namespace CloudBuilder.Master.Service
return publishPhotoDetails.ToArray();
IRepository<PublishPhotoDetailEntity> repositoryPublishPhotoDetail = repository.GetRepository<IRepository<PublishPhotoDetailEntity>>();
PublishPhotoDetailEntity[] dtls = repositoryPublishPhotoDetail.DetachedEntities.Where(x => x.PublishName == publishName).OrderBy(x => x.OrderBy).ToArray();
PublishPhotoDetailDisplayData[] dtls = repositoryPublishPhotoDetail.DetachedEntities.Where(x => x.PublishName == publishName).OrderBy(x => x.OrderBy).Select(x => new PublishPhotoDetailDisplayData(x)).ToArray();
if (dtls == null || dtls.Length == 0) return publishPhotoDetails.ToArray();
@@ -356,7 +369,7 @@ namespace CloudBuilder.Master.Service
foreach (var item in dtls)
{
if (item.FileName.ToLower().StartsWith("http")) continue;
item.FormattedPic = PackImageScareFileName(isAttached, item.FileName);
item.FileName = PackImageFileName(isAttached, item.FileName);
}
@@ -364,16 +377,16 @@ namespace CloudBuilder.Master.Service
}
[AllowAnonymous]
public PublishPhotoDetailEntity[] FindPublishPhotoDetail()
public PublishPhotoDetailDisplayData[] FindPublishPhotoDetail()
{
PublishPhotoEntity publishPhoto = repository.DetachedEntities.Where(x => x.OwnerName == service.UserId && x.DefaultIndc == YesNoPolicy.YES).FirstOrDefault();
List<PublishPhotoDetailEntity> publishPhotoDetails = new List<PublishPhotoDetailEntity>();
List<PublishPhotoDetailDisplayData> publishPhotoDetails = new List<PublishPhotoDetailDisplayData>();
if (publishPhoto == null)
return publishPhotoDetails.ToArray();
IRepository<PublishPhotoDetailEntity> repositoryPublishPhotoDetail = repository.GetRepository<IRepository<PublishPhotoDetailEntity>>();
PublishPhotoDetailEntity[] dtls = repositoryPublishPhotoDetail.DetachedEntities.Where(x => x.PublishName == publishPhoto.PublishName).OrderBy(x => x.OrderBy).ToArray();
PublishPhotoDetailDisplayData[] dtls = repositoryPublishPhotoDetail.DetachedEntities.Where(x => x.PublishName == publishPhoto.PublishName).OrderBy(x => x.OrderBy).Select(x => new PublishPhotoDetailDisplayData(x)).ToArray();
if (dtls == null || dtls.Length == 0) return dtls;
@@ -382,6 +395,7 @@ namespace CloudBuilder.Master.Service
{
if (item.FileName.ToLower().StartsWith("http")) continue;
item.FormattedPic = PackImageScareFileName(isAttached, item.FileName);
item.FileName = (isAttached ? service.Configuration[AppsettingsPolicy.ApplicationUrl] : "") + item.FileName;
}
@@ -425,7 +439,7 @@ namespace CloudBuilder.Master.Service
var fileExtension = Path.GetExtension(dmsFile.OrderKey);
var filePathRel = Path.Combine(webRootPath.Substring(1), backup, dmsFile.CreatedBy, fileExtension.Replace(".", ""), "");
var filePath = '/'+filePathRel.Replace(Path.DirectorySeparatorChar, '/');
var filePath = '/' + filePathRel.Replace(Path.DirectorySeparatorChar, '/');
string path = Path.Combine(filePath, dmsFile.OrderKey);
@@ -13,7 +13,7 @@ namespace CloudBuilder.Master.Data
{
public PublishPhotoEntity? PublishPhoto { get; set; }
public PublishPhotoDetailEntity[]? Details { get; set; }
public PublishPhotoDetailDisplayData[]? Details { get; set; }
public PublishPhotoFamilyGroupDisplayData[]? FamilyGroups { get; set; }
}
@@ -0,0 +1,27 @@
using CloudBuilder.Core.Authorization;
using CloudBuilder.Master.Entity;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CloudBuilder.Master.Data
{
[NotMapped]
[TypeScript]
public class PublishPhotoDetailDisplayData : PublishPhotoDetailEntity
{
public PublishPhotoDetailDisplayData()
{
}
public PublishPhotoDetailDisplayData(PublishPhotoDetailEntity entity)
{
CopyFrom(entity);
}
public string? FormattedPic { get; set; }
}
}
@@ -15,7 +15,7 @@ namespace CloudBuilder.Master.Service
void InsertPublishPhotoDetail(PublishData publishData);
void InsertPublishPhotoDetailByFamilyGroup(PublishData publishData);
PublishPhotoDetailEntity[] FindPublishPhotoDetail();
PublishPhotoDetailEntity[] FindPublishPhotoDetailByPublishName(string publishName);
PublishPhotoDetailDisplayData[] FindPublishPhotoDetail();
PublishPhotoDetailDisplayData[] FindPublishPhotoDetailByPublishName(string publishName);
}
}
@@ -47,13 +47,13 @@ return Task.Run(() => serviceRequest.PostAsJsonAsync<PublishPhotoData,PublishP
{
Task.Run(() => serviceRequest.PostAsync("/PublishPhoto/Delete?key=" + key.ToString())).GetAwaiter().GetResult(); }
public PublishPhotoDetailEntity[] FindPublishPhotoDetailByPublishName(string publishName)
public PublishPhotoDetailDisplayData[] FindPublishPhotoDetailByPublishName(string publishName)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<PublishPhotoDetailEntity[]>("/PublishPhoto/FindPublishPhotoDetailByPublishName?publishName=" + publishName.ToString())).GetAwaiter().GetResult(); }
return Task.Run(() => serviceRequest.PostAsJsonAsync<PublishPhotoDetailDisplayData[]>("/PublishPhoto/FindPublishPhotoDetailByPublishName?publishName=" + publishName.ToString())).GetAwaiter().GetResult(); }
public PublishPhotoDetailEntity[] FindPublishPhotoDetail()
public PublishPhotoDetailDisplayData[] FindPublishPhotoDetail()
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<PublishPhotoDetailEntity[]> ("/PublishPhoto/FindPublishPhotoDetail")).GetAwaiter().GetResult(); }
return Task.Run(() => serviceRequest.PostAsJsonAsync<PublishPhotoDetailDisplayData[]> ("/PublishPhoto/FindPublishPhotoDetail")).GetAwaiter().GetResult(); }
public void InsertPublishPhotoDetail(PublishData publishData)
{
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<NameOfLastUsedPublishProfile>D:\Docker\CloudBuilder\CloudBuilder.Web.Entry\Properties\PublishProfiles\FolderProfile4.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>D:\Docker\CloudBuilder\CloudBuilder.Web.Entry\Properties\PublishProfiles\FolderProfile3.pubxml</NameOfLastUsedPublishProfile>
<ActiveDebugProfile>http</ActiveDebugProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -3,7 +3,7 @@
<Project>
<PropertyGroup>
<_PublishTargetUrl>C:\inetpub\wwwroot\dockwebapi2</_PublishTargetUrl>
<History>True|2026-09-22T03:19:19.6087109Z||;True|2026-09-22T11:09:24.9165065+08:00||;True|2026-09-21T22:40:07.1232044+08:00||;True|2026-09-21T22:35:06.9446571+08:00||;True|2026-09-21T22:27:42.1146825+08:00||;False|2026-09-21T22:27:17.6066573+08:00||;True|2026-09-21T21:01:22.8888913+08:00||;True|2026-09-21T19:15:03.4753747+08:00||;True|2026-09-21T18:08:30.0866986+08:00||;True|2026-09-21T16:51:19.8137872+08:00||;True|2026-09-21T16:30:01.0950896+08:00||;True|2026-09-21T15:09:00.2326737+08:00||;True|2026-09-21T14:47:09.6120256+08:00||;True|2026-09-21T14:16:35.3194409+08:00||;True|2026-09-21T13:54:58.2829712+08:00||;True|2026-09-21T13:36:45.3134499+08:00||;True|2026-09-19T09:48:52.0085130+08:00||;False|2026-09-19T09:47:56.1658214+08:00||;True|2026-09-17T18:50:15.9493380+08:00||;True|2026-09-17T18:11:11.5364547+08:00||;True|2026-09-17T18:07:27.7830758+08:00||;True|2026-09-17T17:58:16.5798560+08:00||;True|2026-09-17T15:37:30.9025614+08:00||;True|2026-09-17T15:25:46.9116292+08:00||;True|2026-09-17T15:05:18.6592403+08:00||;True|2026-09-17T14:57:28.7997437+08:00||;True|2026-09-17T14:36:00.6339386+08:00||;True|2026-09-17T13:56:43.2376873+08:00||;True|2026-09-16T13:56:51.8724546+08:00||;True|2026-09-15T20:44:46.6559899+08:00||;True|2026-09-13T19:02:59.5654245+08:00||;True|2026-09-10T09:14:56.2914193+08:00||;True|2026-09-09T16:40:16.6461154+08:00||;True|2026-09-08T13:55:23.1502435+08:00||;True|2026-09-08T08:04:53.4279263+08:00||;True|2026-09-07T08:48:17.4682304+08:00||;True|2026-09-04T14:39:08.7878670+08:00||;True|2026-09-04T14:35:48.2937877+08:00||;True|2026-09-04T11:45:16.1372876+08:00||;True|2026-09-04T11:42:59.9356436+08:00||;True|2026-09-03T16:05:52.5270232+08:00||;True|2026-09-03T14:52:56.8559144+08:00||;True|2026-09-02T11:08:23.8720038+08:00||;True|2026-09-02T10:58:16.8081797+08:00||;True|2026-08-26T13:34:12.3805892+08:00||;True|2026-08-25T08:31:30.7787234+08:00||;True|2026-08-20T13:10:46.4725468+08:00||;True|2026-08-20T13:10:28.3142576+08:00||;True|2026-08-19T16:10:27.3362887+08:00||;True|2026-08-19T16:01:12.6234971+08:00||;True|2026-08-19T15:42:46.6576265+08:00||;True|2026-08-19T13:39:59.9363522+08:00||;True|2026-08-19T13:36:53.0379313+08:00||;True|2026-08-19T13:31:36.0841398+08:00||;True|2026-08-19T11:44:37.5319626+08:00||;True|2026-08-19T09:36:45.6000047+08:00||;True|2026-08-19T09:34:36.8468631+08:00||;True|2026-08-19T08:35:41.2202300+08:00||;True|2026-08-18T16:20:59.0170916+08:00||;</History>
<History>True|2026-09-22T15:03:13.6509491Z||;True|2026-09-22T16:07:15.9177123+08:00||;True|2026-09-22T11:19:19.6087109+08:00||;True|2026-09-22T11:09:24.9165065+08:00||;True|2026-09-21T22:40:07.1232044+08:00||;True|2026-09-21T22:35:06.9446571+08:00||;True|2026-09-21T22:27:42.1146825+08:00||;False|2026-09-21T22:27:17.6066573+08:00||;True|2026-09-21T21:01:22.8888913+08:00||;True|2026-09-21T19:15:03.4753747+08:00||;True|2026-09-21T18:08:30.0866986+08:00||;True|2026-09-21T16:51:19.8137872+08:00||;True|2026-09-21T16:30:01.0950896+08:00||;True|2026-09-21T15:09:00.2326737+08:00||;True|2026-09-21T14:47:09.6120256+08:00||;True|2026-09-21T14:16:35.3194409+08:00||;True|2026-09-21T13:54:58.2829712+08:00||;True|2026-09-21T13:36:45.3134499+08:00||;True|2026-09-19T09:48:52.0085130+08:00||;False|2026-09-19T09:47:56.1658214+08:00||;True|2026-09-17T18:50:15.9493380+08:00||;True|2026-09-17T18:11:11.5364547+08:00||;True|2026-09-17T18:07:27.7830758+08:00||;True|2026-09-17T17:58:16.5798560+08:00||;True|2026-09-17T15:37:30.9025614+08:00||;True|2026-09-17T15:25:46.9116292+08:00||;True|2026-09-17T15:05:18.6592403+08:00||;True|2026-09-17T14:57:28.7997437+08:00||;True|2026-09-17T14:36:00.6339386+08:00||;True|2026-09-17T13:56:43.2376873+08:00||;True|2026-09-16T13:56:51.8724546+08:00||;True|2026-09-15T20:44:46.6559899+08:00||;True|2026-09-13T19:02:59.5654245+08:00||;True|2026-09-10T09:14:56.2914193+08:00||;True|2026-09-09T16:40:16.6461154+08:00||;True|2026-09-08T13:55:23.1502435+08:00||;True|2026-09-08T08:04:53.4279263+08:00||;True|2026-09-07T08:48:17.4682304+08:00||;True|2026-09-04T14:39:08.7878670+08:00||;True|2026-09-04T14:35:48.2937877+08:00||;True|2026-09-04T11:45:16.1372876+08:00||;True|2026-09-04T11:42:59.9356436+08:00||;True|2026-09-03T16:05:52.5270232+08:00||;True|2026-09-03T14:52:56.8559144+08:00||;True|2026-09-02T11:08:23.8720038+08:00||;True|2026-09-02T10:58:16.8081797+08:00||;True|2026-08-26T13:34:12.3805892+08:00||;True|2026-08-25T08:31:30.7787234+08:00||;True|2026-08-20T13:10:46.4725468+08:00||;True|2026-08-20T13:10:28.3142576+08:00||;True|2026-08-19T16:10:27.3362887+08:00||;True|2026-08-19T16:01:12.6234971+08:00||;True|2026-08-19T15:42:46.6576265+08:00||;True|2026-08-19T13:39:59.9363522+08:00||;True|2026-08-19T13:36:53.0379313+08:00||;True|2026-08-19T13:31:36.0841398+08:00||;True|2026-08-19T11:44:37.5319626+08:00||;True|2026-08-19T09:36:45.6000047+08:00||;True|2026-08-19T09:34:36.8468631+08:00||;True|2026-08-19T08:35:41.2202300+08:00||;True|2026-08-18T16:20:59.0170916+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>
@@ -3,7 +3,7 @@
<Project>
<PropertyGroup>
<_PublishTargetUrl>C:\inetpub\wwwroot\windows</_PublishTargetUrl>
<History>True|2026-09-22T07:18:53.4935889Z||;True|2026-09-22T11:24:43.8593406+08:00||;True|2026-09-19T09:55:09.0653660+08:00||;True|2026-09-19T09:53:13.8933944+08:00||;</History>
<History>True|2026-09-22T15:02:08.0902556Z||;True|2026-09-22T16:47:49.2530282+08:00||;True|2026-09-22T15:18:53.4935889+08:00||;True|2026-09-22T11:24:43.8593406+08:00||;True|2026-09-19T09:55:09.0653660+08:00||;True|2026-09-19T09:53:13.8933944+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>