Browse Source

修改删除Blob接口

CrazyIter_Bin 3 years ago
parent
commit
8bfb88a4cb
43 changed files with 204 additions and 287 deletions
  1. 1 1
      TEAMModelFunction/ActivityHttpTrigger.cs
  2. 1 1
      TEAMModelFunction/CourseServiceBus.cs
  3. 32 13
      TEAMModelFunction/MonitorServicesBus.cs
  4. 1 1
      TEAMModelFunction/TriggerCorrect.cs
  5. 1 1
      TEAMModelFunction/TriggerExam.cs
  6. 1 1
      TEAMModelFunction/TriggerSurvey.cs
  7. 1 1
      TEAMModelFunction/TriggerVote.cs
  8. 1 1
      TEAMModelOS.SDK/DI/AzureCosmos/AzureCosmosExtensions.cs
  9. 1 1
      TEAMModelOS.SDK/DI/AzureCosmos/Inner/SQLHelper.cs
  10. 1 1
      TEAMModelOS.SDK/DI/AzureServiceBus/AzureServiceBusExtensions.cs
  11. 49 44
      TEAMModelOS.SDK/DI/AzureStorage/AzureStorageBlobExtensions.cs
  12. 1 1
      TEAMModelOS.SDK/DI/AzureStorage/AzureStorageTableExtensions.cs
  13. 1 1
      TEAMModelOS.SDK/Helper/Common/CollectionHelper/CollectionHelper.cs
  14. 1 1
      TEAMModelOS.SDK/Helper/Common/CollectionHelper/ObjectToDictionaryHelper.cs
  15. 1 1
      TEAMModelOS.SDK/Helper/Common/JsonHelper/JsonPath/JsonPathContext.cs
  16. 1 1
      TEAMModelOS.SDK/Models/Service/FixDataService.cs
  17. 1 1
      TEAMModelOS.SDK/Models/Service/StuListService.cs
  18. 1 1
      TEAMModelOS.SDK/Models/Service/TriggerStuActivity.cs
  19. 1 1
      TEAMModelOS/Controllers/Analysis/AchievementController.cs
  20. 1 1
      TEAMModelOS/Controllers/Analysis/AnalysisController.cs
  21. 1 1
      TEAMModelOS/Controllers/Analysis/ChangeController.cs
  22. 1 1
      TEAMModelOS/Controllers/Client/HiScanController.cs
  23. 2 2
      TEAMModelOS/Controllers/Common/ExamController.cs
  24. 1 1
      TEAMModelOS/Controllers/Common/HomeworkController.cs
  25. 1 1
      TEAMModelOS/Controllers/Common/SheetConfigController.cs
  26. 2 2
      TEAMModelOS/Controllers/Common/SurveyController.cs
  27. 2 2
      TEAMModelOS/Controllers/Common/VoteController.cs
  28. 73 132
      TEAMModelOS/Controllers/Core/BlobController.cs
  29. 2 2
      TEAMModelOS/Controllers/Core/ImportController.cs
  30. 2 2
      TEAMModelOS/Controllers/Item/ItemController.cs
  31. 1 1
      TEAMModelOS/Controllers/Knowledge/KnowledgesController.cs
  32. 1 1
      TEAMModelOS/Controllers/Pager/PaperController.cs
  33. 1 1
      TEAMModelOS/Controllers/School/CorrectController.cs
  34. 1 1
      TEAMModelOS/Controllers/School/CourseController.cs
  35. 1 1
      TEAMModelOS/Controllers/School/SchoolTeacherController.cs
  36. 1 1
      TEAMModelOS/Controllers/Syllabus/SyllabusController.cs
  37. 1 1
      TEAMModelOS/Controllers/Syllabus/VolumeController.cs
  38. 1 1
      TEAMModelOS/Controllers/Teacher/CommentController.cs
  39. 1 1
      TEAMModelOS/Controllers/Teacher/TeacherCommonController.cs
  40. 1 1
      TEAMModelOS/Controllers/XTest/FixDataController.cs
  41. 4 52
      TEAMModelOS/Controllers/XTest/TestController.cs
  42. 1 1
      TEAMModelOS/Services/Analysis/AchievementService.cs
  43. 3 3
      TEAMModelOS/TEAMModelOS.csproj

+ 1 - 1
TEAMModelFunction/ActivityHttpTrigger.cs

@@ -12,7 +12,7 @@ using System.Text.Json;
 using System.Collections.Generic;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models.Cosmos;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
 using System.Linq;

+ 1 - 1
TEAMModelFunction/CourseServiceBus.cs

@@ -7,7 +7,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
 

+ 32 - 13
TEAMModelFunction/MonitorServicesBus.cs

@@ -11,7 +11,7 @@ using Microsoft.Extensions.Logging;
 using StackExchange.Redis;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
