|
@@ -4,19 +4,16 @@ using IES.ExamServer.Models;
|
|
|
using Microsoft.Azure.Cosmos;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
+using System.IO;
|
|
|
using System.Linq;
|
|
|
using System.Net.Http;
|
|
|
-using System.Reflection.Metadata.Ecma335;
|
|
|
using System.Text;
|
|
|
using System.Text.Json;
|
|
|
-using System.Text.Json.Nodes;
|
|
|
using System.Threading.Tasks;
|
|
|
using TEAMModelOS.SDK.DI;
|
|
|
using TEAMModelOS.SDK.Extension;
|
|
|
using TEAMModelOS.SDK.Models.Cosmos;
|
|
|
using TEAMModelOS.SDK.Models.Cosmos.Normal;
|
|
|
-using TEAMModelOS.SDK.Models.Cosmos.Student;
|
|
|
-using TEAMModelOS.SDK.Models.Dtos;
|
|
|
|
|
|
|
|
|
namespace TEAMModelOS.SDK.Models.Service
|
|
@@ -381,13 +378,21 @@ namespace TEAMModelOS.SDK.Models.Service
|
|
|
}
|
|
|
var hash = blobItem.Properties.ContentHash;
|
|
|
var path = blobItem.Name;
|
|
|
+ var ext = Path.GetExtension(path);
|
|
|
+ string fileName = Path.GetFileName(path);
|
|
|
+ if (ext.ToUpper().Equals(ext))
|
|
|
+ {
|
|
|
+ string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path);
|
|
|
+ fileName= $"{fileNameWithoutExtension!}_1{ext}";
|
|
|
+ }
|
|
|
var size = blobItem.Properties.ContentLength;
|
|
|
blobs.Add(new BlobHashInfo
|
|
|
{
|
|
|
hash = Md5Hash.GetbyteToString(hash),
|
|
|
- last = lastModified.HasValue ? lastModified.Value.ToUnixTimeMilliseconds() : 0,
|
|
|
+ last = lastModified.HasValue ? lastModified.Value.ToUnixTimeMilliseconds() : 0 ,
|
|
|
path = path,
|
|
|
- size = size.HasValue ? size.Value : 0
|
|
|
+ size = size.HasValue ? size.Value : 0,
|
|
|
+ local=$"package/{evaluationSyncInfo.id}/papers{paper.paperId}/{fileName}"
|
|
|
});
|
|
|
};
|
|
|
evaluationPaper = evaluationExam.papers.Find(x => x.paperId.Equals(paper.paperId));
|
|
@@ -519,6 +524,22 @@ namespace TEAMModelOS.SDK.Models.Service
|
|
|
string evaluationSyncInfoSJson = evaluationSyncInfo.ToJsonString();
|
|
|
dataSize+= Encoding.UTF8.GetByteCount(evaluationSyncInfoSJson);
|
|
|
evaluationClient.dataSize = dataSize;
|
|
|
+ //重组blob路径,使之适配局域网端读取。
|
|
|
+ evaluationClient.subjects.ForEach(x => {
|
|
|
+ x.papers.ForEach(y => {
|
|
|
+ y.blob=$"package/{evaluationClient.id}/papers{y.paperId}";
|
|
|
+ });
|
|
|
+ });
|
|
|
+ evaluationExams.ForEach(x => {
|
|
|
+ x.papers.ForEach(y => {
|
|
|
+ y.blob=$"package/{evaluationClient.id}/papers{y.paperId}";
|
|
|
+ });
|
|
|
+ });
|
|
|
+ evaluationSyncInfo.subjects.ForEach(x => {
|
|
|
+ x.papers.ForEach(y => {
|
|
|
+ y.blob=$"package/{evaluationClient.id}/papers{y.paperId}";
|
|
|
+ });
|
|
|
+ });
|
|
|
await azureStorage.GetBlobContainerClient(ownerId).UploadFileByContainer(sourceJson, $"package/{id}/data", "source.json");
|
|
|
await azureStorage.GetBlobContainerClient(ownerId).UploadFileByContainer(groupListJson, $"package/{id}/data", "grouplist.json");
|
|
|
await azureStorage.GetBlobContainerClient(ownerId).UploadFileByContainer(new { evaluationClient, evaluationExams }.ToJsonString(), $"package/{id}/data", "evaluation.json");
|