From 74ec2fdea7a678f89a686dd1c62c7529dfe83231 Mon Sep 17 00:00:00 2001 From: Userok Date: Fri, 18 Oct 2024 09:12:15 +0300 Subject: [PATCH] One --- .vs/ProjectSettings.json | 3 + .vs/VSWorkspaceState.json | 13 +++ ...4e3a921e-9ee6-4209-90ab-7f0d2fbad229.vsidx | Bin 0 -> 4012 bytes ...66dee230-a3d4-460e-b410-8e5619ec9c8c.vsidx | Bin 0 -> 677 bytes ...aa785a8b-3361-4739-9c4a-438b59d41935.vsidx | Bin 0 -> 107 bytes ...cff1d91a-b5b6-4f3f-879c-09a8adda8682.vsidx | Bin 0 -> 50905 bytes ...dcce74d1-3d03-44d8-ab4c-9ef1a8cee5f2.vsidx | Bin 0 -> 107 bytes .vs/presence/v17/.wsuo | Bin 0 -> 41984 bytes .vs/presence/v17/DocumentLayout.backup.json | 88 ++++++++++++++++++ .vs/presence/v17/DocumentLayout.json | 88 ++++++++++++++++++ .vs/slnx.sqlite | Bin 0 -> 167936 bytes Demo.sln | 25 +++++ Demo/Data/LocalData/Entity/Group.cs | 15 +++ Demo/Data/LocalData/Entity/Presence.cs | 17 ++++ Demo/Data/LocalData/Entity/User.cs | 24 +++++ Demo/Data/LocalData/LocalStaticData.cs | 31 ++++++ Demo/Data/Repository/GroupRepositoryImpl.cs | 28 ++++++ Demo/Data/Repository/UserRepositoryImpl.cs | 47 ++++++++++ Demo/Demo.csproj | 14 +++ Demo/Domain/Models/Group.cs | 14 +++ Demo/Domain/Models/Presence.cs | 18 ++++ Demo/Domain/Models/User.cs | 16 ++++ Demo/Domain/UseCase/GroupUseCase.cs | 41 ++++++++ Demo/Domain/UseCase/UserUseCase.cs | 54 +++++++++++ Demo/Program.cs | 10 ++ Demo/UI/MainMenu.cs | 37 ++++++++ Demo/UI/UserConsole.cs | 62 ++++++++++++ ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs | 23 +++++ .../net8.0/Demo.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 +++ Demo/obj/Debug/net8.0/Demo.GlobalUsings.g.cs | 8 ++ Demo/obj/Debug/net8.0/Demo.assets.cache | Bin 0 -> 152 bytes .../Demo.csproj.CoreCompileInputs.cache | 1 + .../net8.0/Demo.csproj.FileListAbsolute.txt | 4 + Demo/obj/Demo.csproj.nuget.dgspec.json | 68 ++++++++++++++ Demo/obj/Demo.csproj.nuget.g.props | 15 +++ Demo/obj/Demo.csproj.nuget.g.targets | 2 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + Demo/obj/Release/net8.0/Demo.AssemblyInfo.cs | 23 +++++ .../net8.0/Demo.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 +++ .../obj/Release/net8.0/Demo.GlobalUsings.g.cs | 8 ++ Demo/obj/Release/net8.0/Demo.assets.cache | Bin 0 -> 152 bytes Demo/obj/project.assets.json | 73 +++++++++++++++ Demo/obj/project.nuget.cache | 8 ++ 46 files changed, 914 insertions(+) create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/presence/FileContentIndex/4e3a921e-9ee6-4209-90ab-7f0d2fbad229.vsidx create mode 100644 .vs/presence/FileContentIndex/66dee230-a3d4-460e-b410-8e5619ec9c8c.vsidx create mode 100644 .vs/presence/FileContentIndex/aa785a8b-3361-4739-9c4a-438b59d41935.vsidx create mode 100644 .vs/presence/FileContentIndex/cff1d91a-b5b6-4f3f-879c-09a8adda8682.vsidx create mode 100644 .vs/presence/FileContentIndex/dcce74d1-3d03-44d8-ab4c-9ef1a8cee5f2.vsidx create mode 100644 .vs/presence/v17/.wsuo create mode 100644 .vs/presence/v17/DocumentLayout.backup.json create mode 100644 .vs/presence/v17/DocumentLayout.json create mode 100644 .vs/slnx.sqlite create mode 100644 Demo.sln create mode 100644 Demo/Data/LocalData/Entity/Group.cs create mode 100644 Demo/Data/LocalData/Entity/Presence.cs create mode 100644 Demo/Data/LocalData/Entity/User.cs create mode 100644 Demo/Data/LocalData/LocalStaticData.cs create mode 100644 Demo/Data/Repository/GroupRepositoryImpl.cs create mode 100644 Demo/Data/Repository/UserRepositoryImpl.cs create mode 100644 Demo/Demo.csproj create mode 100644 Demo/Domain/Models/Group.cs create mode 100644 Demo/Domain/Models/Presence.cs create mode 100644 Demo/Domain/Models/User.cs create mode 100644 Demo/Domain/UseCase/GroupUseCase.cs create mode 100644 Demo/Domain/UseCase/UserUseCase.cs create mode 100644 Demo/Program.cs create mode 100644 Demo/UI/MainMenu.cs create mode 100644 Demo/UI/UserConsole.cs create mode 100644 Demo/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs create mode 100644 Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache create mode 100644 Demo/obj/Debug/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 Demo/obj/Debug/net8.0/Demo.GlobalUsings.g.cs create mode 100644 Demo/obj/Debug/net8.0/Demo.assets.cache create mode 100644 Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache create mode 100644 Demo/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt create mode 100644 Demo/obj/Demo.csproj.nuget.dgspec.json create mode 100644 Demo/obj/Demo.csproj.nuget.g.props create mode 100644 Demo/obj/Demo.csproj.nuget.g.targets create mode 100644 Demo/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 Demo/obj/Release/net8.0/Demo.AssemblyInfo.cs create mode 100644 Demo/obj/Release/net8.0/Demo.AssemblyInfoInputs.cache create mode 100644 Demo/obj/Release/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 Demo/obj/Release/net8.0/Demo.GlobalUsings.g.cs create mode 100644 Demo/obj/Release/net8.0/Demo.assets.cache create mode 100644 Demo/obj/project.assets.json create mode 100644 Demo/obj/project.nuget.cache diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..c39fbbe --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,13 @@ +{ + "ExpandedNodes": [ + "", + "\\Demo", + "\\Demo\\Data", + "\\Demo\\Data\\Repository", + "\\Demo\\Domain", + "\\Demo\\Domain\\UseCase", + "\\Demo\\UI" + ], + "SelectedNode": "\\Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/presence/FileContentIndex/4e3a921e-9ee6-4209-90ab-7f0d2fbad229.vsidx b/.vs/presence/FileContentIndex/4e3a921e-9ee6-4209-90ab-7f0d2fbad229.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..f4913b323a9ffde977f832e7caaa4730f423eb76 GIT binary patch literal 4012 zcmYk8hkw&m6vbazDx!#6T&;pq#kdziY?{P0kVOVijSMj;Dx@}|sGxuYRB-Q!195jMeVFQXv@Q8plGIk3AbB4=?zf18@*iqz)fg!}ekBRV%*AzTP zX-^4ZgZzkrCz=RFB;K70#wwUQn512i$NH>A~Ahy2>XVxr-q_b;|9u$ zl5bW?g9~+putlp}9Rl`+B`~y7(~;^J1*1Hqf*%Ifg^kJ)9EC-xPzDS*=PDcW;Enh; zJz^BAK=C+UkY8pyUn8($y7CV8;LTGff=5IjycVo)K5 zy5x)sLjbmeY*BMC{R9<&U<4p|xK_s~T7guUi^A|mz_Ji99U6HC{n02QCk(_O7>`JZ zAtb>pR011Yz#FR|0B^*j0E~{)Bm8@5T@0bf4*4;P7zDn-_IOt?r$Do9%vq99&EOo9p)kCp(dKE{Nv5T%)?Ebg2wS}6OS;DG$)!znKAQd z6Gx?a$C}5P$D24fjh|?qWS(r|H$da3nv=}9IoUkToMN7Cc9{vY+f14%Gi{z>X3QQl zYfd$%nK?6W7R;hqGN+qmvtm}wnmNOqY0ffx%`?rj%({8DIoq6L&Nb(m=a}=&bIpdi zz&y`9-&|;3U|wimWG*rnn@zLNyx8nFTjnL^67y2?GIObUxp{?orMb*pZeC^L2TJ#5 zg}KsPWnN=mYhGtwZ>~1im^YX=nm3ti&2{F@<}K!}=56Nf<{jpp=3VC9<~`=U=6&Y< z<^$$~=0oPg<|F2M^HK9L^KtVDbA$P$xzT*eeA;}*eAe7#ZZ@AYpEqAHUo>AbUp8Mc zUo~GdUpL<{-!$Jc-!`|HTg`XOcg^?A_stK?56zFvkIhfaPtDKF&&@B)FU_yaug!1F zZ_V$_@68{~AI+c4pUq#)U(Mgl-_1YFZRVfmU*_NDKjy#Y)ZsAj8iCIQ{O=TpW77#X=RIL`XrCp$JXkiAp;Y($K6%b6_mwR@STvd}(A!NZI3=ik$^tMxCRt0Gm-MONVc3fJ4^0rY^&=Rt6CwXZN${WFMmZj_#`@|i_p%vMzIJ&>g zlGgrsmaLS@QC7iTRG?+togyrb@|Ko#PfEHcyt4&(cuz~ZWhLZHz-HH}QI(yrb77)1 zCXGW`FHfE4%v(auLMvFIgtfY*6^$jfi%2RiFD*!CKv`XMZ&-00cCSu@H=j1Y$NZMF z3mGWyEHx?Rd9ZKXC-=>h=QpZ?Kkkorg7MWbS(=tIzE>7AGvfby!_F`|1Le1wnv*gM zzZulLG`i7c*u1~dP2|mEJWrsCPgWhtL3u_z34Z5z4g_54w_(m0O#>;A>iP(0dE}AkqM?xRGJP!VyA2mQbh$P)T$l3LmzE? zK<#mGTOB?ILcF*N$)EWq*`csJC6J}*1*PQ2n66Ppt0}B(@t^#K{>Dc1ocfm^JJ%+U jV)7KrkNOnOg8zD+F!yQ6rhdtD0-CRxH@tm{v15D#r$hDj literal 0 HcmV?d00001 diff --git a/.vs/presence/FileContentIndex/aa785a8b-3361-4739-9c4a-438b59d41935.vsidx b/.vs/presence/FileContentIndex/aa785a8b-3361-4739-9c4a-438b59d41935.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..70aef67a00f5a48bfb0d87044cf8f151e2685b5d GIT binary patch literal 107 wcmZ>EaTnxZU~p%E02V0C38Z0cW+XOHDO{Wlsuo0n)bd05(ok9*N*hCI0FV0t;Q#;t literal 0 HcmV?d00001 diff --git a/.vs/presence/FileContentIndex/cff1d91a-b5b6-4f3f-879c-09a8adda8682.vsidx b/.vs/presence/FileContentIndex/cff1d91a-b5b6-4f3f-879c-09a8adda8682.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..54c14b0b80739d3321a763fb039ea4d01096afa5 GIT binary patch literal 50905 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 literal 0 HcmV?d00001 diff --git a/.vs/presence/v17/.wsuo b/.vs/presence/v17/.wsuo new file mode 100644 index 0000000000000000000000000000000000000000..a455aa3fc1a665e4715a10483eb2a26f1d6c12ff GIT binary patch literal 41984 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 literal 0 HcmV?d00001 diff --git a/.vs/presence/v17/DocumentLayout.backup.json b/.vs/presence/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..fb871ad --- /dev/null +++ b/.vs/presence/v17/DocumentLayout.backup.json @@ -0,0 +1,88 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\profi\\source\\repos\\presence\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\profi\\source\\repos\\presence\\Demo\\Data\\Repository\\GroupRepositoryImpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Demo\\Data\\Repository\\GroupRepositoryImpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\GroupUseCase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Demo\\Domain\\UseCase\\GroupUseCase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\UserUseCase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Demo\\Domain\\UseCase\\UserUseCase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\profi\\source\\repos\\presence\\Demo\\UI\\UserConsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Demo\\UI\\UserConsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "GroupRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "RelativeDocumentMoniker": "Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "ToolTip": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "RelativeToolTip": "Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-17T11:23:48.997Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "GroupUseCase.cs", + "DocumentMoniker": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\GroupUseCase.cs", + "RelativeDocumentMoniker": "Demo\\Domain\\UseCase\\GroupUseCase.cs", + "ToolTip": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\GroupUseCase.cs", + "RelativeToolTip": "Demo\\Domain\\UseCase\\GroupUseCase.cs", + "ViewState": "AgIAAAMAAAAAAAAAAAAAABoAAAAxAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-16T09:23:36.604Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "UserUseCase.cs", + "DocumentMoniker": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\UserUseCase.cs", + "RelativeDocumentMoniker": "Demo\\Domain\\UseCase\\UserUseCase.cs", + "ToolTip": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\UserUseCase.cs", + "RelativeToolTip": "Demo\\Domain\\UseCase\\UserUseCase.cs", + "ViewState": "AgIAABIAAAAAAAAAAAAwwCIAAAAvAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-16T09:39:07.152Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "UserConsole.cs", + "DocumentMoniker": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\UI\\UserConsole.cs", + "RelativeDocumentMoniker": "Demo\\UI\\UserConsole.cs", + "ToolTip": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\UI\\UserConsole.cs", + "RelativeToolTip": "Demo\\UI\\UserConsole.cs", + "ViewState": "AgIAAB4AAAAAAAAAAAAAADYAAAA5AAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-16T07:06:47.821Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/presence/v17/DocumentLayout.json b/.vs/presence/v17/DocumentLayout.json new file mode 100644 index 0000000..fb871ad --- /dev/null +++ b/.vs/presence/v17/DocumentLayout.json @@ -0,0 +1,88 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\profi\\source\\repos\\presence\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\profi\\source\\repos\\presence\\Demo\\Data\\Repository\\GroupRepositoryImpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Demo\\Data\\Repository\\GroupRepositoryImpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\GroupUseCase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Demo\\Domain\\UseCase\\GroupUseCase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\UserUseCase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Demo\\Domain\\UseCase\\UserUseCase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\profi\\source\\repos\\presence\\Demo\\UI\\UserConsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Demo\\UI\\UserConsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "GroupRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "RelativeDocumentMoniker": "Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "ToolTip": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "RelativeToolTip": "Demo\\Data\\Repository\\GroupRepositoryImpl.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-17T11:23:48.997Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "GroupUseCase.cs", + "DocumentMoniker": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\GroupUseCase.cs", + "RelativeDocumentMoniker": "Demo\\Domain\\UseCase\\GroupUseCase.cs", + "ToolTip": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\GroupUseCase.cs", + "RelativeToolTip": "Demo\\Domain\\UseCase\\GroupUseCase.cs", + "ViewState": "AgIAAAMAAAAAAAAAAAAAABoAAAAxAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-16T09:23:36.604Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "UserUseCase.cs", + "DocumentMoniker": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\UserUseCase.cs", + "RelativeDocumentMoniker": "Demo\\Domain\\UseCase\\UserUseCase.cs", + "ToolTip": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Domain\\UseCase\\UserUseCase.cs", + "RelativeToolTip": "Demo\\Domain\\UseCase\\UserUseCase.cs", + "ViewState": "AgIAABIAAAAAAAAAAAAwwCIAAAAvAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-16T09:39:07.152Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "UserConsole.cs", + "DocumentMoniker": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\UI\\UserConsole.cs", + "RelativeDocumentMoniker": "Demo\\UI\\UserConsole.cs", + "ToolTip": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\UI\\UserConsole.cs", + "RelativeToolTip": "Demo\\UI\\UserConsole.cs", + "ViewState": "AgIAAB4AAAAAAAAAAAAAADYAAAA5AAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-16T07:06:47.821Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..339aabc7a0d5fbfb8b1753acf77fcaf97593e3f4 GIT binary patch literal 167936 zcmeHw31AyXx&P|0WF5O3$B`Y!b)z^*6W5VqS(cCFmEzb+sy49`A5BA)=O;@mM~y7G zI+D64>q5)bLR)wor9inKcex)tC^rhPiJN$Ik%r##~2LE)7@@{VO|RVb-;h}zef1OEdPMm zp!&PopD$&+@h9pqG5=Rgv!4H}^Ucn6jw|eU*q&einAK!CV!G4#q;br6c{LXL^M4ow z>QPd08)t1k>M@8%5~-MQ?fCrcbUHaK#1pARE|E@6(LYl&`x8ka6q^cFO2iM11qUaB z?$F3^@GAH5ns}UG?QZxtI#QnggnQ@l;%rZJh%VOJJOpAMs4V74WLBsw9JhpU3gr?a zVZsycq0xf}v8*GbLxbbNj%Q!uv^IM@hUa;5k?EvRTJ+N2tR&3D;J$;w3MFUlJ1H(@ zAckTm0N;t=f#8_?@L1^3;Mg(u6~SZf!O4ly&Tn=Z_rxP(D zqo$VA&?Hz1W5NBwvEay1aNK=drU<5TiQN2&orMR$qC+8pdYe2vj6eVkLxaP?qF2Mg zgF)q$EDQy39R-0)aFt2+=ab3#Bl$=&5l;xQN(_qYL#Dd|v_!#6 zF0uS}Fd7xI*~D}riA5~HTAHjx2g}kaMOFid4P|^jn-gXW5SBhdDBTM6O0Ybbjz+M3 zj-}63FMynAD4opDrpnW?_6~8k!`eIr?P`j&D$Yi0RmG%4!OueDKS*apV9gbv#RBj5p?b3Jk73;4w zm70U9Doc~$fT7aYc^7=nhzO+wsLSF$i?#U_^nCM5&!=jIQr6{^s{T)v+$xnv8UmG) zEx~PxvMo{wSDkuTRF*BGQdwZj5&|ofO9)p9_>NmHGt*9bNa>_iXqC!YSKL5KU#pr( z>8q7B6)Ll$)}IL#O8#1U#NT-crcR9jZSBU%xM9J zMM}>rjTYU*!Tp1i2PfRoe1^2xoZL-ABTt*G&AwKHxS2GQaUqvWq-IE)md4xkiMd#x z%F_`wBEx-3P_5B+95z~-J39@>h~{Lkfiapel@+eZ3n>`275_99=}pPYoheZMT|n6( z9xzy&TU!ka0^upiCPl^~9>=ApDwUI-teK`=8A;}$9!s=y66R_Rb{0a5^XUx#6OLp5 z$Uf{$zz_YOj)0DUj)0DUj)0DUj)0DUjzG-_I1`3nGDEj*1slNCLNqs&PQ?>5`3x~G zj>Ci@5f!e-iAlSZU|&9wj1{HIw(oHtr*jvQ5@$c{bCeytY9AJ6)81?{)h-!<`fQ-{GwTuVC7k=a>R^JkZjw> zbCFCgKPN$f^DR<%>Fp4mJryT{f=IHKVgiyza*=R&Oqfe&6S;I|J{+EeIhyi2G&`5{ zMzeA$WCoRBYnMT*%mK@ABWu5LhsDfz{6iTbk`rR1naQ~r{^9HL`ue=xUEMuypMOtR z*B*cG!c1KqGxY3Msi;L2uB!!TIG}l!YJo}*RkFowW`-Ju1<-X`v01D_Y0{a!LYO~( zqRC`tcJm=zdV~7FwTq#2K9%da<*2ca*?XG_r}yM7U2Ynu2K=mF5TaeZ-BFLPr`PZ4 z>Fe+EMEud1N9Yasgsy==U$5Zz_~YGOJ-)skPfzavBoYEWo_>F?&oezeFc9sI3>xp^#rv1~gK+KQy-JYKAzL=+f zAkyRM>*+T)Yaz)PX1nxU+A0e?(2^Se9=Bnw70vz zw=Wv?^!7#iJv{@_UQc8o*5&D*7UKTifmr`^91=~(d-?-CeV(pqp%-L|bwkEb*r=~N z7WW5Yf-o@Pi4Ao7x}$-ZXP_?-0Zx!I(iiZ1y5oWV-s$*sysNLz6N^Xt0t3DQPk$@| zf=~BEJ=3wCfXCMxh;>g#?1NLE>&*Y6Fm{GE)IA7}Wl@lWtK@*m`9_;LQenmcJ#nfR?ww0hw&c30} zpoabf1@*f1FuoQ&GFDCXcZ+59XU2%_hH5Nj4_L1=wg26$~34 z22-m+vi4Y@4jdA<4Mtf6)xMcNJEXAiCmH@Ee=q+L{$a2I{OX^-;`9>g2ZVR&+UZIniB(8cE-f(t? z?=#pe(oq7J&%(4oLb~F)Tc*FT-NJN2ssovHeh!ijMX~}MR&c@lyI%0}Pt2`%TbM>5 zOHW^IEzpG_xHg=bqYv@m@(o8`*!qv_14>|7)&zzK?+;JrGVPRWE#Z5F1@R&SZh z2w7Y=m7lj?U||A4EKSSgUGqh>ZLJojLn;oOW5}kHD5qU!v1yZq*$S@@MG~n)LMpF* z*VdwtRw!cAMhnv_aR#yt1(wZ}@NnT@M251h4F!8L`hLC5>cY6(QH8v8|)UQ0dWfz zRI0^>T2HiMCKH(jlnbw1^%TwF^eogjJ|?JavQptxXNL&MBi`TqrO|6)T#x}~Ob8H+ zraF+Av03E9O~B}`+nE=>Jlbl46qQwE*+K~#%u@RH2Y$46+LN-YW(dOa8l2JRy z2HuEp)SFxeYMa78U`}o3Z(`gM-%frX)28BkG5lt+wD?}ZS+aoiZ88l|tjb>Xs)P-c z2-|})QENdxe=lPrLRd@k}+bl8wQ}e~@v=DWSx~G(i23SotpjCD;!vSak9N z9HOA3eaa6RDb@iK!ihf>lYr4;YP5kJz|Oyz*~0r6{%`!B_}{`VfS>SF{4@AT{#*Pb z{8#wT^P_x-zl6Voe-3{&ALAGJ8~D@w96!YO@jm`j{73mW@~;7}0q^GD2EXBd|NL!E zFQJZrj)0DUj)0DUj)0DUj)0DUj)0DUj=)m_fjX1H;O!#eZVb&{3|;NyZ#M}yn@u*u zg&4G9Z~;EFw~}xZhOQP2H*6$fGYOk8tap)c1OGk7dC@LFvuj5uKI!TsVK0Wh0110Y z=*Mt(Hwk?hn(ZXCk+7bGR^Vf~$YVA!hB^$)7??0HnoNw%&fW{_|2G)MMKe1v_Fdo_C>zm0u_y`6m*cNO<=-W3HlBq;$Va=_S77s3L zBt)w9_YKWOrQgsbCnx6_T%^d-DTWPpv&%qM_RZe8w9V{dq}BZtvs2zSu%naT3ETKp z8SJ6+yME7 z%yyy#%9_8~#^2Ad(*6K*J>jQX_cvSl&od5MP772JEu~jl`g|2J~?F#NCJ#Q*2{*YkJsn|UYqB=;lm?)P!n;eQW* z6MqWs1PJoo{0E+@3ZR!;M?gnFM?gnFM?gnFM?gnFM?gnFM?gp593s%rXkiQngQeYQ z0tfc5y87{fuQaTukE~{6{kMK`|As9;+_tU(AK5Hc@TC8X`?r1h-QQ?fM-y#Ax?kMi zc=y298+iJtm9pA=<7Lli;OL_k`l$89)NdMC`p9acgm)Q&4Nm%Kqr~gZ$0i!!dI=P( zmk{3F@Xl}jwgE1az(?JxM{th>J_@KF!L-{kZ<$$iI-`{|Xj>_we`dFX8{df1Ce4|DXKZ;WofG@h{{*4L1XPmHz_&0RPi- zSlc>l9RVEy9RVEy9RVEy9RVEy9RVEy9RVEy9f79~0_d`@y%9s}dJ;BZxM>}RtvrS; z9C^-SxY3DW?}Zq4w_z9{&IWskvq3*`HrQmr=goB(_HD+n&V-@OXf_#ab$Dfff&U94 zypjJ4@8*8Sy^*_y8|IqWAF%IapT$nH+nm2~KIFXDIp-X8ZghOdajRpO{fG8f+9&O1 z+XJ@O*m5?1{a@=pR)1f8x_-Cym)18~r>)y9Pgve-nX~lP{kiTFb!Y0l=Eu#iG9NNG zn;tdYYl@gQ8y`2m$rv-X8@^|FvmtD-F<)bDXZDF3?Tn#w63iF|gK=^$2Df&SyDLT_ zvjXvgK(203yfAo6(%5=8H1vqgz@+T}Wil9x5e^lp<(IZzzTvRg1Z3OKP_hF;ZZMf7 zl-Y`;A1E9YLv`aW?3@CpPB^$1NR!b;EBUYp|* zu@NYnr)a_QaFd0qM1|Wzyrmanl7x*f0Ef2|aP#C5>J?=LNWfu;f*wi^r2qwpuF@WE^Hkt7v9My~7hQtu&Na7mIO ztb(aTZr)4N*#hfbmx^$At)W!{k5pl3nB=u611X^+z_ksCEO2lglk_T|h}A$2sT={P zt50+SZR1f&yFWC#G$|x<1RU;5LJ+6xqkQjrlR zb@Z_92SqC|*m@0R5XuhbazZQu_x;u=kcz_5<8(cl05&Qr9M*vB$Q-FPeeXvZ|`b>ewrqfXXE`j6(lfj4V-Ob^TyEhu`V$ z6OBOKASrdIl1i7+hGGuCqis+$0HsIj3rZ7JD0OKPKPo4)+!Fh(j)7+Y(UwEB>c)jk z^dwdY?F}YFqzjNPB!XYcdt2*v*WP15x^+~lb@EwSgqD7jNCI1{+ck6*5O+##csP-r zOGf75+p-9Ql0>%FW>@eiF!4xukHNJ?rv+rNZ@!>^Wko1WWovD4U3w+3*)guDZ=u8l z`7$1uM0Nl=v^hMk&GHA80 zZyN`SR=CF+DWpVF#J1Ku27>T zt3au|v~A+oT{;AG9iuc$Qo;g66=;hSSnD>i%@^;(jC~XYg?BmeCMfHYa@0&rcJ?Kl{_ekgu_yNR7q_u>(*Tr z05*ZVRPh;ME}c!}(wTYEMd1i=DSlHGXsmTD-1aMbfU`ea#u)`zCS#cd__Evj{aElT zl;&1j!CM^b1KlW5(Riz<-YOK8ZLv8v`+%$suA_&dm`3u+WMn!i$g#s}t?TT91RWhT z0TwM0P2?uCiPTKC_?N?Ksq^fH#GRcq@kAsuBjonO_3Of!bmmmaPlvUxZmSoPZ`neV zkLGi8`P{_(oS^*Wu$t?99!S(IwR%!>q$tH7J_ONAUOF~%n|JR55?7G$H5NMDN)$M5 z+vs$8I)R{Zh!RvEws~=|w$b74xET5GRcfhuAL*8xeF^{wA%b###ts8r;|KJ{Mm zeQ$EQcj36RK`KD?&$}1C=}nHdP8@4CUqa=t1}S;o1SMGZz_Q8e7$W0JX|SRmBvwF5 z9!wPvCY#r_`N>#P8UQRYmh_SVWHZ-3NXC!HX;rF5gNtRXO6F*0U49%hx}>=(n`=IlT{SEB( z&bVVce}LV?P4QdU$G8^z6ZX5=VJ^u(-H~C<`~vq`{v`KSZoA`Cj@QENfz8f8v7P)q z+>adn&cjZF{V?0izR^C%KVbhi#|VEHJL#BmHgn&E8wP&De}&_mUvxefjTHJn9RVEy z9RVEy9RVEy9RVGI^9upqw8c1HFs?CQ!QYBqg8A$QQ)lVI4)aac)Mk{|Vwgu8OxulQ zwjfPbnMcSI)rt)BjTTeDSZOxRe0`(IuYQB$X`EOx50|n18YU$}>S9X?^Hry*RW>y- zpUX0DT5sB61e*f#q82yiRW6gqSZexU?pS;0cYJZLpF7(+2;q1oi4 znG{VVnP=j4;VM&A5U=u98Hw;J?_!(MP;rWVc=tFd)?{dq%`+@vhLR!n5@*=}$$Y6| zLB3cn_d|`Q4&&4eS^kkL<_n0a+Q!Fxz9PHNVD8i?gJ5KtPnXr`rwDZLQs({1s#W}n zYE}I4QXU_xR>KeAt?9B^!iSI+8y~tFO`V1k3&U=NS+ON}ZKh`Gm*0bT%A;9em(|p0 zfH{39KEQ%r++_06swk@C4rsEL$+=QcUWp~9`Un@hdzHmS=H-=I&C7~f%}dJ={dX)p zX-5ht(h^=$HJ=yTP0hwUsiC_arWPZuZRRe_o-6|>cMdRjD%hg5qqA3Dt9d=DElaC+f^| z5KGmxo4F0aLB?1w%&jP^Jc*XF!u2NR*;Vp-7IH>o2y+W6G%10aPQ)6<_pHU#UGHUQMG{(db?py^==vVARTdUS#MW4`SqJ zL>fI4cbjhtl5m)WLnPcs!a;z`(kc;tnbLoWMqi}SLp1sVMlH-|X!L0seTqh(q|qm6 z^l=(}4EbAqBUFTyCmypTqB(CBs=y?{o~r_u8;>S3Nsqvz1*HX7YZqi56TSs3}5TWGX^ayF6u z|4n57f0Khev18b5BVj!Wtt3?K|8F)Ui$3NR2E$JJ*UNGLznT9DDs3z5|NlMzOa3R| z_wQNUIJcSo75ia!fxVpF;`{@wzu)V8rgO@<*YT+18TRknJ+{}`8td<^Z?V49y3=xx z#Z`B+`S0d=)2~f4#_t$|hIbfz%=?k;x%hXjh&#Frj2LAYgW2l!hSmRIJl;Yjqy zvS5JH!N~MtK+zP6Ahc!O=u2 zmOhgOLB{iQbLk8mg`jI3hm(<9Je`@%%5`HDamyp%a^~DiRgk4j3Y&=gC;=PzNS*6m zz92=(s!stDlZd-C0h0MO5C&8QmTI7ej>1mYWI7U)#h4Ls11LxV$DLkt3jYTnrg?J>N%!P77K@YRy4l2U2 zwGlyTlTPs>lI?1+##y01)R;dGgMJeQ9p(&6r|?(Q%QMB;D=3Q&zC!?gG73x|e- z(%->rb3%$>u6%04BY9XTrJ>v!E#h_x!_BKH&!KVBCzfRm*F$wF54}VlS(0vX8%5^m zxsYTipUDWRT$rl9T6@%A4(ati0eUQEvZsNPCgEiKHE>mX<6I zL&AXALJ~$)31K}vtgOV6?3JIm7!P#4;zmLTQ<;L$C3GZ?;8W_Y%SBR;-H+B1e+YxfCgOHkmSCY_u^p z1LI*j4Rr(~@+O*v#(1@=SZ)Btv=a{0le9bJv@i>ATd+a6NlZd`fj9Oe*I%sljVr%PUDltG2`WsNdKoJP$L57`B{4dQzAw7oE1U(uB_9R#y7DDj!vwE2RP5E6@Ez$1Rg~(&BDCL0ViX zRq1a>af>T`4f)G0uJo0<&D7B1qzbJhbD8E8wK$UR(h75S`XV=Lb)jTEE|Nx0SWsU1 zL0S8++{p0=Z@H$)EpH+*D`az#*|`&L>^vqyhoC2g{t7kGW3x8z?l3IyL=)v~k>3;s z@&hWEU8>f}kEbGPIQS{0mIIwHb~^-?EqJ zq0Ef3FaBjK*1_VJDh-rhs4J-k&7+!85SSK6>1Ml@>}BPA3q`Gk7^`fL)!H2N$W>OV z$Ww;%2IAEysb>0P^Ga^DM0qU~2&th#p1wG%q((|cW zp_FwwrKcqHK#4!d0gp7L{d-s8kl%vV_120yx%gnTs z9#T4K6>NzdIut@27rO~2$IJkds^5BF!N==oqc{S#Pj>)_l-(A3R*kf490eSX~}Z{qrNI6T%rBrlT#DeEbqZ zw)D3I@s*+AQFrM(cO=W&kA@~LgC;XHIW``;GFYBwa9kRtVbdCi*~QQV*)O0TXoq6% z!EyJ#NVaJB9g6L8S8KbNUb4*6B=qBrB-ld~z0RFOF{q8I%(L zQAw5G_-y~Ux4aXR#z*)b|3RAN%UqTXDZ>pnxOaqixFI_1EtC}sqb_>xq(VyzSyG>v z`mmBFG%^CS(92=oSq2BD+&>P}dL?zm0=q9!%Y(xN8GGn*Si4-sOh8vV?tbj&LApG75+kfkPVNDZWLZ`sMc5tDJrw7*jx%UV0$S1 zO$C4nL-)F+gdP^=gcLZe%q<~w7qr|nVP=%p)Y={$kK6^Loj(= z{{NW&AO64jufc79pW;8lzn_06`2M?(e+7Rx{{sHm{7w8B zevVJ@)BJIMfm$ckvu=;d-a z>;T)%cCy>pHnxf7*?QLC{EPE<&YwGf==_fJQRi2j4>~{L{IK)A&bK??=zO*FWzIXD z&vV}5yuq1wrkpd*e{&vljybPz4m&S#_BwY1H2Oas0UZGy0UZGy0UZGy0UZGyfu|e- zcwE?O*hr&h8a2_#MWYQgYNXM68a2>p9gTPzaWn$oX~@$_BL|J_G_ujCo<>$0S!h&8 zBXXA6YB14XMj9DtM9!02ng1idn7`BLe`)kL8vT_CusCj8vTSuKc>--X!JuG{eVW_r_uLl^j#YL z4~-tD(RXO{Z5n-xMvu|x|Iz5bX+(ShSQ+9Az{(I`09JKk4EpM z(R*n0ZW`TBqj%Bhoius}jowb9x6$aWGd^hO%Jfkv;V(d%gRS{mI) zqu0=gI90GR#HoUnAx;&n3~{PpWr$M+EAtAP^5ryo8I4{_qkpH-OK9|B8r@B!yJ&PL zjfhtQEA>iXW$r+~0Cn{KKRW+^AH)BR{}cZk{%8CT`NzQm@G$>H{0F(SE9|FIAmw-=yAK%Gu=Qo4rzDAw}TY!Q4 zEB6QPSKLpz?}IhqQSPhU7r0M@@4){Ad%)YdH*xoI_kgd!7lK9L7Vbvw4BR_-iW9&l za16W;9O4degWO)Q3hV~oe_OdWu9<59yFeXy6nv8X9s3LR$6y(FjQs}tW%fb#lk7*p zHgG@tR`w0-tJ#;ccY}4{HdbV>XY*{DO@Mvi1bdV{!d}4!*-ODf;AcJT4t5LM%DTWt zU}H_r|8@Qe?m7G!SP33?{(5PYaX2tL#xggewBG?NhSP=~*bB!nB);co^*=Ko0ecM|?D z3I9gIzmo7TBz%&DeWKxe@Ma~knsB?{2mFvOTzyl;o~Iy4hg?a!f%oAF%tei68<*{ze&PJ zN%#l}zd^#Ulki~@evO1*CE-^{_+=7)iG*Jy;X@?+0tr7)!UswCITC)Bgr6bdr%CuJ z5`L0|pCIAKNeKS_0RIO__)!vmgoOV^!Vi=1LnQo95`K_`A0XlTN%%ezzL$jWA>q48 zcs~i>MZ$NI@Es(4I|<)L!ncy}EhPL8626&)ZzACvN%#g5zMh1yBjIaFcpnL0L&8^+ z@Kq$dmxQk*;XNdL1qokH!k3Zor6l}!6263lFDBvLB)p4+carc$Bzz$W?=YJfgVAJS zY-Im`T|L9UoWGoV(*9!GUu-Y71+5cS6Fk)a=?Lfu=mFE)s`~A~Bfp|0$f*tC~WFiY*yoBpQ|V|r6;I5xOB+brcjr^tNL=tJ58!+}xZsSbo}|)e zBAL`4UtgDR7X;lH(7zO_IGnASgI%#%Hu-s zF@{fi%bxU=Jpn!?R1!;H^%uU%6y4P*x~HmAbW>KK+1o~K=x%4y$6&P!vHqTTED-VZ z2m(}lPyc{tAQp>xe6d(hZ#+KG7xxViziDth0V*?}p-vNu+zN@GJWwy|l8xD}>rz3N zhJ*Vi51@wNfBzhs1R8YVA*-xGP}wWfAhnaIn1!(03+~CR=0IS&uP@r;^9=L_Kq3A9 zC@5qg?gudhrlKL_U*t`?#>+9k!%nH3)4ht8-y3O@6q z$xJ(Izfo+)E2eFe9`O=}sT&Y_di{Md=+w(f2Kpqn zc#sYGWhsC1C-5e}pbI3vsi?Ou>YNJmjYov89wFN0@pt*+9-lAf_e{rorafI<(XO6& z-+&OGj)G8b_l+RgbEfeoYujY!izZRBo|s?o_fLEL@j#EKr@OnyGd%#}34UKR>Wlaz z{(x^B{E?vZ5^`oJB^6u}H%qVVQ%QLJK)=7gyK8^1Xa9abV7kvg=;;p(_&xo8-@YOL zKvz$&zw1VY01Abt4zL{Mg)1Digm-vW2hJM7c~wYz{Dks~p1qU=!Yj$(eG0m5RSH^V zMZF4gkx<1moR9(3Bzho2A791q$frluA>qL-NI^;DjvbjmLOd^9^j>mmR+21~iYD_h zA(SHB9Wcvf@bh4>LRGvA}p#Lp{%P? z2>DcvQkwSSs%)=OqYARg^fGX$R*K~ETdC3d6f!6)d~Z$*)zy*83atp55}|8XwGHKi zr5c$OGz99;Ro#Y9)d3LtiJ)p-v!z+fW`p~xc+bFKTY@l|ElQL zzfV5}hW&aGbp&(-bOdw+bOdw+bOdw+bOdw+bOdw+bOio!5WxNXR@l1&A?#g&5caM> z2zyr`guN@U+aLC>KnQzRAcVauh5i4m|CjMm-VG=B-w6Bghq)&92kbl9 zXThoZZLlx?A-Mf-&N*s(jV)*M*Z;NtW0vb6sGRBPUhVL2PYzTuT<7<$`(*N5hZUn<`=cK`AFc^%JbFoNHAeTg-oeXVc zUi2O2Rc^xYmZY)uZfNKcn}JE&0m@`B79$)gQp+!Gy?n!Au?fhwpP^)M2hU(KNhra# zULj-hN)d$I<)J3B^|BX*L>I91pRkeQRG_GpbFX84pSS^d1ptXbFhxfCadnDk*+}rUDzb8w<~)@F%G7!E3t9ktz%gle`vXASHAJxV8b21rDxbl3s!BzXozh z)7WF%;1_YVY*|&+V|DBmO+e+68b+aiEk>58vATXR zox|^R_lZWJZjh8ZR0)AH+EC2lceD+P2B7pveL-oW3Z*Vh;z#9VmRn-K)nR+U@Q7i{ zAzF3gLMD0=D}?q2lOfUtzye4%ofP1g^4`|E-351O-DB7~D%CpqEGmt768rCytkiXdls+)-UDRZ?5a#ui}n9>aE62t#F453ZJyNuAc#(zFQ}U0sj|C6RDg zijOL(tz{i3zhSE(ke4bR_flmOxpZcpbWu10T#DaR1sZEz3%4DV{6T|1TgDj$SSDkc z1o*PsfbTVityd_`t+s-a9Xi*%q5)Gv0FC)<&w#Gy)q9@D3w6c37=- zop}2&TylYRYQmx=qKVvO7CgXbi+?#_;^M&@g28h;NnCO^C|oh}dF zTiZB9391j58my=Xi4~BN2UEp^ z$>w!!elnJn1^`QpC2^uDIGVZkK{9?kPODNi8eA-6RWe62>+<86(Iw@Jda@WTzIQY` zFZAK~ux*H9Di>)H!e&5r+2g=wtAn+UGg~aTG5lxv8~8Tvi(Ho5%zoAJVaGEaJM0hH zpJm@;`>oYrdmEgszlpuX`Df?*!Assw%O@?jfhC}?{@e9peXsRr);C*^*56m3uHS9_ zrS(nLY3p{&6PEieam$9f@6^4bE>gGA{2}ux^Lo<*ri`h}_$%YPpnuW-=?E+vflF@2 zzGh{{jGbW2xCzKtY|GdQwhY)Ya~7tIosO0(t_KcVq#0@Hkge3b1-(Iukx8MjdA7Tc zTnEf{C`K#nK2(ze=*5c7W##-}tfUaxJZG#HJPq5!XJC)DPc%?Lu?)pX)ylS<(&k~;9XJib`i?8#{E1RCTyGF(RK)sr?AII+)^N4sAaP5@lRJ6^K5l~_HRWdsxFF_S?E?s8TZokm= zbnz%KY?C@Z*>FvDyl7xfhpjRvIian+#dVo@C9v2&LmP}b!zJ0M6WiJw*Igz~s#%p8 z%NLQTXl~ZN?t)|D1h5L6DVzI{JgZH9)B<@cPpjIw?MKCN;O#G;v0_TG!5Q z+ar!40Ebj#UJ3H0uxxj%4~R!ltRiD}5n>g1u(vmRvj;p%V;a9Z{# zv(M(h^Z%X9`x*Wb{w?6;e~$0t{th1dp9LQHHiP&553>vGpQJGE%#VlbvK*;Zk{*&+B9SQjxlI>hrtJI&(XhY#a<|{ zff1t&V=!C2-mv=ra5!fs6PYDf$z{W_bS@?2!r9oVaKE?9+tbw*9*>>Mh7Tp8nRGTC z&w1f2q8A>8;qcsykSl$2I1)WIkxnPQbD8v9)_k29pjpqH`>a7I@6hnMOt-5N?!vaVEs#3bS>4L~x#2Eu@$DLkt3jYTn}BkZA^Fe}TD6?ae( zj;)OdQk!&&7m;iiV5+p#N49{d`^rQXc9*%wbNN^z9q#Vx?heC1Bo3RP;9zQE0n*+}w@Kyy>cq9)N5*o^_(IRfAFxI-B6IXyNFv=P9Hy$T0>!KTa!9ZD331ThGC?UVeJM$u6Sq?MjxQ~A?Sn;BW|%Jy zW^##mB$~_8Rc1VxEoFP1*iN&pVW3#M7Rj|HV^yFm!pIyEx6sT3t6gSnsqO45OYjmqid1y@LWk+_MZ9jca= zm?9xzKx`oiBdUb3{1R3c4oLROPc%RRU9Y&2(7{xuAWR7z$)b$VCpHs8=p2g(3wvV2 zB0m{;6DXvV9`CDF*p?GYOZ!6Bvtx?7@1 z(}@%SmlUv$VfF?SH|kL&mQ1RS-Gjde;~sH+t;E8$FqI%YC65=zUa^4?hnVf^oXJ7_ z(tHc2^D)<6ab0bMkY^F0TjU90UkNz4USsEUQ&5KKE^%RNcEqdaXv9Fh{}|C^Y1GyEL)WA5MBN7!NKTb-?r=h=U1 zKVW;kZBxBy{hM{d@{lE2_tm<8HGkB+%QSENym6Bu$-LW%mMBBjDZc$Sd|S&$wDw*X zrs!g?i0f0pd1~ptt&j}gT*XO7(jYfj3cQ8Ab$OzK#jimBQ zlxFc_5!b;$@&o6Wq;^5-B2c;tUm;Urmu$FfcB(s0+k6l?cWU zs}G`5=X7u{jqOj9A@YO}nVk@_Ih8)hj|zy*i2@N%gl}QFc+z}a#Q@+B?}xFEa0cdm z;nO`}uk?5MeFLf_I3tWF(`SfcDQZ{9QfwAu6p}5K@{|Twl5Mn5z-4!j```l|nT_@K zEJL&tVw9rcsU+Eo(6}lxn^cN!7N=9tLAxELo!WFb~C>;|9 zVY)e=O%zX{l*bBQ2Jzo0UNxBD3c0R|s$f4uXAz=HoT6aWU^`x2A*5NQ)KyCM4+R~I z_^%Y5b29CgJLpOcNfNBk%WW1

8@=Re3jZwt8IvwOF4HMN*L&LA?qfJpoHiHZhZ$ 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 YvD7U9m4yX!rbM{BdjKSE(oF#WAFlWBhyVZp literal 0 HcmV?d00001 diff --git a/Demo.sln b/Demo.sln new file mode 100644 index 0000000..ce1f93c --- /dev/null +++ b/Demo.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35312.102 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo", "Demo\Demo.csproj", "{983820F6-FF31-4B3A-8593-831BC3904E80}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {983820F6-FF31-4B3A-8593-831BC3904E80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {983820F6-FF31-4B3A-8593-831BC3904E80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {983820F6-FF31-4B3A-8593-831BC3904E80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {983820F6-FF31-4B3A-8593-831BC3904E80}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4F43A963-447C-4FCB-BB78-8D315EC0F1D6} + EndGlobalSection +EndGlobal diff --git a/Demo/Data/LocalData/Entity/Group.cs b/Demo/Data/LocalData/Entity/Group.cs new file mode 100644 index 0000000..6041311 --- /dev/null +++ b/Demo/Data/LocalData/Entity/Group.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.domain.Models +{ + public class GroupLocalEntity + { + public required int Id { get; set; } + public required string Name { get; set; } + + } +} diff --git a/Demo/Data/LocalData/Entity/Presence.cs b/Demo/Data/LocalData/Entity/Presence.cs new file mode 100644 index 0000000..70b8d1e --- /dev/null +++ b/Demo/Data/LocalData/Entity/Presence.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.domain.Models +{ + internal class PresenceLocalEntity + { + public required Guid UserGuid { get; set; } + public bool IsAttedance { get; set; } = true; + public required DateOnly Date { get; set; } + + public required int LessonNumber { get; set; } + } +} diff --git a/Demo/Data/LocalData/Entity/User.cs b/Demo/Data/LocalData/Entity/User.cs new file mode 100644 index 0000000..5af4881 --- /dev/null +++ b/Demo/Data/LocalData/Entity/User.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.domain.Models +{ + public class UserLocalEnity : IEquatable + { + public required string FIO { get; set; } + public Guid Guid { get; set; } + + public required int GroupID { get; set; } + + + + public bool Equals(UserLocalEnity? other) + { + if (other == null) return false; + return this.Guid.Equals(other.Guid); + } + } +} diff --git a/Demo/Data/LocalData/LocalStaticData.cs b/Demo/Data/LocalData/LocalStaticData.cs new file mode 100644 index 0000000..50e54f7 --- /dev/null +++ b/Demo/Data/LocalData/LocalStaticData.cs @@ -0,0 +1,31 @@ +using Demo.domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.NetworkInformation; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.LocalData +{ + public static class LocalStaticData + { + public static List groups => new List + + { + new GroupLocalEntity{ Id = 1, Name = "ИП1-21" }, + new GroupLocalEntity{ Id = 2, Name = "ИП1-22" }, + new GroupLocalEntity{ Id = 3, Name = "ИП1-23" }, + }; + + public static List users => new List + { + new UserLocalEnity{Guid=Guid.Parse("e6b9964d-ea9f-420a-84b9-af9633bbfab9"), FIO = "RandomFio", GroupID = 1 }, + new UserLocalEnity{Guid=Guid.Parse("8388d931-5bef-41be-a152-78f1aca980ed"), FIO = "RandomFio1", GroupID = 2 }, + new UserLocalEnity{Guid=Guid.Parse("ed174548-49ed-4503-a902-c970cbf27173"), FIO = "RandomFio2", GroupID = 3 }, + new UserLocalEnity{Guid=Guid.Parse("614c0a23-5bd5-43ae-b48e-d5750afbc282"), FIO = "RandomFio3", GroupID = 1 }, + new UserLocalEnity{Guid=Guid.Parse("efcc1473-c116-4244-b3f7-f2341a5c3003"), FIO = "RandomFio4", GroupID = 2 }, + new UserLocalEnity{Guid=Guid.Parse("60640fb3-ace2-4cad-81d5-a0a58bc2dbbd"), FIO = "RandomFio5", GroupID = 3 }, + }; + } +} diff --git a/Demo/Data/Repository/GroupRepositoryImpl.cs b/Demo/Data/Repository/GroupRepositoryImpl.cs new file mode 100644 index 0000000..063390d --- /dev/null +++ b/Demo/Data/Repository/GroupRepositoryImpl.cs @@ -0,0 +1,28 @@ +using Demo.Data.LocalData; +using Demo.domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.Repository +{ + public class GroupRepositoryImpl + { + public List GetAllGroups() => LocalStaticData.groups; + } + public void AddGroup(GroupLocalEntity newGroup) + { + LocalStaticData.groups.Add(newGroup); + } + + public void UpdateGroupName(int GroupId, string NewName) + { + var group = LocalStaticData.groups.FirstOrDefault(g => g.Id == GroupId); + if (group != null) + { + group.Name = newName; + } + } +} diff --git a/Demo/Data/Repository/UserRepositoryImpl.cs b/Demo/Data/Repository/UserRepositoryImpl.cs new file mode 100644 index 0000000..bf9ae8c --- /dev/null +++ b/Demo/Data/Repository/UserRepositoryImpl.cs @@ -0,0 +1,47 @@ +using Demo.Data.LocalData; +using Demo.domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.Repository +{ + public class UserRepositoryImpl + { + public UserRepositoryImpl() { + + GetAllUsers = LocalStaticData.users; + } + public List GetAllUsers + { get; set; } + + public bool RemoveUserByGuid(Guid userGuid) + { + UserLocalEnity? userLocal = GetAllUsers + .Where(x => x.Guid == userGuid).FirstOrDefault(); + if (userLocal == null) return false; + + return GetAllUsers.Remove(userLocal); + } + + public UserLocalEnity? GetUserByGuid(Guid userGuid) { + UserLocalEnity? userLocal = GetAllUsers + .Where(x => x.Guid == userGuid).FirstOrDefault(); + if (userLocal == null) return null; + + return userLocal; + } + + public UserLocalEnity? UpdateUser(UserLocalEnity userUpdateLocalEnity) { + UserLocalEnity? userLocal = GetAllUsers + .Where(x => x.Guid == userUpdateLocalEnity.Guid).FirstOrDefault(); + if (userLocal == null) return null; + userLocal.FIO = userUpdateLocalEnity.FIO; + userLocal.GroupID = userUpdateLocalEnity.GroupID; + return userLocal; + + } + } +} diff --git a/Demo/Demo.csproj b/Demo/Demo.csproj new file mode 100644 index 0000000..1ea2759 --- /dev/null +++ b/Demo/Demo.csproj @@ -0,0 +1,14 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + diff --git a/Demo/Domain/Models/Group.cs b/Demo/Domain/Models/Group.cs new file mode 100644 index 0000000..ce0914b --- /dev/null +++ b/Demo/Domain/Models/Group.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.domain.Models +{ + public class Group + { + public required int Id { get; set; } + public required string Name { get; set; } + } +} diff --git a/Demo/Domain/Models/Presence.cs b/Demo/Domain/Models/Presence.cs new file mode 100644 index 0000000..a5fe7a0 --- /dev/null +++ b/Demo/Domain/Models/Presence.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.domain.Models +{ + public class Presence + { + + public required User User { get; set; } + public bool IsAttedance { get; set; } = true; + public required DateOnly Date { get; set; } + + public required int LessonNumber { get; set; } + } +} diff --git a/Demo/Domain/Models/User.cs b/Demo/Domain/Models/User.cs new file mode 100644 index 0000000..cffca41 --- /dev/null +++ b/Demo/Domain/Models/User.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.domain.Models +{ + public class User + { + public required string FIO { get; set; } + public Guid Guid { get; set; } + + public required Group Group { get; set; } + } +} diff --git a/Demo/Domain/UseCase/GroupUseCase.cs b/Demo/Domain/UseCase/GroupUseCase.cs new file mode 100644 index 0000000..3a64faa --- /dev/null +++ b/Demo/Domain/UseCase/GroupUseCase.cs @@ -0,0 +1,41 @@ +using Demo.Data.Repository; +using Demo.domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Domain.UseCase +{ + public class GroupUseCase + { + private UserRepositoryImpl _repositoryUserImpl; + private GroupRepositoryImpl _repositoryGroupImpl; + + public List GetAllGroups() => _repositoryGroupImpl.GetAllGroups() + .Select(it => new Group { Id = it.Id, Name = it.Name }).ToList(); + + public GroupUseCase(UserRepositoryImpl repositoryImpl, GroupRepositoryImpl repositoryGroupImpl) + { + _repositoryUserImpl = repositoryImpl; + _repositoryGroupImpl = repositoryGroupImpl; + } + + public void AddGroup(Group group) + { + _repositoryGroupImpl.AddGroup(group); + } + + public void UpdateGroupName(int groupId, string newName) + { + var group = _repositoryGroupImpl.GetGroupById(groupId); + if (group != null) + { + group.Name = newName; + _repositoryGroupImpl.UpdateGroup(group); + } + } + + } +} \ No newline at end of file diff --git a/Demo/Domain/UseCase/UserUseCase.cs b/Demo/Domain/UseCase/UserUseCase.cs new file mode 100644 index 0000000..4780ca3 --- /dev/null +++ b/Demo/Domain/UseCase/UserUseCase.cs @@ -0,0 +1,54 @@ +using Demo.Data.Repository; +using Demo.domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Domain.UseCase +{ + public class UserUseCase + { + private UserRepositoryImpl _repositoryUserImpl; + private GroupRepositoryImpl _repositoryGroupImpl; + + public UserUseCase(UserRepositoryImpl repositoryImpl, GroupRepositoryImpl repositoryGroupImpl) + { + _repositoryUserImpl = repositoryImpl; + _repositoryGroupImpl = repositoryGroupImpl; + } + + public List GetAllGroups() => _repositoryGroupImpl.GetAllGroups() + .Select(it => new Group { Id = it.Id, Name = it.Name}).ToList(); + public List GetAllUsers() => _repositoryUserImpl.GetAllUsers + .Join(_repositoryGroupImpl.GetAllGroups(), + user => user.GroupID, + group => group.Id, + (user, group) => + new User { FIO = user.FIO, + Guid = user.Guid, + Group = new Group {Id = group.Id, Name = group.Name } } + ).ToList(); + + public bool RemoveUserByGuid(Guid userGuid) { + return _repositoryUserImpl.RemoveUserByGuid(userGuid); + } + public User UpdateUser(User user) { + UserLocalEnity userLocalEnity = new UserLocalEnity { FIO = user.FIO, GroupID = user.Group.Id, Guid = user.Guid }; + UserLocalEnity? result = _repositoryUserImpl.UpdateUser(userLocalEnity); + if (result == null) throw new Exception(""); + Group? group = GetAllGroups().FirstOrDefault(it => it.Id == result!.GroupID); + if (group == null) throw new Exception(""); + return new User { FIO = user.FIO, Guid = user.Guid, Group = group}; + + public User FindUserByGuid(Guid userGuid) + { + var user = _repositoryUserImpl.GetAllUsers().FirstOrDefault(u => u.Guid == userGuid); + if (user == null) throw new Exception("Нет такого пользователя"); + var group = _repositoryGroupImpl.GetAllGroups().FirstOrDefault(g => g.Id == user.GroupID); + return new User { FIO = user.FIO, Guid = user.Guid, Group = group }; + } + } + } +} diff --git a/Demo/Program.cs b/Demo/Program.cs new file mode 100644 index 0000000..9ebb621 --- /dev/null +++ b/Demo/Program.cs @@ -0,0 +1,10 @@ + +using Demo.Data.Repository; +using Demo.Domain.UseCase; +using Demo.UI; + +GroupRepositoryImpl groupRepositoryImpl = new GroupRepositoryImpl(); +UserRepositoryImpl userRepositoryImpl = new UserRepositoryImpl(); +UserUseCase userUseCase = new UserUseCase(userRepositoryImpl, groupRepositoryImpl); + +MainMenuUI mainMenuUI = new MainMenuUI(userUseCase); \ No newline at end of file diff --git a/Demo/UI/MainMenu.cs b/Demo/UI/MainMenu.cs new file mode 100644 index 0000000..ce13884 --- /dev/null +++ b/Demo/UI/MainMenu.cs @@ -0,0 +1,37 @@ +using Demo.Domain.UseCase; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.UI +{ + public class MainMenuUI + { + + UserConsoleUI _userConsoleUI; + + public MainMenuUI(UserUseCase userUseCase) { + _userConsoleUI = new UserConsoleUI(userUseCase); + DisplayMenu(); + + } + + private void DisplayMenu() { + while (true) + { + switch (Console.ReadLine()) + { + case "1": _userConsoleUI.DisplayAllUsers(); break; + case "2": _userConsoleUI.RemoveUserByGuid(Guid.Parse(Console.ReadLine())); break; + + default: DisplayMenu(); + break; + } + + } + } + + } +} diff --git a/Demo/UI/UserConsole.cs b/Demo/UI/UserConsole.cs new file mode 100644 index 0000000..5aca4dd --- /dev/null +++ b/Demo/UI/UserConsole.cs @@ -0,0 +1,62 @@ +using Demo.Domain.UseCase; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.UI +{ + public class UserConsoleUI + { + UserUseCase _userUseCase; + GroupUseCase _groupsUseCase; + public UserConsoleUI(UserUseCase userUseCase) { + _userUseCase = userUseCase; + _groupUseCase = GroupUseCase; + } + + public void RemoveUserByGuid(Guid guidUser) { + + string output = _userUseCase.RemoveUserByGuid(guidUser) ? "Пользователь удален" : "Пользователь не удален"; + Console.WriteLine(output); + } + + public void DisplayAllUsers() + { + StringBuilder userOutput = new StringBuilder(); + foreach (var user in _userUseCase.GetAllUsers()) + { + userOutput.AppendLine($"{user.Guid}\t{user.FIO}\t{user.Group.Name}"); + } + Console.WriteLine(userOutput); + } + public void UpdateUsers(Guid guidUser, User updatedUser) + { + string output = _userUseCase.UpdateUser(guidUser, updatedUser) ? "Пользователь обновлен" : "Пользователь не обновлен"; + Console.WriteLine(output); + } + public void SerchUsers(Guid guidUser) + { + var user = _userUseCase.FindUserByGuid(guidUser); + if (user != null) + { + Console.WriteLine($"{user.Guid}\t{user.FIO}\t{user.Group.Name}"); + } + else + { + Console.WriteLine("Ненаход"); + } + public void DisplayAllGroup() + { + StringBuilder userOutput = new StringBuilder(); + foreach (var user in _groupsUseCase.GetAllGroup()) + { + userOutput.AppendLine($"{it.Id}\t{it.Name}"); + } + Console.WriteLine(userOutput); + } + } + } + +} diff --git a/Demo/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/Demo/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/Demo/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs b/Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs new file mode 100644 index 0000000..c4e7b2b --- /dev/null +++ b/Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +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")] +[assembly: System.Reflection.AssemblyProductAttribute("Demo")] +[assembly: System.Reflection.AssemblyTitleAttribute("Demo")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache b/Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache new file mode 100644 index 0000000..027d67d --- /dev/null +++ b/Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +eb16b2b154799358c5c37f7f25193ef306ab5592617791ff431f7a24a66875c2 diff --git a/Demo/obj/Debug/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig b/Demo/obj/Debug/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..8cb4a1d --- /dev/null +++ b/Demo/obj/Debug/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = Demo +build_property.ProjectDir = C:\Users\profi\source\repos\presence\Demo\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/Demo/obj/Debug/net8.0/Demo.GlobalUsings.g.cs b/Demo/obj/Debug/net8.0/Demo.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/Demo/obj/Debug/net8.0/Demo.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/Demo/obj/Debug/net8.0/Demo.assets.cache b/Demo/obj/Debug/net8.0/Demo.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..bbc8f55812f89365785b8a7424ce10978b29d87c GIT binary patch literal 152 zcmWIWc6a1qU|={fce0wU?2#?%hsqjHf0xw!9{T#3(mdt!tMu)Tnfo4Up8`}vEMNpG nly|m@2`x@7Dvl{A%1_IT(aS4MPc4ZlNKDR7OiwM2A!HT+T`3+U literal 0 HcmV?d00001 diff --git a/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache b/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..698bc9c --- /dev/null +++ b/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +8631cf5a864e5c5e5f5a870ef74f2bdbb99591c8b31daf749eff409e424cbea2 diff --git a/Demo/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt b/Demo/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..f882d18 --- /dev/null +++ b/Demo/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt @@ -0,0 +1,4 @@ +C:\Users\profi\source\repos\presence\Demo\obj\Debug\net8.0\Demo.GeneratedMSBuildEditorConfig.editorconfig +C:\Users\profi\source\repos\presence\Demo\obj\Debug\net8.0\Demo.AssemblyInfoInputs.cache +C:\Users\profi\source\repos\presence\Demo\obj\Debug\net8.0\Demo.AssemblyInfo.cs +C:\Users\profi\source\repos\presence\Demo\obj\Debug\net8.0\Demo.csproj.CoreCompileInputs.cache diff --git a/Demo/obj/Demo.csproj.nuget.dgspec.json b/Demo/obj/Demo.csproj.nuget.dgspec.json new file mode 100644 index 0000000..da46742 --- /dev/null +++ b/Demo/obj/Demo.csproj.nuget.dgspec.json @@ -0,0 +1,68 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Demo.csproj": {} + }, + "projects": { + "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Demo.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Demo.csproj", + "projectName": "Demo", + "projectPath": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Demo.csproj", + "packagesPath": "C:\\Users\\profi\\.nuget\\packages\\", + "outputPath": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\profi\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.403/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/Demo/obj/Demo.csproj.nuget.g.props b/Demo/obj/Demo.csproj.nuget.g.props new file mode 100644 index 0000000..73139f1 --- /dev/null +++ b/Demo/obj/Demo.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\profi\.nuget\packages\ + PackageReference + 6.11.1 + + + + + \ No newline at end of file diff --git a/Demo/obj/Demo.csproj.nuget.g.targets b/Demo/obj/Demo.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/Demo/obj/Demo.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Demo/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/Demo/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/Demo/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/Demo/obj/Release/net8.0/Demo.AssemblyInfo.cs b/Demo/obj/Release/net8.0/Demo.AssemblyInfo.cs new file mode 100644 index 0000000..26ce1e5 --- /dev/null +++ b/Demo/obj/Release/net8.0/Demo.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Demo")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("Demo")] +[assembly: System.Reflection.AssemblyTitleAttribute("Demo")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/Demo/obj/Release/net8.0/Demo.AssemblyInfoInputs.cache b/Demo/obj/Release/net8.0/Demo.AssemblyInfoInputs.cache new file mode 100644 index 0000000..8b4a841 --- /dev/null +++ b/Demo/obj/Release/net8.0/Demo.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +d9c398faa9c0660d9d613e43ebfb7597ac177dfff549ea56b4c418e809c18643 diff --git a/Demo/obj/Release/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig b/Demo/obj/Release/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..8cb4a1d --- /dev/null +++ b/Demo/obj/Release/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = Demo +build_property.ProjectDir = C:\Users\profi\source\repos\presence\Demo\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/Demo/obj/Release/net8.0/Demo.GlobalUsings.g.cs b/Demo/obj/Release/net8.0/Demo.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/Demo/obj/Release/net8.0/Demo.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/Demo/obj/Release/net8.0/Demo.assets.cache b/Demo/obj/Release/net8.0/Demo.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..b48376c9308ea08d8bb6b0a1f80ce00dae20c414 GIT binary patch literal 152 zcmWIWc6a1qU|{%h`OOEZFCMR}zt&gru5(J2k2s{zb8O!((|bIEs;fiPrvTLu3mAb4 n<(;i!LW@(2ien0j^3yV7^zus6Q%hnB5|gtN(^HFM2$=-{lS&>y literal 0 HcmV?d00001 diff --git a/Demo/obj/project.assets.json b/Demo/obj/project.assets.json new file mode 100644 index 0000000..c778af5 --- /dev/null +++ b/Demo/obj/project.assets.json @@ -0,0 +1,73 @@ +{ + "version": 3, + "targets": { + "net8.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net8.0": [] + }, + "packageFolders": { + "C:\\Users\\profi\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Demo.csproj", + "projectName": "Demo", + "projectPath": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Demo.csproj", + "packagesPath": "C:\\Users\\profi\\.nuget\\packages\\", + "outputPath": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\profi\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.403/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/Demo/obj/project.nuget.cache b/Demo/obj/project.nuget.cache new file mode 100644 index 0000000..c9dcc0f --- /dev/null +++ b/Demo/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "aOzw3NDFr3g=", + "success": true, + "projectFilePath": "C:\\Users\\profi\\source\\repos\\presence\\Demo\\Demo.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file