@@ -159,21 +159,40 @@ namespace TEAMModelFunction
                     List<Dictionary<string, double?>> list = new List<Dictionary<string, double?>>();
                     string[] uls = System.Web.HttpUtility.UrlDecode($"{root}", Encoding.UTF8).Split("/");
                     string u = !string.IsNullOrEmpty(uls[0]) ? uls[0] : uls[1];
-                    var client = _azureStorage.GetBlobContainerClient($"{name}");
-                    var size = await client.GetBlobsSize(u);
-                    await _azureRedis.GetRedisClient(8).SortedSetRemoveAsync($"Blob:Catalog:{name}", u);
-                    await _azureRedis.GetRedisClient(8).SortedSetIncrementAsync($"Blob:Catalog:{name}", u, size.HasValue ? size.Value : 0);
-                    var scores = await _azureRedis.GetRedisClient(8).SortedSetRangeByRankWithScoresAsync($"Blob:Catalog:{name}");
-                    double blobsize = 0;
-                    if (scores != default && scores != null)
-                    {
-                        foreach (var score in scores)
+                    string lockKey = $"Blob:Lock:{name}:{u}";
+                    bool exist= await _azureRedis.GetRedisClient(8).KeyExistsAsync(lockKey);
+                    long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
+                    if (!exist)
+                    {   ///key不存在则正常进行计算
+                        try
+                        {
+                            TimeSpan timeSpan = new TimeSpan(DateTimeOffset.UtcNow.AddMinutes(5).Ticks);
+                            await _azureRedis.GetRedisClient(8).StringSetAsync(lockKey, now, expiry: timeSpan);
+                            var client = _azureStorage.GetBlobContainerClient($"{name}");
+                            var size = await client.GetBlobsSize(u);
+                            await _azureRedis.GetRedisClient(8).SortedSetRemoveAsync($"Blob:Catalog:{name}", u);
+                            await _azureRedis.GetRedisClient(8).SortedSetIncrementAsync($"Blob:Catalog:{name}", u, size.HasValue ? size.Value : 0);
+                            var scores = await _azureRedis.GetRedisClient(8).SortedSetRangeByRankWithScoresAsync($"Blob:Catalog:{name}");
+                            double blobsize = 0;
+                            if (scores != default && scores != null)
+                            {
+                                foreach (var score in scores)
+                                {
+                                    blobsize = blobsize + score.Score;
+                                    list.Add(new Dictionary<string, double?>() { { score.Element.ToString(), score.Score } });
+                                }
+                            }
+                            await _azureRedis.GetRedisClient(8).HashSetAsync($"Blob:Record", new RedisValue($"{name}"), new RedisValue($"{blobsize}"));
+                        }
+                        catch (Exception ex)
                         {
-                            blobsize = blobsize + score.Score;
-                            list.Add(new Dictionary<string, double?>() { { score.Element.ToString(), score.Score } });
+
                         }
                     }
-                    await _azureRedis.GetRedisClient(8).HashSetAsync($"Blob:Record", new RedisValue($"{name}"), new RedisValue($"{blobsize}"));
+                    else { 
+                        ///key存在则,则刷新key对应的值
+                    }
+                   
 
                     //await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Blob() 容器:{name}使用:{u},文件分类:{list.ToJsonString()}",
                     //    GroupNames.成都开发測試群組);

+ 1 - 1
TEAMModelFunction/TriggerCorrect.cs

@@ -7,7 +7,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 1 - 1
TEAMModelFunction/TriggerExam.cs

@@ -9,7 +9,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 1 - 1
TEAMModelFunction/TriggerSurvey.cs

@@ -11,7 +11,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 1 - 1
TEAMModelFunction/TriggerVote.cs

@@ -9,7 +9,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 1 - 1
TEAMModelOS.SDK/DI/AzureCosmos/AzureCosmosExtensions.cs

@@ -16,7 +16,7 @@ using Azure.Cosmos;
 using System.Text.Json;
 using System.Net;
 using System.Linq.Expressions;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.JsonHelper;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;

+ 1 - 1
TEAMModelOS.SDK/DI/AzureCosmos/Inner/SQLHelper.cs

@@ -6,7 +6,7 @@ using System.Linq;
 using System.Text;
 using System.Text.Json;
 using System.Text.RegularExpressions;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 namespace TEAMModelOS.SDK.DI.AzureCosmos.Inner
 {
    public class SQLHelper

+ 1 - 1
TEAMModelOS.SDK/DI/AzureServiceBus/AzureServiceBusExtensions.cs

@@ -8,7 +8,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Linq;
 using Azure.Messaging.ServiceBus;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Extension;
 
 namespace TEAMModelOS.SDK.DI

+ 49 - 44
TEAMModelOS.SDK/DI/AzureStorage/AzureStorageBlobExtensions.cs

@@ -13,6 +13,8 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using Azure.Core;
+using Azure;
+using TEAMModelOS.SDK;
 
 namespace TEAMModelOS.SDK.DI
 {
@@ -125,59 +127,49 @@ namespace TEAMModelOS.SDK.DI
             }
         }
         /// <summary>        
-        /// 批量刪除Blobs
+        ///prefixs多个文件或文件夹路径删除
+        ///prefixs 或者按前缀文件夹删除
+        /// 
         /// </summary>      
         /// <param name="prefix">篩選開頭名稱,Null代表容器</param>        
-        public static async Task<bool> DelectBlobs(this BlobServiceClient client, string blobContainerName, List<Uri> blobs = null)
+        public static async Task<bool> DelectBlobs(this BlobServiceClient client, string blobContainerName, List<string> prefixs )
         {
-            
+            if (!prefixs.IsNotEmpty()) return false;
             try
             {
                 BlobContainerClient bcc = client.GetBlobContainerClient(blobContainerName);
                 BlobBatchClient bbc = client.GetBlobBatchClient();
-                if (blobs.Count <= 256)
-                {
-                    await bbc.DeleteBlobsAsync(blobs);
-                    return true;
-                }
-                else
-                {
-                    int pages = (blobs.Count + 255) / 256; //256是批量操作最大值,pages = (total + max -1) / max;
-                    for (int i = 0; i < pages; i++)
-                    {
-                        List<Uri> lists = blobs.Skip((i) * 256).Take(256).ToList();
-                        await bbc.DeleteBlobsAsync(lists);
+                List<Uri> blobs = new List<Uri>();
+                foreach (var prefix in prefixs) {
+                    string px = prefix;
+                    if (prefix.StartsWith("/")) {
+                        px= prefix.Substring(1);
                     }
-                    return true;
+                    await foreach (var item in bcc.GetBlobsAsync(BlobTraits.None, BlobStates.None, px))
+                    {
+                        var urib = new UriBuilder(bcc.Uri);
+                        urib.Path = Path.Combine(urib.Path, item.Name);
+                        blobs.Add(urib.Uri);
+                    };
                 }
-            }
-            catch
-            {
-                return false;
-            }
-        }
-        /// <summary>        
-        /// 批量刪除Blobs
-        /// </summary>      
-        /// <param name="prefix">篩選開頭名稱,Null代表容器</param>        
-        public static async Task<bool> DelectBlobs(this BlobServiceClient client, string blobContainerName, string prefix = null)
-        {
-            if (string.IsNullOrWhiteSpace(prefix)) return false;
-            try
-            {
-                BlobContainerClient bcc = client.GetBlobContainerClient(blobContainerName);
-                BlobBatchClient bbc = client.GetBlobBatchClient();
-                
-                List<Uri> blobs = new List<Uri>();
-                await foreach (var item in bcc.GetBlobsAsync(BlobTraits.None, BlobStates.None, prefix))
-                {
-                    var urib = new UriBuilder(bcc.Uri);
-                    urib.Path += "/" + item.Name;
-                    blobs.Add(urib.Uri);
-                };
                 if (blobs.Count <= 256)
                 {
-                    await bbc.DeleteBlobsAsync(blobs);
+                    if (blobs.Count > 0) {
+                        try { Azure.Response[] ass = await bbc.DeleteBlobsAsync(blobs); }
+                        catch (AggregateException ex)
+                        {
+                            //删除多个时会,如果其中一个文件不存在 或者其中一个删除失败会引发该异常
+                            return true;
+                        }
+                        catch (RequestFailedException ex)
+                        {
+                            return true;
+                        }
+                        catch (Exception ex)
+                        {
+                            return true;
+                        }
+                    }
                     return true;
                 }
                 else
@@ -186,12 +178,25 @@ namespace TEAMModelOS.SDK.DI
                     for (int i = 0; i < pages; i++)
                     {
                         List<Uri> lists = blobs.Skip((i) * 256).Take(256).ToList();
-                        await bbc.DeleteBlobsAsync(lists);
+                        try { Azure.Response[] ass = await bbc.DeleteBlobsAsync(lists); }
+                        catch (AggregateException ex)
+                        {
+                            //删除多个时会,如果其中一个文件不存在 或者其中一个删除失败会引发该异常
+                            return true;
+                        }
+                        catch (RequestFailedException ex)
+                        {
+                            return true;
+                        }
+                        catch (Exception ex)
+                        {
+                            return true;
+                        }
                     }
                     return true;
                 }
             }
-            catch
+            catch(Exception ex )
             {
                 return false;
             }

+ 1 - 1
TEAMModelOS.SDK/DI/AzureStorage/AzureStorageTableExtensions.cs

@@ -7,7 +7,7 @@ using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Linq;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using System.Reflection;
 
 namespace TEAMModelOS.SDK.DI

+ 1 - 1
TEAMModelOS.SDK/Helper/Common/CollectionHelper/CollectionHelper.cs

@@ -4,7 +4,7 @@ using System.Collections.Generic;
 
 using System.Text;
 
-namespace TEAMModelOS.SDK.Helper.Common.CollectionHelper
+namespace TEAMModelOS.SDK
 {
     public static class CollectionHelper
     {

+ 1 - 1
TEAMModelOS.SDK/Helper/Common/CollectionHelper/ObjectToDictionaryHelper.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.ComponentModel;
 using System.Text;
 
-namespace TEAMModelOS.SDK.Helper.Common.CollectionHelper
+namespace TEAMModelOS.SDK
 {
     public static class ObjectToDictionaryHelper
     {

+ 1 - 1
TEAMModelOS.SDK/Helper/Common/JsonHelper/JsonPath/JsonPathContext.cs

@@ -7,7 +7,7 @@ using System.Linq;
 using System.Text;
 using System.Text.Json;
 using System.Text.RegularExpressions;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 
 namespace TEAMModelOS.SDK.Helper.Common.JsonHelper.JsonPath
 {

+ 1 - 1
TEAMModelOS.SDK/Models/Service/FixDataService.cs

@@ -9,7 +9,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 
 namespace TEAMModelOS.SDK.Models.Service
 {

+ 1 - 1
TEAMModelOS.SDK/Models/Service/StuListService.cs

@@ -7,7 +7,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
 

+ 1 - 1
TEAMModelOS.SDK/Models/Service/TriggerStuActivity.cs

@@ -9,7 +9,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
 

+ 1 - 1
TEAMModelOS/Controllers/Analysis/AchievementController.cs

@@ -10,7 +10,7 @@ using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.SDK.Helper.Security.ShaHash;
 using TEAMModelOS.Services.Analysis;

+ 1 - 1
TEAMModelOS/Controllers/Analysis/AnalysisController.cs

@@ -10,7 +10,7 @@ using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.SDK.Helper.Security.ShaHash;
 using TEAMModelOS.Services.Analysis;

+ 1 - 1
TEAMModelOS/Controllers/Analysis/ChangeController.cs

@@ -11,7 +11,7 @@ using System.Threading.Tasks;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.DateTimeHelper;
 using TEAMModelOS.SDK.Helper.Common.JsonHelper;
 using TEAMModelOS.SDK.Helper.Common.JsonHelper.JsonPath;

+ 1 - 1
TEAMModelOS/Controllers/Client/HiScanController.cs

@@ -15,7 +15,7 @@ using TEAMModelOS.SDK.Context.Constant.Common;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.Models;
 using Microsoft.Extensions.Options;

+ 2 - 2
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -18,7 +18,7 @@ using TEAMModelOS.SDK.Context.Constant.Common;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
 using TEAMModelOS.SDK.Models.Table;
@@ -289,7 +289,7 @@ namespace TEAMModelOS.Controllers
                 //string school_code = code.ToString().Substring(typeof(ExamClassResult).Name.Length + 1);
                 var response = await client.GetContainer("TEAMModelOS", "Common").DeleteItemStreamAsync(id.ToString(), new PartitionKey($"Exam-{code}"));
                 //删除blob 相关资料
-                await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString(), $"exam/{id}");
+                await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString(),new List<string> { $"exam/{id}" });
                 //通知评测删除信息
                 var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "delete", root = $"exam/{id}", name = $"{code}" }.ToJsonString());
                 messageBlob.ApplicationProperties.Add("name", "BlobRoot");

+ 1 - 1
TEAMModelOS/Controllers/Common/HomeworkController.cs

@@ -14,7 +14,7 @@ using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Context.Constant.Common;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 
 namespace TEAMModelOS.Controllers.Learn

+ 1 - 1
TEAMModelOS/Controllers/Common/SheetConfigController.cs

@@ -15,7 +15,7 @@ using TEAMModelOS.SDK.Context.Constant.Common;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.Models;
 using Microsoft.Extensions.Options;

+ 2 - 2
TEAMModelOS/Controllers/Common/SurveyController.cs

@@ -14,7 +14,7 @@ using TEAMModelOS.SDK.Context.Constant.Common;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.Models;
 using Microsoft.Extensions.Options;
 using TEAMModelOS.Filter;
@@ -347,7 +347,7 @@ namespace TEAMModelOS.Controllers
                     _azureRedis.GetRedisClient(8).KeyDelete($"Survey:Record:{survey.id}");
                     _azureRedis.GetRedisClient(8).KeyDelete($"Survey:Submit:{survey.id}");
                     //删除blob 相关资料
-                    await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString(), $"survey/{id}");
+                    await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString(),new List<string> { $"survey/{id}" });
                     //通知删除信息
                     var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "delete", root = $"survey/{id}", name = $"{code}" }.ToJsonString());
                     messageBlob.ApplicationProperties.Add("name", "BlobRoot");

+ 2 - 2
TEAMModelOS/Controllers/Common/VoteController.cs

@@ -15,7 +15,7 @@ using TEAMModelOS.SDK.Context.Constant.Common;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.Models;
 using Microsoft.Extensions.Options;
@@ -350,7 +350,7 @@ namespace TEAMModelOS.Controllers.Learn
                     await _dingDing.SendBotMsg($"{_option.Location}-投票活动【{vote.name}-{vote.id}】被删除", GroupNames.成都开发測試群組);
 
                     //删除blob 相关资料
-                    await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString(), $"vote/{id}");
+                    await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString(), new List<string> { $"vote/{id}" });
                     //通知删除信息
                     var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "delete", root = $"vote/{id}", name = $"{code}" }.ToJsonString());
                     messageBlob.ApplicationProperties.Add("name", "BlobRoot");

