diff --git a/.DS_Store b/.DS_Store index 7ab2ce5..518ba31 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Data/Repository/AdminRepositoryImpl.cs b/Data/Repository/AdminRepositoryImpl.cs new file mode 100644 index 0000000..6a14738 --- /dev/null +++ b/Data/Repository/AdminRepositoryImpl.cs @@ -0,0 +1,17 @@ +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Domain.Models; + +namespace Demo.Data.Repository +{ + public class SQLAdminRepositoryImpl : IAdminRepository{ + private readonly RemoteDatabaseContext _remoteDatabaseContext; + public SQLAdminRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext){ + _remoteDatabaseContext = remoteDatabaseContext; + } + + public List GetAllGroup() + { + return _remoteDatabaseContext.Groups.Select(x => new GroupLocalEntity{Name = x.Name, ID = x.ID}).ToList(); + } + } +} \ No newline at end of file diff --git a/Data/Repository/IAdminRepository.cs b/Data/Repository/IAdminRepository.cs new file mode 100644 index 0000000..3455b25 --- /dev/null +++ b/Data/Repository/IAdminRepository.cs @@ -0,0 +1,9 @@ +using Demo.Domain.Models; + +namespace Demo.Data.Repository +{ + public interface IAdminRepository + { + List GetAllGroup(); + } +} \ No newline at end of file diff --git a/Data/Repository/UserRepositorylmpl.cs b/Data/Repository/UserRepositorylmpl.cs index c5965d8..af195e3 100644 --- a/Data/Repository/UserRepositorylmpl.cs +++ b/Data/Repository/UserRepositorylmpl.cs @@ -28,12 +28,12 @@ namespace Demo.Data.Repository public List GetUsersByGroupID(int groupID) { return _remoteDatabaseContext.Users - .Where(x => x.GroupID == groupID) // Фильтруем пользователей по GroupID + .Where(x => x.GroupID == groupID) .Select(x => new UserLocalEntity { FIO = x.FIO, Guid = x.Guid, - GroupID = x.GroupID // Устанавливаем фактический GroupID + GroupID = x.GroupID }) .ToList(); } diff --git a/Demo.csproj b/Demo.csproj index f02bdb0..9c0e04c 100644 --- a/Demo.csproj +++ b/Demo.csproj @@ -6,15 +6,16 @@ enable - + - + + runtime; build; native; contentfiles; analyzers; buildtransitive all - - + + \ No newline at end of file diff --git a/Domain/UseCase/AdminUseCase.cs b/Domain/UseCase/AdminUseCase.cs new file mode 100644 index 0000000..1c109c5 --- /dev/null +++ b/Domain/UseCase/AdminUseCase.cs @@ -0,0 +1,162 @@ +using ClosedXML.Excel; +using Demo.Data.Repository; +using Demo.Domain.Models; +using DocumentFormat.OpenXml.Office.Word; +using DocumentFormat.OpenXml.Wordprocessing; + +namespace Demo.Domain.UseCase +{ + public class AdminUseCase : IAdminUseCase + { + private readonly IAdminRepository _repositoryAdminImpl; + private readonly IUserRepository _repositoryUserImpl; + private readonly IPresenceRepository _repositoryPresenceImpl; + public AdminUseCase(IAdminRepository repositoryAdminImpl, IUserRepository repositoryUserImpl, IPresenceRepository repositoryPresenceImpl) + { + _repositoryAdminImpl = repositoryAdminImpl; + _repositoryUserImpl = repositoryUserImpl; + _repositoryPresenceImpl = repositoryPresenceImpl; + } + + public bool ExcelExport2(int groupID){ + var users = _repositoryUserImpl.GetUsersByGroupID(groupID); + var i = 2; + using (var workbook = new XLWorkbook()){ + var worksheet = workbook.Worksheets.Add(groupID); + worksheet.Cell(1, 1).Value = "FIO"; + foreach(var user in users){ + worksheet.Cell(i, 1).Value = user.FIO; + i++; + var userPresences = GetPresenceByUser(user.Guid); + var k = 2; + foreach(var presence in userPresences){ + worksheet.Cell(1, k).Value = presence.Date.ToDateTime(new TimeOnly(0, 0)); + worksheet.Cell(i-1, k).Value = presence.IsAttedance; + k++; + } + } + workbook.SaveAs($"gruop.xlsx"); + } + return true; + } + + public bool ExcelExport(int groupID){ + var users = _repositoryUserImpl.GetUsersByGroupID(groupID); + var groupPresences = GetPresenceByGroup(groupID); + var dates = new List(); + foreach(var presence in groupPresences){ + if (!dates.Contains(presence.Date)){ + dates.Add(presence.Date); + } + } + using (var workbook = new XLWorkbook()){ + var worksheet = workbook.Worksheets.Add(groupID); + worksheet.Cell(1, 1).Value = "FIO"; + worksheet.Range(1, 1, 2, 1).Merge(); + + var colIndex = 2; // Начинаем с 2-го столбца + foreach (var date in dates) { + worksheet.Cell(1, colIndex).Value = date.ToString("dd.MM.yy"); + worksheet.Range(1, colIndex, 1, colIndex + 8).Merge(); // Объединяем ячейки для даты (9 уроков) + colIndex += 9; + } + + var k = 2; + foreach(var date in dates){ + for (int lesson = 1; lesson <= 9; lesson++){ + worksheet.Cell(2, k).Value = lesson; + k++; + } + } + + // var uNum = 3; + // var numLes = 1; + // var respCol = 2; + // var respRow = 3; + // foreach(var user in users){ + // worksheet.Cell(uNum, 1).Value = user.FIO; + // uNum++; + // var userPresences = GetPresenceByUser(user.Guid); + // foreach(var presence in userPresences){ + // if (presence.LessonNumber == numLes){ + // worksheet.Cell(respRow, respCol).Value = presence.IsAttedance; + // respCol++; + // } + // } + // respCol++; + // // respRow++; + // numLes = 1; + // } + + var lessonColIndex = 2; + var rowIndex = 3; + foreach(var user in users){ + worksheet.Cell(rowIndex, 1).Value = user.FIO; + + var userPresences = GetPresenceByUser(user.Guid); + + foreach(var date in dates){ + for (int lesson = 1; lesson <= 9; lesson++){ + var presence = userPresences.FirstOrDefault(p => p.Date == date && p.LessonNumber == lesson); + if (presence != null){ + worksheet.Cell(rowIndex, lessonColIndex).Value = presence.IsAttedance ? "Истина" : "Ложь"; + } + lessonColIndex++; + } + } + + rowIndex++; + lessonColIndex = 2; // Сбрасываем начальную позицию столбца для следующего пользователя + } + + workbook.SaveAs($"gruop_{groupID}.xlsx"); + } + return true; + } + + public List GetPresenceByUser(Guid userGuid){ + var user = _repositoryUserImpl.GetUserByGuid(userGuid); + + var presenceByUser = _repositoryPresenceImpl.GetAllPresences() + .Where(user => userGuid == user.UserGuid) + .Select(presence => new Presence{ + User = new User{ + Guid = user.Guid, + Group = new Group{ + ID = user.GroupID, + Name = _repositoryAdminImpl.GetAllGroup().First(group => group.ID == user.GroupID).Name + }, + FIO = user.FIO + }, + LessonNumber = presence.LessonNumber, + Date = presence.Date, + IsAttedance = presence.IsAttedance + }).ToList(); + + return presenceByUser; + } + + public List GetPresenceByGroup(int groupID){ + var usersByGroup = _repositoryUserImpl.GetAllUser() + .Where(user => user.GroupID == groupID).ToList(); + + var presenceByGroup = _repositoryPresenceImpl.GetAllPresences() + .Where(x => usersByGroup.Any(user => user.Guid == x.UserGuid)) + .Select(presence => new Presence{ + User = new User{ + Guid = presence.UserGuid, + Group = new Group{ + ID = groupID, + Name = _repositoryAdminImpl.GetAllGroup().First(group => group.ID == groupID).Name + }, + FIO = usersByGroup.First(user => user.Guid == presence.UserGuid).FIO, + }, + LessonNumber = presence.LessonNumber, + Date = presence.Date, + IsAttedance = presence.IsAttedance + }).ToList(); + + return presenceByGroup; + } + } +} \ No newline at end of file diff --git a/Domain/UseCase/IAdminUseCase.cs b/Domain/UseCase/IAdminUseCase.cs new file mode 100644 index 0000000..5b19f15 --- /dev/null +++ b/Domain/UseCase/IAdminUseCase.cs @@ -0,0 +1,6 @@ +namespace Demo.Domain.UseCase +{ + public interface IAdminUseCase{ + bool ExcelExport(int groupID); + } +} \ No newline at end of file diff --git a/Program.cs b/Program.cs index a43641e..c27aaa6 100644 --- a/Program.cs +++ b/Program.cs @@ -12,10 +12,13 @@ IServiceCollection services = new ServiceCollection(); .AddSingleton() .AddSingleton() .AddSingleton() + .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() + .AddSingleton() .AddSingleton() + .AddSingleton() .AddSingleton(); var serviceProvider = services.BuildServiceProvider(); diff --git a/UI/AdminConsole.cs b/UI/AdminConsole.cs new file mode 100644 index 0000000..fba8608 --- /dev/null +++ b/UI/AdminConsole.cs @@ -0,0 +1,18 @@ +using Demo.Domain.UseCase; + +namespace Demo.UI +{ + public class AdminConsoleUI + { + IAdminUseCase _adminUseCase; + public AdminConsoleUI(IAdminUseCase adminUseCase) { + _adminUseCase = adminUseCase; + } + + public void ExcelExport(int groupID) { + + string output = _adminUseCase.ExcelExport(groupID) ? "Таблица создана" : "Таблица не создана"; + Console.WriteLine(output); + } + } +} \ No newline at end of file diff --git a/UI/MainMenu.cs b/UI/MainMenu.cs index 3271606..21a218b 100644 --- a/UI/MainMenu.cs +++ b/UI/MainMenu.cs @@ -9,15 +9,51 @@ namespace Demo.UI UserConsoleUI _userConsoleUI; GroupConsoleUI _groupConsoleUI; PresenceConsoleUI _presenceConsoleUI; + AdminConsoleUI _adminConsoleUI; - public MainMenuUI(IUserUseCase userUseCase, IGroupUseCase groupUseCase, IPresenceUseCase presenceUseCase) { + public MainMenuUI(IUserUseCase userUseCase, IGroupUseCase groupUseCase, IPresenceUseCase presenceUseCase, IAdminUseCase adminUseCase) { _userConsoleUI = new UserConsoleUI(userUseCase); _groupConsoleUI = new GroupConsoleUI(groupUseCase, userUseCase, presenceUseCase); _presenceConsoleUI = new PresenceConsoleUI(presenceUseCase); - DisplayMenu(); + _adminConsoleUI = new AdminConsoleUI(adminUseCase); + SelectRole(); } + private void SelectRole() + { + Console.WriteLine("Выберите роль:\n1: user\n2: admin"); + string role = Console.ReadLine(); + + if (role == "1") + { + DisplayMenu(); + } + else if (role == "2") + { + DisplayAdminMenu(); + } + else + { + Console.WriteLine("Неверная роль. Попробуйте еще раз."); + SelectRole(); + } + } + + private void DisplayAdminMenu() + { + while(true) + { + switch (Console.ReadLine()) + { + case "0": _adminConsoleUI.ExcelExport(Convert.ToInt32(Console.ReadLine())); break; + + default: DisplayAdminMenu(); + break; + } + } + } + private void DisplayMenu() { while (true) { diff --git a/bin/Debug/net8.0/ClosedXML.Parser.dll b/bin/Debug/net8.0/ClosedXML.Parser.dll new file mode 100755 index 0000000..1613f29 Binary files /dev/null and b/bin/Debug/net8.0/ClosedXML.Parser.dll differ diff --git a/bin/Debug/net8.0/ClosedXML.dll b/bin/Debug/net8.0/ClosedXML.dll new file mode 100755 index 0000000..221ea4c Binary files /dev/null and b/bin/Debug/net8.0/ClosedXML.dll differ diff --git a/bin/Debug/net8.0/Demo.deps.json b/bin/Debug/net8.0/Demo.deps.json index 72cb31a..184a5c8 100644 --- a/bin/Debug/net8.0/Demo.deps.json +++ b/bin/Debug/net8.0/Demo.deps.json @@ -8,6 +8,7 @@ ".NETCoreApp,Version=v8.0": { "Demo/1.0.0": { "dependencies": { + "ClosedXML": "0.104.1", "Microsoft.EntityFrameworkCore": "8.0.10", "Microsoft.EntityFrameworkCore.Design": "8.0.10", "Microsoft.Extensions.DependencyInjection": "8.0.1", @@ -17,6 +18,60 @@ "Demo.dll": {} } }, + "ClosedXML/0.104.1": { + "dependencies": { + "ClosedXML.Parser": "1.2.0", + "DocumentFormat.OpenXml": "3.0.1", + "ExcelNumberFormat": "1.1.0", + "RBush": "3.2.0", + "SixLabors.Fonts": "1.0.0", + "System.IO.Packaging": "8.0.0" + }, + "runtime": { + "lib/netstandard2.1/ClosedXML.dll": { + "assemblyVersion": "0.104.1.0", + "fileVersion": "0.104.1.0" + } + } + }, + "ClosedXML.Parser/1.2.0": { + "runtime": { + "lib/netstandard2.1/ClosedXML.Parser.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "DocumentFormat.OpenXml/3.0.1": { + "dependencies": { + "DocumentFormat.OpenXml.Framework": "3.0.1" + }, + "runtime": { + "lib/net8.0/DocumentFormat.OpenXml.dll": { + "assemblyVersion": "3.0.1.0", + "fileVersion": "3.0.1.0" + } + } + }, + "DocumentFormat.OpenXml.Framework/3.0.1": { + "dependencies": { + "System.IO.Packaging": "8.0.0" + }, + "runtime": { + "lib/net8.0/DocumentFormat.OpenXml.Framework.dll": { + "assemblyVersion": "3.0.1.0", + "fileVersion": "3.0.1.0" + } + } + }, + "ExcelNumberFormat/1.1.0": { + "runtime": { + "lib/netstandard2.0/ExcelNumberFormat.dll": { + "assemblyVersion": "1.1.0.0", + "fileVersion": "1.1.0.0" + } + } + }, "Humanizer.Core/2.14.1": { "runtime": { "lib/net6.0/Humanizer.dll": { @@ -448,6 +503,22 @@ } } }, + "RBush/3.2.0": { + "runtime": { + "lib/net6.0/RBush.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.2.0.0" + } + } + }, + "SixLabors.Fonts/1.0.0": { + "runtime": { + "lib/netcoreapp3.1/SixLabors.Fonts.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, "System.CodeDom/4.4.0": { "runtime": { "lib/netstandard2.0/System.CodeDom.dll": { @@ -521,6 +592,14 @@ } } }, + "System.IO.Packaging/8.0.0": { + "runtime": { + "lib/net8.0/System.IO.Packaging.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, "System.IO.Pipelines/6.0.3": { "runtime": { "lib/net6.0/System.IO.Pipelines.dll": { @@ -549,6 +628,41 @@ "serviceable": false, "sha512": "" }, + "ClosedXML/0.104.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RVm2fUNWJlBJlg07shrfeWzrHPG5ypI/vARqdUOUbUdaog8yBw8l4IbCHf2MXt0AXtzaZqGNqhFaCAHigCBdfw==", + "path": "closedxml/0.104.1", + "hashPath": "closedxml.0.104.1.nupkg.sha512" + }, + "ClosedXML.Parser/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w+/0tsxABS3lkSH8EUlA7IGme+mq5T/Puf3DbOiTckmSuUpAUO2LK29oXYByCcWkBv6wcRHxgWlQb1lxkwI0Tw==", + "path": "closedxml.parser/1.2.0", + "hashPath": "closedxml.parser.1.2.0.nupkg.sha512" + }, + "DocumentFormat.OpenXml/3.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DCK1cwFUJ1FGGyYyo++HWl9H1RkqMWIu+FGOLRy6E4L4y0/HIhlJ7N/n1HKboFfOwKn1cMBRxt1RCuDbIEy5YQ==", + "path": "documentformat.openxml/3.0.1", + "hashPath": "documentformat.openxml.3.0.1.nupkg.sha512" + }, + "DocumentFormat.OpenXml.Framework/3.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ifyI7OW7sggz7LQMIAD2aUsY/zVUON9QaHrpZ4MK33iVMeHlTG4uhUE2aLWb31nry+LCs2ALDAwf8OfUJGjgBg==", + "path": "documentformat.openxml.framework/3.0.1", + "hashPath": "documentformat.openxml.framework.3.0.1.nupkg.sha512" + }, + "ExcelNumberFormat/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-R3BVHPs9O+RkExbZYTGT0+9HLbi8ZrNij1Yziyw6znd3J7P3uoIR07uwTLGOogtz1p6+0sna66eBoXu7tBiVQA==", + "path": "excelnumberformat/1.1.0", + "hashPath": "excelnumberformat.1.1.0.nupkg.sha512" + }, "Humanizer.Core/2.14.1": { "type": "package", "serviceable": true, @@ -724,6 +838,20 @@ "path": "npgsql.entityframeworkcore.postgresql/8.0.10", "hashPath": "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512" }, + "RBush/3.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ijGh9N0zZ7JfXk3oQkWCwK8SwSSByexbyh/MjbCjNxOft9eG5ZqKC1vdgiYq78h4IZRFmN4s3JZ/b10Jipud5w==", + "path": "rbush/3.2.0", + "hashPath": "rbush.3.2.0.nupkg.sha512" + }, + "SixLabors.Fonts/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LFQsCZlV0xlUyXAOMUo5kkSl+8zAQXXbbdwWchtk0B4o7zotZhQsQOcJUELGHdfPfm/xDAsz6hONAuV25bJaAg==", + "path": "sixlabors.fonts/1.0.0", + "hashPath": "sixlabors.fonts.1.0.0.nupkg.sha512" + }, "System.CodeDom/4.4.0": { "type": "package", "serviceable": true, @@ -780,6 +908,13 @@ "path": "system.composition.typedparts/6.0.0", "hashPath": "system.composition.typedparts.6.0.0.nupkg.sha512" }, + "System.IO.Packaging/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-8g1V4YRpdGAxFcK8v9OjuMdIOJSpF30Zb1JGicwVZhly3I994WFyBdV6mQEo8d3T+URQe55/M0U0eIH0Hts1bg==", + "path": "system.io.packaging/8.0.0", + "hashPath": "system.io.packaging.8.0.0.nupkg.sha512" + }, "System.IO.Pipelines/6.0.3": { "type": "package", "serviceable": true, diff --git a/bin/Debug/net8.0/Demo.dll b/bin/Debug/net8.0/Demo.dll index f8b0467..a72d2ea 100644 Binary files a/bin/Debug/net8.0/Demo.dll and b/bin/Debug/net8.0/Demo.dll differ diff --git a/bin/Debug/net8.0/Demo.pdb b/bin/Debug/net8.0/Demo.pdb index 363a54f..fbe901c 100644 Binary files a/bin/Debug/net8.0/Demo.pdb and b/bin/Debug/net8.0/Demo.pdb differ diff --git a/bin/Debug/net8.0/DocumentFormat.OpenXml.Framework.dll b/bin/Debug/net8.0/DocumentFormat.OpenXml.Framework.dll new file mode 100755 index 0000000..5556e87 Binary files /dev/null and b/bin/Debug/net8.0/DocumentFormat.OpenXml.Framework.dll differ diff --git a/bin/Debug/net8.0/DocumentFormat.OpenXml.dll b/bin/Debug/net8.0/DocumentFormat.OpenXml.dll new file mode 100755 index 0000000..05bafaf Binary files /dev/null and b/bin/Debug/net8.0/DocumentFormat.OpenXml.dll differ diff --git a/bin/Debug/net8.0/ExcelNumberFormat.dll b/bin/Debug/net8.0/ExcelNumberFormat.dll new file mode 100755 index 0000000..aaf7bf8 Binary files /dev/null and b/bin/Debug/net8.0/ExcelNumberFormat.dll differ diff --git a/bin/Debug/net8.0/RBush.dll b/bin/Debug/net8.0/RBush.dll new file mode 100755 index 0000000..dad8e8b Binary files /dev/null and b/bin/Debug/net8.0/RBush.dll differ diff --git a/bin/Debug/net8.0/SixLabors.Fonts.dll b/bin/Debug/net8.0/SixLabors.Fonts.dll new file mode 100755 index 0000000..281d8a7 Binary files /dev/null and b/bin/Debug/net8.0/SixLabors.Fonts.dll differ diff --git a/bin/Debug/net8.0/System.IO.Packaging.dll b/bin/Debug/net8.0/System.IO.Packaging.dll new file mode 100755 index 0000000..763f339 Binary files /dev/null and b/bin/Debug/net8.0/System.IO.Packaging.dll differ diff --git a/gruop_4.xlsx b/gruop_4.xlsx new file mode 100644 index 0000000..8df2fd3 Binary files /dev/null and b/gruop_4.xlsx differ diff --git a/gruop_5.xlsx b/gruop_5.xlsx new file mode 100644 index 0000000..54b9f8b Binary files /dev/null and b/gruop_5.xlsx differ diff --git a/obj/Debug/net8.0/Demo.AssemblyInfo.cs b/obj/Debug/net8.0/Demo.AssemblyInfo.cs index 6314378..8aa94e0 100644 --- a/obj/Debug/net8.0/Demo.AssemblyInfo.cs +++ b/obj/Debug/net8.0/Demo.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Demo")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+86b4759087deeb63dff8a43a0ff879e320f29457")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+de2cdcb08b649f5a185c4222ca47e18a960de4d2")] [assembly: System.Reflection.AssemblyProductAttribute("Demo")] [assembly: System.Reflection.AssemblyTitleAttribute("Demo")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache b/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache index 942bd83..9f5c7f9 100644 --- a/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache +++ b/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache @@ -1 +1 @@ -06f206715bfe1384818fd42aad58f6d1ef0f893f41ccdcce066ace7c594fd406 +72151ed5b0a8b23ba8153fcb08592b07d5ecd3ca936d8def01b884ed9d06c64b diff --git a/obj/Debug/net8.0/Demo.assets.cache b/obj/Debug/net8.0/Demo.assets.cache index b6c37fe..eba6bd0 100644 Binary files a/obj/Debug/net8.0/Demo.assets.cache and b/obj/Debug/net8.0/Demo.assets.cache differ diff --git a/obj/Debug/net8.0/Demo.csproj.AssemblyReference.cache b/obj/Debug/net8.0/Demo.csproj.AssemblyReference.cache index 6cd4561..59a5e35 100644 Binary files a/obj/Debug/net8.0/Demo.csproj.AssemblyReference.cache and b/obj/Debug/net8.0/Demo.csproj.AssemblyReference.cache differ diff --git a/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache b/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache index 6368fd4..b68904d 100644 --- a/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -6c3b3a88e85a1774a1b618cd98634bc328844e20ebb6c029511c87dd05bc179e +030574f346b82317af21a82bff786014710e25ba0ed86ab3d59159bba58115cb diff --git a/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt b/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt index 29c125e..a3d5eb3 100644 --- a/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt +++ b/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt @@ -96,3 +96,11 @@ /Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll /Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll /Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll +/Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/ClosedXML.dll +/Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/ClosedXML.Parser.dll +/Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/DocumentFormat.OpenXml.dll +/Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/DocumentFormat.OpenXml.Framework.dll +/Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/ExcelNumberFormat.dll +/Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/RBush.dll +/Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/SixLabors.Fonts.dll +/Users/rinchi/VSCodeProjects/Demo/bin/Debug/net8.0/System.IO.Packaging.dll diff --git a/obj/Debug/net8.0/Demo.dll b/obj/Debug/net8.0/Demo.dll index f8b0467..a72d2ea 100644 Binary files a/obj/Debug/net8.0/Demo.dll and b/obj/Debug/net8.0/Demo.dll differ diff --git a/obj/Debug/net8.0/Demo.pdb b/obj/Debug/net8.0/Demo.pdb index 363a54f..fbe901c 100644 Binary files a/obj/Debug/net8.0/Demo.pdb and b/obj/Debug/net8.0/Demo.pdb differ diff --git a/obj/Debug/net8.0/ref/Demo.dll b/obj/Debug/net8.0/ref/Demo.dll index d7a95f2..89aa664 100644 Binary files a/obj/Debug/net8.0/ref/Demo.dll and b/obj/Debug/net8.0/ref/Demo.dll differ diff --git a/obj/Debug/net8.0/refint/Demo.dll b/obj/Debug/net8.0/refint/Demo.dll index d7a95f2..89aa664 100644 Binary files a/obj/Debug/net8.0/refint/Demo.dll and b/obj/Debug/net8.0/refint/Demo.dll differ diff --git a/obj/Demo.csproj.nuget.dgspec.json b/obj/Demo.csproj.nuget.dgspec.json index c28a151..ab6d2db 100644 --- a/obj/Demo.csproj.nuget.dgspec.json +++ b/obj/Demo.csproj.nuget.dgspec.json @@ -43,6 +43,10 @@ "net8.0": { "targetAlias": "net8.0", "dependencies": { + "ClosedXML": { + "target": "Package", + "version": "[0.104.1, )" + }, "Microsoft.EntityFrameWorkCore": { "target": "Package", "version": "[8.0.10, )" diff --git a/obj/project.assets.json b/obj/project.assets.json index a6c29e4..787891c 100644 --- a/obj/project.assets.json +++ b/obj/project.assets.json @@ -2,6 +2,85 @@ "version": 3, "targets": { "net8.0": { + "ClosedXML/0.104.1": { + "type": "package", + "dependencies": { + "ClosedXML.Parser": "[1.2.0, 2.0.0)", + "DocumentFormat.OpenXml": "[3.0.1, 4.0.0)", + "ExcelNumberFormat": "1.1.0", + "RBush": "3.2.0", + "SixLabors.Fonts": "1.0.0", + "System.IO.Packaging": "8.0.0" + }, + "compile": { + "lib/netstandard2.1/ClosedXML.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.1/ClosedXML.dll": { + "related": ".pdb;.xml" + } + } + }, + "ClosedXML.Parser/1.2.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/ClosedXML.Parser.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/ClosedXML.Parser.dll": { + "related": ".xml" + } + } + }, + "DocumentFormat.OpenXml/3.0.1": { + "type": "package", + "dependencies": { + "DocumentFormat.OpenXml.Framework": "3.0.1" + }, + "compile": { + "lib/net8.0/DocumentFormat.OpenXml.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/DocumentFormat.OpenXml.dll": { + "related": ".xml" + } + } + }, + "DocumentFormat.OpenXml.Framework/3.0.1": { + "type": "package", + "dependencies": { + "System.IO.Packaging": "8.0.0" + }, + "compile": { + "lib/net8.0/DocumentFormat.OpenXml.Framework.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/DocumentFormat.OpenXml.Framework.dll": { + "related": ".xml" + } + } + }, + "ExcelNumberFormat/1.1.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/ExcelNumberFormat.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/ExcelNumberFormat.dll": { + "related": ".xml" + } + } + }, "Humanizer.Core/2.14.1": { "type": "package", "compile": { @@ -593,6 +672,32 @@ } } }, + "RBush/3.2.0": { + "type": "package", + "compile": { + "lib/net6.0/RBush.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/RBush.dll": { + "related": ".xml" + } + } + }, + "SixLabors.Fonts/1.0.0": { + "type": "package", + "compile": { + "lib/netcoreapp3.1/SixLabors.Fonts.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/SixLabors.Fonts.dll": { + "related": ".xml" + } + } + }, "System.CodeDom/4.4.0": { "type": "package", "compile": { @@ -727,6 +832,22 @@ "buildTransitive/netcoreapp3.1/_._": {} } }, + "System.IO.Packaging/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Packaging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Packaging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, "System.IO.Pipelines/6.0.3": { "type": "package", "compile": { @@ -822,6 +943,104 @@ } }, "libraries": { + "ClosedXML/0.104.1": { + "sha512": "RVm2fUNWJlBJlg07shrfeWzrHPG5ypI/vARqdUOUbUdaog8yBw8l4IbCHf2MXt0AXtzaZqGNqhFaCAHigCBdfw==", + "type": "package", + "path": "closedxml/0.104.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "closedxml.0.104.1.nupkg.sha512", + "closedxml.nuspec", + "lib/netstandard2.0/ClosedXML.dll", + "lib/netstandard2.0/ClosedXML.pdb", + "lib/netstandard2.0/ClosedXML.xml", + "lib/netstandard2.1/ClosedXML.dll", + "lib/netstandard2.1/ClosedXML.pdb", + "lib/netstandard2.1/ClosedXML.xml", + "nuget-logo.png" + ] + }, + "ClosedXML.Parser/1.2.0": { + "sha512": "w+/0tsxABS3lkSH8EUlA7IGme+mq5T/Puf3DbOiTckmSuUpAUO2LK29oXYByCcWkBv6wcRHxgWlQb1lxkwI0Tw==", + "type": "package", + "path": "closedxml.parser/1.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "closedxml.parser.1.2.0.nupkg.sha512", + "closedxml.parser.nuspec", + "lib/netstandard2.0/ClosedXML.Parser.dll", + "lib/netstandard2.0/ClosedXML.Parser.xml", + "lib/netstandard2.1/ClosedXML.Parser.dll", + "lib/netstandard2.1/ClosedXML.Parser.xml" + ] + }, + "DocumentFormat.OpenXml/3.0.1": { + "sha512": "DCK1cwFUJ1FGGyYyo++HWl9H1RkqMWIu+FGOLRy6E4L4y0/HIhlJ7N/n1HKboFfOwKn1cMBRxt1RCuDbIEy5YQ==", + "type": "package", + "path": "documentformat.openxml/3.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "documentformat.openxml.3.0.1.nupkg.sha512", + "documentformat.openxml.nuspec", + "icon.png", + "lib/net35/DocumentFormat.OpenXml.dll", + "lib/net35/DocumentFormat.OpenXml.xml", + "lib/net40/DocumentFormat.OpenXml.dll", + "lib/net40/DocumentFormat.OpenXml.xml", + "lib/net46/DocumentFormat.OpenXml.dll", + "lib/net46/DocumentFormat.OpenXml.xml", + "lib/net8.0/DocumentFormat.OpenXml.dll", + "lib/net8.0/DocumentFormat.OpenXml.xml", + "lib/netstandard2.0/DocumentFormat.OpenXml.dll", + "lib/netstandard2.0/DocumentFormat.OpenXml.xml" + ] + }, + "DocumentFormat.OpenXml.Framework/3.0.1": { + "sha512": "ifyI7OW7sggz7LQMIAD2aUsY/zVUON9QaHrpZ4MK33iVMeHlTG4uhUE2aLWb31nry+LCs2ALDAwf8OfUJGjgBg==", + "type": "package", + "path": "documentformat.openxml.framework/3.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "documentformat.openxml.framework.3.0.1.nupkg.sha512", + "documentformat.openxml.framework.nuspec", + "icon.png", + "lib/net35/DocumentFormat.OpenXml.Framework.dll", + "lib/net35/DocumentFormat.OpenXml.Framework.xml", + "lib/net40/DocumentFormat.OpenXml.Framework.dll", + "lib/net40/DocumentFormat.OpenXml.Framework.xml", + "lib/net46/DocumentFormat.OpenXml.Framework.dll", + "lib/net46/DocumentFormat.OpenXml.Framework.xml", + "lib/net6.0/DocumentFormat.OpenXml.Framework.dll", + "lib/net6.0/DocumentFormat.OpenXml.Framework.xml", + "lib/net8.0/DocumentFormat.OpenXml.Framework.dll", + "lib/net8.0/DocumentFormat.OpenXml.Framework.xml", + "lib/netstandard2.0/DocumentFormat.OpenXml.Framework.dll", + "lib/netstandard2.0/DocumentFormat.OpenXml.Framework.xml" + ] + }, + "ExcelNumberFormat/1.1.0": { + "sha512": "R3BVHPs9O+RkExbZYTGT0+9HLbi8ZrNij1Yziyw6znd3J7P3uoIR07uwTLGOogtz1p6+0sna66eBoXu7tBiVQA==", + "type": "package", + "path": "excelnumberformat/1.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "excelnumberformat.1.1.0.nupkg.sha512", + "excelnumberformat.nuspec", + "icon.png", + "lib/net20/ExcelNumberFormat.dll", + "lib/net20/ExcelNumberFormat.xml", + "lib/netstandard1.0/ExcelNumberFormat.dll", + "lib/netstandard1.0/ExcelNumberFormat.xml", + "lib/netstandard2.0/ExcelNumberFormat.dll", + "lib/netstandard2.0/ExcelNumberFormat.xml" + ] + }, "Humanizer.Core/2.14.1": { "sha512": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", "type": "package", @@ -1786,6 +2005,42 @@ "postgresql.png" ] }, + "RBush/3.2.0": { + "sha512": "ijGh9N0zZ7JfXk3oQkWCwK8SwSSByexbyh/MjbCjNxOft9eG5ZqKC1vdgiYq78h4IZRFmN4s3JZ/b10Jipud5w==", + "type": "package", + "path": "rbush/3.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net6.0/RBush.dll", + "lib/net6.0/RBush.xml", + "lib/netcoreapp3.1/RBush.dll", + "lib/netcoreapp3.1/RBush.xml", + "lib/netstandard1.2/RBush.dll", + "lib/netstandard1.2/RBush.xml", + "rbush.3.2.0.nupkg.sha512", + "rbush.nuspec", + "readme.md" + ] + }, + "SixLabors.Fonts/1.0.0": { + "sha512": "LFQsCZlV0xlUyXAOMUo5kkSl+8zAQXXbbdwWchtk0B4o7zotZhQsQOcJUELGHdfPfm/xDAsz6hONAuV25bJaAg==", + "type": "package", + "path": "sixlabors.fonts/1.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netcoreapp3.1/SixLabors.Fonts.dll", + "lib/netcoreapp3.1/SixLabors.Fonts.xml", + "lib/netstandard2.0/SixLabors.Fonts.dll", + "lib/netstandard2.0/SixLabors.Fonts.xml", + "lib/netstandard2.1/SixLabors.Fonts.dll", + "lib/netstandard2.1/SixLabors.Fonts.xml", + "sixlabors.fonts.1.0.0.nupkg.sha512", + "sixlabors.fonts.128.png", + "sixlabors.fonts.nuspec" + ] + }, "System.CodeDom/4.4.0": { "sha512": "2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==", "type": "package", @@ -1962,6 +2217,35 @@ "useSharedDesignerContext.txt" ] }, + "System.IO.Packaging/8.0.0": { + "sha512": "8g1V4YRpdGAxFcK8v9OjuMdIOJSpF30Zb1JGicwVZhly3I994WFyBdV6mQEo8d3T+URQe55/M0U0eIH0Hts1bg==", + "type": "package", + "path": "system.io.packaging/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Packaging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Packaging.targets", + "lib/net462/System.IO.Packaging.dll", + "lib/net462/System.IO.Packaging.xml", + "lib/net6.0/System.IO.Packaging.dll", + "lib/net6.0/System.IO.Packaging.xml", + "lib/net7.0/System.IO.Packaging.dll", + "lib/net7.0/System.IO.Packaging.xml", + "lib/net8.0/System.IO.Packaging.dll", + "lib/net8.0/System.IO.Packaging.xml", + "lib/netstandard2.0/System.IO.Packaging.dll", + "lib/netstandard2.0/System.IO.Packaging.xml", + "system.io.packaging.8.0.0.nupkg.sha512", + "system.io.packaging.nuspec", + "useSharedDesignerContext.txt" + ] + }, "System.IO.Pipelines/6.0.3": { "sha512": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==", "type": "package", @@ -2104,6 +2388,7 @@ }, "projectFileDependencyGroups": { "net8.0": [ + "ClosedXML >= 0.104.1", "Microsoft.EntityFrameWorkCore >= 8.0.10", "Microsoft.EntityFrameworkCore.Design >= 8.0.10", "Microsoft.Extensions.DependencyInjection >= 8.0.1", @@ -2152,6 +2437,10 @@ "net8.0": { "targetAlias": "net8.0", "dependencies": { + "ClosedXML": { + "target": "Package", + "version": "[0.104.1, )" + }, "Microsoft.EntityFrameWorkCore": { "target": "Package", "version": "[8.0.10, )" diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache index f555ce0..a70c6a2 100644 --- a/obj/project.nuget.cache +++ b/obj/project.nuget.cache @@ -1,9 +1,14 @@ { "version": 2, - "dgSpecHash": "R5GSq0Xb3J4=", + "dgSpecHash": "60Sa8meSCR8=", "success": true, "projectFilePath": "/Users/rinchi/VSCodeProjects/Demo/Demo.csproj", "expectedPackageFiles": [ + "/Users/rinchi/.nuget/packages/closedxml/0.104.1/closedxml.0.104.1.nupkg.sha512", + "/Users/rinchi/.nuget/packages/closedxml.parser/1.2.0/closedxml.parser.1.2.0.nupkg.sha512", + "/Users/rinchi/.nuget/packages/documentformat.openxml/3.0.1/documentformat.openxml.3.0.1.nupkg.sha512", + "/Users/rinchi/.nuget/packages/documentformat.openxml.framework/3.0.1/documentformat.openxml.framework.3.0.1.nupkg.sha512", + "/Users/rinchi/.nuget/packages/excelnumberformat/1.1.0/excelnumberformat.1.1.0.nupkg.sha512", "/Users/rinchi/.nuget/packages/humanizer.core/2.14.1/humanizer.core.2.14.1.nupkg.sha512", "/Users/rinchi/.nuget/packages/microsoft.bcl.asyncinterfaces/6.0.0/microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512", "/Users/rinchi/.nuget/packages/microsoft.codeanalysis.analyzers/3.3.3/microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", @@ -29,6 +34,8 @@ "/Users/rinchi/.nuget/packages/mono.texttemplating/2.2.1/mono.texttemplating.2.2.1.nupkg.sha512", "/Users/rinchi/.nuget/packages/npgsql/8.0.5/npgsql.8.0.5.nupkg.sha512", "/Users/rinchi/.nuget/packages/npgsql.entityframeworkcore.postgresql/8.0.10/npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", + "/Users/rinchi/.nuget/packages/rbush/3.2.0/rbush.3.2.0.nupkg.sha512", + "/Users/rinchi/.nuget/packages/sixlabors.fonts/1.0.0/sixlabors.fonts.1.0.0.nupkg.sha512", "/Users/rinchi/.nuget/packages/system.codedom/4.4.0/system.codedom.4.4.0.nupkg.sha512", "/Users/rinchi/.nuget/packages/system.collections.immutable/6.0.0/system.collections.immutable.6.0.0.nupkg.sha512", "/Users/rinchi/.nuget/packages/system.composition/6.0.0/system.composition.6.0.0.nupkg.sha512", @@ -37,6 +44,7 @@ "/Users/rinchi/.nuget/packages/system.composition.hosting/6.0.0/system.composition.hosting.6.0.0.nupkg.sha512", "/Users/rinchi/.nuget/packages/system.composition.runtime/6.0.0/system.composition.runtime.6.0.0.nupkg.sha512", "/Users/rinchi/.nuget/packages/system.composition.typedparts/6.0.0/system.composition.typedparts.6.0.0.nupkg.sha512", + "/Users/rinchi/.nuget/packages/system.io.packaging/8.0.0/system.io.packaging.8.0.0.nupkg.sha512", "/Users/rinchi/.nuget/packages/system.io.pipelines/6.0.3/system.io.pipelines.6.0.3.nupkg.sha512", "/Users/rinchi/.nuget/packages/system.reflection.metadata/6.0.1/system.reflection.metadata.6.0.1.nupkg.sha512", "/Users/rinchi/.nuget/packages/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",