+ 73 - 132
TEAMModelOS/Controllers/Core/BlobController.cs

@@ -106,121 +106,6 @@ namespace TEAMModelOS.Controllers.Core
             //dict.Add(d.Key, d.Value);
             return Ok(_azureStorage.GetContainerSasUri(request, false));
         }
-        /// <summary>
-        /// 删除prefix  不管是内容 模块还是其他试题试卷 评测 问卷投票等都在使用。
-        /// 
-        /// {"cntr":"","prefix":"res/test","scope":"school","id":"1111"}
-        /// </summary>
-        /// <param name="request"></param>
-        /// <returns></returns>
-        [HttpPost("delete-prefix")]
-        [AuthToken(Roles = "teacher,admin")]
-        public async Task<IActionResult> DeletePrefixContent(JsonElement json)
-        {
-            var (id, _, _, school) = HttpContext.GetAuthTokenInfo();
-            string blobContainerName = null;
-            string prefix = null;
-            if (json.TryGetProperty("cntr", out JsonElement cntr) && cntr.ValueKind.Equals(JsonValueKind.String))
-            {
-                var cntrs = cntr.GetString();
-
-                if (cntrs.Equals(id))
-                {
-                    blobContainerName = id;
-                }
-                else if (cntrs.Equals(school))
-                {
-                    blobContainerName = school;
-                }
-                else
-                {
-                    return BadRequest("只能删除本人管理的文件夹");
-                }
-            }
-            if (json.TryGetProperty("prefix", out JsonElement prefixjson) && prefixjson.ValueKind.Equals(JsonValueKind.String))
-            {
-                prefix = prefixjson.GetString();
-            }
-            if (prefix != null && blobContainerName != null)
-            {
-                var status = await _azureStorage.GetBlobServiceClient().DelectBlobs(blobContainerName, prefix);
-                string u = "";
-                string[] uls = System.Web.HttpUtility.UrlDecode($"{prefixjson}", Encoding.UTF8).Split("/");
-                if (uls != null)
-                {
-                    u = !string.IsNullOrEmpty(uls[0]) ? uls[0] : uls[1];
-                }
-                var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "update", root = u, name = $"{blobContainerName}" }.ToJsonString()); ;
-                messageBlob.ApplicationProperties.Add("name", "BlobRoot");
-                var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
-                await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
-                return Ok(new { status });
-            }
-            else
-            {
-                return BadRequest();
-            }
-
-        }
-        /// <summary>
-        /// 删除prefix  不管是内容 模块还是其他试题试卷 评测 问卷投票等都在使用。
-        /// 
-        /// {"cntr":"","prefix":"res/test"}
-        /// </summary>
-        /// <param name="request"></param>
-        /// <returns></returns>
-        [HttpPost("delete-prefix")]
-        [AuthToken(Roles = "teacher,admin")]
-        public async Task<IActionResult> DeletePrefix(JsonElement json)
-        {
-            var (id,_,_,school) = HttpContext.GetAuthTokenInfo();
-            string blobContainerName = null;
-            string prefix = null;
-            if (json.TryGetProperty("cntr", out JsonElement cntr)&& cntr.ValueKind.Equals(JsonValueKind.String)) {
-                var cntrs= cntr.GetString();
-              
-                if (cntrs.Equals(id))
-                {
-                    blobContainerName = id;
-                }
-                else if(cntrs.Equals(school))
-                {
-                    blobContainerName = school;
-                }
-                else
-                {
-                    return BadRequest("只能删除本人管理的文件夹");
-                }
-            }
-            if (json.TryGetProperty("prefix", out JsonElement prefixjson) && prefixjson.ValueKind.Equals(JsonValueKind.String))
-            {
-                prefix = prefixjson.GetString();
-            }
-            if (prefix != null && blobContainerName != null)
-            {
-                var status = await _azureStorage.GetBlobServiceClient().DelectBlobs(blobContainerName, prefix);
-                string u ="";
-                string[] uls = System.Web.HttpUtility.UrlDecode($"{prefixjson}", Encoding.UTF8).Split("/");
-                if (uls != null)
-                {
-                      u = !string.IsNullOrEmpty(uls[0]) ? uls[0] : uls[1];
-                }
-                var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "update", root =u, name = $"{blobContainerName}" }.ToJsonString()); ;
-                messageBlob.ApplicationProperties.Add("name", "BlobRoot");
-                var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
-                await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
-                return Ok(new { status });
-            }
-            else {
-                return BadRequest();
-            }
-            
-        }
-
-         
-       
-
-
         /// <summary>
         /// 链接只读(读)
         /// </summary>
@@ -288,6 +173,7 @@ namespace TEAMModelOS.Controllers.Core
         {
             try
             {
+                //学校已经分配给所有教师的空间大小GB。
                 long teach = 0;
                 request.TryGetProperty("scope", out JsonElement _scope);
                 request.TryGetProperty("containerName", out JsonElement containerName);
@@ -306,10 +192,10 @@ namespace TEAMModelOS.Controllers.Core
                         }
                     }
                 }
-                request.TryGetProperty("cache", out JsonElement cache);
+               // request.TryGetProperty("cache", out JsonElement cache);
                 var name =containerName.GetString();
-                if (cache.GetBoolean())
-                {
+                //if (cache.GetBoolean())
+                //{
                     long blobsize = 0;
                     RedisValue value = default;
                     value = _azureRedis.GetRedisClient(8).HashGet($"Blob:Record", name);
@@ -355,18 +241,18 @@ namespace TEAMModelOS.Controllers.Core
                         }
                         return Ok(new { size = size.Item1, catalog = size.Item2, teach });
                     }
-                }
-                else {
-                    var client = _azureStorage.GetBlobContainerClient(name);
-                    var size = await client.GetBlobsCatalogSize();
-                    await _azureRedis.GetRedisClient(8).HashSetAsync($"Blob:Record", name, size.Item1);
-                    foreach (var key in size.Item2.Keys)
-                    {
-                        await _azureRedis.GetRedisClient(8).SortedSetRemoveAsync($"Blob:Catalog:{name}", key);
-                        await _azureRedis.GetRedisClient(8).SortedSetIncrementAsync($"Blob:Catalog:{name}", key, size.Item2[key].HasValue ? size.Item2[key].Value : 0);
-                    }
-                    return Ok(new { size = size.Item1, catalog = size.Item2, teach });
-                }
+               // }
+               // else {
+                    //var client = _azureStorage.GetBlobContainerClient(name);
+                    //var size = await client.GetBlobsCatalogSize();
+                    //await _azureRedis.GetRedisClient(8).HashSetAsync($"Blob:Record", name, size.Item1);
+                    //foreach (var key in size.Item2.Keys)
+                    //{
+                    //    await _azureRedis.GetRedisClient(8).SortedSetRemoveAsync($"Blob:Catalog:{name}", key);
+                    //    await _azureRedis.GetRedisClient(8).SortedSetIncrementAsync($"Blob:Catalog:{name}", key, size.Item2[key].HasValue ? size.Item2[key].Value : 0);
+                    //}
+                    //return Ok(new { size = size.Item1, catalog = size.Item2, teach });
+              //  }
                 
             }
             catch (Exception  ex){
@@ -580,6 +466,61 @@ namespace TEAMModelOS.Controllers.Core
             return Ok(new { status = 200 });
         }
 
+        /// <summary>
+        /// 删除prefix  不管是内容 模块还是其他试题试卷 评测 问卷投票等都在使用。
+        /// 
+        /// {"cntr":"","prefix":"res/test"}
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("delete-prefix")]
+        [AuthToken(Roles = "teacher,admin")]
+        public async Task<IActionResult> DeletePrefix(JsonElement json)
+        {
+            var (id, _, _, school) = HttpContext.GetAuthTokenInfo();
+            string blobContainerName = null;
+            string prefix = null;
+            if (json.TryGetProperty("cntr", out JsonElement cntr) && cntr.ValueKind.Equals(JsonValueKind.String))
+            {
+                var cntrs = cntr.GetString();
+
+                if (cntrs.Equals(id))
+                {
+                    blobContainerName = id;
+                }
+                else if (cntrs.Equals(school))
+                {
+                    blobContainerName = school;
+                }
+                else
+                {
+                    return BadRequest("只能删除本人管理的文件夹");
+                }
+            }
+            if (json.TryGetProperty("prefix", out JsonElement prefixjson) && prefixjson.ValueKind.Equals(JsonValueKind.String))
+            {
+                prefix = prefixjson.GetString();
+            }
+            if (prefix != null && blobContainerName != null)
+            {
+                var status = await _azureStorage.GetBlobServiceClient().DelectBlobs(blobContainerName, new List<string> { prefix });
+                string u = "";
+                string[] uls = System.Web.HttpUtility.UrlDecode($"{prefixjson}", Encoding.UTF8).Split("/");
+                if (uls != null)
+                {
+                    u = !string.IsNullOrEmpty(uls[0]) ? uls[0] : uls[1];
+                }
+                var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "update", root = u, name = $"{blobContainerName}" }.ToJsonString()); ;
+                messageBlob.ApplicationProperties.Add("name", "BlobRoot");
+                var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
+                await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageBlob);
+                return Ok(new { status });
+            }
+            else
+            {
+                return BadRequest();
+            }
+        }
 
 
         /// <summary>
@@ -595,7 +536,7 @@ namespace TEAMModelOS.Controllers.Core
         {
             var (id, _, _, school) = HttpContext.GetAuthTokenInfo();
             string blobContainerName = null;
-            List<Uri> uris = null;
+            List<string> uris = null;
             if (!json.TryGetProperty("scope", out JsonElement _scope)) return BadRequest();
             if (!json.TryGetProperty("ids", out JsonElement _ids)) return BadRequest();
             if (json.TryGetProperty("cntr", out JsonElement cntr))
@@ -617,7 +558,7 @@ namespace TEAMModelOS.Controllers.Core
             bool flag = true;
             if (json.TryGetProperty("urls", out JsonElement urlsjson))
             {
-                uris = urlsjson.ToObject<List<Uri>>();
+                uris = urlsjson.ToObject<List<string>>();
                 uris.ForEach(x => {
                     (string, string) a = BlobUrlString(x.ToString());
                     string ContainerName = a.Item1;

+ 2 - 2
TEAMModelOS/Controllers/Core/ImportController.cs

@@ -140,7 +140,7 @@ namespace TEAMModelOS.Controllers
 
         private async Task<string> HTEXTranslator(string containerid, string FileName, Stream stream)
         {
-            await _azureStorage.GetBlobServiceClient().DelectBlobs(containerid, $"res/{FileName}");
+            await _azureStorage.GetBlobServiceClient().DelectBlobs(containerid,new List<string> { $"res/{FileName}" });
             Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
             //处理中文乱码问题
             Encoding encoding = Encoding.GetEncoding("GB2312");
@@ -308,7 +308,7 @@ namespace TEAMModelOS.Controllers
             {
                 containerid = "teammodelos";
             }
-            var status = await _azureStorage.GetBlobServiceClient().DelectBlobs(containerid, $"res/{FileName}");
+            var status = await _azureStorage.GetBlobServiceClient().DelectBlobs(containerid, new List<string> { $"res/{FileName}" });
 
             string shaCode = Guid.NewGuid().ToString();
             HTEXLib.Htex htex = _PPTX2HTEXTranslator.Translate(streamFile);

+ 2 - 2
TEAMModelOS/Controllers/Item/ItemController.cs

@@ -5,7 +5,7 @@ using System.Linq;
 using System.Threading.Tasks;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using System.Text.Json;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
@@ -291,7 +291,7 @@ namespace TEAMModelOS.Controllers
                 if (!request.TryGetProperty("scope", out JsonElement scope)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
                 //删除blob 相关资料
-                await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString().Replace("Item-",""), $"item/{id}");
+                await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString().Replace("Item-",""),new List<string> { $"item/{id}" });
                 //通知删除信息
                 var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "delete", root = $"item/{id}", name = code.ToString().Replace("Item-", "") }.ToJsonString());
                 messageBlob.ApplicationProperties.Add("name", "BlobRoot");

+ 1 - 1
TEAMModelOS/Controllers/Knowledge/KnowledgesController.cs

@@ -5,7 +5,7 @@ using System.Linq;
 using System.Threading.Tasks;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using System.Text.Json;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;

+ 1 - 1
TEAMModelOS/Controllers/Pager/PaperController.cs

@@ -57,7 +57,7 @@ namespace TEAMModelOS.Controllers
             Paper paper;
             var client = _azureCosmos.GetCosmosClient();
             //删除blob 相关资料
-            await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString().Replace("Paper-",""), $"paper/{id}");
+            await _azureStorage.GetBlobServiceClient().DelectBlobs(code.ToString().Replace("Paper-",""), new List<string> { $"paper/{id}" });
             //通知删除信息
             var messageBlob = new ServiceBusMessage(new { id = Guid.NewGuid().ToString(), progress = "delete", root = $"paper/{id}", name = code.ToString().Replace("Paper-", "")}.ToJsonString());
             messageBlob.ApplicationProperties.Add("name", "BlobRoot");

+ 1 - 1
TEAMModelOS/Controllers/School/CorrectController.cs

@@ -15,7 +15,7 @@ using TEAMModelOS.SDK.Context.Constant.Common;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.Models;
 using Microsoft.Extensions.Options;

+ 1 - 1
TEAMModelOS/Controllers/School/CourseController.cs

@@ -17,7 +17,7 @@ using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using System.Dynamic;
 using Azure;

+ 1 - 1
TEAMModelOS/Controllers/School/SchoolTeacherController.cs

@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using System.Text.Json;
 using TEAMModelOS.SDK.Models;
 using Microsoft.AspNetCore.Http;

+ 1 - 1
TEAMModelOS/Controllers/Syllabus/SyllabusController.cs

@@ -4,7 +4,7 @@ using System.Threading.Tasks;
 using TEAMModelOS.SDK;
 
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using System;
 using TEAMModelOS.SDK.Helper.Common.JsonHelper;
 using System.Linq;

+ 1 - 1
TEAMModelOS/Controllers/Syllabus/VolumeController.cs

@@ -12,7 +12,7 @@ using System.Threading.Tasks;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 1 - 1
TEAMModelOS/Controllers/Teacher/CommentController.cs

@@ -11,7 +11,7 @@ using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.Models;
 using Microsoft.Extensions.Options;

+ 1 - 1
TEAMModelOS/Controllers/Teacher/TeacherCommonController.cs

@@ -12,7 +12,7 @@ using TEAMModelOS.Filter;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models.Cosmos;
 using TEAMModelOS.Services.Common;
 

+ 1 - 1
TEAMModelOS/Controllers/XTest/FixDataController.cs

@@ -15,7 +15,7 @@ using System.Text.Json;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
 using TEAMModelOS.SDK.Models.Service;

+ 4 - 52
TEAMModelOS/Controllers/XTest/TestController.cs

@@ -16,7 +16,7 @@ using System.Threading.Tasks;
 using TEAMModelFunction;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
 using TEAMModelOS.Services.Common;
@@ -81,57 +81,9 @@ namespace TEAMModelOS.Controllers.XTest
         [ProducesDefaultResponseType]
         [HttpGet("test-delete-read")]
         public async Task<IActionResult> TestDelete() {
-
-            await  SendNotification();
-            var client = _azureCosmos.GetCosmosClient();
-            string aaa = "0";
-            try { 
-                ItemResponse<Student> a = await client.GetContainer("TEAMModelOS", "Student").DeleteItemAsync<Student>("1111111", new PartitionKey($"Course-111111"));
-                Ok(a.GetRawResponse().Status);
-            } catch (CosmosException ex) {
-                if (ex.Response.Status == 404) {
-                    aaa = "404";
-                }
-            }
-
-            try
-            {
-                ItemResponse<Student> a = await client.GetContainer("TEAMModelOS", "Student").ReadItemAsync<Student>("1111111", new PartitionKey($"Course-111111"));
-                Ok(a.GetRawResponse().Status);
-            }
-            catch (CosmosException ex)
-            {
-                if (ex.Response.Status == 404)
-                {
-                    aaa = aaa+ " 404";
-                }
-            }
-            try
-            {
-                var a = await client.GetContainer("TEAMModelOS", "Student").DeleteItemStreamAsync("1111111", new PartitionKey($"Course-111111"));
-                Ok(a.Status);
-            }
-            catch (CosmosException ex)
-            {
-                if (ex.Response.Status == 404)
-                {
-                    aaa = "404";
-                }
-            }
-
-            try
-            {
-                var a = await client.GetContainer("TEAMModelOS", "Student").ReadItemStreamAsync("1111111", new PartitionKey($"Course-111111"));
-                Ok(a.Status);
-            }
-            catch (CosmosException ex)
-            {
-                if (ex.Response.Status == 404)
-                {
-                    aaa = aaa + " 404";
-                }
-            }
-            return Ok(new { aaa });
+            var status = await _azureStorage.GetBlobServiceClient().DelectBlobs("hbcn", new List<String> { "audio/sound/001.mp3" ,"/audio/醍摩豆原創試題(國中英文)_聽力試題.mp3" , "video/第一段视频.mp4" });
+            //
+            return Ok(new { status });
         }
         /// <summary>
         /// 测试redis通配符

+ 1 - 1
TEAMModelOS/Services/Analysis/AchievementService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
+using TEAMModelOS.SDK;
 
 using TEAMModelOS.SDK.Models;
 

+ 3 - 3
TEAMModelOS/TEAMModelOS.csproj

@@ -43,9 +43,9 @@
     <SpaRoot>ClientApp\</SpaRoot>
     <DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
     <UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-    <Version>5.2107.151</Version>
-    <AssemblyVersion>5.2107.151.1</AssemblyVersion>
-    <FileVersion>5.2107.151.1</FileVersion>
+    <Version>5.2107.152</Version>
+    <AssemblyVersion>5.2107.152.1</AssemblyVersion>
+    <FileVersion>5.2107.152.1</FileVersion>
     <Description>1.修复Word导入题目转码失败的html代码。
 2.修复Word导入题目选项不能识别全角的A-Z字符,转为半角。
 3.学生信息增加学段信息。</Description>