From 921cd9d9bc4537cb6f669a8579e436e2d9dd1777 Mon Sep 17 00:00:00 2001 From: adm Date: Mon, 11 Nov 2024 12:11:33 +0300 Subject: [PATCH] init --- .vs/ProjectEvaluation/presnce.metadata.v9.bin | Bin 0 -> 2002 bytes .vs/ProjectEvaluation/presnce.projects.v9.bin | Bin 0 -> 107048 bytes .vs/ProjectEvaluation/presnce.strings.v9.bin | Bin 0 -> 127819 bytes .vs/presnce/DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 118087 bytes ...07043285-d0f3-4e1a-bd47-31ce5f9d6ade.vsidx | Bin 0 -> 21108 bytes ...49c97d00-5c66-4a1e-8d12-71db032dc957.vsidx | Bin 0 -> 9884 bytes ...5f8c8c13-8410-4729-90e2-9541455e8a4a.vsidx | Bin 0 -> 24306 bytes ...911440d9-122b-4fae-9552-73f37689e6e3.vsidx | Bin 0 -> 18666 bytes ...c0139657-bc00-472a-848c-a0858bf72207.vsidx | Bin 0 -> 13866 bytes .vs/presnce/v17/.futdcache.v2 | Bin 0 -> 464 bytes .vs/presnce/v17/.suo | Bin 0 -> 112128 bytes .vs/presnce/v17/DocumentLayout.backup.json | 598 +++++ .vs/presnce/v17/DocumentLayout.json | 598 +++++ console_ui/Program.cs | 28 + console_ui/console_ui.csproj | 20 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../Debug/net8.0/console_ui.AssemblyInfo.cs | 23 + .../console_ui.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + .../Debug/net8.0/console_ui.GlobalUsings.g.cs | 8 + .../obj/Debug/net8.0/console_ui.assets.cache | Bin 0 -> 10064 bytes .../console_ui.csproj.AssemblyReference.cache | Bin 0 -> 9112 bytes .../obj/console_ui.csproj.nuget.dgspec.json | 288 +++ .../obj/console_ui.csproj.nuget.g.props | 18 + .../obj/console_ui.csproj.nuget.g.targets | 7 + console_ui/obj/project.assets.json | 854 +++++++ console_ui/obj/project.nuget.cache | 24 + data/Exceptions/GroupNotFoundException.cs | 10 + data/Exceptions/PresenceNotFoundException.cs | 12 + data/Exceptions/ReposiyoryException.cs | 9 + data/Exceptions/UserNotFoundException.cs | 10 + data/LocalData/Entity/Group.cs | 17 + data/LocalData/Entity/Presence.cs | 18 + data/LocalData/Entity/User.cs | 25 + data/LocalData/LocalStaticData.cs | 36 + .../RemoteDatabase/DAO/AttendanceRecord.cs | 19 + data/RemoteData/RemoteDatabase/DAO/Group.cs | 16 + .../DAO/GroupAttendanceStatistics.cs | 16 + .../RemoteData/RemoteDatabase/DAO/Presence.cs | 18 + data/RemoteData/RemoteDatabase/DAO/User.cs | 16 + .../RemoteDatabase/DAO/UserAttendance.cs | 16 + .../RemoteDatabase/RemoteDatabase.cs | 12 + .../RemoteDatabase/RemoteDatabaseContext.cs | 35 + data/Repository/IGroupRepository.cs | 18 + data/Repository/IPresenceRepository.cs | 27 + data/Repository/IUserRepository.cs | 14 + data/Repository/SQLGroupRepositoryImpl.cs | 116 + data/Repository/SQLPresenceRepositoryImpl.cs | 220 ++ data/Repository/SQLUserRepositoryImpl.cs | 61 + data/data.csproj | 18 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + data/obj/Debug/net8.0/data.AssemblyInfo.cs | 23 + .../net8.0/data.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + data/obj/Debug/net8.0/data.GlobalUsings.g.cs | 8 + data/obj/Debug/net8.0/data.assets.cache | Bin 0 -> 35817 bytes .../data.csproj.AssemblyReference.cache | Bin 0 -> 9112 bytes data/obj/data.csproj.nuget.dgspec.json | 84 + data/obj/data.csproj.nuget.g.props | 22 + data/obj/data.csproj.nuget.g.targets | 7 + data/obj/project.assets.json | 2191 +++++++++++++++++ data/obj/project.nuget.cache | 47 + domain/Models/Group.cs | 14 + domain/Models/Presence.cs | 18 + domain/Models/User.cs | 15 + domain/UseCase/GroupUseCase.cs | 88 + domain/UseCase/UseCaseGeneratePresence.cs | 192 ++ domain/UseCase/UserUseCase.cs | 146 ++ domain/domain.csproj | 13 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../obj/Debug/net8.0/domain.AssemblyInfo.cs | 23 + .../net8.0/domain.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + .../obj/Debug/net8.0/domain.GlobalUsings.g.cs | 8 + domain/obj/Debug/net8.0/domain.assets.cache | Bin 0 -> 9839 bytes .../domain.csproj.AssemblyReference.cache | Bin 0 -> 9112 bytes domain/obj/domain.csproj.nuget.dgspec.json | 148 ++ domain/obj/domain.csproj.nuget.g.props | 18 + domain/obj/domain.csproj.nuget.g.targets | 7 + domain/obj/project.assets.json | 803 ++++++ domain/obj/project.nuget.cache | 24 + presnce.sln | 40 + ui/GroupConsole.cs | 58 + ui/MainMenu.cs | 224 ++ ui/PresenceConsole.cs | 188 ++ ui/UserConsole.cs | 81 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + ui/obj/Debug/net8.0/ui.AssemblyInfo.cs | 23 + .../Debug/net8.0/ui.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + ui/obj/Debug/net8.0/ui.GlobalUsings.g.cs | 8 + ui/obj/Debug/net8.0/ui.assets.cache | Bin 0 -> 9890 bytes .../net8.0/ui.csproj.AssemblyReference.cache | Bin 0 -> 9112 bytes ui/obj/project.assets.json | 821 ++++++ ui/obj/project.nuget.cache | 24 + ui/obj/ui.csproj.nuget.dgspec.json | 212 ++ ui/obj/ui.csproj.nuget.g.props | 18 + ui/obj/ui.csproj.nuget.g.targets | 7 + ui/ui.csproj | 13 + 99 files changed, 8913 insertions(+) create mode 100644 .vs/ProjectEvaluation/presnce.metadata.v9.bin create mode 100644 .vs/ProjectEvaluation/presnce.projects.v9.bin create mode 100644 .vs/ProjectEvaluation/presnce.strings.v9.bin create mode 100644 .vs/presnce/DesignTimeBuild/.dtbcache.v2 create mode 100644 .vs/presnce/FileContentIndex/07043285-d0f3-4e1a-bd47-31ce5f9d6ade.vsidx create mode 100644 .vs/presnce/FileContentIndex/49c97d00-5c66-4a1e-8d12-71db032dc957.vsidx create mode 100644 .vs/presnce/FileContentIndex/5f8c8c13-8410-4729-90e2-9541455e8a4a.vsidx create mode 100644 .vs/presnce/FileContentIndex/911440d9-122b-4fae-9552-73f37689e6e3.vsidx create mode 100644 .vs/presnce/FileContentIndex/c0139657-bc00-472a-848c-a0858bf72207.vsidx create mode 100644 .vs/presnce/v17/.futdcache.v2 create mode 100644 .vs/presnce/v17/.suo create mode 100644 .vs/presnce/v17/DocumentLayout.backup.json create mode 100644 .vs/presnce/v17/DocumentLayout.json create mode 100644 console_ui/Program.cs create mode 100644 console_ui/console_ui.csproj create mode 100644 console_ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs create mode 100644 console_ui/obj/Debug/net8.0/console_ui.AssemblyInfoInputs.cache create mode 100644 console_ui/obj/Debug/net8.0/console_ui.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs create mode 100644 console_ui/obj/Debug/net8.0/console_ui.assets.cache create mode 100644 console_ui/obj/Debug/net8.0/console_ui.csproj.AssemblyReference.cache create mode 100644 console_ui/obj/console_ui.csproj.nuget.dgspec.json create mode 100644 console_ui/obj/console_ui.csproj.nuget.g.props create mode 100644 console_ui/obj/console_ui.csproj.nuget.g.targets create mode 100644 console_ui/obj/project.assets.json create mode 100644 console_ui/obj/project.nuget.cache create mode 100644 data/Exceptions/GroupNotFoundException.cs create mode 100644 data/Exceptions/PresenceNotFoundException.cs create mode 100644 data/Exceptions/ReposiyoryException.cs create mode 100644 data/Exceptions/UserNotFoundException.cs create mode 100644 data/LocalData/Entity/Group.cs create mode 100644 data/LocalData/Entity/Presence.cs create mode 100644 data/LocalData/Entity/User.cs create mode 100644 data/LocalData/LocalStaticData.cs create mode 100644 data/RemoteData/RemoteDatabase/DAO/AttendanceRecord.cs create mode 100644 data/RemoteData/RemoteDatabase/DAO/Group.cs create mode 100644 data/RemoteData/RemoteDatabase/DAO/GroupAttendanceStatistics.cs create mode 100644 data/RemoteData/RemoteDatabase/DAO/Presence.cs create mode 100644 data/RemoteData/RemoteDatabase/DAO/User.cs create mode 100644 data/RemoteData/RemoteDatabase/DAO/UserAttendance.cs create mode 100644 data/RemoteData/RemoteDatabase/RemoteDatabase.cs create mode 100644 data/RemoteData/RemoteDatabase/RemoteDatabaseContext.cs create mode 100644 data/Repository/IGroupRepository.cs create mode 100644 data/Repository/IPresenceRepository.cs create mode 100644 data/Repository/IUserRepository.cs create mode 100644 data/Repository/SQLGroupRepositoryImpl.cs create mode 100644 data/Repository/SQLPresenceRepositoryImpl.cs create mode 100644 data/Repository/SQLUserRepositoryImpl.cs create mode 100644 data/data.csproj create mode 100644 data/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 data/obj/Debug/net8.0/data.AssemblyInfo.cs create mode 100644 data/obj/Debug/net8.0/data.AssemblyInfoInputs.cache create mode 100644 data/obj/Debug/net8.0/data.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 data/obj/Debug/net8.0/data.GlobalUsings.g.cs create mode 100644 data/obj/Debug/net8.0/data.assets.cache create mode 100644 data/obj/Debug/net8.0/data.csproj.AssemblyReference.cache create mode 100644 data/obj/data.csproj.nuget.dgspec.json create mode 100644 data/obj/data.csproj.nuget.g.props create mode 100644 data/obj/data.csproj.nuget.g.targets create mode 100644 data/obj/project.assets.json create mode 100644 data/obj/project.nuget.cache create mode 100644 domain/Models/Group.cs create mode 100644 domain/Models/Presence.cs create mode 100644 domain/Models/User.cs create mode 100644 domain/UseCase/GroupUseCase.cs create mode 100644 domain/UseCase/UseCaseGeneratePresence.cs create mode 100644 domain/UseCase/UserUseCase.cs create mode 100644 domain/domain.csproj create mode 100644 domain/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 domain/obj/Debug/net8.0/domain.AssemblyInfo.cs create mode 100644 domain/obj/Debug/net8.0/domain.AssemblyInfoInputs.cache create mode 100644 domain/obj/Debug/net8.0/domain.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 domain/obj/Debug/net8.0/domain.GlobalUsings.g.cs create mode 100644 domain/obj/Debug/net8.0/domain.assets.cache create mode 100644 domain/obj/Debug/net8.0/domain.csproj.AssemblyReference.cache create mode 100644 domain/obj/domain.csproj.nuget.dgspec.json create mode 100644 domain/obj/domain.csproj.nuget.g.props create mode 100644 domain/obj/domain.csproj.nuget.g.targets create mode 100644 domain/obj/project.assets.json create mode 100644 domain/obj/project.nuget.cache create mode 100644 presnce.sln create mode 100644 ui/GroupConsole.cs create mode 100644 ui/MainMenu.cs create mode 100644 ui/PresenceConsole.cs create mode 100644 ui/UserConsole.cs create mode 100644 ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 ui/obj/Debug/net8.0/ui.AssemblyInfo.cs create mode 100644 ui/obj/Debug/net8.0/ui.AssemblyInfoInputs.cache create mode 100644 ui/obj/Debug/net8.0/ui.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 ui/obj/Debug/net8.0/ui.GlobalUsings.g.cs create mode 100644 ui/obj/Debug/net8.0/ui.assets.cache create mode 100644 ui/obj/Debug/net8.0/ui.csproj.AssemblyReference.cache create mode 100644 ui/obj/project.assets.json create mode 100644 ui/obj/project.nuget.cache create mode 100644 ui/obj/ui.csproj.nuget.dgspec.json create mode 100644 ui/obj/ui.csproj.nuget.g.props create mode 100644 ui/obj/ui.csproj.nuget.g.targets create mode 100644 ui/ui.csproj diff --git a/.vs/ProjectEvaluation/presnce.metadata.v9.bin b/.vs/ProjectEvaluation/presnce.metadata.v9.bin new file mode 100644 index 0000000000000000000000000000000000000000..6118656bcdd06934cfb73b53a8e444ec1d2e1c8b GIT binary patch literal 2002 zcmbu9U2IfE6vt=xEZMyS#28`#i(eQXKuQQ=(U8UmwMwNQvUJ;Rx9xUYthAQ4&{DqJ zLbY0g#)74(q!3ipN(hLG2{l0t2oWPew34(|qfH4B^uZcrM(Tg=?A^IG;)C7fpL6ES znVB=cduAD9GL5r0?%i^Hv_DWNALn%A(BzIe7|16$g=V$vw*4iXiET8uGE{nG7*iP@ zCesmmg^q1Y>9R9Ay-Yrd&~`dI{BYo?%36wH7qOH@pTGHSe?aV`;|Jdlk8J1*h}&rQ zs@_(6T?VJ<-soTNsRfyw$t*0|L+sp+tgojcl+7vgRJlDZo}<$f4(koNY1vmfx|YX$ zG?JO7Gg@iUqwx}-;)$?a#_7(+YM&}fOflggj$6*@Ktx|b+(K+q%E;l4C?kW@gngD_S)B%rO4b*?L*7$4aFJ? zbDfBtSW?9LXYvAS+%PKq2cM@*IBoq@%ip;!UEqmDj z$t8Av%JhrhAsROBtqFpn#GKYhEtB*Y5%s2=jdVc-b&=K7yChz38L>05F9&{9d?-={50J5ysm7g zxlk=VQae+B(BJ$_UWI;vu0X#+m;KBqm`8Y6{5K5imknpyJ;Du=u>lvQ5sJ>f=Z@(!x z1#K)a1pnihY zA^i#`0aDtP=xo&>G_NCRf^z=RLD#KBTuO`D!ZYj~7d$B}YFH2to6d4W@^X6pEuHcI XJIDd!Kv{@xah}-S@YORLC!D_lfVOE+ literal 0 HcmV?d00001 diff --git a/.vs/ProjectEvaluation/presnce.projects.v9.bin b/.vs/ProjectEvaluation/presnce.projects.v9.bin new file mode 100644 index 0000000000000000000000000000000000000000..442790016d4dbabf51af68017de928b055ed7b65 GIT binary patch literal 107048 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 literal 0 HcmV?d00001 diff --git a/.vs/ProjectEvaluation/presnce.strings.v9.bin b/.vs/ProjectEvaluation/presnce.strings.v9.bin new file mode 100644 index 0000000000000000000000000000000000000000..9bf7467c0dc236ccad745cc9d270a7d1545eea1a GIT binary patch literal 127819 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 literal 0 HcmV?d00001 diff --git a/.vs/presnce/DesignTimeBuild/.dtbcache.v2 b/.vs/presnce/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..55c5393b9bfbcee3ecc0f9e4f12de24c13b0596b GIT binary patch literal 118087 zcmeIb2Y4G*_CBnUln@9c^w0^WH^(KmlTdA^IiwLMp&5c~$&QFDIg*^jbe0ZF3jvn4 zw52aBy|dJ%Ep_Rz^rbDZ%)!f27ryu0nIny^B*&Pm?Em?Ff#=*g@w}RI&O3K*pF5uo z_W69n#z$JaI}Wdp_l#_uIp=T-fAXosw`oInG!||Qwat$-CgSN(G@hCnN~WWs*!WO7 zWCa*GXksXqidchKUwdXUaY&>sJuw>Zh$Op`(Rf;ctW|JQL6qj(GZd<;4u{9oR<>8x zhDO(p4pmoHx7Aiv)I{p)YAQl)bv4zkt+lmPZLMQRw}mQeLZPwkwNTqC+FQe+NS$xb zNNe5b%DT#`NTjBzKMwq&D0ZYOSrRs|{6Ejc#p?)Q%lf z7pVz_E2>zj@U5r9YVL`*%}*xc(L*E2#zZ(`4dXccl~uk#RduCr&+3Y*y7q9}n96Xd zwynChGCa06)ZSWET~$|AS6vwzGZuzMkF9R695c49t};?lTUSw2T~k|A9cmj>8;R69 z*9%ltjqz>On25zd&YZ5<3D6g5oF8dhFrz!&)tw$6Nku#2v!k66YdyBVsS9n4#M8-8 zY-Xr!L8v1#H;MG^Pp_()eI9*)G@qLGy6avL&q%R-i$;yH#h zHm7$_ilpni!_jnecUM<3l2SH(Biw6iDRm=$S{B;iIR<=fCb)7;(B z5lN*Z;e8Ux150iuXJj!hQy+_l zQoizO(Y9nFm1s|wPgs(U#FeY%87g|3;+z}7*{Ct)73Gz_HR6$UTOt_=b#+yiSNPT_ zpFUys$VU8Or241#Y^86I^PBDZYs0r!_!W#djF7p@G_%8_D{S|8)xw)r49*Xtg>Gb4k z-;rP%MNJ2C!^nxzSR~aFPNZ>#mQ;9w;%{_CbxU)2L8>Kt^Kh%n@u!xw%1Eh}^759D zT-pQULO_{JMN{RC&GSRauJY-4AOu<-j>UYzbh10*TfBn2$TNSc)!&>JPe;=|?efrY z)-TTntuk7LhXt3!HZN@x)Fm>{9X~APxn!K%Z*Q{sK9=a{KpjyYYE7YlQ;%p$-MFfJ zckqD6dg7zYN4MlUmc80k_iApTkw~W0T{>d`jwQOdxcC*m%y2GH-kj)8wnbcza7pD+ z(R|CLgqL+>R)^`Xu5uKRPMP4jRim6+HL5K&Dx1Tb;^{~-(N&H@RjKWvj01_JvVS}? zQt-hs>cEuHqEK^NGTN0cpVHja$pv`k)+j%YS|M&sjkYF3$(}+E^sEpE3g&?&B{1FG zgX*=jd^T#9@+m1~wt|*R!MfM-tVl<9ER>wEB-3gr&%NzCxJ7znqN`_i!fpCQlc=H- zxJ`(_(*l?PnzEH?NM$YVRjYZq` zir_vjh{Shmt*CCVX|HRqtPG?1ULEoo@O_lyyQhHj_`b$rvqFox>Yt7V;Ss)*`d!o) zsuA@{sIsCZ7H!Svu3%m0`LW7X@hqLo!{-uR*)OI;;nuNrW2?thjSZtCR9oR&`>@IA zX3Y$x=TA(c;Kx&RgfE`+@bu9V&1XZZntl_&IVsd<%tpdI?$_MmWF!{idOZ~T#o^7$ z{8ZiDSf7!it`!l)wiN8+MrIpBZRo8RY+4n|)Y+eMkC=a2ujgrR)P2Kq!yZ_U z=E`}1L3c(vQI$A1xyUn|@BcLQBXxV*J-4?Q&_sx5^*c9by=Y6s+oK)b=oNEwGOy*_ zkK3DbfxMfXEF62$ADQ6c;sNkbpwFDoM%8lfet}Vf{EWY(AScWFsR?F|HN#9lAB92@ zalyWzzww(0c_5`-A05fUHCXm}l3rupgHX7%D+D(Y^@3ks+POjZ^WKW%d_U(Eyq_-O ze-uq_mwS14P5Re}#@d_*#R`Yy!VH9Djf4?v3nadUzx-BV47@X%jxNFwm1;~cw^*8) z`2kl*)|PCywcuULB27fO73^4BbFwoh<(!P-q=J)5PO3Pm=43P{HJsFPQpd>{PR4RF z4vB9*xcW6C4Fx+dbEB#5P^=-8ind{t10zvP(JpLrSGIXjmM0yVrKl1^m;>z87>Fsq zQ=@yTV%m*k+MSaQMg%)v3c{+tX-On5i7!69LL-BAZ8CKWdi?2W3^VcjHnBeMP3E$RM z*IHTK-rg3j3Wvirl_vZZGCZCsf2Xp)dw`GPUE6q9M{1!nL{Z~yC`?y>S67+FSDBJ? zmBM4A=q+M;I5Mw0+LCBJBzJri)1UJbsdRZ{NyOLWTs%u27f+bATmG0|O?XV}*otsX zRr~1L_Hd}qngQ3Wx$NMutaW8%+AniBZ$Q^`Ih5~e`fqtGmSgHXZ|)1D$LS6X2)iWb zj`O)J7aFvi>HMyF@2Pwfa>C<(NBi~DT#EZQ+NX2uGsq;5S9@<1{%sw|cW<7#ht{1Q zsPF1(#QG7Qo?yPV$d>hm*k;J=ykF+h*RPQ!eN@`o-%xn+jORJ2!t<_5C^UPjjjmbq z*sB)fq&IZ8V=0C+6}nU3jAw@}RRDXtak*C*0P}jmYK08Ns4?%2ac57A*t%{pDbeUp?bl)&h2EUSAh7aaRn)+{azXjk$0s zCNbyTlLQk`m?zIjS&7TJ>4~_S=*OrGXR$&hR~BO6hFEEiy0j%x)?pRXmIbq-HU@A# zyA>t7)P};es%m9YBhrmYc_LYUK6BeO-z`Q~vT%W=l0qTzJ$Cis^U=44AQUfve zO{wOyitzxBkyi_u?gZszNUfS|VWVvY^QLE1-2|rwBI}z|EwY0+GM*(YDV?)>y7+aR zMG?Fg;jHUzFHB|*&;*|bLhGB)9FJ8I+gbuPz3XVWpgEXt+ddf%J*Tsz^}A-u>t-8> zAdfVUi;5-lqesYKJbtW7iB{%E28G-cS!M=aix}`apBeGm#8`e_rQuFFhnbM+nGBPR zWZCF{KG7#)49u0}vElgZGcc^6QNgVte$k-Qd9%T4XGUaD#B(xB%)qmW0q-?pJPxW1 zKA*ie(4Q=c3G}IBtG*q-rjVr6SrkoC}41bL;gvgRL@aNA!FnUfZ z+gtd?vGte;WBfn+YbKWabd8KZ%^Fz2)JHx=uM6*;t5VTAmCYSkfKeA@g2^)th13U=-jJ5U zoOL$aG*GwqL1S|oZ==q}Yq`!Wj11>{vu_q+g2!_W#ncCnS%+0-{2fzyKAZiuuVZ@F zsTRm={6^+J$te2iiqEN7^u`+-C?76l^PTsQTiO zOR{WK)-}xLwQRSvwGp$)Z_{y0vrt9ko;ShbjU3YLoZM|FuI2FQ#%0~hHt%PfvyC^G zn71aUc+7G%@GhSL2Q^Z-xA!0u@Gui#U@%KB){>#cLiD3-LWbbRJ0}LhivFIq0k1Vy zT<263_c)xko?_QKjAswAqYc47&DL6^R&^Q7VzQhKygzIpmLi;G{Z#Zli%_f=IH0h3 z`g-D_PAu4%)r}>Joz6J#-`LcC!d))F0CCpKhC3C!!5J9i)^cIf44xm8t&qwal8JOIs)|4v zurG)h2#fmEkAYw`77Mzn9^`MBJp;>u`eqL~F|(Q}*B29f8F0UEzW71<4m?@kGg}5$ zrS#1f55Kw(D-$P6ZE}fIL(mQ?%i(~#SJsb)BI}#T+{mn-nA4xxviT8FjjjEoU2I%E zz%n9Q7?NeP|6L623AQZDOiX>V>50kmv&DUk*DaukGk<`uKGn^WO)~~Uk=}DP;A=iR z>}wFdT7%hP^HV^e!;^*U+jzPH3u@BIL`?Ct3Y(Q@w-2xh0u4l$Phg+X4dLj_xA$^+ z;#;^H-@>7stj@_WPKG1Nv;lK|VuDNqQT0hCN3|x0u{MWcz6X*+Ncs3Ab}W&3NoyT8 zDLs%PKm#0F>lq5IPa<x1yRqQOUS~W6gihQe`Ho@Q)hGNNQP;*vg!!o9COEwuTMU%#PS9corQHX>& z!#NX<2W6k>Jb(!bw>A_{K81PiDiXJ061QceC23vHjCO&zyf#o~X(aMt0f+%2O@x!r zVF6#&V|8FDGN5A&jRN1SY^GCxG{KJnmy7YkE|;XLofGfG&h{OVu#=aY)A-6mr^?3L za}M^@w*`>~XtQ=;Lk5D&=dPg3D!854rul`pQ={>P>iXq;eOZ0We>Fgq34b+?GX7S; zU#p6pju?OLlo9Xl=A4=Lcb`A~qye6+8bfguB1?gQ(qVL4|^P_~Pq2ntc=jlkNC`P!YW85lh*#Mj>4kz`M1D+GC!QxTRqWrDGKLopO$ zEaRvuOB$H6@oeq@a!W&O!tX&{xkrJ^m$kl?rQ90-L)n$A^RF9WO_txI%7>{ z(x zAHLPOG2nawZZgi#Vdv+v^XAKHp~3l%2%aZvA2uYDr#YtwKvmweWgvoLRH-kaa0L4^ zUo9Ml`9^^dlC!k;K(-|<107+4H3M-JVJ#<)gPFKi4#q%^F7P-`3q_rA?>4sKeG>VM z38D=6U4W>J-|bA$e0JXaFb(G${?YVt7yAT4hxh=EuNkX9g; zPNpx;0hu3RP}D@y{INhD$>t?n?q|5HF19F>c!hBWXtYv>0xQI2;lR?&=OQ+1Am0~w zUT4aBX78iQe>6eY5<`9$piBI=4rPK4V?*X!?VOQvN5eBq7IIISAnQm&F%%*zcL(~T znX=!oxzgmRy}R9Q!@PNl|7e1y;|%#-fF|+VI+1OdUuDX9W>#cjH@;ft3@^(nQ|}1_ z9GP&v06kvUt&>VeQF8=aY+|Ed)%EjIBq#pgrARzf9gA5VSe2*KV{8{wguRAT$wqO@6TCm zOI9#@5CfnquhC^7ghF(ALRiKjoWmg)=yVmxV*5l|8)H#-w_EExHstL#W=;=)Ej@Et z7Z?ho0A(3J)qTH^NxPV>nO}6lISAG!M?zu#`ndW!xZ6g}thXqF832cRj6;3`JC!zWj)+o0!L&*=lJT{m5HlmB*iDs6LlK6U^OaD2Be7<3WZy zn6kUrTnQTe-JOvnZ)3w`Wg7kNAG0*|e`H!;JbSMpzjc~Cep~mk4FfG4y&4r8bJa(Y zou_unW-l@1Ov+nG^X&W=@_WucESZ=%{;lIIALSG9 zT|`v{$P35XIRk{52%tDu5`gszb7g)9E{%`!rm1R^{p>LIt87=c;pz)*fJ*B%LqRTw z&%7XCXS)VoRVZExs{1%K+A%-9IKrtaFy3Ud@*;-Ltp{v^+P4gaxEyLdUaJt_VYB9Y z7GAP)_Pn&-gF)+kwkqqj3t|mWY9g#Y*vt*N;`o7y`-zjEIU)o1tq=Ab`_t44aOahvY-Y^*mV+`t zrDgfeMAiqNIX)|5gD`3hV#@~ZWKm9?T?^S@fz0TfG{B&V5Q>tQ4Z#}1bft|ivXsq} zc%uir29$Isr&8r};;B%(v#HW*Y&z<$ykMW#`lB zjq0gblWiZeJeu8KnBaLWL&5f!XK%3U!nUQEbamn4cn+3Zn^MPfjMfG8GKx^X>RX?Z9^B<@_RO z6D%4Ctq6;SLfe_6T3oW4L^nAlv?$cvmW*~egFod=Yz4az(;n&KKQzIyfq?tTu@-PO z2RxbsK5B(=?&ei}ZEh{QGKQ0}oQz|q(#yFE`Ij_RRv;jW)c}wzxP^Iy1%);*M zih&BCNM(jxos7m)GAApG%RQxudwKx0>Z>PAgi)MPPZ(A`GuOz>nVdy5iD4qgP=a2iTd7Z%xofVyn)voiVS|~$4h?34HUq&Fp)Dtv zX&i@vp}ryyD5`z+(ckRc&kSa7Z?>8l!F1Wn!DcBO@Nx|_Mt`N%2{i%58Kwek;Q(IWq06fFAT)lFLt#!_h+IH;9w1WnYdrMHuE;#foxU2 zx-11{F2#&BL9T(=`bBOgwu7105C>@BzV?e&Z3>``ZTFpjv%fGvvDMBIcW@HrB*sZ6 zCkaj#a+2aC&BypaX^vtCj%Ei+Ffv`JC@$Z((|OnNST>p& zo-PJ8ac_?27*8}5W4}n27*AoN=HKbdyfKltYmjv+$NF0~D=+pH1{>hjL|_`5g?&{S z^>mKOz!-*Bnq(|C#zN6f_ZNeOBiYlHPIM$g zUGsa&>th`Wyn{5~rSV+0EoJcXeqn%8>vx8NEy`>0U`tSX7G|u``I3%x0mmw(XHlpD zR!v0KFG3}vrb%4z|9cngv>q z;~uu%ce5b-3jN8vGzcWF)ftdS6y6(H8{voFRVGi8w>R*CO@8Ops|H zqGDuvT~#^r1?KTZ4$Ht4PhQScdu2Fp6XNY&W$-1oB~w)xuIAk|GKegD{Vw{dD_h&E z$JEq@!qv5-Bh@t~;>cq!*Gm=0t4!SM9E|yCQI{6)N6X(}OEN8*dwu|<>C>XtTZRHD z%$zrncbK<#*_?r;Fj|J=4`*k4JdKHPWG1$6HdB)3#PVnebGNzQ2l%$bOwPtrJoPdEYt@5}a?=d?9|pTVZ}xw=Pg3p$57 z&qo4HuxKE-K3UX)`;vqEHwR~+9n}}BDc;>hW%vKEHE9#(P^mBjAaMn(tI7A1WAPnS znx|IgP<_qb95=w3;5>E=I9(`pj&S%Et^KJLwgxiAt^z zVfoIgJXL}RaXvl(p#~5e=ZE6)NX)5CGtXe&=>d?Im&*) zbpY(-WvLQ8gW{ed#r&s!W@oNHV^Jg-Q{Ve>_?I%O0KfoM)^}WA7>K86Zpw|v`kw6> zsD}00FhkGmP-;P{d_3M?ZjU7vGl$j>Y*Y3c$ugabG(qN1hJq_fX0FRBI9~v53=2sK zrtWpF_<@xPd+nSF`T~ZcSPp%hB?dEVtFS!-<1)+1i@A-$%y5%N;IC`x>J@~ws-f7H z!)0!4*6K{_8f?1skGS_EDMg=d0U5}iCPG>co8ql{u-9Z7%?~+wvYje3m94e;zOBOs zW!y=JnIOJ~TE+vQDZZ zW<1k0kxd!+n3R^)+>y7;SFiBzEHV9m0QLE41CDB($PnQqCZmbTFiIcIL3_2J)?zr(~)BT)w<~TMmEB=AHhtqE~YUywz9{Z}($w%`cAO%d1Z_ zaxZp&X1#?C$qE@cZGsyE&KKY&VIt_^eKMP#|^cNwIQ zI9jcSf+;|l*HtcweC@`kMVOJ?_u@ErML4Dd-0{aeNS3vMKYa!wDL`0$Bpryvn$O{w zp9p4R_8p&S!yCu$_f8hDA(;ryIi2Nfz&XuC1O+(Dji8hHigOs|TL_Af&R7m(3)z&k z5Hx@Z&J09Rh%+sU6tkA*Pz>bj0;L*=k*w|ZoV(eW_X*8`m|)I8B!!vNB3Z=TE#`0x z%-s~?Ze}PwUzMIR;iR$||J4Ld2AnQLlQ?Z1%FGzpCbcLtxzGP$d^Zkfo3it3hOKN_ zXM#5aAr<89ID8iSv&cU$HSp_H@v-Z4zsZ`jCmd&{jMbQR_hsXS~&7}rusC; zv%g!a&weh7U@_6i*zNku#2voW|;Wu3_3oy72Zv_9sfu!})UDBRiN zY#P~;jC3VZEnUe-ihtR{y9c+lM&m8xBdy&XlIb#g3ZKdsJB=?E( zYfE*(9cw9{*~)crViMmd<*#fOa?!Wmv}jv0kxI1VTc#6cHztyi^7^hW>uk1l4kzdF zwRZn?Z71JguDB~Jtn>Mb7w{Ep+|MaBbVp-hep?v3GpgM)n($sxC%$?RZH-}(UE2bz zv&%B-+bHYq+~(%-dzGu-&&EJ;%DRZJTjl{oQ{AChbGkbmO_VodReUgP9-PTu6?ZBE|dE)N(S0 zlU+F3m6P2$spn)oClfiDj_lwY98PqGqH*5{eyo-19?G3Z+qYXkGE8?gzZB_?s%qTd z9rX>zwE@9j+~Q&~n{VP|nsS7by*Zi1$!t#MaoMYI&7QTOyuH#3J(wWsdB*@}#rh1^&_=?I=G4`@Hxz?fY~9#(f(U z!}ta{7un-iy6D^W*92I6@G%u$(886|=!)u==J0}4OSb+%eOQh^wWLGI4t!-Y|4g}i z#@C48kl(P|KBr@YJZgsJKA%T7>#czxsbVNdhsWf?u;r5*xwZ?m34MWjWQ4VxW{|hZ zwd$yN!YK}XLq>J0eY1D=tvafW-HwEJ_Kn2(#i3+;TxDHFl7Kd6V#m*%M~*UuyIIQkVA^ zTu1wrd&$b;Cn^j7qN><0s^%5_MOEQTRTsNdbaj{OLp%(YmRUDsQLJI4xSZkQrojAw4-m$QE}Xq5L(&eB5^+WW{y(79V5N~%3F z%6w;A9&0)Nm&dzNfVZ$AeruPL#1i+-gWs=3zf^q>dCPtFDMSi0ud zxfhOLCyOu&mY!&w2TQmj&bx_K%jIo+<}yv0%jCIwx^Y+gc~=X0$B*H!%=EEDM@PX- zzkI%?xUamGn0yUP!LhJ#j5*Wte^-mYX6pF)f- zLd~J(pO%|X@ru6t17*G2W4$D`pwm>wm};~Q4Np{I;JVD$wIaf1F_Xr<+=2h z`BJ40)G>=UqoQaTs85%d`Pxcjv@_L~NTM=xZee?AjG$+lO5+0$p=8*xGsR=4&z4iX zt0T40X$I7IAA{-Y?<%*S-0$+&xmbCjHW-G*(;XNVcWt5h=c(XbV}+VuGo9Zx?>$xd z67$4m@X2%M_AyT0n80Tr@M^fq{?U?JYv^uAvtF%ZE%PlYsVTRU$b~J+lX#oc$##P5 zTw#_Kr;AsZxh9M)q`4pD#JS=ao}P%S@5Z9=Rv~+P4CXVf_ue*lMcUN1(cY4y6 zC2Broay3|wI(QJ4KPSTt z7#{3$i{KJ9rQICkHLR96IN7wcML>?xOyte#tF4axBT8BXcWUpU*GH;eI$W}EYWUD}@D z_+)6Yuxq`=jHXM~@$p}QBzVTFZ zX&ctLzNs9sdEUgghb{K#(2{1ET#vMtqxB(YpVBt#nr3h-nHQ6)g$@nLL^`GxeU(`s zvGvmSZ8htBN34(8Y-xL!nptjOxeXtcCraB@(2VaN?PB{*dGQIy9xiE)gLy^sr!Zyx zlkJtZB@25Ve)GQYQ)Yd}j(pCJl=k7zbwqLS1zRm`ahPj$d=e8vnMS)0VX z66$n{xqq_*r5%Bhmu$6>ea}`)+X_)u_wJ4)donXQ)(>oUeo0x*F61fmMM`RE zdc>V_U?A) zimjjdMwWIcghQMaS=b#(xswEzZ_o-cn)$AX%CZ(4Ep1)Nk>dSo{%*v~MAX@ppv>~K z;nEKLD8mV?rWb|-Y_s&GE;bcvj72dc>@=`~Y_+s~D2^0XCu8U5NHV(=!Kr3SpO0Z0 zb0ABcC0y1Zj<>X3CO6(@_vU)p9?aHD+ZxiWtLJDHHe2Fq4tshed2&%19Kr@m{NReg zxma7Aa7QSuRbkj#jgz75LTMl28Lhmo*;&}4!d{(imbSZumm^~CV(RhH6ke}soA1fp zYp?^QT>$5CK*c_}yEb=igW*oD&0IeJ`}hBy1eyi!Ctu>J}S zUuywcBRKpG*oD##etW{_l}-Ab!-nj}M(jpui(l?tbSJU00PRGs*PUCi@rsB)YuM4I zslg-HgH1U8O;=?6*{##ctj*Z)F{NGVATy%wOPfiz^_nW5qh8Z=Zp7y7$Z!5fjySI- zG&-J)WKT*vH!h5*QeX?%v&z_LX}j5CRDS@sWYZ+p`956YXvg}ZxN@mWj#Ew8rY4}j?8Ap)e6iij%V|wt+6uZ8)Knpr<)ZgaqLq#naUoN z`0>cPknHJ7^R_Kr^LxtcV;zZPG(BH@n$GUbWOquNEed0QTdkl1}p#c4G$KqHj*Q#YKp{ z_@6u|dePa&o}5(LhE-ug_N}QH+lZHWqU}*^e0>#D{RirEN94hP`iW zSPR%}X}fhfUzEjiQqOm;%dAeeU)ouzT>I+bO0d<^4y5N=)qC*^*@4nN-8l|qK1y6> zCE0X|Hc@hy$tu&?26>7tu7EsN_%pL*R(b`Ho%!aa_rtSg)}j?acE+^I+Dq7?cTW`a zBP7{Rs^xxAw9Gn`jhFbj%7mN$0nRe(aCV@yeT{7NjsuGIBiU|gt4!UlUZfno;u zI+=}@xZ3g>&3s&~%sP!tmv-to_d{i6)){QFv`a7f6I`kQIg4$THXE@m?Mqr^)-twR z+Ub*=hW)vv=QK0;^*gpz+CCfG$}aG}kPVi$1Z0EySBT22-?QP;zIx1tb4OfNzP*$! zm$v=RmUBKJQD$AiR!jS|D66?&l_|5XS}{DswoolI-`B9^(ze=F#PXSwGV6M_SlXo) zS&Q2Jy@73)=(P;DIFhf0lv#gbW2<0aV0<5AN9$((*Kp@w1ptvmPt$(jcVuq!ZpU0`o4p*itf$zy zO9$XwcGXxPo1Er(hp*Mddg7zYN4MnqnZ259IqE(U?utA${MNWq+p%9rhBBwA`#e0dUSzk< z^6*yl@igj|XA#Gg<|b?+mP~8jz0BUd&fcB6!o8d76!ZoC`a8RXU2cT_;^mo9!V2Z7 zGV5)22J3K2>P+5XVqst2TM_rl>q~)QMlBEhgIyY~2KZAg>N7F;oQ(Am|8;HmuQRcw z0&j}XCqBUm>z{mfn0uB#e!*ux=Rc0XzZy~NJ6Cf5!Ds))XUpWQdvsmFC&aP_Y&P%} zqu2MKlb%cU^2zOsHD8=J&IZ|iWe=__Ae%TdD*mDXcqNyIlN z^Q1b>qx|-s=hu>hmfPm@t%j*2{yq)vrEllF+vvTdYMOa6kZ;Gn;M$${?Kx&F>XC|Y zTg}+2wlSf)a9i8xu{D*|6;*YS(PP4)F{48j;c$DXx^ir|D$-gvwyrKx(KfoKx+2_K zThm?__64e{YJ7v;4<-GI&t37BFMJt3_VY4%fx2GQ4KU~UM&r5d^OJvt@|$l&F+U2P z;P^)5?S110zDeN>>&CUs@-nK6o3`9M31I*8;&4^YHo99?B0~eCsr&(4>e(+oI`M&v^Cuo3L+{`dAc|O3D}HmwA0bUhMA+vLC*o{N_(A z)T2%eX~H)a_=6_C^&0V&m)VIKs;@adnpE#a;m_);N#3t5&WOi)e5+x{DSRMBU2qlG zUtBqoQcGyj9rX>xrxr68Uu|MH_feI}H8P(+;jJ-ztE)GS7e&Go@i8CYs_4H@8?R2R ziFXy8?_=^AT+O%EgwEDT*lmMyL@D18hN|F(OhyM=`7?swJw*Uv$H$C0-_WL1_VTM? zqliSjL%B4}U38eaGmYqRb|)jg;cCBQEESP6!(D}^#*)!+#E0P3$2@(TFn?-9yBYT` z7K=JJ5Y=K7e!?d=7>8iVQR??R?%-R?@fMZvOzeHA0$DfbPvXMbY)HNYH7%4}5J~!0 zm%OKbH+&*zL&uQ%!;p#iZjaJdnUzSSad#c!;+!{D%}h1u6^b>pI-yM^kFANRJbMZ-~U^3t)d$UvRHzJnXCP zNAb$<_Bh|pbU%dHpEB9~@R-|3aew#=_XhM-jqU|T^}}71>nIYP9}Gh?g#Q~3xfX4b z>mb)d{s_4NawFtVkeeVkLvDfG3b_q(JLC??oe&GZzY9lv6TZs?5Tf8T@Sy^#AL z8@hJxhyG{C1CR$HZ1W+=!w|On2;@=7Um%Y`9*3|mPe7i8JOyDJe}y~^c?RP3Yc<&6 zSc=8*tOviT>(g`i8~gP<#OvD&_&56}e)ZQUoj2V_T+;V9_u4Pw$nm`d5#C;g&N03M z;rsL|j?Cd}kk=t^K;DG>9r70BZ3yGvfxHWO5Ar@_P5kx)9QpSg$3U*Z_wgV2?T3($ zAbh_$Pw+ebALHo9aczk0Kh_S|gY8xAHSFQ`T1Ov!^e67w1GmCi>sWh;y_!ALUfW*B zUiaJe?e&*hXWAQZvLPoMbFv91n{u)lCz~(zooSC`ZHuMWh4z*W_Ez@R4ff7_ptZm-_|$w+VysW-H2l& zj^lA0-)m36VM4Dx5r>Jr_9Pr8_1cqhnA~eO;n37;Pr+eIue}!zd-d8=ahTd`Pg`m& zwWp7_XW&vZ?Y$jkmfgG*zRq51{dluI2bZ1O+iUM*@7rtd*PHpzp5v(Y{x0AEd;ea$ zMg0*P{&P|s4|EX+*#~A22P%Y0ftcqa4z}lI5c3p5r9gySM5`UjAVLbEQXtw~MA&Z2 zAlei{r9ebnM7tfyAR-E(QXo29#C*FWgXmBQl>!lU5r^2(3?ix!Dg|PJi-_3^GKd8V zp;90^T}0gO%pf`yLZv_?T*N{HNRz8J)tN-k~UBtci{kcZ&b^#B%fQRiz za{&*!fX7|HQ})xjfX7|Hvo7ET`)|2`XI;R{F5or$^<2QqF5oQ}@V5PKF5oQ}@PP~X zhy7tL-~$)%kqh|P{v;Rhkqh|L1$=IQkqh|L1&|Bqwf~(9AQ$kB3;53dJ{Rzf3;59m z{AB-}3;59ikYzat@>>+JaxggOf`S4XY|$zjC@7#I0$RA1T;rLb1m9O1I-c8{sL;T=s*p$zkm)F zP^(348t7mFwF_vzMTcmhb^&z?C~i@g2I>@0NT-JKuZL4q=1gL z=r3(TZ>N9K&J}m3;~^K(ODYk3;`_@&^Z>Jr-7CU=mG&< zXwk(Q=mG&D1@xJKKDX#!8t5|t zk$}Fk=-(QM1oVx7zP0E(4fKtGeh|=47X7S&eh`r5cdN3Xp9cB0s?6_JWkUqCnxBSh zpdkVpCZIL_w3Y@MCZKf%w7#E4XrOfkw2^=|@zbUnXd?lQ6i}I;w$eZ&1+=Yzw)4{t z8faSq?JS^jKUHX;odr}apwWJ+)j-t(8Y7^wej2BN#t3Lv0qy3e-8Imz0;(5Kqo2lW zpn3sK6i}0&rf8sv0-7eE8GhPZ15FdqYyr*j(>@w#wt)5*&;forPy_8Rpo0Yz@>81z zI#@vM0_yNnR0FjOC?=pzKP5C!Oh5|-l=4$r11%KLVgdE|=}--{SU^Vz=qNuOt$~gZ z(6ItK-cKiLpkoDeihxe_({DAyKoJ3T1ZchniU??dfI0&d*FXydv`|2)0Hrn1LIHIPXiFC7|O4bYg%`(m=-x=u`on7N9dU(5V7iDxk9ibdCmE zDxmWObbf#?&_L%2=pq4K5}->p&_x2eLO@pr=qe3#g@CRW&@}F0lH5E-6fz01oU8l z9@an)2b=LGb!fL;sG>l)}~0lg`p zw*&N!26|IK?+NH10s2q_y(geg1oY1UeXfB%5zvaU(l^K1`B9NkXF?|g9S8HK*NGGTmuai&{_goCrImQ zptS_FzJN9e(uNvneF1GEpv{7`xdz%qKxG2jDo9&vpfUk%C!igIw4(;vPC(@X8Wp4p z4OA|mDgo65sa6A3322Ofb_vq18fc7wb`LJK&Z7F@B=-)C584eh(LIa5;goZRQ<|*M zO~J{%)D)y?!Csoq_`UJxr8FzJC(VY;#lL>Mh4u?J(E&jma0z=3CUE9pMg<4VvK)v5 zrc&nNfccUT4k65c;LwIi4jdww$-n_~7*QOen3KQ(vk{#*V9FtZ1LhUdIAHSNL>x}+ zwa>)iOpN*CaBi=CAr2Sz+Lz&QS+9K+4p(8s9S4lU---i<+V95U?q2&r93JeoAIIVG zUi(=bp6#_?#^L2&`z;*a>a{<>;e%fLBOE^JwLit-(_Wi!pkDhM9KPwbf5hR(UW@=Y zanegcRxs2{Ls-FZF0IZAhHPm~Rxm6}>#?#Plnq(I@G5P}3WiW=3sx{pN?Wsnp-|eM z6%2P$IV%{_q#9OgpzOj5h9;?=6%0SpBvvrQNYhxsFe1%iWe$}6S;2519n1=b{HUE3 z4C_%RD;Tqb00h2#$_q1;cD~94i<~qf=SIa2cJ!3WmgJ87mm}q6=8T&=y_7 z3Wl%fN>(sLMc1){VJNzd6$~}ey{uq3i5_AFLq_yCD;O4{XIR0|5533=hIi-{RxpG^ zud{+-8hVEn48_ogtYEl>K4S$#DnzVc*o3}e1w$kB11lK*Aj=QM^5e#^f?*6A#tMci zXkAv;g|ZPV8$lV#%19{NvVx%l+L;v$4^TBL7y_U%te~4uyRw3=Jk_&;?mA6m1zmEQ z#tORKG@F&#Q1)kKe<%mDaxj#3R?rQm7%S-N(n40you$RBpvy`}u!3$W9m@*3o^%Q; z=w8z4te^`?%UD4-kuG560w|ZUg6G8YpA~dn=o41ZJ)tjIK^KI+V+Gv|`iT{EB`6Sp zg6;yX$_ly!v?eQP_S5>TplMH=u(Ao1QLK!DQp*aO;j}9&yFzJT1sKB zi>a9vG<|75R?xhqd90ubOA%JkOr-^^peafVSwVA?x>-S!k`84B%|<$k6*LX$cvjH- zqf=Qy6OWd%f@U0@#|oNibP+3Pj?opYpvgs7vw~(7UB?QVPILn+Xdcl`te^=*x3Yp} z4&B8HnlkhND`>9JUsyqtg#OA3njQ2UD`;BK%dDXJKyR{wCIY?33Yr1*2`i}T=}T5n zozvH>pvtE2SwXc-z91A-y)>8=RIfCY6;z?L7AvSGX?<2u71AcGpt_?nR#2tUcC4V< zqH4YR83n58J3X+B_f-Hd?3OO8d zB;;twF_2>+$3sqpoD4Y)at7oq$TG;ekl#Trg!~?IDdY;sRgh~S*F$cA{0VY1uFLjDYS5b_A*F~}2;ryx&5o`pOQc@gq5+$mWnO zAX`GVhHMMj9C8Qcs1F3_Ih3o>^6|x&-56GU7dPpN=JY)i75~K;T7i1b_ zCS(?5He@bjKS&GYAjrXxR!A7q4v9h*Ksq5^kR&7xSp-=!c+aDc{?uJ)wE8w!XyiNA z4%&n4RqWO6VfLC>XtW+L${E4QMrd=|W%YQ#d+lvF?X?H>+S~Tp+u7Um`5idfk&~Sm zx$VRZ4oVj+Gp9z>~nBD2gmbpJg?Wj0EY{D?Tc`@sMr2I z4!`fUFU8@~Ui)$!F7LIk#NoJB)!;VVbC?{fh^ z*!T6?|8>sY#|Qk|`PW?zf_#>JR|ayIf~XYG2VBS?%YGmOc|bu_3dkcaWL3+4Bm;Rw zK~xIJV=iP3%YG~ac}zi63doZ#WG%~nG6Q*1K~xIJ^Dbmv%YHrsd0s(O3dl1qWCP27 zCIfj!K~xIJt1e^{%YHQjc~wDF3dl_wU zvYlnWlYzXWASy-GxFgT;;U?0~7LCFjpXWB>97A!gQb5%fjn+Vw0;&_xSc}GKpgIBV zDxf_q+EWAVDxgLIO|WR925J;glYsWJXsQNkazXa{Zg4X!`~3_7?{iG}xBAci%!SOf z?9Vcg&lE(Z2!C%e)ojsh&D7rF&%OfM&!Ph~(7pmXNI>%}3TdE&1QZrf#G(!j6c$ia zKnpC2X`rZp5&~LiQBngX1k^2{#TNBwpl$&jE}$bUI!Xf_E}&xsbgV_kYoKEUbb^3R zw&)ZMbb^3R7tm6R&elMu3+P+{{m!EEHPE>Nx=293x9Cz0bdi9r5YQhix=I6GA)spo zbiGA?)Iiq?=mr7ZXwjcE&57=x&Sd(Li?!=zak`V9|pb=zak` zBA~xm^q2;EL_kjp=&u$%t%05t&~pNM!J@xupyveihJgNV(c2p64FSC?pbsqihX#6A zKpzX}Q;Ytofj$<{7XtdyB3lD}A)sCXeQnWyG*GXAz8BDs7X4QPeJ>y%Pi}E}>Gx9r zGhp8G(kGK!g9WsTpH|gCg9Ws@fY$KSa1FG&fYuh!I(}MD1FbEf4Ft5IpElM&8whAK z0d4N5Ei}+(0@_kQTl;An4YZ|zwinQje%eU`Z7-lv0;=>=l?ECmpc(}EbYoHSZbee$9@Y7iu=rjSHEueG!be;w}TR`Uv z=t4hTq=C*C&?N%8)K8adpi2aFrGT#T(={6CN&#Ijpg;QQMh$emfNmDhEq=O91Klj3 zI|X!?pYGN`cM9k}0sYxe4``tK1oVi2{^F;{HP9mhdQw1t_0uyN=t%)RC!pv3^fwLk zoPb^y&?|m=O#{6wpf?5dcR#(Yf!-9*djk5vPyf(B?+NH*0e$MHe`=tQ1@wi0{^ciI z1AQSN63|zE>eWCbpsxk=ji0{NKwk^!M*;oUPd{s*9|h#+$t|unf&m&7$gMW~GPyNG zK&u64s0JD$pkV?U9-y@}&@ch5E1>lPG(rQdE1-=8v~hqo)j%5wXmbIL4A2%DXmbIT z324gzZKZ+A1hln)wh7R-8fa?)Z6~1Z1GIw%+DD2WfOZkkZUNd|1MMQ9dI2>CXo3c+7tmw@?G>P@8fdbBW(a8S0L{`sGXykS zK>Gw}Ukx-{KnDouzyKYjfesK*NI-1?3TvQ{fZ7EV4bUMPs9iuY0VM*|rGa7sN(yL6 zfO<4gQb0!t=*R#at$~gZ(6ItKEXrR>uw5EX84$`_BXiWi) z5YR?J+E@dP5YVOq8X2T5G|;93+EPH<1Zi6hw55Qy7tl^Y+F1i_FQ7^RRR?Lb2C5WL zoq)y$X`BYC6VPq~+9ODNYM|W&)F7b7AWhIf4FZ}ZpeaGxO9M?3&{P4<2+~XqG*v*& z0-6(~eKb(Bfc6#8{y}QdK>G^lKmi>Tqrpiq!nHPFEVY7KvxRrsvuphfvyzLH3GUeNY`ngYXo$?fc_Yy8#K`M0=iK^e+tq~8t6s= z-HeIqv+0)1N~>Fg_A;7lPKY%|kr3W#={Sf3~o=d-t9>L13M}s)PCHf2g@faUq*ZvC2 zoW8;w5Du6Zx(f%){XBpJ=64>!;So&N;DC9WCvkWZ(=Iq*zU3JlFsJe=4wyH22?xxL zyom$mKingPsPV9Ejt<|e3)70f@-uB>2=ff`xCJOVYbg1G|wef;?SUi&i~ zKI_GBKmLqyecG25jNQ{gtYCbe!mMBno}#Q^oShP^U@V=wS;2TY9nK2I#OWATFz!t! zu!6B|I-M1aU(>m)V2qkBVg=*SbOkFIYo=>i!FV#=zzW8U=@wQnE=+f_g0Ww^pB0Sn z(j%;3440l{1>>~z94i=$r8ii?cq_fj3dU6FV^%P3N?)*ou~F(}1>>LeJu4XFBpK_kg0VH4%L>NNsD%}bkx?rv7zd;ItYEB*;;djii@I6Cm=zty z3dW`A7*;U$L?^I<@g+Kq6^tR#*{ookh|XsPV?lHYD;V#gD_Oyq4qeX*#%<_kRxmb0 zcd~-<7rKuXjIq!otY934o@51MCG;FC7!RSBS;3eGy~zs3HRwH7Fm^#7vx4yn`hpdV zK@hQmaR&OD6^td&kE~$4fc(6&24ey=gcbDrX&5WRpsdTvx==P^1$}hdoE7xLsf-o$ zwP|Zs(4VI5SV5nec4P(pVya*TeP60!1^rvvg_T{P)U$$qDothueNmdh3i_Kgo0Zv6 z4q)W~C?QtRH>7q}(Ep04INW~ZN6LA#uSyx<6JZ(5BNw6AGRR?vo~5v+`WvMDQ@LfMiP zw0CKHR?w!UN>rfQj}l??IlXGf;JI#vx0UHEnx+18#;^?v|s2* zR?tSFV^~2ugpOkcZ4Ek+6|^Vl6jsn?pwn1EyMWGQ1$952%?j#wI+qpH;dDMLsHf>7 zR!|qyC9I&nrOR1Cok~}-f_js#VFh&~UC#>YKY9|?!&5;VP~Fgt{8vA4_1AEXz8^fy58rx%0tQjlH_(knrF18c;V*|*?m--d+Y+YO@a2hom$ zXs1EQ8$l``L=}UmauCBu58^dqx2VNowS&}QjB^<09CiiZEL3&VX!k+1C;su{+ti44 zITIigA(J6Zki8(&ATuC)LuNzfLiUC14{3oM2ssEc4{|W16%vNDLt>CPqzlpwSq$lc z90oZ8aunn@kmDdHKu&_30y!1(Tgd5c@pwh$TN`V zATL1v26+kc3glJDYmhe}Z$jRJyaRa`@;>AP$cK=RA)i7%gM0z`5<-xFL;eH#7VAZtR_hO7%&AF=^tBgiI@%^)KoWst2P+d#I1>;Tyb zQVywrR6#~VY9V7F;~=|38XyxPlOa<>8rav)?LBm`-L zL?9iI`H({(F-RPefGmWhAl;C~kRHgPki#H{LymwP2{{UKG~^h_Zy?7)j)NQzIRSDa z~#G749J-feXZD8_}edCE4CEBIUB<3!j?hQy0Cw` z>%x}t22`>=6`eEK9!}>D{=cvV6$(GK^%R{qn0`0dQO_T|avQ3Z+fZS>(#mb9R&GP3 zdhB>#$T_auh6*ngtlWlbmA^oXx7TOP=iMD>trMxpCFXjjOP#V;a^st=zZ@B&^)H3hS-@f3k7a z1%t716)$YMU@*_@BgNKLcdMBfu!|$ELCC(v#@2YnP zym!@sSUawt+NBvrr0EQ`!s`3oTvPJEX`i zf(R%&qn5>WW>^(abXZ+M1{HAuWEB`-07Y<+ZJz(R&zEMA-%sZ^^vmX zR}HKlI7Y>#i`Oh()Ox~_ft72PtvF`&qHb<4J8{LT6Nf4rmaNVq!GGT5xv%fE?*mnT ztLXL>OBOG0i9wE8vuw?Yq0k74L$Yg{U;n#AcMlxBV$DFv-gtS$;?)C-TADi-b$Ny{ z)^AF${6C2vIg*6WTmF~7Q#1x%BLgpLo3m=g+LhVjRE##u{5@a#zl!de-(E4mM)_?= zuUzgiHoyLbzghH(qZcnbX3@MAO9z&(9%?lMo28guv3%gKiyN->f3!UkqG#@uYgt7_sw&b}rSz3@I<=hY%BioMs>`WL zm~Ta8Zz-K#P6wCLU^xwzQd5ztYv^@uk)DkPgGKsAnHt^Qq$c&3(%K>|EvKD}R4%2u zBF#*xNq391p(^cNN;O6LO)1rD2-VlnOZ7FS^mvgjDW^X~%Sn~7W)`VN*F}1V#x2r> zg7&8s=?)1mQbUpIO6l?<{ZEmaLhbFVQgwBz9*2_UTDt6zQcZPg8pl{wrL<*{UMQz= zl2%1cbuGGe$qr={8>~uoYG1-KYCNq-|4>d-iZpSQ*isshgivyQk$xwE>R3ukq+#fP ze{^pW7U_D;t~%9>OEt1vEu%>D>aeOBe0!K0TZKFNL%seYT^90di*)la{X2@(UQX8+ zY3mYl&MwksntN5+syb~oE^Sqlnrf5eXd>n6R34YgHL0$amJ++wm}a+zG4Cp41YBQA zhZX71&j`{B5f<>i_~1Cd#Y$wC(BD2lO3l2 z7DXB#6MQKuo5Lw*7U?aGF3Hkd_Log6U5aqftq}%IMIta1GxGSDxeS)mhEm!!B0)xO zim21*iXU~9L590qTZ-B!28vR8G~!tfon1!Tx~jCVB6*A^>qC=%&8VDa$=bCT;gtyT z@!^OZU=k~vYdPrdJu+h{;lT*bY~(>jg>)M>{ikC3FOQv3!ev#}scKxRs>STGk8Cbn zE{BGpbXT#R&3Hk`8COaZ=enb z#o!8KjeDVX;;Qta>hwlUs;Nz{meTt}`0f$p3cn39ORVuG8Bl?tLBlvLkr{f+>1J6b zLa~Tdu(+IF&I*^(ZK^5Ko$_6gex;el>Xrlryrv^nWl7CtgH}_Cgm8LF%1&1lsZfJb zdS5IG+T^A2cGerUmSa$LKR+h&hSV-nYph&d=%ZP0_Sd@f$Bg!k08_5pAhjbs%0br_ zX@0Drmy{N?BunY8B6XG1KCwWWinN{ThkQ|u`;IN8UQTl&nMlH*K8hl_Nt%p}w<6Ul63S%M{$awqBI;!G zp~ZD!Ol0ervgTW#ca3sdlQ#>kM6FY$&Da#=xWzJZ!VdDzn^K^ZZk5Zz^5bGs^6${{ z`DB>@R(Fl^>2kUzOs6hdck3bu>vA3#rGKa=u~%jz#{wjBG~?k}=eNdqQz=x+ zjIU1f^HPc!cKpj?T1PR{yks`07_r(^iNnn*x@ih|Ly@$FvSd}-tvc;CF6~y6PN+@0 zg)8MI5?x-@v4|94Rpq2JuG&jxUe4KldF5&?s9u>+M)-3UqRgX|GG-#$rf#?^+r(L9IH>8(FaOtwe}9pC^q!!>a^+5E*wK^Te(^4DV62zwVd8pN|W>{ z(pn|nNCGbp?Q1d0Y$;!`WoxkyRxGez#RA$&z9`EKvzzR%JgG3dHK+X)_Eh?kgNpQ0 zYy|x!mh++2>Gj$;HdK(#52uG5htDrL_nq*a(}P^(FU#<-`A zihNZn(}u+qMNMO)BImzdT1iN^uvxe$*25qO&ZpLBRArDwy!ACH(Y`jBkT3XAZSQ`h(&xa#6DAcv@NLvNKs9DFxG)oZ@ z3uo`hFjZA)Zmcq8lGU1iWed1pc`3Hw{UaJ5*APW|JZF_ri&rZshSnm|+F2*3L`N0n zAY~F6d5@TjGU|u}q3(v$6(?%h6suctJNAHaN+ffwJ4LA)D?Hv%z8W>V*b}7*c{`2= zI=^il$~V8=2|<1wYvJsd=%`KSg;){tuUt7Qgl1>qMQVvXWs)*Rm_q*5l=rD3jVOR| zx3tPDt4M7!PAnzWV;mVR&UhMY{FosWrCO3T%IYJ}>WYCKtJ99-(vFJW+O%Vl9*KlG zHrV%`dF6q%CTpHfRDy{ltRQ+MVxCB@=MtcmEezZ%PfBh%W5-F#S_Gg%E< zIRSdlD)IdFY2C_8qny@iVJb6>TqE>VjZCEJD8fgMxIPl8G|}Bz3YhA&T`f;HLmQAL zr3VCARS8)sLQ@#A*2b83VktdYr2opvb5!aGCrX0ijk9!kR;xor9XXzthC_zch;QSg zQ2~=Z-kbwC9z(Rv$-K?VDzTgu7##V++82gcS>tP(i^8umoYI22$Oy8MmXG2`DhUTi z+G@CWN)f$U8aREFrz9;l- zl;d<-#?(4s$6C;W9kJu+!8V7kjzf`!WJ874QmrFx4N8f6*3O5?B3)bJkyZ~oYO`jf zJ4T!VVj}%oxix8JDIF26)Mg|d`lU%cmnjl%tLUQzt}xI*N@(k2fh>#6DLWroN?(u* zM$K0es#BqjDUN3|qN5}@Ggq>fhLfQ-9unRzN#;lUs!_i?qJ;M%;S&s^;Cv=w1 zYDAW#itT%YlAFdI8|`{uQA(%A`v>jmPb$cD z9Fps`$(DIw(E`+BSvO?cP+JSFU&}dyYNFairPlA@$k0+;T^>8;r2LF8Wnw`MDjQVJ zTI!V_>SZ4t?ebYvqf6UOw`u9r!lIB)1A{ABp|Xr-*!kLn~-iz`$WPAbx`bvzzB z)9@N05k8V5G>XFbI!!s|IHZXV28#c4)j*BoZk^&;>00Ycn@D!Co;PE^(^E`MIkm=l zNe+_!+DbO7c*MtMrB>NlZ-ioNP%~wNjfdePeIy=FhR#T*#u@2L;mzG;v{6piVPjO} z#9XAUPUf1F{Pl)ZjT6F4(Oo;NW~W#}|KVr#NN!Cs?2r*ce;ViRktAOWgUil3AU&!V zfFrd%CA7UQwAG5xDqfj)f5{vZOPh`Dn>)rp{~0f@vR~##wCM3iNl6P(3r)_F4!SER z>RM{+VlYw)Sut{sTq)n3tsO@?=T~Qu{ME5p`D(}r@lJBfSiH6IU^ukU&J2AdS+R6s zOne|-QjK1%G4!MPEsAVX=6$B-{x`Fo79AVHU&;f@+d?IfjhkRRDfi14(M;J)PxP;iilz7}LCZ%f zHB}ygwG8E>vLxr697AZEZjrgP*~L4?4N@sI*Q$?rkk{~dB`fNk zB-%!0e!ZhCt;uRS%D~NPdF5^?{?ik8{HM?$JmOCwOc*Df6{1|2Yt1Dyed)7_c~i4e zQ`C<)Z!SjOmS*M1xc?6GHe$xocO6l`qnR&zkiWBe7xS)S+Sj=}!93CYF7qTYG5 zUM|<0r-=C`NohFbz0c+Miy3!6^9RJp+27@9=0@{$^8sSo9q4kCx!F9^Jj>i-ZZ*#~ z&kHKkl#4ANn1uKklz`S?A9v zuQeZMKHhwSm~sEfsD`uP> zT)(53c00Sgi|_Adp5Xe4V%lj3it+X^?`hu4JlU-Gh~e+O#pu1Cm^hx{`v;nvTt8Qg z{DZ`_*B%$+%on4t-fhMGLtMYW<%KREW|KRez=J%WTGk?JRL9sq*nt8hG4=~SgeUli!&2@d7`5-a=ohQ~Ob(-g!d&Jm( zp%}X#W)7Qb=B4HVu|DZYmp|(AQ7(VXyxe@W`53W2X{CU1j}tS_Ix+g6Atrv# z7o*PwV&dvzu|DZD0{Z=nnEPLF{g+(c;PT}zUm>Rd*TmT2U&Yw}YOy})TJ!bhZ<%it z(@sCUh<4vI-y%lN?JnObMvw2i{6q7P#mwhtzW;OA-)Fwx^}iA$@3*dh(De_w{IK~^ z*FR={-28<3_hRPxjLXlOpELir7`whA#(uB6{tfe+V&<#wY=UdWs^a$}!TKgI=DC@9 zyjY*KrOSGI9PQp=-q!Woxx9mUCo$u^)A#k&Xvo#~F=4O0#Ee_-`gfbBxc)un_nP++ z>y!3%c|Y?9#rS1^^E7j#dAj)k^9(U|X>qw#j2?4bp6mM^uGiCa#O(r?7rNXpX57W* zBYc0U%LC?r6zh|gxqOuQV`B6;*5y^^)viC$<&(@On@<_pENzsTi_&6k)zfCJwLm{cFUuzrp1j z#jKlKT)x$OoB4Jzdfh2T&QD!`kL&Ms`DZTw!u(6u-!IlD{l?|rnjbJfDAp%E?D8XG z#(PYRU7r%`lb#Xa=Vx8kyOAirV1Cj32lF4zFPZ-&X5N2s`8D(F<~Pi5n%^?xWX9E( zkzptO+%C$Snm03#7o+zUE^jGjyzN}x-n@fYqSMYU?;@t(JH_~657+PMa)X%m`zm9oT|djL2li;+YMw1dew$dIG*5usPBC)z1w`3@gIcbdO%{(!R435$kDG%f?xIhznJxQIL3e7tRJaG`AxAtyl{)Mz9)(P`tl&^ z^<%#nU$0B!{^n-AkBah^X1#}svfeBO>)lfDHs)=`*!i6<>lZ&UPMymW#QLN?UEWK~ zyx;Be6!TOu^K3BhEyf;thaWs$9P7-iZ=IrjlgrIw=G!VpzTN?cUh~Ds?GYnyp%^*( z(P!}C=0#%Kec0UZ`o-oW%uCEm&3Zi@^E*mR|K+aN7bH=?%H`E&{SYMdILYOc&8L|4 z)-mMhOQDD-y}1rO&vN}aF6#@DsQ-ldJo6{b`qDG*Uts=}`9ib4Dvxn4cKH&QKWqM+ z7{6Zb`&XE+G=Eu)y}$1AH^kWe-(9}Se6^T$af8b@nr||H+x#7~zFrNzzia-USf6ye z%Xf(JkqpAA@lFd4~yxqm#s1GW9G+Q|9h98G(Tm2 z+V`I^Kj-@YHa{;$zdyMAN3*^XigEsA)>l?BzP`ka`u`Er?=_cS_x(3re#>Qjkre&( zJ$&@jcd;?g@vh&(^;?Sd;g<|y$DPH@cUPAuh#7B^>-QA1KK3$CHrJcqE!HRPEx^9} zy8iuQsg|a>+$d(81H{O0a(%OTrg@gR#oTJ1ZJuM+kBB0UI$hQ;xhfVOAMWypT>h}j{Vp#yA7NhN`vc}9UH?&+k8=5A=H+7Sv(n{b&8x)dyT;|U z=HtxAoAu+#u=78;tgkL&zJuoV=F`j{H=iy>{+VLzevbJ(*Pk!OzZaN4<@*=8e6bim zeol=3U-116zJHndaxv|`D%L0cyMXbo5hMRv^L1kK$jvT)S4_X#T)thbPx_Gny?^5R zyIlUM7`gYl{%2z3{nq6N%nzC$64U+>mmf7h=K9}@8RsdNpYi=?&CiLE|FX-knEx!M z->YKuf7A8)MP1C7;3UuJOXg^|sTe!xo0Q=3=FQDpn71_Ri=}9%FO`DzO?&V*X8i;r z%G;T@7o(4U2od!=nRhntV%}AZJ@m7`Xjdnu-$a++Wu9c-!@Q@Mc9UJM7wf~fh9PGk zmp|z8{^n_7;%0_ers211(O%!thrBs1&o#H14>BKYZa2>}cZl`jrwbuxfq9`AyDxTm ziFrWGyg%ylQRe05W5o13&gB!t`0GUTNv=P|Wqp?y z`9||iV#fK7%lbJ=^!u(DJKZT}oFBUWN9G@k>35gQcZ>1=y{`Ycn0~)>`B!4>{A=@X zT>pUiA@jq&|A_ff^J8M8cl}r_5V)<>(~Fm z`VCvKzGw|O`uR)r-`w?ExXk~U$vE4%yuI)1Yxt<&$>p7W|DCSi-8{kfCz{{o`aR5h ziJ9LN-=AuJk6Ax;2tD6x*6*TXT>T<9?6AMN-9JpFVo z`n9;M|4}IHp`Vw={eyj9|GPo7n`iD2>yr)jzx^NAr>9kD8a6U*BFr^&h^UklIp5m7F;Cc{$xq051bm<5ZEZ3l{$qjsae>X4i(PU$dl8Y)Gch&SYU4;lH23% zJhh#ydthhW?TYr@QPUGOXg)a|5|TfnyJ*l5*ceyMfh~da0y_hHg&ms36#Z*V?@9Xz z8#D)cH%n8nBd{y5SI8_HVisUqTvO8;EnCz4xIR?K?7(i}9Nh=G#@Zl~+oX9zI!NPy z$T=u#+M_)dXpkMK#||Jh^P;9BdUYmr>kP?VQG3+FJ<+~5YI>ul zH_g@E-jLZB^82CD8`(AogpIUhSGqbJ&~+n5FBE=+z;4TrU)MDq6r9fd>XMVpqt) z{>`!r?Yl!}PsqUw%_<)pNPA+qS%27rE07WK4v2=m`qwO-(33a^xr-iPPuK`-)o56% zHLy+Csef3F8vHv`?I#De1kMS}^?fmNyEV;PU~5)ytNaE|4P+&>$^zhwz?p$9fwKeK z0Bt)45ClBbOt+xL?p<#WD1bGed^nyGHZ)$0d@uU z3CRa}^@EMNX2s|A4bF<|R$;}@opIe8xKM~Za86*ikk;VrKw_#jbYPBL_XHw=Tt`pp zi9nFM#2%5#=*%7DF0*b?>m0!iy6%y+T2xD~b+SLWNOH-$;H1F%K&*_e;OszF0G0uX zi^&=b>nQL;8` zhL{8CiPp+C8pYwU?n!MsWtF~XnJBaSxp$n1EHLb`bAT#Zb9Kg;;v@v3jq8emG)(FTb^Z}9F6Eb^3CVK%j+$Rfx zNbZfkWE`%sIjamrtKR6<8!gEvt-3!$dEU zj4x*ewg>hJSt(#=AhsbVfZWBBAa}`}b0VJS=&DWE>}F)OzR;Z$1`!RCznNv86Sz*- z$RT>#1Ls9<>JVZzFkg4;nw1N(XW|dAQ{~C(O&)3tB>pOS3#(T$Q+-@d37i^;zAe#< z+{1NlzfRZ06tf{B$S)w0iR2vLV3)4*$tj;Fh~!F^A(FYC6L@eSGCM*7vCZ`%LQZBN z8g?pfK~_Mg?9-+((1AE_i&=x{K%{|aPF#WLLqvhJ$2%aJaK-=^3W=Gv*vmNm91^FW zwmALtYHuX>qi>gRo@RWoS~rR(YvguGoD+yG$Uk6DVBR6AVP6Fo3iE!?+Qx!8Z%vPD zb|Cx<<~2tzBAQsB22X-HU(=GAablxyi z@e4>_`~tE9@C!IKkh{Iw*+4WTs=?WTXo%NA=EXUUor7ymTpfCL;w;7$$O!DYV56`> zGXwjC?2I7S#BI)VtRC7h66<5CkZ1*2tHd2A3Hs*q1fF3YJUewndu+fp5;o2fy{KnD z0MU&c3o;_P4xAHsa3B%Tt=WTQ{cg>&Q#~63nGq`-L^>7&k%Ps+xxzmAA4DIXJ3wS| zz9sui3}mM46kVE0OCY%c8+L{Dcm|@L%m8wil>>GJBAZ<(lfBlb8aa%$%^3(}sr z0@<&yIf%4MtaEy5mp#FTK>Ctzm;qYRyK+9r*^?NO_fOzh!% z@-FrPspl*P=93rFDzlv**FAwq#)jrJi^_)lJN-7u4u@f zOpZq%@)L-(N?t)4s|} zT&d>@DfNNahKvEu31kL&uf-!=v-0prZ+N8g98Nyrn)5Dx0qKihz`R?N#qvtVM_e;H zK4K2^;vEUdSiB=)|ClUfRf3Gm+5~COJ`N&3&!0K)MqsXxRf#Q-fM>y}fymkTbj3CL zvqC|naV7xszLj$^I%mr=Pp;9BHCxHim6I|pi3$)6SqbPiQ^5=ETRo*DYjyfc1e5fsL{?YX|HTvipGZguL71ofPLR zVijx^5>X4)Zg{S2Q4KjC&(VevS-n#N@hDcw@1Vi_4)J8w;Ah_RwhC!;a>(a&)fW-a r6X%9{A?GWwA+S-1B(OK$e*=7<0mDbs%DSZvUv82XG-S8i+}*v|F4?`i+`StTX8DN8h6V{6 zHU@R5xCyq@;unGlR;VBa8TpcmbZo0tgmy%53U;buO9$HyV>?<}M?~n*-~T!PH+y%d z)1jO9{r}JNoO7P@oaa2}yzhH6I5d3pAt}B0tttL4E;0{8gX^ZJ_RP%fnclj6*Yuv* zy>r`UrsrmM&+eJtJvXyw<}$=>vzP6ey>#Zny*oRKJ=^x|o}0a-=f*ppJNArcivORP ziMiQ}=eF*`Ms_64T=?wWD_@(L?OWfyby{E#Y$52nM_zr+W@dM7-Feyc_Mj!ECSQ5} zwVEL&dv`ABUV8M<50~G%f=Qizc-B;d*4EM?)x>I4DrrM4u@u!xI=GsON?Ko}F=|s< z+tFY?rS%ncp`b2BdbLRF4>T(hW-CQnUP-kg9a5wkZL+3FMcBu3QQEI|YI6H9bwZ5T z6}9t~v^?4$QcKHI8mgrEYFb`Pl_V#-sw#9*sHGJt9ac%LYFbf~d+W2Gcv8-;Q^{lz z2P&z_Tx#j)l)hO>H&xToODvaW=a!gdI!tqkhlC=fWi`#3ITC@cLgFG%w>!K#HDJCcT` z*%25dT%{4k1hGS-6))1qD(M6)7wPaYjw$uR|8lrPV=fDh5s+wbO@xc~1cbQN(HE)F z8NJe~P1he#o%O5~N2Gm=DU87V=73MqkwLhHB?I@))5D?j6UF{M1p1}ubo zM@8Rkf!Wn__J(^!PFIo*u`K7HvA)dW#qf|7UmtP4t)l%x*x5=8qZH}tNQ1ZJj3tak zA|@=&%9MI>yOOHav=U9(Ye$Z7Qj}Iy(mv9!NJn)pWdvbekyo61T-|7AH@DbfT6X2#l(d&~R^X(vqBHlR*Z;Bvv4T4ok;q^N=R1!b9Ed?R z$Hgf`GGI-oXpV3!-;!euaZxiS)ftNLoGEMKagqo-SGIHR;eTiRkBVKeDByS!F~kmA zjOgu-!v2^e=k~(!l9#N^XRO4+7o%o9gjWpfU*wk}NhQsrSXPez|U~7<3?5l0gpo>M`B6wmt zfSt}Si2!Fp=iKob--u+6ZD+?=*7-Q)m^-Tgdfj96g-}HIh4Y_hdZGOJSo9hw(!X%r zaVX{J@odcj%yEuGfJiP)jEFW$zrl_y}}cPEAof)gk~J+WLgfRAFuHUQyO&UOr$7l?S}}p z;a=x{lqN1>$dnlf3k$mmOqO$P|BQ;*S$Zr;z+k%eZUYJh>C`NQasAnyohK zs&;ImXvaE4yJOAAnU6Q~f))MVX!%W+Pqf@+ev7#qmi?0~{~9cRPO*Hd`84ZSSzc{k z1Iy1dET0Lh|5=vTS?)IvSU+eUvi`Ttqt=hX@@w4sN$c63VSlrE+I$hL_-(a3W8P`~ zCFXZoKWmxQi+-0|zt{2==J!~CrRCp+<=0i#@3;PH%hy=`16XmnmRs#V!mYSm$1OiU zVZPpc1FZU+EZ=PT7R$H7vh!KXx0!E;)$dMj)qkE__V2d*1z3LE$1VN+<_BQ)`;z5{ z%wM+tE0+J<{1>q7e2rVv z|6iJ4Hos#2Z&-FXRiYi|Tre*sVV83$n1^}jIjw^EvO=ed|gESZ^7!v zt9{ImH_oUZw#;W}$Y+~3T0dr)&xxoXH&2+)F}GmZ=e;A^ZHBc@=fU#t0_!g{Uu52D zey4exdAoTAR{x#mUFOSO&s$K8^KR?kYyJDIztZ{-SU+$1gRuPlkoA8E%ij-Mf1UN8 zFkf%J!Sy%8^6M7sZ#Dn1`LpKR%(ug8e=2u=4FI zuy!n=Jo|`OUD#?>4^`Rvb=q{psenS^w*n ze*@-9XIg%{`5or9=CjPaEl2x4SmUj?zHT0XHSVzMH^N+L%sdVgvNQp!f7|kud6V_$ z!CYzD`t!{fSbq_$eA;Gt#`QbQ7n^?v);O11-UV}|SAp<{-F8yV6JqH`9tPwVcFxis~GR&mT$29N%M`c{P-iwpE2KJ{q2@NXTAgG zN_Sem%ktf@#=F=0`^@*7A8`GbV6OCK>mN4%87x2k((+f$Uo-!e`RnFym>)5J)BLFU zF2Xmz#SpSdKKWq6%mjBuE^X7ktHJ=yEKZliv zFPeX0ehKDEF9Y&}uc&CJq)>Z)Pz~m%zFM7uo1{ocVb33FejNH^7?Li7;2{1~l$T)}I2)?^9u}^fo~CtE}gD+o)dybEPu? z&6^Lx;6C$uSa#~>0hlW_EN_6-?`&B1N39<-^92<3{4O5-rmWv&KG(b%mYr$K=bJBp zW%nY>Tg~q@Z!>Q<&zSkrkMVX|zQp`4^QExH+im%B%X=+fVSbPGSHkk+{nlS){($xT zLK<<}56kZFTfWBfwU$3@{)qXbu-5T<%Qu)mX};0?Df3O{o6Vnw<=1B{-(tQMmLIoU z{+#&^^Pj-#cbDbQ!)kwz<$GO!zvTzaUo<~x{!>_X9x^{{edTbJ{2j#IoqG7!oz@19 zr4h=_G?7l`E3r4~roq)wTAljfHPL5H=<0ke_oRU|1rDZ3a46LS8-XK%<6r};!p-0? z+=DEf;482vwW2&3)~4{G2aB>c9hzyRRcOZon}Kbx8T#?S3C3N8wHDZ>yc#e2!$*1A zhgO{DndOntHUq~4Cj#5xFn0PFaX4@+P%TFoL8vw(jN6A#bx@x4F%zLY5z2z*)ffKs zQ8$@>Gh!!P8|AUUCY~zZ{q!6K6)WLpP*Li~&J=Zuv9JXWa0^Gl!L$(^ir6c*b$n}r zqftAWwoo1my|i`eCczf7t5Z_@$<(h0Q>adR%`Y}Gthq0!1~q;62FCv5O9 zM^sU1;O}^#A}X&N{D-I7XpQ8Vcr4mzUF4-An0?i{t1Mrdcp;nuC%A>OtQ>1_YxEX* zA(S0yg}GK1T46z1r1Bw#@EoumwQaIgWqI9>5!=)^(z#LIOi4MK>sz!M zVKp~kzYfZR=GP2VuF1x5WX>?!Zp!jcI1Ww{KjAr8QJ&|MV3h&R@efys@k8; zKxszN38mNC2q!?DJ3{rAH^Q?6b=oz_?h!nY9mP{Qp}xvM<*UldK;d|xvc4Ues2x2* zG_~Ip(-CY8g0iOA41zkHg>7(x zp3OL^6w^VoOb2E$5!pk}COXr9VM z<%qBzsP?j&_kYe>q5RPL3ft_YQT!M71P%vI1WwUfPaK^ZT5UZagw4Qw=5$P~oAT_Lq^zB-eX|KvrVH~qel}(KBvebySg4k=(L&oBI09-<>4cJf%|hpt^jp&D zfoiGqU#mV4sQsa5rck>j|yiqx5#5`DkD3nJSHTflzuqQI!YzS*vG^Vq0dgVykjK zS>=nOuknQ1u|j2%>V%s><)ct-^7?B%^Ga$q{gm^J73X$DSS9U%EisoZ(N9^SlcE9U z_plKnsd9gyPLO=gX{TtlWNRX7wbCkUw`nY)-jYg>)Ka~5Vrq5epU%zRz`nq|>VuSZ z#_LJbA`&|N6pxJkQEr6y$_YhAnK2gF1a(SiKEm@r-K}_!$!{~`aZ-=OTd+WH*GE~p RN}p8xJ@~rJJKmW2e*pePkjel6 literal 0 HcmV?d00001 diff --git a/.vs/presnce/FileContentIndex/5f8c8c13-8410-4729-90e2-9541455e8a4a.vsidx b/.vs/presnce/FileContentIndex/5f8c8c13-8410-4729-90e2-9541455e8a4a.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..35abae23e3785c3c2405293f1602b90b9ac48c7a GIT binary patch literal 24306 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 dJiZ5$_`RzC-@52;gaq} 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 literal 0 HcmV?d00001 diff --git a/.vs/presnce/FileContentIndex/c0139657-bc00-472a-848c-a0858bf72207.vsidx b/.vs/presnce/FileContentIndex/c0139657-bc00-472a-848c-a0858bf72207.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..451eec90a43c11bb84525cc7e4eb81504b78e371 GIT binary patch literal 13866 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 literal 0 HcmV?d00001 diff --git a/.vs/presnce/v17/DocumentLayout.backup.json b/.vs/presnce/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..4c9e4ec --- /dev/null +++ b/.vs/presnce/v17/DocumentLayout.backup.json @@ -0,0 +1,598 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\adm\\source\\repos\\presence\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence\\ui\\groupconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|solutionrelative:ui\\groupconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{F798197F-432C-4AFF-AAC1-EB1664094999}|console_ui\\console_ui.csproj|c:\\users\\adm\\source\\repos\\presence\\console_ui\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{F798197F-432C-4AFF-AAC1-EB1664094999}|console_ui\\console_ui.csproj|solutionrelative:console_ui\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence\\ui\\userconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|solutionrelative:ui\\userconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence\\ui\\presenceconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|solutionrelative:ui\\presenceconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence\\ui\\mainmenu.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|solutionrelative:ui\\mainmenu.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\usecase\\userusecase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\usecase\\userusecase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\usecase\\usecasegeneratepresence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\usecase\\usecasegeneratepresence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\usecase\\groupusecase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\usecase\\groupusecase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\models\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\models\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\models\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\models\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\models\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\models\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\sqluserrepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\sqluserrepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\exceptions\\groupnotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\exceptions\\groupnotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\exceptions\\usernotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\exceptions\\usernotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\exceptions\\reposiyoryexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\exceptions\\reposiyoryexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\exceptions\\presencenotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\exceptions\\presencenotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\sqlpresencerepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\sqlpresencerepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\sqlgrouprepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\sqlgrouprepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\iuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\iuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\ipresencerepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\ipresencerepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\igrouprepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\igrouprepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\attendancerecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\attendancerecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\userattendance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\userattendance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\groupattendancestatistics.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\groupattendancestatistics.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\remotedatabasecontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\remotedatabasecontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\remotedatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\remotedatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\data.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\data.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\localdata\\localstaticdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\localdata\\localstaticdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\localdata\\entity\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\localdata\\entity\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\localdata\\entity\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\localdata\\entity\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\localdata\\entity\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\localdata\\entity\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 4, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "Program.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\Program.cs", + "RelativeDocumentMoniker": "console_ui\\Program.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\Program.cs", + "RelativeToolTip": "console_ui\\Program.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:09:41.684Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "UserConsole.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\ui\\UserConsole.cs", + "RelativeDocumentMoniker": "ui\\UserConsole.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\ui\\UserConsole.cs", + "RelativeToolTip": "ui\\UserConsole.cs", + "ViewState": "AgIAACwAAAAAAAAAAAAswEIAAAAuAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:09:28.168Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "PresenceConsole.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\ui\\PresenceConsole.cs", + "RelativeDocumentMoniker": "ui\\PresenceConsole.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\ui\\PresenceConsole.cs", + "RelativeToolTip": "ui\\PresenceConsole.cs", + "ViewState": "AgIAAJgAAAAAAAAAAADwv7sAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:09:06.917Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "MainMenu.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\ui\\MainMenu.cs", + "RelativeDocumentMoniker": "ui\\MainMenu.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\ui\\MainMenu.cs", + "RelativeToolTip": "ui\\MainMenu.cs", + "ViewState": "AgIAALoAAAAAAAAAAADwv98AAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:08:48.7Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "GroupConsole.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\ui\\GroupConsole.cs", + "RelativeDocumentMoniker": "ui\\GroupConsole.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\ui\\GroupConsole.cs", + "RelativeToolTip": "ui\\GroupConsole.cs", + "ViewState": "AgIAABUAAAAAAAAAAADwvxwAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:07:40.217Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "UserUseCase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\UserUseCase.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\UserUseCase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\UserUseCase.cs", + "RelativeToolTip": "domain\\UseCase\\UserUseCase.cs", + "ViewState": "AgIAAG0AAAAAAAAAAADwv5IAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:00:40.546Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "UseCaseGeneratePresence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\UseCaseGeneratePresence.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\UseCaseGeneratePresence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\UseCaseGeneratePresence.cs", + "RelativeToolTip": "domain\\UseCase\\UseCaseGeneratePresence.cs", + "ViewState": "AgIAAJsAAAAAAAAAAADwv8AAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:00:21.887Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "GroupUseCase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\GroupUseCase.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\GroupUseCase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\GroupUseCase.cs", + "RelativeToolTip": "domain\\UseCase\\GroupUseCase.cs", + "ViewState": "AgIAADIAAAAAAAAAAADwv1cAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:00:07.44Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "User.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\User.cs", + "RelativeDocumentMoniker": "domain\\Models\\User.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\User.cs", + "RelativeToolTip": "domain\\Models\\User.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:59:54.585Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "Presence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\Presence.cs", + "RelativeDocumentMoniker": "domain\\Models\\Presence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\Presence.cs", + "RelativeToolTip": "domain\\Models\\Presence.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:59:36.998Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "Group.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\Group.cs", + "RelativeDocumentMoniker": "domain\\Models\\Group.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\Group.cs", + "RelativeToolTip": "domain\\Models\\Group.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:59:26.921Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "UserNotFoundException.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\UserNotFoundException.cs", + "RelativeDocumentMoniker": "data\\Exceptions\\UserNotFoundException.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\UserNotFoundException.cs", + "RelativeToolTip": "data\\Exceptions\\UserNotFoundException.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:57:51.123Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "ReposiyoryException.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\ReposiyoryException.cs", + "RelativeDocumentMoniker": "data\\Exceptions\\ReposiyoryException.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\ReposiyoryException.cs", + "RelativeToolTip": "data\\Exceptions\\ReposiyoryException.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:57:33.519Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "PresenceNotFoundException.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\PresenceNotFoundException.cs", + "RelativeDocumentMoniker": "data\\Exceptions\\PresenceNotFoundException.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\PresenceNotFoundException.cs", + "RelativeToolTip": "data\\Exceptions\\PresenceNotFoundException.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:57:13.497Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "GroupNotFoundException.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\GroupNotFoundException.cs", + "RelativeDocumentMoniker": "data\\Exceptions\\GroupNotFoundException.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\GroupNotFoundException.cs", + "RelativeToolTip": "data\\Exceptions\\GroupNotFoundException.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:56:51.379Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "SQLUserRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLUserRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLUserRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLUserRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLUserRepositoryImpl.cs", + "ViewState": "AgIAABgAAAAAAAAAAADwvycAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:55:51.634Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 16, + "Title": "SQLPresenceRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLPresenceRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLPresenceRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLPresenceRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLPresenceRepositoryImpl.cs", + "ViewState": "AgIAALcAAAAAAAAAAADwv9wAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:55:31.55Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 17, + "Title": "SQLGroupRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLGroupRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLGroupRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLGroupRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLGroupRepositoryImpl.cs", + "ViewState": "AgIAAE8AAAAAAAAAAADwv3QAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:55:02.968Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "IUserRepository.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IUserRepository.cs", + "RelativeDocumentMoniker": "data\\Repository\\IUserRepository.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IUserRepository.cs", + "RelativeToolTip": "data\\Repository\\IUserRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:54:39.935Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "Title": "IPresenceRepository.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IPresenceRepository.cs", + "RelativeDocumentMoniker": "data\\Repository\\IPresenceRepository.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IPresenceRepository.cs", + "RelativeToolTip": "data\\Repository\\IPresenceRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:54:16.851Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "IGroupRepository.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IGroupRepository.cs", + "RelativeDocumentMoniker": "data\\Repository\\IGroupRepository.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IGroupRepository.cs", + "RelativeToolTip": "data\\Repository\\IGroupRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:54:00.966Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 22, + "Title": "UserAttendance.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\UserAttendance.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\UserAttendance.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\UserAttendance.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\UserAttendance.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:52:23.249Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 23, + "Title": "User.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\User.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\User.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\User.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\User.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:52:07.915Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 24, + "Title": "Presence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:51:56.442Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 25, + "Title": "GroupAttendanceStatistics.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\GroupAttendanceStatistics.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\GroupAttendanceStatistics.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\GroupAttendanceStatistics.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\GroupAttendanceStatistics.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:51:41.354Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 26, + "Title": "Group.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\Group.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\Group.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\Group.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\Group.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:51:13.615Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 21, + "Title": "AttendanceRecord.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:50:55.345Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 27, + "Title": "RemoteDatabaseContext.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\RemoteDatabaseContext.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\RemoteDatabaseContext.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\RemoteDatabaseContext.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\RemoteDatabaseContext.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:50:28.515Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 28, + "Title": "RemoteDatabase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\RemoteDatabase.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\RemoteDatabase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\RemoteDatabase.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\RemoteDatabase.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:50:06.431Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 29, + "Title": "data", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "RelativeDocumentMoniker": "data\\data.csproj", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "RelativeToolTip": "data\\data.csproj", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", + "WhenOpened": "2024-11-11T08:49:23.959Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 31, + "Title": "Presence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\Presence.cs", + "RelativeDocumentMoniker": "data\\LocalData\\Entity\\Presence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\Presence.cs", + "RelativeToolTip": "data\\LocalData\\Entity\\Presence.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:48:59.906Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 32, + "Title": "User.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\User.cs", + "RelativeDocumentMoniker": "data\\LocalData\\Entity\\User.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\User.cs", + "RelativeToolTip": "data\\LocalData\\Entity\\User.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:48:47.35Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 33, + "Title": "Group.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\Group.cs", + "RelativeDocumentMoniker": "data\\LocalData\\Entity\\Group.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\Group.cs", + "RelativeToolTip": "data\\LocalData\\Entity\\Group.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:48:36.844Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 30, + "Title": "LocalStaticData.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\LocalStaticData.cs", + "RelativeDocumentMoniker": "data\\LocalData\\LocalStaticData.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\LocalStaticData.cs", + "RelativeToolTip": "data\\LocalData\\LocalStaticData.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:47:50.999Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/presnce/v17/DocumentLayout.json b/.vs/presnce/v17/DocumentLayout.json new file mode 100644 index 0000000..4c9e4ec --- /dev/null +++ b/.vs/presnce/v17/DocumentLayout.json @@ -0,0 +1,598 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\adm\\source\\repos\\presence\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence\\ui\\groupconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|solutionrelative:ui\\groupconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{F798197F-432C-4AFF-AAC1-EB1664094999}|console_ui\\console_ui.csproj|c:\\users\\adm\\source\\repos\\presence\\console_ui\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{F798197F-432C-4AFF-AAC1-EB1664094999}|console_ui\\console_ui.csproj|solutionrelative:console_ui\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence\\ui\\userconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|solutionrelative:ui\\userconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence\\ui\\presenceconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|solutionrelative:ui\\presenceconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence\\ui\\mainmenu.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|solutionrelative:ui\\mainmenu.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\usecase\\userusecase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\usecase\\userusecase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\usecase\\usecasegeneratepresence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\usecase\\usecasegeneratepresence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\usecase\\groupusecase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\usecase\\groupusecase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\models\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\models\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\models\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\models\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence\\domain\\models\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|solutionrelative:domain\\models\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\sqluserrepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\sqluserrepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\exceptions\\groupnotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\exceptions\\groupnotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\exceptions\\usernotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\exceptions\\usernotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\exceptions\\reposiyoryexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\exceptions\\reposiyoryexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\exceptions\\presencenotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\exceptions\\presencenotfoundexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\sqlpresencerepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\sqlpresencerepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\sqlgrouprepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\sqlgrouprepositoryimpl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\iuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\iuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\ipresencerepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\ipresencerepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\repository\\igrouprepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\repository\\igrouprepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\attendancerecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\attendancerecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\userattendance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\userattendance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\groupattendancestatistics.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\groupattendancestatistics.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\dao\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\remotedatabasecontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\remotedatabasecontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\remotedata\\remotedatabase\\remotedatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\remotedatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\data.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\data.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\localdata\\localstaticdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\localdata\\localstaticdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\localdata\\entity\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\localdata\\entity\\presence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\localdata\\entity\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\localdata\\entity\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence\\data\\localdata\\entity\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\localdata\\entity\\group.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 4, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "Program.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\Program.cs", + "RelativeDocumentMoniker": "console_ui\\Program.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\Program.cs", + "RelativeToolTip": "console_ui\\Program.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:09:41.684Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "UserConsole.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\ui\\UserConsole.cs", + "RelativeDocumentMoniker": "ui\\UserConsole.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\ui\\UserConsole.cs", + "RelativeToolTip": "ui\\UserConsole.cs", + "ViewState": "AgIAACwAAAAAAAAAAAAswEIAAAAuAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:09:28.168Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "PresenceConsole.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\ui\\PresenceConsole.cs", + "RelativeDocumentMoniker": "ui\\PresenceConsole.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\ui\\PresenceConsole.cs", + "RelativeToolTip": "ui\\PresenceConsole.cs", + "ViewState": "AgIAAJgAAAAAAAAAAADwv7sAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:09:06.917Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "MainMenu.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\ui\\MainMenu.cs", + "RelativeDocumentMoniker": "ui\\MainMenu.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\ui\\MainMenu.cs", + "RelativeToolTip": "ui\\MainMenu.cs", + "ViewState": "AgIAALoAAAAAAAAAAADwv98AAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:08:48.7Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "GroupConsole.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\ui\\GroupConsole.cs", + "RelativeDocumentMoniker": "ui\\GroupConsole.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\ui\\GroupConsole.cs", + "RelativeToolTip": "ui\\GroupConsole.cs", + "ViewState": "AgIAABUAAAAAAAAAAADwvxwAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:07:40.217Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "UserUseCase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\UserUseCase.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\UserUseCase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\UserUseCase.cs", + "RelativeToolTip": "domain\\UseCase\\UserUseCase.cs", + "ViewState": "AgIAAG0AAAAAAAAAAADwv5IAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:00:40.546Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "UseCaseGeneratePresence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\UseCaseGeneratePresence.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\UseCaseGeneratePresence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\UseCaseGeneratePresence.cs", + "RelativeToolTip": "domain\\UseCase\\UseCaseGeneratePresence.cs", + "ViewState": "AgIAAJsAAAAAAAAAAADwv8AAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:00:21.887Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "GroupUseCase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\GroupUseCase.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\GroupUseCase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\UseCase\\GroupUseCase.cs", + "RelativeToolTip": "domain\\UseCase\\GroupUseCase.cs", + "ViewState": "AgIAADIAAAAAAAAAAADwv1cAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T09:00:07.44Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "User.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\User.cs", + "RelativeDocumentMoniker": "domain\\Models\\User.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\User.cs", + "RelativeToolTip": "domain\\Models\\User.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:59:54.585Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "Presence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\Presence.cs", + "RelativeDocumentMoniker": "domain\\Models\\Presence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\Presence.cs", + "RelativeToolTip": "domain\\Models\\Presence.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:59:36.998Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "Group.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\Group.cs", + "RelativeDocumentMoniker": "domain\\Models\\Group.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\domain\\Models\\Group.cs", + "RelativeToolTip": "domain\\Models\\Group.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:59:26.921Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "UserNotFoundException.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\UserNotFoundException.cs", + "RelativeDocumentMoniker": "data\\Exceptions\\UserNotFoundException.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\UserNotFoundException.cs", + "RelativeToolTip": "data\\Exceptions\\UserNotFoundException.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:57:51.123Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "ReposiyoryException.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\ReposiyoryException.cs", + "RelativeDocumentMoniker": "data\\Exceptions\\ReposiyoryException.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\ReposiyoryException.cs", + "RelativeToolTip": "data\\Exceptions\\ReposiyoryException.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:57:33.519Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "PresenceNotFoundException.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\PresenceNotFoundException.cs", + "RelativeDocumentMoniker": "data\\Exceptions\\PresenceNotFoundException.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\PresenceNotFoundException.cs", + "RelativeToolTip": "data\\Exceptions\\PresenceNotFoundException.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:57:13.497Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "GroupNotFoundException.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\GroupNotFoundException.cs", + "RelativeDocumentMoniker": "data\\Exceptions\\GroupNotFoundException.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Exceptions\\GroupNotFoundException.cs", + "RelativeToolTip": "data\\Exceptions\\GroupNotFoundException.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:56:51.379Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "SQLUserRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLUserRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLUserRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLUserRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLUserRepositoryImpl.cs", + "ViewState": "AgIAABgAAAAAAAAAAADwvycAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:55:51.634Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 16, + "Title": "SQLPresenceRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLPresenceRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLPresenceRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLPresenceRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLPresenceRepositoryImpl.cs", + "ViewState": "AgIAALcAAAAAAAAAAADwv9wAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:55:31.55Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 17, + "Title": "SQLGroupRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLGroupRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLGroupRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\SQLGroupRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLGroupRepositoryImpl.cs", + "ViewState": "AgIAAE8AAAAAAAAAAADwv3QAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:55:02.968Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "IUserRepository.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IUserRepository.cs", + "RelativeDocumentMoniker": "data\\Repository\\IUserRepository.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IUserRepository.cs", + "RelativeToolTip": "data\\Repository\\IUserRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:54:39.935Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "Title": "IPresenceRepository.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IPresenceRepository.cs", + "RelativeDocumentMoniker": "data\\Repository\\IPresenceRepository.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IPresenceRepository.cs", + "RelativeToolTip": "data\\Repository\\IPresenceRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:54:16.851Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "IGroupRepository.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IGroupRepository.cs", + "RelativeDocumentMoniker": "data\\Repository\\IGroupRepository.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\Repository\\IGroupRepository.cs", + "RelativeToolTip": "data\\Repository\\IGroupRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:54:00.966Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 22, + "Title": "UserAttendance.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\UserAttendance.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\UserAttendance.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\UserAttendance.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\UserAttendance.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:52:23.249Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 23, + "Title": "User.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\User.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\User.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\User.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\User.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:52:07.915Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 24, + "Title": "Presence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:51:56.442Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 25, + "Title": "GroupAttendanceStatistics.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\GroupAttendanceStatistics.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\GroupAttendanceStatistics.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\GroupAttendanceStatistics.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\GroupAttendanceStatistics.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:51:41.354Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 26, + "Title": "Group.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\Group.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\Group.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\Group.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\Group.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:51:13.615Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 21, + "Title": "AttendanceRecord.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:50:55.345Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 27, + "Title": "RemoteDatabaseContext.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\RemoteDatabaseContext.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\RemoteDatabaseContext.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\RemoteDatabaseContext.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\RemoteDatabaseContext.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:50:28.515Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 28, + "Title": "RemoteDatabase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\RemoteDatabase.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\RemoteDatabase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\RemoteData\\RemoteDatabase\\RemoteDatabase.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\RemoteDatabase.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:50:06.431Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 29, + "Title": "data", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "RelativeDocumentMoniker": "data\\data.csproj", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "RelativeToolTip": "data\\data.csproj", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", + "WhenOpened": "2024-11-11T08:49:23.959Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 31, + "Title": "Presence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\Presence.cs", + "RelativeDocumentMoniker": "data\\LocalData\\Entity\\Presence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\Presence.cs", + "RelativeToolTip": "data\\LocalData\\Entity\\Presence.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:48:59.906Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 32, + "Title": "User.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\User.cs", + "RelativeDocumentMoniker": "data\\LocalData\\Entity\\User.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\User.cs", + "RelativeToolTip": "data\\LocalData\\Entity\\User.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:48:47.35Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 33, + "Title": "Group.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\Group.cs", + "RelativeDocumentMoniker": "data\\LocalData\\Entity\\Group.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\Entity\\Group.cs", + "RelativeToolTip": "data\\LocalData\\Entity\\Group.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:48:36.844Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 30, + "Title": "LocalStaticData.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\LocalStaticData.cs", + "RelativeDocumentMoniker": "data\\LocalData\\LocalStaticData.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence\\data\\LocalData\\LocalStaticData.cs", + "RelativeToolTip": "data\\LocalData\\LocalStaticData.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-11T08:47:50.999Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/console_ui/Program.cs b/console_ui/Program.cs new file mode 100644 index 0000000..df70b1d --- /dev/null +++ b/console_ui/Program.cs @@ -0,0 +1,28 @@ +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.Repository; +using Demo.Domain.UseCase; +using Demo.UI; +using Microsoft.Extensions.DependencyInjection; + +// Создаем экземпляр репозиториев + +IServiceCollection services = new ServiceCollection(); + +services + .AddDbContext() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton(); + + + +var serviceProvider = services.BuildServiceProvider(); +// Создаем пользовательский интерфейс +MainMenuUI mainMenuUI = serviceProvider.GetService(); + +// Выводим главное меню +mainMenuUI.DisplayMenu(); diff --git a/console_ui/console_ui.csproj b/console_ui/console_ui.csproj new file mode 100644 index 0000000..883c822 --- /dev/null +++ b/console_ui/console_ui.csproj @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + Exe + net8.0 + enable + enable + + + diff --git a/console_ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/console_ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/console_ui/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/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs b/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs new file mode 100644 index 0000000..ac8a828 --- /dev/null +++ b/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("console_ui")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("console_ui")] +[assembly: System.Reflection.AssemblyTitleAttribute("console_ui")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfoInputs.cache b/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfoInputs.cache new file mode 100644 index 0000000..62e776c --- /dev/null +++ b/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +ba882f03fdfa9546ef7659464bc47e4a0ca2d53498595f377280140f0c41eed4 diff --git a/console_ui/obj/Debug/net8.0/console_ui.GeneratedMSBuildEditorConfig.editorconfig b/console_ui/obj/Debug/net8.0/console_ui.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..b0ad3c6 --- /dev/null +++ b/console_ui/obj/Debug/net8.0/console_ui.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 = console_ui +build_property.ProjectDir = C:\Users\adm\source\repos\presence\console_ui\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs b/console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/console_ui/obj/Debug/net8.0/console_ui.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/console_ui/obj/Debug/net8.0/console_ui.assets.cache b/console_ui/obj/Debug/net8.0/console_ui.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..1de4d407d03887df68dffed58e38735a296e2b04 GIT binary patch literal 10064 zcmd5?OK%%h6m}tLnwFN*P|BmBDWSA!)5)U=NeZ-$5*kHGLud*D$(xCN;|>|mxHIFl zMgkUqKw?p`0Eq>ABm_T(4J#JFKVZoQ&ar1apY7wB$s~$x=_sD7^Z4f6d(ZuRZq`?p z=AX)BGBZCco%!vjKR)^U&wu~<@ZncKf3Wl2XTSV9?5*57_Sf&({~n(_m&rUydfyyc zxSoB_RgRn0^Tn)Yl?%$tmh{}VUQlkfXyhE*wYNM?S)Solwj8~v9@@@!&UTchTe?~K zm~CgZacyEe8xG`c&mu=TH+!e<;_a%7+kuM(b}=8g(DJ7F1OejDArk)10KZQR@R6r1 z*RU;DGwnjbunL;K>3WWy^LVfdak3R5y`EXIrnIRhtf9A6-`kS1l%spL<094`A8RlD zeVhWTUD_kOcWMr_4ZG~*ln;{L7(pHekn}Zkg2YNc@xgSP#%7jgnI=DGmT7KzF8R|( z63p!p`rc3Sb>h59i?Df;X&oj8HV?*}umI)JCX~nM`HQ`vbd;&{MC<0RlXtgniU@g= zV;+yw^OuPchO0ZL=kAMprCk<7(*@tOT@rbfF~p}yc&bm5RFbZ`Fie23sEW2zsim*Y z42MPmwmVfLOx!bsf>E6!VN?So-=;~NZEYEaGF1fLY%QfGLHZgTv`gZ%1P_yVnw~#T z0XMHo%E~J%S23)QRJA51Oyy$TayhWXd_Ly`4Dxw~o`2jQfUQ}bjGcH1ZM)n)??dO> z%}e10lI`6uQ2)3|n9krhfok)jk0VIoOZ1#(FGrkvazzaHOMt3fs_>ZORGm$is>ahU z4peZoL8|a1V;qAd4|YFgCC4Zlp0Ps|hp9{aW?iov;M#wgqT}WyQkA(GiN-1w+y}KY zU>eu*T6G+K5Ba{&(_enmS4cih;9F#BCEN81jtW9I9+7@*iJq<3>^9zAMQFo5G(IgE z+N&hehYSB;B>!Wp%aIxyu1HqD7^5B#O4hv;ts9=KtULnB;l>CKl4cmgk=nImhrN!; zdTnbz+aT-^iBQ>Cd0Gr0D7R$ttZ3<10(LEDL@E`mExYsgFe{uB92GS6I4Q|;-x;w<-B z#_n5xK}|=R!}z%MC*iwJ<7sNke$yaGEz%%{&MiR+`WrN!BDLvg65vCc#Q3;XDB*jP z#t)cA0ZOD%jFMZ363Vw|d`~nBVh)k7fM#(_ZY@eNZ_s!rX&6988pe>hyuia@c=aV)N2hi+&y5**Op2M|^?&OWJUN)GFY>h>CNRO}U-u-3EM?Xp} z^Re2MD>fE|i*?G~E*h(IiTz?9lzYP1s}x{_E!LUDAwnAtAm>`@pHy=_J}buw`>2vB z2TIb>t%jJGOd2A*eZ<)UC~e!oH)2DyHEo`iFr3g0Z8Iy8HXI;b*LgAStptP(ZEFrK zZzjJheI+h}ug8vJS4yDUyyjzrz{OQu(_4!J9QMZ=DuEXimU>jZ_CF`3{wc5sC z0QIcVzyI|4wQykBT`rbPBWHMKWl?Pzmdf|u)=gI(xvN~;+)??Sdrn#Pa0Oe5?4K9w z|0ATrm6xyIJ2%}}_s_eo^6phis?RA?%_*w>1-n#PwR5`J<59#@i^}y3t9moPQQqYE z=iz!lC{vVKyg(2%n%BT+w8O?4b`_Mv7i?FE@PKO74r|Ia*=uBBK-i&gY1>gs=EMM! ma&vZuM9W}5k!v|4fkHBOu*>Ay-MDp*hFfGL(bW>~xBmfvBcl}n literal 0 HcmV?d00001 diff --git a/console_ui/obj/Debug/net8.0/console_ui.csproj.AssemblyReference.cache b/console_ui/obj/Debug/net8.0/console_ui.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..06f7d0096eed2b57945df16147a64bcf1dcb36cf GIT binary patch literal 9112 zcmds-eM}Q)9LIYT(cprKBVlpCFvv0(_DZ2jJ3D8(VT`;9j?AP3ukE#-ZSTt673f|N zCwozxgSgii7MwE1oWO#6)$G+b_Tm?W)<#ZY!u zjgu_F`s_63##<=bX{Bh~T&C8ji#28!VKI|9%N?03gX16M$Cn4jo4E06o6ChD+(lL9 zeg`u?xfDT=?648YQvYb~lP3I9`J?%t-Q1UycJZLuPPlLbilQb1%42ZDtaRg_!Lfk05CQK*JmQzrb z8%f;D(wM6#x5jI65!NlZZyV*rNh4;n=-25>%Cvf$4a3)J{3YR(r!|*yaFl3DiuEew zStNGI)R=|gE^KAFw3w)g+b9VJ_-VDZB7TKo>!Fs0L$cU~#1ErPbJS!?lTK1hN%(0= z6tf-iFiYbu%nvN)ikjHkU?|`<=MW?EdUyE3fM7^k4=e<&KyB2lf`pTlR2S@oB#P6g zpgC=2anf(@jM|D>cM_ySW-~mfq1JK`Y7#@|nGCw1BtF5#ntqzWsC zxTO2n5ZN04T-2n3%PQ&RQPqT4??Grty}kZ)lWOgkq8eVHoK?+2Z3BF;y8w_~VCLMo zo1%S!nTFVJf}p^hRq{c=MrZZ!9s7abb>@YoQ;37)a?b*ADX0_76Piegy5wWg4lw}< zqOdy_!=y+%;qcP@q8^iN%1)qcp68}#MDvuk9ullWo&yrqSK~odc5zIyt%fyH*$L)V zAo&ocl@SgpGeJ1-jR9vH?!ieLPFj5gxeMo8D@bd7AQ-th5DENsZuW@iuhMNQ09YXy zlHATX$W;&v>9h*@Ch0EKsmQ8=z63$qvoMg(cV2D8&47YPSz8bA{pw7wh_4Q|T(UDk zvfQ_@EX!)bgRPCYg@CF_@;P#AOw*PiA!bziyVR}z>YRAX>K$^&loM~1Un7!6#o@#xmEOuoric0n-! z62UlJP}Bhlom9vF#RWx82|}wW`UTcQ6K;Yfnz;v?{s&xzKoE~vQoON5#y2(}GjVIw^brb&3zqmwoyRs7!pI_ZN?j9llv zDOLDakdVbH;iLR~dlM8PLKZv-I%x|a$pXe%?peQmSz(p2v~6eW6Mi8V{|^WOYx^KGx>S2*`+4qyFGBvc!@HKg)v+H}b{O^8bvyi=fT6HjYq;06ulu3I4 literal 0 HcmV?d00001 diff --git a/console_ui/obj/console_ui.csproj.nuget.dgspec.json b/console_ui/obj/console_ui.csproj.nuget.dgspec.json new file mode 100644 index 0000000..6de4a57 --- /dev/null +++ b/console_ui/obj/console_ui.csproj.nuget.dgspec.json @@ -0,0 +1,288 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\console_ui.csproj": {} + }, + "projects": { + "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\console_ui.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\console_ui.csproj", + "projectName": "console_ui", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\console_ui.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj" + }, + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj" + }, + "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": { + "target": "Package", + "version": "[8.0.1, )" + } + }, + "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" + } + } + }, + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "projectName": "data", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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", + "dependencies": { + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.10, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.10, )" + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[8.0.10, )" + } + }, + "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" + } + } + }, + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "projectName": "domain", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj" + } + } + } + }, + "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" + } + } + }, + "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj", + "projectName": "ui", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj" + } + } + } + }, + "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/console_ui/obj/console_ui.csproj.nuget.g.props b/console_ui/obj/console_ui.csproj.nuget.g.props new file mode 100644 index 0000000..7f1f3dd --- /dev/null +++ b/console_ui/obj/console_ui.csproj.nuget.g.props @@ -0,0 +1,18 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\adm\.nuget\packages\ + PackageReference + 6.11.1 + + + + + + + + \ No newline at end of file diff --git a/console_ui/obj/console_ui.csproj.nuget.g.targets b/console_ui/obj/console_ui.csproj.nuget.g.targets new file mode 100644 index 0000000..baac958 --- /dev/null +++ b/console_ui/obj/console_ui.csproj.nuget.g.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/console_ui/obj/project.assets.json b/console_ui/obj/project.assets.json new file mode 100644 index 0000000..187b551 --- /dev/null +++ b/console_ui/obj/project.assets.json @@ -0,0 +1,854 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Microsoft.EntityFrameworkCore/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.10", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Npgsql/8.0.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Relational": "8.0.10", + "Npgsql": "8.0.5" + }, + "compile": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, + "data/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10" + }, + "compile": { + "bin/placeholder/data.dll": {} + }, + "runtime": { + "bin/placeholder/data.dll": {} + } + }, + "domain/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "data": "1.0.0" + }, + "compile": { + "bin/placeholder/domain.dll": {} + }, + "runtime": { + "bin/placeholder/domain.dll": {} + } + }, + "ui/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "domain": "1.0.0" + }, + "compile": { + "bin/placeholder/ui.dll": {} + }, + "runtime": { + "bin/placeholder/ui.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.EntityFrameworkCore/8.0.10": { + "sha512": "PPkQdIqfR1nU3n6YgGGDk8G+eaYbaAKM1AzIQtlPNTKf10Osg3N9T+iK9AlnSA/ujsK00flPpFHVfJrbuBFS1A==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "sha512": "FV0QlcX9INY4kAD2o72uPtyOh0nZut2jB11Jf9mNYBtHay8gDLe+x4AbXFwuQg+eSvofjT7naV82e827zGfyMg==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "sha512": "51KkPIc0EMv/gVXhPIUi6cwJE9Mvh+PLr4Lap4naLcsoGZ0lF2SvOPgUUprwRV3MnN7nyD1XPhT5RJ/p+xFAXw==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "sha512": "OefBEE47kGKPRPV3OT+FAW6o5BFgLk2D9EoeWVy7NbOepzUneayLQxbVE098FfedTyMwxvZQoDD9LrvZc3MadA==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "sha512": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/8.0.2": { + "sha512": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "type": "package", + "path": "microsoft.extensions.options/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net6.0/Microsoft.Extensions.Options.dll", + "lib/net6.0/Microsoft.Extensions.Options.xml", + "lib/net7.0/Microsoft.Extensions.Options.dll", + "lib/net7.0/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.8.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "sha512": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "type": "package", + "path": "microsoft.extensions.primitives/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net6.0/Microsoft.Extensions.Primitives.dll", + "lib/net6.0/Microsoft.Extensions.Primitives.xml", + "lib/net7.0/Microsoft.Extensions.Primitives.dll", + "lib/net7.0/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Npgsql/8.0.5": { + "sha512": "zRG5V8cyeZLpzJlKzFKjEwkRMYIYnHWJvEor2lWXeccS2E1G2nIWYYhnukB51iz5XsWSVEtqg3AxTWM0QJ6vfg==", + "type": "package", + "path": "npgsql/8.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net6.0/Npgsql.dll", + "lib/net6.0/Npgsql.xml", + "lib/net7.0/Npgsql.dll", + "lib/net7.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/netstandard2.0/Npgsql.dll", + "lib/netstandard2.0/Npgsql.xml", + "lib/netstandard2.1/Npgsql.dll", + "lib/netstandard2.1/Npgsql.xml", + "npgsql.8.0.5.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "sha512": "gFPl9Dmxih7Yi4tZ3bITzZFzbxFMBx04gqTqcjoL2r5VEW+O2TA5UVw/wm/XW26NAJ7sg59Je0+9QrwiZt6MPQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, + "data/1.0.0": { + "type": "project", + "path": "../data/data.csproj", + "msbuildProject": "../data/data.csproj" + }, + "domain/1.0.0": { + "type": "project", + "path": "../domain/domain.csproj", + "msbuildProject": "../domain/domain.csproj" + }, + "ui/1.0.0": { + "type": "project", + "path": "../ui/ui.csproj", + "msbuildProject": "../ui/ui.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "Microsoft.Extensions.DependencyInjection >= 8.0.1", + "data >= 1.0.0", + "domain >= 1.0.0", + "ui >= 1.0.0" + ] + }, + "packageFolders": { + "C:\\Users\\adm\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\console_ui.csproj", + "projectName": "console_ui", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\console_ui.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj" + }, + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj" + }, + "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": { + "target": "Package", + "version": "[8.0.1, )" + } + }, + "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/console_ui/obj/project.nuget.cache b/console_ui/obj/project.nuget.cache new file mode 100644 index 0000000..98ab9f5 --- /dev/null +++ b/console_ui/obj/project.nuget.cache @@ -0,0 +1,24 @@ +{ + "version": 2, + "dgSpecHash": "taivLdMVn6A=", + "success": true, + "projectFilePath": "C:\\Users\\adm\\source\\repos\\presence\\console_ui\\console_ui.csproj", + "expectedPackageFiles": [ + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.10\\microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/data/Exceptions/GroupNotFoundException.cs b/data/Exceptions/GroupNotFoundException.cs new file mode 100644 index 0000000..de2876b --- /dev/null +++ b/data/Exceptions/GroupNotFoundException.cs @@ -0,0 +1,10 @@ +using System; + +namespace Demo.Data.Exceptions +{ + public class GroupNotFoundException : RepositoryException + { + public GroupNotFoundException(int userId) + : base($"Группа с ID {userId} не найдена.") { } + } +} \ No newline at end of file diff --git a/data/Exceptions/PresenceNotFoundException.cs b/data/Exceptions/PresenceNotFoundException.cs new file mode 100644 index 0000000..cc993a6 --- /dev/null +++ b/data/Exceptions/PresenceNotFoundException.cs @@ -0,0 +1,12 @@ +using System; + +namespace Demo.Data.Exceptions +{ + public class PresenceNotFoundException : RepositoryException + { + public PresenceNotFoundException(int userId, DateOnly date, int firstLesson, int lastLesson) + : base($"Посещаемость для пользователя ID: {userId} на дату {date.ToShortDateString()}" + + $" с {firstLesson} по {lastLesson} уроки не найдена.") + { } + } +} \ No newline at end of file diff --git a/data/Exceptions/ReposiyoryException.cs b/data/Exceptions/ReposiyoryException.cs new file mode 100644 index 0000000..5732bc4 --- /dev/null +++ b/data/Exceptions/ReposiyoryException.cs @@ -0,0 +1,9 @@ +using System; + +namespace Demo.Data.Exceptions +{ + public class RepositoryException : Exception + { + public RepositoryException(string message) : base(message) { } + } +} \ No newline at end of file diff --git a/data/Exceptions/UserNotFoundException.cs b/data/Exceptions/UserNotFoundException.cs new file mode 100644 index 0000000..c05fdea --- /dev/null +++ b/data/Exceptions/UserNotFoundException.cs @@ -0,0 +1,10 @@ +using System; + +namespace Demo.Data.Exceptions +{ + public class UserNotFoundException : RepositoryException + { + public UserNotFoundException(int userId) + : base($"Пользователь с ID {userId} не найден.") { } + } +} \ No newline at end of file diff --git a/data/LocalData/Entity/Group.cs b/data/LocalData/Entity/Group.cs new file mode 100644 index 0000000..506833b --- /dev/null +++ b/data/LocalData/Entity/Group.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 +{ + public class GroupLocalEntity + { + public int Id { get; set; } + public required string Name { get; set; } + + + + } +} diff --git a/data/LocalData/Entity/Presence.cs b/data/LocalData/Entity/Presence.cs new file mode 100644 index 0000000..a1b3bbc --- /dev/null +++ b/data/LocalData/Entity/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 PresenceLocalEntity + { + public required int UserId { get; set; } + public required int GroupId { get; set; } + public bool IsAttedance { get; set; } = true; + public required DateTime Date { get; set; } + + public required int LessonNumber { get; set; } + } +} diff --git a/data/LocalData/Entity/User.cs b/data/LocalData/Entity/User.cs new file mode 100644 index 0000000..d8de65c --- /dev/null +++ b/data/LocalData/Entity/User.cs @@ -0,0 +1,25 @@ +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 int ID { get; set; } + + public required int GroupID { get; set; } + + + + public bool Equals(UserLocalEnity? other) + { + if (other == null) return false; + return this.ID.Equals(other.ID); + } + } +} diff --git a/data/LocalData/LocalStaticData.cs b/data/LocalData/LocalStaticData.cs new file mode 100644 index 0000000..a62ab0e --- /dev/null +++ b/data/LocalData/LocalStaticData.cs @@ -0,0 +1,36 @@ +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{ID = 1, FIO = "RandomFio", GroupID = 1 }, + new UserLocalEnity{ID = 2, FIO = "RandomFio1", GroupID = 2 }, + new UserLocalEnity{ID = 3, FIO = "RandomFio2", GroupID = 3 }, + new UserLocalEnity{ID = 4, FIO = "RandomFio3", GroupID = 1 }, + new UserLocalEnity{ID = 5, FIO = "RandomFio4", GroupID = 2 }, + new UserLocalEnity{ID = 6, FIO = "RandomFio5", GroupID = 3 }, + }; + + public static List presences => new List + { + + }; + } +} diff --git a/data/RemoteData/RemoteDatabase/DAO/AttendanceRecord.cs b/data/RemoteData/RemoteDatabase/DAO/AttendanceRecord.cs new file mode 100644 index 0000000..76a10ee --- /dev/null +++ b/data/RemoteData/RemoteDatabase/DAO/AttendanceRecord.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class AttendanceRecord + { + public int UserId { get; set; } + public string UserName { get; set; } + public string FullName { get; set; } + public DateOnly Date { get; set; } + public bool IsAttedance { get; set; } + public int LessonNumber { get; set; } + public string GroupName { get; set; } + } +} diff --git a/data/RemoteData/RemoteDatabase/DAO/Group.cs b/data/RemoteData/RemoteDatabase/DAO/Group.cs new file mode 100644 index 0000000..33b8206 --- /dev/null +++ b/data/RemoteData/RemoteDatabase/DAO/Group.cs @@ -0,0 +1,16 @@ +using Demo.domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class GroupDao + { + public int Id { get; set; } + public string Name { get; set; } + public virtual List Users { get; set; } + } +} diff --git a/data/RemoteData/RemoteDatabase/DAO/GroupAttendanceStatistics.cs b/data/RemoteData/RemoteDatabase/DAO/GroupAttendanceStatistics.cs new file mode 100644 index 0000000..93e39ab --- /dev/null +++ b/data/RemoteData/RemoteDatabase/DAO/GroupAttendanceStatistics.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class GroupAttendanceStatistics + { + public int UserCount { get; set; } + public int TotalLessons { get; set; } + public double AttendancePercentage { get; set; } + public List UserAttendanceDetails { get; set; } = new List(); + } +} diff --git a/data/RemoteData/RemoteDatabase/DAO/Presence.cs b/data/RemoteData/RemoteDatabase/DAO/Presence.cs new file mode 100644 index 0000000..de4d0e5 --- /dev/null +++ b/data/RemoteData/RemoteDatabase/DAO/Presence.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class PresenceDao + { + public int PresenceId { get; set; } + public int UserId { get; set; } + public bool IsAttedance { get; set; } = true; + public DateOnly Date { get; set; } + public int LessonNumber { get; set; } + public int GroupId { get; set; } + } +} diff --git a/data/RemoteData/RemoteDatabase/DAO/User.cs b/data/RemoteData/RemoteDatabase/DAO/User.cs new file mode 100644 index 0000000..7c26a6c --- /dev/null +++ b/data/RemoteData/RemoteDatabase/DAO/User.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class UserDao + { + public required string FIO { get; set; } + public required int UserId { get; set; } + public int GroupId { get; set; } + public GroupDao? Group { get; set; } + } +} diff --git a/data/RemoteData/RemoteDatabase/DAO/UserAttendance.cs b/data/RemoteData/RemoteDatabase/DAO/UserAttendance.cs new file mode 100644 index 0000000..b26f69c --- /dev/null +++ b/data/RemoteData/RemoteDatabase/DAO/UserAttendance.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class UserAttendance + { + public int UserId { get; set; } + public double Attended { get; set; } + public double Missed { get; set; } + public double AttendanceRate { get; set; } + } +} diff --git a/data/RemoteData/RemoteDatabase/RemoteDatabase.cs b/data/RemoteData/RemoteDatabase/RemoteDatabase.cs new file mode 100644 index 0000000..546b626 --- /dev/null +++ b/data/RemoteData/RemoteDatabase/RemoteDatabase.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase +{ + internal class RemoteDatabase + { + } +} diff --git a/data/RemoteData/RemoteDatabase/RemoteDatabaseContext.cs b/data/RemoteData/RemoteDatabase/RemoteDatabaseContext.cs new file mode 100644 index 0000000..f06af75 --- /dev/null +++ b/data/RemoteData/RemoteDatabase/RemoteDatabaseContext.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase +{ + public class RemoteDatabaseContext : DbContext + { + public DbSet Groups { get; set; } + public DbSet Users { get; set; } + public DbSet PresenceDaos { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=presencedb;Username=postgres;Password=123;Include Error Detail=True;"); + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity().HasKey(group => group.Id); + modelBuilder.Entity().Property(group => group.Id).ValueGeneratedOnAdd(); + modelBuilder.Entity().HasKey(user => user.UserId); + modelBuilder.Entity().Property(user => user.UserId).ValueGeneratedOnAdd(); + modelBuilder.Entity().HasKey(presence => presence.PresenceId); + modelBuilder.Entity().Property(presence => presence.PresenceId).ValueGeneratedOnAdd(); + + } + } +} diff --git a/data/Repository/IGroupRepository.cs b/data/Repository/IGroupRepository.cs new file mode 100644 index 0000000..d5f20ef --- /dev/null +++ b/data/Repository/IGroupRepository.cs @@ -0,0 +1,18 @@ +using Demo.Data.RemoteData.RemoteDataBase.DAO; +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 interface IGroupRepository + { + List GetAllGroups(); + bool UpdateGroupById(int groupID, GroupDao updatedGroup); + GroupDao GetGroupById(int groupID); + bool AddGroup(string Name); + } +} \ No newline at end of file diff --git a/data/Repository/IPresenceRepository.cs b/data/Repository/IPresenceRepository.cs new file mode 100644 index 0000000..51ff137 --- /dev/null +++ b/data/Repository/IPresenceRepository.cs @@ -0,0 +1,27 @@ + +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using Demo.Domain.UseCase; +using Microsoft.EntityFrameworkCore.Metadata; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.Repository +{ + public interface IPresenceRepository + { + List GetPresenceByDateAndGroup(DateTime date, int groupId); + void SavePresence(List presences); + List GetPresenceByGroup(int groupId); + DateOnly? GetLastDateByGroupId(int groupId); + List GetPresenceForAbsent(DateTime date, int GroupId); + GroupAttendanceStatistics GetGeneralPresenceForGroup(int groupId); + void UpdateAtt(int userId, int groupId, int firstLesson, int lastLesson, DateOnly date, bool isAttendance); + List GetAttendanceByGroup(int groupId); + } +} + diff --git a/data/Repository/IUserRepository.cs b/data/Repository/IUserRepository.cs new file mode 100644 index 0000000..7550e04 --- /dev/null +++ b/data/Repository/IUserRepository.cs @@ -0,0 +1,14 @@ +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using System.Collections.Generic; + +namespace Demo.Data.Repository +{ + public interface IUserRepository + { + List GetAllUsers(); + bool RemoveUserById(int userId); + UserDao UpdateUser(int userId, string newFIO, int groupId); + List GetUserNames(); + } +} diff --git a/data/Repository/SQLGroupRepositoryImpl.cs b/data/Repository/SQLGroupRepositoryImpl.cs new file mode 100644 index 0000000..3a7fb72 --- /dev/null +++ b/data/Repository/SQLGroupRepositoryImpl.cs @@ -0,0 +1,116 @@ +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Demo.Data.Repository +{ + public class SQLGroupRepositoryImpl : IGroupRepository + { + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + public SQLGroupRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + // Метод для добавления новой группы + public bool AddGroup(GroupDao newGroup) + { + var groupDao = new GroupDao + { + Name = newGroup.Name + }; + _remoteDatabaseContext.Groups.Add(groupDao); + _remoteDatabaseContext.SaveChanges(); + return true; + } + + // Метод для получения группы по ID + public GroupDao GetGroupById(int groupId) + { + var groupDao = _remoteDatabaseContext.Groups + .Include(g => g.Users) + .FirstOrDefault(g => g.Id == groupId); + if (groupDao == null) return null; + + return new GroupDao + { + Id = groupDao.Id, + Name = groupDao.Name, + Users = groupDao.Users.Select(u => new UserDao + { + UserId = u.UserId, + FIO = u.FIO, + GroupId = u.GroupId + }).ToList() + }; + } + + // Метод для получения всех групп + public List GetAllGroups() + { + return _remoteDatabaseContext.Groups + .Include(g => g.Users) + .Select(g => new GroupDao + { + Id = g.Id, + Name = g.Name, + Users = g.Users.Select(u => new UserDao + { + UserId = u.UserId, + FIO = u.FIO, + GroupId = u.GroupId + }).ToList() + }) + .ToList(); + } + + // Метод для обновления группы по ID + public bool UpdateGroupById(int groupId, GroupDao updatedGroup) + { + var groupDao = _remoteDatabaseContext.Groups + .Include(g => g.Users) + .FirstOrDefault(g => g.Id == groupId); + if (groupDao == null) return false; + + groupDao.Name = updatedGroup.Name; + // Пример обновления списка пользователей + groupDao.Users = updatedGroup.Users.Select(user => new UserDao + { + UserId = user.UserId, + FIO = user.FIO, + GroupId = user.GroupId + }).ToList(); + + _remoteDatabaseContext.SaveChanges(); + return true; + } + + // Метод для удаления группы по ID + public bool RemoveGroupById(int groupId) + { + var groupDao = _remoteDatabaseContext.Groups.Find(groupId); + if (groupDao == null) return false; + + _remoteDatabaseContext.Groups.Remove(groupDao); + _remoteDatabaseContext.SaveChanges(); + return true; + } + + public bool AddGroup(string Name) + { + + var groupDao = new GroupDao + { + Name = Name + }; + _remoteDatabaseContext.Groups.Add(groupDao); + _remoteDatabaseContext.SaveChanges(); + return true; + } + } +} diff --git a/data/Repository/SQLPresenceRepositoryImpl.cs b/data/Repository/SQLPresenceRepositoryImpl.cs new file mode 100644 index 0000000..d433f23 --- /dev/null +++ b/data/Repository/SQLPresenceRepositoryImpl.cs @@ -0,0 +1,220 @@ +using Demo.Data.Exceptions; +using Demo.Data.LocalData; +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using DocumentFormat.OpenXml.InkML; +using DocumentFormat.OpenXml.Spreadsheet; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using static System.Runtime.InteropServices.JavaScript.JSType; + +namespace Demo.Data.Repository +{ + public class SQLPresenceRepositoryImpl : IPresenceRepository + { + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + public SQLPresenceRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + + public List GetAttendanceByGroup(int groupId) + { + // Получаем записи посещаемости для указанной группы + return _remoteDatabaseContext.PresenceDaos + .Where(p => p.GroupId == groupId) + .Select(p => new PresenceDao + { + UserId = p.UserId, + GroupId = p.GroupId, + Date = p.Date, + LessonNumber = p.LessonNumber, + IsAttedance = p.IsAttedance + }) + .ToList(); + } + + + public List GetPresenceForAbsent(DateTime date, int GroupId) + { + return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == GroupId && p.Date == DateOnly.FromDateTime(date)).ToList(); + } + public List GetPresenceByDateAndGroup(DateTime date, int groupId) + { + return _remoteDatabaseContext.PresenceDaos.Where(p => p.Date == DateOnly.FromDateTime(date) && + _remoteDatabaseContext.Users.Any(u => u.GroupId == groupId && u.UserId == p.UserId)).ToList(); + } + + // Реализация метода для получения всех данных по группе + public List GetPresenceByGroup(int groupId) + { + return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == groupId) + .OrderBy(p => p.Date) + .ThenBy(p => p.UserId).ToList(); + } + + public void SavePresence(List presences) + { + _remoteDatabaseContext.PresenceDaos.AddRange(presences.Select(it => new PresenceDao + { + Date = it.Date, + IsAttedance = it.IsAttedance, + LessonNumber = it.LessonNumber, + UserId = it.UserId, + GroupId = it.GroupId + })); + _remoteDatabaseContext.SaveChanges(); + } + + public void UpdateAtt(int userId, int groupId, int firstLesson, int lastLesson, DateOnly date, bool isAttendance) + { + // Находим все записи по UserId, GroupId, LessonNumber (в диапазоне) и дате + var presences = _remoteDatabaseContext.PresenceDaos + .Where(p => p.UserId == userId + && p.GroupId == groupId + && p.LessonNumber >= firstLesson + && p.LessonNumber <= lastLesson + && p.Date == date) + .ToList(); + + // Обновляем значение IsAttendance для всех найденных записей + foreach (var presence in presences) + { + presence.IsAttedance = isAttendance; + } + + _remoteDatabaseContext.SaveChanges(); // Сохраняем изменения в базе данных + } + + public DateOnly? GetLastDateByGroupId(int groupId) + { + // Проверяем наличие записей о посещаемости в базе данных для данной группы. + var lastDate = _remoteDatabaseContext.PresenceDaos + .Where(p => p.GroupId == groupId) + .OrderByDescending(p => p.Date) + .Select(p => p.Date) + .FirstOrDefault(); + + return lastDate == default ? (DateOnly?)null : lastDate; + } + + public List PresenceSort(List presences) + { + presences = _remoteDatabaseContext.PresenceDaos.OrderBy(p => p.Date).ToList(); + return presences; + } + + + public GroupAttendanceStatistics GetGeneralPresenceForGroup(int groupId) + { + var presences = _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == groupId).OrderBy(p => p.LessonNumber).ToList(); + var dates = _remoteDatabaseContext.PresenceDaos; + var distDates = dates.Select(p => p.Date).Distinct().ToList(); + int lesId = 0; + int lesNum = 1; + double att = 0; + int days = -1; + int countAllLes = 0; + DateOnly date = DateOnly.MinValue; + List usersId = new List(); + + foreach (var presence in presences) + { + if (!usersId.Contains(presence.UserId)) + { + usersId.Add(presence.UserId); + } + if (presence.Date != date) + { + date = presence.Date; + lesId++; + lesNum = presence.LessonNumber; + days++; + } + if (presence.LessonNumber != lesNum && date == presence.Date) + { + lesNum = presence.LessonNumber; + countAllLes++; + lesId++; + } + + + if (presence.IsAttedance) + { + att++; + } + + } + List a = new List(); + List ids = new List(); + double ok = 0; + double skip = 0; + int userId = 0; + foreach (var user in usersId) + { + var users = _remoteDatabaseContext.PresenceDaos.Where(p => p.UserId == user); + foreach (var usera in users) + { + userId = usera.UserId; + if (!ids.Contains(usera.UserId)) + { + skip = 0; + ok = 0; + ids.Add(userId); + a.Add(new UserAttendance { UserId = userId, Attended = ok, Missed = skip }); + userId = usera.UserId; + if (usera.IsAttedance) + { + a.First(a => a.UserId == usera.UserId).Attended = ok += 1; + } + else + { + a.First(a => a.UserId == usera.UserId).Missed = skip += 1; + } + } + else + { + if (usera.IsAttedance) + { + a.First(a => a.UserId == usera.UserId).Attended = ok += 1; + } + else + { + a.First(a => a.UserId == usera.UserId).Missed = skip += 1; + } + } + } + } + + var statistics = new GroupAttendanceStatistics + { + UserCount = usersId.Count, + TotalLessons = lesId, + AttendancePercentage = att / usersId.Count / lesNum / distDates.Count() * 100 + }; + + foreach (var user in a) + { + statistics.UserAttendanceDetails.Add(new UserAttendance + { + UserId = user.UserId, + Attended = user.Attended, + Missed = user.Missed, + AttendanceRate = user.Attended / (user.Missed + user.Attended) * 100 + }); + } + + return statistics; + } + } +} diff --git a/data/Repository/SQLUserRepositoryImpl.cs b/data/Repository/SQLUserRepositoryImpl.cs new file mode 100644 index 0000000..122bcdd --- /dev/null +++ b/data/Repository/SQLUserRepositoryImpl.cs @@ -0,0 +1,61 @@ +using Demo.Data.Exceptions; +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Demo.Data.Repository +{ + public class SQLUserRepositoryImpl : IUserRepository + { + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + public bool RemoveUserById(int userId) + { + var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == userId); + if (user == null) throw new UserNotFoundException(userId); + + _remoteDatabaseContext.Users.Remove(user); + _remoteDatabaseContext.SaveChanges(); + return true; + } + + public UserDao UpdateUser(int userId, string newFio, int groupId) + { + var existingUser = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == userId); + if (existingUser == null) throw new UserNotFoundException(userId); + + // Обновляем поля существующего пользователя + existingUser.FIO = newFio; + existingUser.GroupId = groupId; + _remoteDatabaseContext.SaveChanges(); + + return existingUser; + } + + public List GetAllUsers() + { + // Возвращаем пользователей, отсортированных по UserId + return _remoteDatabaseContext.Users.OrderBy(u => u.UserId).ToList(); + } + + public List GetUserNames() + { + var users = GetAllUsers(); + List names = new List(); + foreach (var user in users) + { + names.Add(new UserDao { UserId = user.UserId, FIO = user.FIO }); + } + return names; + } + } +} diff --git a/data/data.csproj b/data/data.csproj new file mode 100644 index 0000000..2b2ccad --- /dev/null +++ b/data/data.csproj @@ -0,0 +1,18 @@ + + + + net8.0 + enable + enable + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + diff --git a/data/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/data/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/data/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/data/obj/Debug/net8.0/data.AssemblyInfo.cs b/data/obj/Debug/net8.0/data.AssemblyInfo.cs new file mode 100644 index 0000000..55a67a6 --- /dev/null +++ b/data/obj/Debug/net8.0/data.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("data")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("data")] +[assembly: System.Reflection.AssemblyTitleAttribute("data")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/data/obj/Debug/net8.0/data.AssemblyInfoInputs.cache b/data/obj/Debug/net8.0/data.AssemblyInfoInputs.cache new file mode 100644 index 0000000..26b3a26 --- /dev/null +++ b/data/obj/Debug/net8.0/data.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +6741393a5fe1cc20988265f6fd0e8bdd33ee4b9cc7b9e110a41e548fdd825a94 diff --git a/data/obj/Debug/net8.0/data.GeneratedMSBuildEditorConfig.editorconfig b/data/obj/Debug/net8.0/data.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..1c2c764 --- /dev/null +++ b/data/obj/Debug/net8.0/data.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 = data +build_property.ProjectDir = C:\Users\adm\source\repos\presence\data\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/data/obj/Debug/net8.0/data.GlobalUsings.g.cs b/data/obj/Debug/net8.0/data.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/data/obj/Debug/net8.0/data.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/data/obj/Debug/net8.0/data.assets.cache b/data/obj/Debug/net8.0/data.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..94f67f26f29471a3b5d4c8bfd8ae1d8a02efbc33 GIT binary patch literal 35817 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 literal 0 HcmV?d00001 diff --git a/data/obj/data.csproj.nuget.dgspec.json b/data/obj/data.csproj.nuget.dgspec.json new file mode 100644 index 0000000..458cf39 --- /dev/null +++ b/data/obj/data.csproj.nuget.dgspec.json @@ -0,0 +1,84 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": {} + }, + "projects": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "projectName": "data", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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", + "dependencies": { + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.10, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.10, )" + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[8.0.10, )" + } + }, + "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/data/obj/data.csproj.nuget.g.props b/data/obj/data.csproj.nuget.g.props new file mode 100644 index 0000000..da63c4b --- /dev/null +++ b/data/obj/data.csproj.nuget.g.props @@ -0,0 +1,22 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\adm\.nuget\packages\ + PackageReference + 6.11.1 + + + + + + + + + + C:\Users\adm\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3 + + \ No newline at end of file diff --git a/data/obj/data.csproj.nuget.g.targets b/data/obj/data.csproj.nuget.g.targets new file mode 100644 index 0000000..baac958 --- /dev/null +++ b/data/obj/data.csproj.nuget.g.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/data/obj/project.assets.json b/data/obj/project.assets.json new file mode 100644 index 0000000..a8c5ae6 --- /dev/null +++ b/data/obj/project.assets.json @@ -0,0 +1,2191 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Humanizer.Core/2.14.1": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Humanizer.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "type": "package", + "build": { + "build/_._": {} + } + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "[4.5.0]", + "Microsoft.CodeAnalysis.Common": "[4.5.0]", + "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.CodeAnalysis.Common": "[4.5.0]", + "System.Composition": "6.0.0", + "System.IO.Pipelines": "6.0.3", + "System.Threading.Channels": "6.0.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.EntityFrameworkCore/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.10", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Design/8.0.10": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.5.0", + "Microsoft.EntityFrameworkCore.Relational": "8.0.10", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Mono.TextTemplating": "2.2.1" + }, + "compile": { + "lib/net8.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll": { + "related": ".xml" + } + }, + "build": { + "build/net8.0/Microsoft.EntityFrameworkCore.Design.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Mono.TextTemplating/2.2.1": { + "type": "package", + "dependencies": { + "System.CodeDom": "4.4.0" + }, + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/Mono.TextTemplating.dll": {} + } + }, + "Npgsql/8.0.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Relational": "8.0.10", + "Npgsql": "8.0.5" + }, + "compile": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, + "System.CodeDom/4.4.0": { + "type": "package", + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.CodeDom.dll": {} + } + }, + "System.Collections.Immutable/6.0.0": { + "type": "package", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Collections.Immutable.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Convention": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0", + "System.Composition.TypedParts": "6.0.0" + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.AttributedModel/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.AttributedModel.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Convention/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Convention.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Hosting/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.Runtime": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Hosting.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Runtime/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Runtime.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.TypedParts/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.TypedParts.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.IO.Pipelines/6.0.3": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Reflection.Metadata/6.0.1": { + "type": "package", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Text.Encoding.CodePages/6.0.0": { + "type": "package", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Text.Encoding.CodePages.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Threading.Channels/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + } + } + }, + "libraries": { + "Humanizer.Core/2.14.1": { + "sha512": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "type": "package", + "path": "humanizer.core/2.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "humanizer.core.2.14.1.nupkg.sha512", + "humanizer.core.nuspec", + "lib/net6.0/Humanizer.dll", + "lib/net6.0/Humanizer.xml", + "lib/netstandard1.0/Humanizer.dll", + "lib/netstandard1.0/Humanizer.xml", + "lib/netstandard2.0/Humanizer.dll", + "lib/netstandard2.0/Humanizer.xml", + "logo.png" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "sha512": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "sha512": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==", + "type": "package", + "path": "microsoft.codeanalysis.analyzers/3.3.3", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "analyzers/dotnet/cs/Microsoft.CodeAnalysis.Analyzers.dll", + "analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.Analyzers.dll", + "analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/Microsoft.CodeAnalysis.Analyzers.dll", + "analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll", + "analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "build/Microsoft.CodeAnalysis.Analyzers.props", + "build/Microsoft.CodeAnalysis.Analyzers.targets", + "build/config/analysislevel_2_9_8_all.editorconfig", + "build/config/analysislevel_2_9_8_default.editorconfig", + "build/config/analysislevel_2_9_8_minimum.editorconfig", + "build/config/analysislevel_2_9_8_none.editorconfig", + "build/config/analysislevel_2_9_8_recommended.editorconfig", + "build/config/analysislevel_3_3_all.editorconfig", + "build/config/analysislevel_3_3_default.editorconfig", + "build/config/analysislevel_3_3_minimum.editorconfig", + "build/config/analysislevel_3_3_none.editorconfig", + "build/config/analysislevel_3_3_recommended.editorconfig", + "build/config/analysislevel_3_all.editorconfig", + "build/config/analysislevel_3_default.editorconfig", + "build/config/analysislevel_3_minimum.editorconfig", + "build/config/analysislevel_3_none.editorconfig", + "build/config/analysislevel_3_recommended.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_all.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_default.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_minimum.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_none.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_recommended.editorconfig", + "build/config/analysislevelcorrectness_3_3_all.editorconfig", + "build/config/analysislevelcorrectness_3_3_default.editorconfig", + "build/config/analysislevelcorrectness_3_3_minimum.editorconfig", + "build/config/analysislevelcorrectness_3_3_none.editorconfig", + "build/config/analysislevelcorrectness_3_3_recommended.editorconfig", + "build/config/analysislevelcorrectness_3_all.editorconfig", + "build/config/analysislevelcorrectness_3_default.editorconfig", + "build/config/analysislevelcorrectness_3_minimum.editorconfig", + "build/config/analysislevelcorrectness_3_none.editorconfig", + "build/config/analysislevelcorrectness_3_recommended.editorconfig", + "build/config/analysislevellibrary_2_9_8_all.editorconfig", + "build/config/analysislevellibrary_2_9_8_default.editorconfig", + "build/config/analysislevellibrary_2_9_8_minimum.editorconfig", + "build/config/analysislevellibrary_2_9_8_none.editorconfig", + "build/config/analysislevellibrary_2_9_8_recommended.editorconfig", + "build/config/analysislevellibrary_3_3_all.editorconfig", + "build/config/analysislevellibrary_3_3_default.editorconfig", + "build/config/analysislevellibrary_3_3_minimum.editorconfig", + "build/config/analysislevellibrary_3_3_none.editorconfig", + "build/config/analysislevellibrary_3_3_recommended.editorconfig", + "build/config/analysislevellibrary_3_all.editorconfig", + "build/config/analysislevellibrary_3_default.editorconfig", + "build/config/analysislevellibrary_3_minimum.editorconfig", + "build/config/analysislevellibrary_3_none.editorconfig", + "build/config/analysislevellibrary_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_recommended.editorconfig", + "documentation/Analyzer Configuration.md", + "documentation/Microsoft.CodeAnalysis.Analyzers.md", + "documentation/Microsoft.CodeAnalysis.Analyzers.sarif", + "editorconfig/AllRulesDefault/.editorconfig", + "editorconfig/AllRulesDisabled/.editorconfig", + "editorconfig/AllRulesEnabled/.editorconfig", + "editorconfig/CorrectnessRulesDefault/.editorconfig", + "editorconfig/CorrectnessRulesEnabled/.editorconfig", + "editorconfig/DataflowRulesDefault/.editorconfig", + "editorconfig/DataflowRulesEnabled/.editorconfig", + "editorconfig/LibraryRulesDefault/.editorconfig", + "editorconfig/LibraryRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDesignRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDesignRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDocumentationRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDocumentationRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisLocalizationRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisLocalizationRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisPerformanceRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisPerformanceRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled/.editorconfig", + "editorconfig/PortedFromFxCopRulesDefault/.editorconfig", + "editorconfig/PortedFromFxCopRulesEnabled/.editorconfig", + "microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", + "microsoft.codeanalysis.analyzers.nuspec", + "rulesets/AllRulesDefault.ruleset", + "rulesets/AllRulesDisabled.ruleset", + "rulesets/AllRulesEnabled.ruleset", + "rulesets/CorrectnessRulesDefault.ruleset", + "rulesets/CorrectnessRulesEnabled.ruleset", + "rulesets/DataflowRulesDefault.ruleset", + "rulesets/DataflowRulesEnabled.ruleset", + "rulesets/LibraryRulesDefault.ruleset", + "rulesets/LibraryRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisCompatibilityRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisCompatibilityRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisCorrectnessRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisCorrectnessRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisDesignRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisDesignRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisDocumentationRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisDocumentationRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisLocalizationRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisLocalizationRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisPerformanceRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisPerformanceRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled.ruleset", + "rulesets/PortedFromFxCopRulesDefault.ruleset", + "rulesets/PortedFromFxCopRulesEnabled.ruleset", + "tools/install.ps1", + "tools/uninstall.ps1" + ] + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "sha512": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "type": "package", + "path": "microsoft.codeanalysis.common/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll", + "microsoft.codeanalysis.common.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.common.nuspec" + ] + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "sha512": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "type": "package", + "path": "microsoft.codeanalysis.csharp/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll", + "microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.csharp.nuspec" + ] + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "sha512": "h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", + "type": "package", + "path": "microsoft.codeanalysis.csharp.workspaces/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.csharp.workspaces.nuspec" + ] + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "sha512": "l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", + "type": "package", + "path": "microsoft.codeanalysis.workspaces.common/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.workspaces.common.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore/8.0.10": { + "sha512": "PPkQdIqfR1nU3n6YgGGDk8G+eaYbaAKM1AzIQtlPNTKf10Osg3N9T+iK9AlnSA/ujsK00flPpFHVfJrbuBFS1A==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "sha512": "FV0QlcX9INY4kAD2o72uPtyOh0nZut2jB11Jf9mNYBtHay8gDLe+x4AbXFwuQg+eSvofjT7naV82e827zGfyMg==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "sha512": "51KkPIc0EMv/gVXhPIUi6cwJE9Mvh+PLr4Lap4naLcsoGZ0lF2SvOPgUUprwRV3MnN7nyD1XPhT5RJ/p+xFAXw==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Design/8.0.10": { + "sha512": "uGNjfKvAsql2KHRqxlK5wHo8mMC60G/FecrFKEjJgeIxtUAbSXGOgKGw/gD9flO5Fzzt1C7uxfIcr6ZsMmFkeg==", + "type": "package", + "path": "microsoft.entityframeworkcore.design/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "build/net8.0/Microsoft.EntityFrameworkCore.Design.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.xml", + "microsoft.entityframeworkcore.design.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.design.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "sha512": "OefBEE47kGKPRPV3OT+FAW6o5BFgLk2D9EoeWVy7NbOepzUneayLQxbVE098FfedTyMwxvZQoDD9LrvZc3MadA==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "sha512": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "sha512": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==", + "type": "package", + "path": "microsoft.extensions.dependencymodel/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyModel.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyModel.targets", + "lib/net462/Microsoft.Extensions.DependencyModel.dll", + "lib/net462/Microsoft.Extensions.DependencyModel.xml", + "lib/net6.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net6.0/Microsoft.Extensions.DependencyModel.xml", + "lib/net7.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net7.0/Microsoft.Extensions.DependencyModel.xml", + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net8.0/Microsoft.Extensions.DependencyModel.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.xml", + "microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencymodel.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/8.0.2": { + "sha512": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "type": "package", + "path": "microsoft.extensions.options/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net6.0/Microsoft.Extensions.Options.dll", + "lib/net6.0/Microsoft.Extensions.Options.xml", + "lib/net7.0/Microsoft.Extensions.Options.dll", + "lib/net7.0/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.8.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "sha512": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "type": "package", + "path": "microsoft.extensions.primitives/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net6.0/Microsoft.Extensions.Primitives.dll", + "lib/net6.0/Microsoft.Extensions.Primitives.xml", + "lib/net7.0/Microsoft.Extensions.Primitives.dll", + "lib/net7.0/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Mono.TextTemplating/2.2.1": { + "sha512": "KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==", + "type": "package", + "path": "mono.texttemplating/2.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net472/Mono.TextTemplating.dll", + "lib/netstandard2.0/Mono.TextTemplating.dll", + "mono.texttemplating.2.2.1.nupkg.sha512", + "mono.texttemplating.nuspec" + ] + }, + "Npgsql/8.0.5": { + "sha512": "zRG5V8cyeZLpzJlKzFKjEwkRMYIYnHWJvEor2lWXeccS2E1G2nIWYYhnukB51iz5XsWSVEtqg3AxTWM0QJ6vfg==", + "type": "package", + "path": "npgsql/8.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net6.0/Npgsql.dll", + "lib/net6.0/Npgsql.xml", + "lib/net7.0/Npgsql.dll", + "lib/net7.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/netstandard2.0/Npgsql.dll", + "lib/netstandard2.0/Npgsql.xml", + "lib/netstandard2.1/Npgsql.dll", + "lib/netstandard2.1/Npgsql.xml", + "npgsql.8.0.5.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "sha512": "gFPl9Dmxih7Yi4tZ3bITzZFzbxFMBx04gqTqcjoL2r5VEW+O2TA5UVw/wm/XW26NAJ7sg59Je0+9QrwiZt6MPQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, + "System.CodeDom/4.4.0": { + "sha512": "2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==", + "type": "package", + "path": "system.codedom/4.4.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.CodeDom.dll", + "lib/netstandard2.0/System.CodeDom.dll", + "ref/net461/System.CodeDom.dll", + "ref/net461/System.CodeDom.xml", + "ref/netstandard2.0/System.CodeDom.dll", + "ref/netstandard2.0/System.CodeDom.xml", + "system.codedom.4.4.0.nupkg.sha512", + "system.codedom.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Collections.Immutable/6.0.0": { + "sha512": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "type": "package", + "path": "system.collections.immutable/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Collections.Immutable.dll", + "lib/net461/System.Collections.Immutable.xml", + "lib/net6.0/System.Collections.Immutable.dll", + "lib/net6.0/System.Collections.Immutable.xml", + "lib/netstandard2.0/System.Collections.Immutable.dll", + "lib/netstandard2.0/System.Collections.Immutable.xml", + "system.collections.immutable.6.0.0.nupkg.sha512", + "system.collections.immutable.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition/6.0.0": { + "sha512": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", + "type": "package", + "path": "system.composition/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.targets", + "buildTransitive/netcoreapp3.1/_._", + "system.composition.6.0.0.nupkg.sha512", + "system.composition.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.AttributedModel/6.0.0": { + "sha512": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==", + "type": "package", + "path": "system.composition.attributedmodel/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.AttributedModel.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.AttributedModel.dll", + "lib/net461/System.Composition.AttributedModel.xml", + "lib/net6.0/System.Composition.AttributedModel.dll", + "lib/net6.0/System.Composition.AttributedModel.xml", + "lib/netstandard2.0/System.Composition.AttributedModel.dll", + "lib/netstandard2.0/System.Composition.AttributedModel.xml", + "system.composition.attributedmodel.6.0.0.nupkg.sha512", + "system.composition.attributedmodel.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Convention/6.0.0": { + "sha512": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", + "type": "package", + "path": "system.composition.convention/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Convention.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Convention.dll", + "lib/net461/System.Composition.Convention.xml", + "lib/net6.0/System.Composition.Convention.dll", + "lib/net6.0/System.Composition.Convention.xml", + "lib/netstandard2.0/System.Composition.Convention.dll", + "lib/netstandard2.0/System.Composition.Convention.xml", + "system.composition.convention.6.0.0.nupkg.sha512", + "system.composition.convention.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Hosting/6.0.0": { + "sha512": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", + "type": "package", + "path": "system.composition.hosting/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Hosting.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Hosting.dll", + "lib/net461/System.Composition.Hosting.xml", + "lib/net6.0/System.Composition.Hosting.dll", + "lib/net6.0/System.Composition.Hosting.xml", + "lib/netstandard2.0/System.Composition.Hosting.dll", + "lib/netstandard2.0/System.Composition.Hosting.xml", + "system.composition.hosting.6.0.0.nupkg.sha512", + "system.composition.hosting.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Runtime/6.0.0": { + "sha512": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==", + "type": "package", + "path": "system.composition.runtime/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Runtime.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Runtime.dll", + "lib/net461/System.Composition.Runtime.xml", + "lib/net6.0/System.Composition.Runtime.dll", + "lib/net6.0/System.Composition.Runtime.xml", + "lib/netstandard2.0/System.Composition.Runtime.dll", + "lib/netstandard2.0/System.Composition.Runtime.xml", + "system.composition.runtime.6.0.0.nupkg.sha512", + "system.composition.runtime.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.TypedParts/6.0.0": { + "sha512": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", + "type": "package", + "path": "system.composition.typedparts/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.TypedParts.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.TypedParts.dll", + "lib/net461/System.Composition.TypedParts.xml", + "lib/net6.0/System.Composition.TypedParts.dll", + "lib/net6.0/System.Composition.TypedParts.xml", + "lib/netstandard2.0/System.Composition.TypedParts.dll", + "lib/netstandard2.0/System.Composition.TypedParts.xml", + "system.composition.typedparts.6.0.0.nupkg.sha512", + "system.composition.typedparts.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.IO.Pipelines/6.0.3": { + "sha512": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==", + "type": "package", + "path": "system.io.pipelines/6.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.IO.Pipelines.dll", + "lib/net461/System.IO.Pipelines.xml", + "lib/net6.0/System.IO.Pipelines.dll", + "lib/net6.0/System.IO.Pipelines.xml", + "lib/netcoreapp3.1/System.IO.Pipelines.dll", + "lib/netcoreapp3.1/System.IO.Pipelines.xml", + "lib/netstandard2.0/System.IO.Pipelines.dll", + "lib/netstandard2.0/System.IO.Pipelines.xml", + "system.io.pipelines.6.0.3.nupkg.sha512", + "system.io.pipelines.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Reflection.Metadata/6.0.1": { + "sha512": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "type": "package", + "path": "system.reflection.metadata/6.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Reflection.Metadata.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Reflection.Metadata.dll", + "lib/net461/System.Reflection.Metadata.xml", + "lib/net6.0/System.Reflection.Metadata.dll", + "lib/net6.0/System.Reflection.Metadata.xml", + "lib/netstandard2.0/System.Reflection.Metadata.dll", + "lib/netstandard2.0/System.Reflection.Metadata.xml", + "system.reflection.metadata.6.0.1.nupkg.sha512", + "system.reflection.metadata.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "sha512": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "type": "package", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net461/System.Runtime.CompilerServices.Unsafe.xml", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml", + "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "system.runtime.compilerservices.unsafe.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Encoding.CodePages/6.0.0": { + "sha512": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "type": "package", + "path": "system.text.encoding.codepages/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.Text.Encoding.CodePages.dll", + "lib/net461/System.Text.Encoding.CodePages.xml", + "lib/net6.0/System.Text.Encoding.CodePages.dll", + "lib/net6.0/System.Text.Encoding.CodePages.xml", + "lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll", + "lib/netcoreapp3.1/System.Text.Encoding.CodePages.xml", + "lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "system.text.encoding.codepages.6.0.0.nupkg.sha512", + "system.text.encoding.codepages.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Threading.Channels/6.0.0": { + "sha512": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "type": "package", + "path": "system.threading.channels/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Threading.Channels.dll", + "lib/net461/System.Threading.Channels.xml", + "lib/net6.0/System.Threading.Channels.dll", + "lib/net6.0/System.Threading.Channels.xml", + "lib/netcoreapp3.1/System.Threading.Channels.dll", + "lib/netcoreapp3.1/System.Threading.Channels.xml", + "lib/netstandard2.0/System.Threading.Channels.dll", + "lib/netstandard2.0/System.Threading.Channels.xml", + "lib/netstandard2.1/System.Threading.Channels.dll", + "lib/netstandard2.1/System.Threading.Channels.xml", + "system.threading.channels.6.0.0.nupkg.sha512", + "system.threading.channels.nuspec", + "useSharedDesignerContext.txt" + ] + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "Microsoft.EntityFrameworkCore >= 8.0.10", + "Microsoft.EntityFrameworkCore.Design >= 8.0.10", + "Npgsql.EntityFrameworkCore.PostgreSQL >= 8.0.10" + ] + }, + "packageFolders": { + "C:\\Users\\adm\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "projectName": "data", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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", + "dependencies": { + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.10, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.10, )" + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[8.0.10, )" + } + }, + "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/data/obj/project.nuget.cache b/data/obj/project.nuget.cache new file mode 100644 index 0000000..ea39ec1 --- /dev/null +++ b/data/obj/project.nuget.cache @@ -0,0 +1,47 @@ +{ + "version": 2, + "dgSpecHash": "9w1j8Og+u1Q=", + "success": true, + "projectFilePath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "expectedPackageFiles": [ + "C:\\Users\\adm\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\4.5.0\\microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\4.5.0\\microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.design\\8.0.10\\microsoft.entityframeworkcore.design.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.10\\microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencymodel\\8.0.2\\microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.io.pipelines\\6.0.3\\system.io.pipelines.6.0.3.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.reflection.metadata\\6.0.1\\system.reflection.metadata.6.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/domain/Models/Group.cs b/domain/Models/Group.cs new file mode 100644 index 0000000..ce0914b --- /dev/null +++ b/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/domain/Models/Presence.cs b/domain/Models/Presence.cs new file mode 100644 index 0000000..110a364 --- /dev/null +++ b/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 required int GroupId { get; set; } + public bool IsAttedance { get; set; } = true; + public required DateTime Date { get; set; } + public required int LessonNumber { get; set; } + } +} diff --git a/domain/Models/User.cs b/domain/Models/User.cs new file mode 100644 index 0000000..8e09028 --- /dev/null +++ b/domain/Models/User.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 User + { + public required string FIO { get; set; } + public int ID { get; set; } + public required Group Group { get; set; } + } +} diff --git a/domain/UseCase/GroupUseCase.cs b/domain/UseCase/GroupUseCase.cs new file mode 100644 index 0000000..242a17e --- /dev/null +++ b/domain/UseCase/GroupUseCase.cs @@ -0,0 +1,88 @@ +using Demo.Data.LocalData; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.Data.Repository; +using Demo.domain.Models; + +namespace Demo.Domain.UseCase +{ + public class GroupUseCase + { + private readonly IGroupRepository _SQLGroupRepositoryImpl; + + public GroupUseCase(IGroupRepository SQlGroupRepositoryImpl) + { + _SQLGroupRepositoryImpl = SQlGroupRepositoryImpl; + } + + // Приватный метод для валидации имени группы + private void ValidateGroupName(string groupName) + { + if (string.IsNullOrWhiteSpace(groupName)) + { + throw new ArgumentException("Имя группы не может быть пустым."); + } + } + + private void ValidateGroupId(int GroupId) + { + if (GroupId < 1) + { + throw new ArgumentException("Введите корректный ID группы."); + } + } + + // Приватный метод для валидации существования группы по ID + private GroupDao ValidateGroupExistence(int groupId) + { + var existingGroup = _SQLGroupRepositoryImpl.GetAllGroups() + .FirstOrDefault(g => g.Id == groupId); + + if (existingGroup == null) + { + throw new ArgumentException("Группа не найдена."); + } + + return existingGroup; + } + + + // Метод для получения списка всех групп + public List GetAllGroups() + { + return [.. _SQLGroupRepositoryImpl.GetAllGroups() + .Select(it => new GroupDao { Id = it.Id, Name = it.Name })]; + } + + // Метод для получения группы по ID + public string FindGroupById(int IdGroup) + { + string groups = _SQLGroupRepositoryImpl.GetGroupById(IdGroup).Name; + + return groups; + } + + + // Метод для добавления новой группы + public void AddGroup(string groupName) + { + ValidateGroupName(groupName); + GroupDao newGroup = new GroupDao + { + Name = groupName + }; + + _SQLGroupRepositoryImpl.AddGroup(newGroup.Name); + } + + + // Метод для изменения названия группы + public void UpdateGroup(int groupId, string newGroupName) + { + ValidateGroupName(newGroupName); + var existingGroup = ValidateGroupExistence(groupId); + + existingGroup.Name = newGroupName; + _SQLGroupRepositoryImpl.UpdateGroupById(groupId, existingGroup); + } + } +} \ No newline at end of file diff --git a/domain/UseCase/UseCaseGeneratePresence.cs b/domain/UseCase/UseCaseGeneratePresence.cs new file mode 100644 index 0000000..71e0b64 --- /dev/null +++ b/domain/UseCase/UseCaseGeneratePresence.cs @@ -0,0 +1,192 @@ +using ClosedXML.Excel; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.Data.Repository; +using Demo.domain.Models; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Domain.UseCase +{ + public class UseCaseGeneratePresence + { + public readonly IUserRepository _userRepository; + public readonly IPresenceRepository _presenceRepository; + private readonly IGroupRepository _groupRepository; + + public UseCaseGeneratePresence(IUserRepository userRepository, IPresenceRepository presenceRepository, IGroupRepository groupRepository) + { + _userRepository = userRepository; + _presenceRepository = presenceRepository; + _groupRepository = groupRepository; + } + + public Dictionary> GetAllAttendanceByGroups() + { + var attendanceByGroup = new Dictionary>(); + var allGroups = _groupRepository.GetAllGroups(); + + foreach (var group in allGroups) + { + var groupAttendance = _presenceRepository.GetAttendanceByGroup(group.Id); + var attendanceRecords = new List(); + + foreach (var record in groupAttendance) + { + var names = _userRepository.GetUserNames().Where(u => u.UserId == record.UserId); + foreach (var name in names) + { + attendanceRecords.Add(new AttendanceRecord + { + UserName = name.FIO, + UserId = name.UserId, + Date = record.Date, + IsAttedance = record.IsAttedance, + LessonNumber = record.LessonNumber, + GroupName = group.Name + }); + } + } + + attendanceByGroup.Add(group.Name, attendanceRecords); + } + + return attendanceByGroup; + } + + public void ExportAttendanceToExcel() + { + var attendanceByGroup = GetAllAttendanceByGroups(); + string projectDirectory = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName; + string reportsFolderPath = Path.Combine(projectDirectory, "Reports"); + string filePath = Path.Combine(reportsFolderPath, "AttendanceReport.xlsx"); + + // Создаем папку, если она не существует + if (!Directory.Exists(reportsFolderPath)) + { + Directory.CreateDirectory(reportsFolderPath); + } + using (var workbook = new XLWorkbook()) + { + foreach (var group in attendanceByGroup) + { + var worksheet = workbook.Worksheets.Add($"{group.Key}"); + worksheet.Cell(1, 1).Value = "ФИО"; + worksheet.Cell(1, 2).Value = "Группа"; + worksheet.Cell(1, 3).Value = "Дата"; + worksheet.Cell(1, 4).Value = "Занятие"; + worksheet.Cell(1, 5).Value = "Статус"; + + int row = 2; + int lesNum = 1; + foreach (var record in group.Value.OrderBy(r => r.Date).ThenBy(r => r.LessonNumber).ThenBy(r => r.UserId)) + { + if (lesNum != record.LessonNumber) + { + row++; + } + worksheet.Cell(row, 1).Value = record.UserName; + worksheet.Cell(row, 2).Value = record.GroupName; + worksheet.Cell(row, 3).Value = record.Date.ToString("dd.MM.yyyy"); + worksheet.Cell(row, 4).Value = record.LessonNumber; + worksheet.Cell(row, 5).Value = record.IsAttedance ? "Присутствует" : "Отсутствует"; + row++; + + + + lesNum = record.LessonNumber; + } + + worksheet.Columns().AdjustToContents(); + } + + workbook.SaveAs(filePath); + } + } + + + + + public List GetPresenceByDateAndGroup(DateTime date, int groupId) + { + return _presenceRepository.GetPresenceByDateAndGroup(date, groupId); + } + + public void GeneratePresenceDaily(int firstLesson, int lastLesson, int groupId) + { + var users = _userRepository.GetAllUsers().Where(u => u.GroupId == groupId).ToList(); + + // Находим последнюю дату посещаемости для данной группы + DateOnly startDate = _presenceRepository.GetLastDateByGroupId(groupId)?.AddDays(1) + ?? DateOnly.FromDateTime(DateTime.Today); + + List presences = new List(); + for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++) + { + foreach (var user in users) + { + var presence = new PresenceDao + { + UserId = user.UserId, + GroupId = user.GroupId, + Date = startDate, + LessonNumber = lessonNumber, + IsAttedance = true + }; + _presenceRepository.SavePresence(new List { presence }); + } + } + } + + + + + public void GenerateWeeklyPresence(int firstLesson, int lastLesson, int groupId, DateTime startTime) + { + for (int i = 0; i < 7; i++) + { + DateTime currentTime = startTime.AddDays(i); + GeneratePresenceDaily(firstLesson, lastLesson, groupId); + } + } + + + + // Отметить пользователя как отсутствующего на диапазоне занятий + public bool MarkUserAbsentForLessons(int userId, int groupId, int firstLesson, int lastLesson, DateTime date) + { + List presences = _presenceRepository.GetPresenceForAbsent(date, groupId); + if (presences.Where(p => p.UserId == userId).Count() > 0) + { + // Обновляем состояние присутствия для указанных занятий + foreach (var presence in presences.Where(p => p.UserId == userId && p.LessonNumber >= firstLesson && p.LessonNumber <= lastLesson)) + { + presence.IsAttedance = false; // Устанавливаем отсутствие + } + // Сохраняем изменения в репозитории + _presenceRepository.UpdateAtt(userId, groupId, firstLesson, lastLesson, DateOnly.FromDateTime(date), false); + return true; + } + else + { + return false; + } + } + + public List GetAllPresenceByGroup(int groupId) + { + return _presenceRepository.GetPresenceByGroup(groupId); + } + + public GroupAttendanceStatistics GetGeneralPresence(int groupId) + { + return _presenceRepository.GetGeneralPresenceForGroup(groupId); + } + + + + } +} diff --git a/domain/UseCase/UserUseCase.cs b/domain/UseCase/UserUseCase.cs new file mode 100644 index 0000000..bde897b --- /dev/null +++ b/domain/UseCase/UserUseCase.cs @@ -0,0 +1,146 @@ +using Demo.Data.Exceptions; +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.Data.Repository; +using Demo.domain.Models; + +namespace Demo.Domain.UseCase +{ + public class UserUseCase + { + private readonly IUserRepository _repositoryUserImpl; + private readonly IGroupRepository _repositoryGroupImpl; + private readonly IPresenceRepository _repositoryPresenceImpl; + public UserUseCase(IUserRepository repositoryImpl, IGroupRepository repositoryGroupImpl, IPresenceRepository presenceRepository) + { + _repositoryUserImpl = repositoryImpl; + _repositoryGroupImpl = repositoryGroupImpl; + _repositoryPresenceImpl = presenceRepository; + } + + // Приватный метод для валидации ФИО пользователя + private void ValidateUserFIO(string fio) + { + if (string.IsNullOrWhiteSpace(fio)) + { + throw new ArgumentException("ФИО не может быть пустым."); + } + } + + public void RemovePresenceByUserId(int userId) + { + using (var context = new RemoteDatabaseContext()) + { + var presences = context.PresenceDaos.Where(p => p.UserId == userId).ToList(); + context.PresenceDaos.RemoveRange(presences); + context.SaveChanges(); + } + } + + // Приватный метод для валидации существования пользователя по ID + private UserDao ValidateUserExistence(int userId) + { + var user = _repositoryUserImpl.GetAllUsers() + .FirstOrDefault(u => u.UserId == userId); + + if (user == null) + { + throw new Exception("Пользователь не найден."); + } + + return user; + } + + // Приватный метод для валидации существования группы по ID + private GroupDao ValidateGroupExistence(int groupId) + { + var group = _repositoryGroupImpl.GetAllGroups() + .FirstOrDefault(g => g.Id == groupId); + + if (group == null) + { + throw new Exception("Группа не найдена."); + } + + return group; + } + + // Вывести всех пользователей + //упростить под ef + public List GetAllUsers() => _repositoryUserImpl.GetAllUsers() + .Join(_repositoryGroupImpl.GetAllGroups(), + user => user.GroupId, // Ключ для пользователей + group => group.Id, // Ключ для групп + (user, group) => // Результирующий объект + new UserDao + { + UserId = user.UserId, + FIO = user.FIO, + Group = new GroupDao { Id = group.Id, Name = group.Name } + }).ToList(); + + // Удалить пользователя по id + public bool RemoveUserById(int userId) + { + try + { + return _repositoryUserImpl.RemoveUserById(userId); + } + catch (UserNotFoundException ex) + { + Console.WriteLine($"Ошибка: {ex.Message}"); + return false; + } + catch (RepositoryException ex) + { + Console.WriteLine($"Ошибка в репозитории: {ex.Message}"); + return false; + } + } + + // Обновить пользователя по id + public UserDao UpdateUser(int userId, string newFio, int groupId) + { + ValidateUserFIO(newFio); + ValidateGroupExistence(groupId); + + UserDao userDao = new UserDao + { + UserId = userId, + FIO = newFio, + GroupId = groupId + }; + + UserDao? result = _repositoryUserImpl.UpdateUser(userId, newFio, groupId); + + if (result == null) + { + throw new Exception("Ошибка при обновлении пользователя."); + } + + var groupEntity = ValidateGroupExistence(result.GroupId); + + return new UserDao + { + UserId = userId, + FIO = newFio, + GroupId = groupId + }; + + } + + // Найти пользователя по id + public UserDao FindUserById(int userId) + { + var user = ValidateUserExistence(userId); + var group = ValidateGroupExistence(user.GroupId); + + return new UserDao + { + UserId = user.UserId, + FIO = user.FIO, + Group = new GroupDao { Id = group.Id, Name = group.Name } + }; + } + } +} diff --git a/domain/domain.csproj b/domain/domain.csproj new file mode 100644 index 0000000..8d40d4a --- /dev/null +++ b/domain/domain.csproj @@ -0,0 +1,13 @@ + + + + + + + + net8.0 + enable + enable + + + diff --git a/domain/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/domain/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/domain/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/domain/obj/Debug/net8.0/domain.AssemblyInfo.cs b/domain/obj/Debug/net8.0/domain.AssemblyInfo.cs new file mode 100644 index 0000000..22f5bf2 --- /dev/null +++ b/domain/obj/Debug/net8.0/domain.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("domain")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("domain")] +[assembly: System.Reflection.AssemblyTitleAttribute("domain")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/domain/obj/Debug/net8.0/domain.AssemblyInfoInputs.cache b/domain/obj/Debug/net8.0/domain.AssemblyInfoInputs.cache new file mode 100644 index 0000000..191d5d4 --- /dev/null +++ b/domain/obj/Debug/net8.0/domain.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +50afef9105125301dd1c05ea9fb1e5f605a3f79c6aca753bbf0156749546e4dd diff --git a/domain/obj/Debug/net8.0/domain.GeneratedMSBuildEditorConfig.editorconfig b/domain/obj/Debug/net8.0/domain.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..39c3b66 --- /dev/null +++ b/domain/obj/Debug/net8.0/domain.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 = domain +build_property.ProjectDir = C:\Users\adm\source\repos\presence\domain\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/domain/obj/Debug/net8.0/domain.GlobalUsings.g.cs b/domain/obj/Debug/net8.0/domain.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/domain/obj/Debug/net8.0/domain.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/domain/obj/Debug/net8.0/domain.assets.cache b/domain/obj/Debug/net8.0/domain.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..3353336d3e33840c7374dcae76680dcf15337a1f GIT binary patch literal 9839 zcmd5>&2Jk;6nCL%n?eJ$l+T8yl+vb6Hy=%C$^jH5G>S;u&_H|fWn)j=CHAhnyM`JN zmx6@E0l092{{bQK2Ov>#fD1z6#y`S|_w1d_&-UAoY@*mJjl4U0AHR9?X6ENNYws>E zJXt6d=8ydS``zkapZzxW$HQB9e|mJge0}KGZ%01;;m-We|NQ&kpTE3PC_GMbUmsX} zv-m-v{Ge!;Yema#R8&~3+odhLqJm=0DfwRDZHAU|Lnmx*`gToy?D<QyR^Te0koAoT50$ek^SGrb6Dc-5vmYt43HHP%)mYs<=2z8!jgfLISkScmBM zn;clZ`Yz$!Y8$ZDy@p>>5l9*_f;9sII&CNgYdb+F5Mv-QjCO>7CX>NHg`8iBY z&+QRVmBy#RkeAd?dpz$cY9kE5%MC( zI3A<#FEb-F*Ux$IXAU;d*Fo-AV`(X~a zWmQ*hS-GXA<9?`Gdt$~=E^TYBXibdga}hut&*$m;$GrjA8`YWAiI>pE#rA~=I`7?_ z3NKRI+IfOT$4$m?>f;1JJaPG-FqFFB*Ra~g>nB!2L$``86(=H8^ zKH4Buc#<)WQEK;hK4o>^sX3wZ5m6kbF6oPPZCe3zpGZ{4;yg{?ZzrO0>y_Ys`wW=F zT)x@rN84kO?KAYtBYl|To`IhL}T3c`Zy;X#EHiE{dB}03S zn)L9-Kbpw@SnFb?l!P2t1XbrQ#Y0;lqSuAs?os9f?E>m8z zBtQJ0VKi}hu+)AN-v_nrKQ%~v2ZZnfIwZUUKy(2a65Tw9qNa~FQ2mUXzO?o&fQAIO zPsA3`Ah8`ZLJKgF(Dt9m0x%@9gG^unG7{K*Bd*{diEEyleiBlEgoKn(?fWrLe^7Y7`N3nJxiQzb&QW`v+Ieah zsEt#*NNqr90H8-2!05T|C857W{R2P~06EeGM$Yvx3Hb!|=h>?EnnnP0q!A3A>tqu2 z%hcZ|ngM8$W-wZ=pGjyf>K`;30>eNW!o%RYnly|_>hC{I0pLhe7&zD4B;ZrjKgcu& zhJ-YRhs1R_X-L!5pW`f#SjNulb9zrln#1_GJ}2Ruq5eF3%U;tU2rbeehR$_63HlZ4 z&k@>uGzst_O=5gp&y(=YQvW{FC_srcicxZ%PeM6I{kx)B;B$;@X`018x&9~le1rP? zNy7j#(lCb1bwLU8RqDrQo<2ryHkMVm*1mXNDQB(noj|oabQMjPF^Af>(b=n4L#!~9 zSiedxV;)Y!IMyD&QJ zK#sLkKWW8!YF_qZik*@wJIYdaZMm49$?C#f5#nqCl-OGBTd6K$Rl8@!xDzV3F|(4W z!w&M5hL_StB_QmmEwgKRF-4{0OKBb=IX0AW1#qHT%-Sk_U;e{Yj;rq?HI_x)Swb#_}qE~OOdL_GhF!USh_>u}j$8B9) zuQxV$?>Ymed0~T~FbNZckA_}pvzo8SRuh*b!Zx<0gr|^P o6CFsx-O(8nHFYMFX*nWVAe%YJZ+X}3OxmL+Ima{Iyl|%f55qBAaR2}S literal 0 HcmV?d00001 diff --git a/domain/obj/Debug/net8.0/domain.csproj.AssemblyReference.cache b/domain/obj/Debug/net8.0/domain.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..06f7d0096eed2b57945df16147a64bcf1dcb36cf GIT binary patch literal 9112 zcmds-eM}Q)9LIYT(cprKBVlpCFvv0(_DZ2jJ3D8(VT`;9j?AP3ukE#-ZSTt673f|N zCwozxgSgii7MwE1oWO#6)$G+b_Tm?W)<#ZY!u zjgu_F`s_63##<=bX{Bh~T&C8ji#28!VKI|9%N?03gX16M$Cn4jo4E06o6ChD+(lL9 zeg`u?xfDT=?648YQvYb~lP3I9`J?%t-Q1UycJZLuPPlLbilQb1%42ZDtaRg_!Lfk05CQK*JmQzrb z8%f;D(wM6#x5jI65!NlZZyV*rNh4;n=-25>%Cvf$4a3)J{3YR(r!|*yaFl3DiuEew zStNGI)R=|gE^KAFw3w)g+b9VJ_-VDZB7TKo>!Fs0L$cU~#1ErPbJS!?lTK1hN%(0= z6tf-iFiYbu%nvN)ikjHkU?|`<=MW?EdUyE3fM7^k4=e<&KyB2lf`pTlR2S@oB#P6g zpgC=2anf(@jM|D>cM_ySW-~mfq1JK`Y7#@|nGCw1BtF5#ntqzWsC zxTO2n5ZN04T-2n3%PQ&RQPqT4??Grty}kZ)lWOgkq8eVHoK?+2Z3BF;y8w_~VCLMo zo1%S!nTFVJf}p^hRq{c=MrZZ!9s7abb>@YoQ;37)a?b*ADX0_76Piegy5wWg4lw}< zqOdy_!=y+%;qcP@q8^iN%1)qcp68}#MDvuk9ullWo&yrqSK~odc5zIyt%fyH*$L)V zAo&ocl@SgpGeJ1-jR9vH?!ieLPFj5gxeMo8D@bd7AQ-th5DENsZuW@iuhMNQ09YXy zlHATX$W;&v>9h*@Ch0EKsmQ8=z63$qvoMg(cV2D8&47YPSz8bA{pw7wh_4Q|T(UDk zvfQ_@EX!)bgRPCYg@CF_@;P#AOw*PiA!bziyVR}z>YRAX>K$^&loM~1Un7!6#o@#xmEOuoric0n-! z62UlJP}Bhlom9vF#RWx82|}wW`UTcQ6K;Yfnz;v?{s&xzKoE~vQoON5#y2(}GjVIw^brb&3zqmwoyRs7!pI_ZN?j9llv zDOLDakdVbH;iLR~dlM8PLKZv-I%x|a$pXe%?peQmSz(p2v~6eW6Mi8V{|^WOYx^KGx>S2*`+4qyFGBvc!@HKg)v+H}b{O^8bvyi=fT6HjYq;06ulu3I4 literal 0 HcmV?d00001 diff --git a/domain/obj/domain.csproj.nuget.dgspec.json b/domain/obj/domain.csproj.nuget.dgspec.json new file mode 100644 index 0000000..72fecd9 --- /dev/null +++ b/domain/obj/domain.csproj.nuget.dgspec.json @@ -0,0 +1,148 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": {} + }, + "projects": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "projectName": "data", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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", + "dependencies": { + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.10, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.10, )" + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[8.0.10, )" + } + }, + "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" + } + } + }, + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "projectName": "domain", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj" + } + } + } + }, + "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/domain/obj/domain.csproj.nuget.g.props b/domain/obj/domain.csproj.nuget.g.props new file mode 100644 index 0000000..7f1f3dd --- /dev/null +++ b/domain/obj/domain.csproj.nuget.g.props @@ -0,0 +1,18 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\adm\.nuget\packages\ + PackageReference + 6.11.1 + + + + + + + + \ No newline at end of file diff --git a/domain/obj/domain.csproj.nuget.g.targets b/domain/obj/domain.csproj.nuget.g.targets new file mode 100644 index 0000000..baac958 --- /dev/null +++ b/domain/obj/domain.csproj.nuget.g.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/domain/obj/project.assets.json b/domain/obj/project.assets.json new file mode 100644 index 0000000..fc96bb3 --- /dev/null +++ b/domain/obj/project.assets.json @@ -0,0 +1,803 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Microsoft.EntityFrameworkCore/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.10", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Npgsql/8.0.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Relational": "8.0.10", + "Npgsql": "8.0.5" + }, + "compile": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, + "data/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10" + }, + "compile": { + "bin/placeholder/data.dll": {} + }, + "runtime": { + "bin/placeholder/data.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.EntityFrameworkCore/8.0.10": { + "sha512": "PPkQdIqfR1nU3n6YgGGDk8G+eaYbaAKM1AzIQtlPNTKf10Osg3N9T+iK9AlnSA/ujsK00flPpFHVfJrbuBFS1A==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "sha512": "FV0QlcX9INY4kAD2o72uPtyOh0nZut2jB11Jf9mNYBtHay8gDLe+x4AbXFwuQg+eSvofjT7naV82e827zGfyMg==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "sha512": "51KkPIc0EMv/gVXhPIUi6cwJE9Mvh+PLr4Lap4naLcsoGZ0lF2SvOPgUUprwRV3MnN7nyD1XPhT5RJ/p+xFAXw==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "sha512": "OefBEE47kGKPRPV3OT+FAW6o5BFgLk2D9EoeWVy7NbOepzUneayLQxbVE098FfedTyMwxvZQoDD9LrvZc3MadA==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "sha512": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/8.0.2": { + "sha512": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "type": "package", + "path": "microsoft.extensions.options/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net6.0/Microsoft.Extensions.Options.dll", + "lib/net6.0/Microsoft.Extensions.Options.xml", + "lib/net7.0/Microsoft.Extensions.Options.dll", + "lib/net7.0/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.8.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "sha512": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "type": "package", + "path": "microsoft.extensions.primitives/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net6.0/Microsoft.Extensions.Primitives.dll", + "lib/net6.0/Microsoft.Extensions.Primitives.xml", + "lib/net7.0/Microsoft.Extensions.Primitives.dll", + "lib/net7.0/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Npgsql/8.0.5": { + "sha512": "zRG5V8cyeZLpzJlKzFKjEwkRMYIYnHWJvEor2lWXeccS2E1G2nIWYYhnukB51iz5XsWSVEtqg3AxTWM0QJ6vfg==", + "type": "package", + "path": "npgsql/8.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net6.0/Npgsql.dll", + "lib/net6.0/Npgsql.xml", + "lib/net7.0/Npgsql.dll", + "lib/net7.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/netstandard2.0/Npgsql.dll", + "lib/netstandard2.0/Npgsql.xml", + "lib/netstandard2.1/Npgsql.dll", + "lib/netstandard2.1/Npgsql.xml", + "npgsql.8.0.5.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "sha512": "gFPl9Dmxih7Yi4tZ3bITzZFzbxFMBx04gqTqcjoL2r5VEW+O2TA5UVw/wm/XW26NAJ7sg59Je0+9QrwiZt6MPQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, + "data/1.0.0": { + "type": "project", + "path": "../data/data.csproj", + "msbuildProject": "../data/data.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "data >= 1.0.0" + ] + }, + "packageFolders": { + "C:\\Users\\adm\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "projectName": "domain", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj" + } + } + } + }, + "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/domain/obj/project.nuget.cache b/domain/obj/project.nuget.cache new file mode 100644 index 0000000..51e455d --- /dev/null +++ b/domain/obj/project.nuget.cache @@ -0,0 +1,24 @@ +{ + "version": 2, + "dgSpecHash": "eapNM7JVoaI=", + "success": true, + "projectFilePath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "expectedPackageFiles": [ + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.10\\microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/presnce.sln b/presnce.sln new file mode 100644 index 0000000..3fb0468 --- /dev/null +++ b/presnce.sln @@ -0,0 +1,40 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "data", "data\data.csproj", "{B61AE661-CF04-46B2-9862-386DD078A071}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "domain", "domain\domain.csproj", "{4C6194FF-B704-406B-89A7-03C2EE38A899}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ui", "ui\ui.csproj", "{8CAAF4C4-09A3-419C-B232-56A150F0F30D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "console_ui", "console_ui\console_ui.csproj", "{F798197F-432C-4AFF-AAC1-EB1664094999}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B61AE661-CF04-46B2-9862-386DD078A071}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B61AE661-CF04-46B2-9862-386DD078A071}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B61AE661-CF04-46B2-9862-386DD078A071}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B61AE661-CF04-46B2-9862-386DD078A071}.Release|Any CPU.Build.0 = Release|Any CPU + {4C6194FF-B704-406B-89A7-03C2EE38A899}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C6194FF-B704-406B-89A7-03C2EE38A899}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C6194FF-B704-406B-89A7-03C2EE38A899}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C6194FF-B704-406B-89A7-03C2EE38A899}.Release|Any CPU.Build.0 = Release|Any CPU + {8CAAF4C4-09A3-419C-B232-56A150F0F30D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CAAF4C4-09A3-419C-B232-56A150F0F30D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CAAF4C4-09A3-419C-B232-56A150F0F30D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CAAF4C4-09A3-419C-B232-56A150F0F30D}.Release|Any CPU.Build.0 = Release|Any CPU + {F798197F-432C-4AFF-AAC1-EB1664094999}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F798197F-432C-4AFF-AAC1-EB1664094999}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F798197F-432C-4AFF-AAC1-EB1664094999}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F798197F-432C-4AFF-AAC1-EB1664094999}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/ui/GroupConsole.cs b/ui/GroupConsole.cs new file mode 100644 index 0000000..0e91f49 --- /dev/null +++ b/ui/GroupConsole.cs @@ -0,0 +1,58 @@ +using Demo.Domain.UseCase; +using System; +using System.Text; + +namespace Demo.UI +{ + public class GroupConsoleUI + { + private readonly GroupUseCase _groupUseCase; + + public GroupConsoleUI(GroupUseCase groupUseCase) + { + _groupUseCase = groupUseCase; + } + + public void FindGroupById(int IdGroup) + { + var groups = _groupUseCase.FindGroupById(IdGroup); + Console.WriteLine(groups); + } + + // Метод для отображения всех групп + public void DisplayAllGroups() + { + Console.WriteLine("\n=== Список всех групп ==="); + StringBuilder groupOutput = new StringBuilder(); + + foreach (var group in _groupUseCase.GetAllGroups()) + { + groupOutput.AppendLine($"{group.Id}\t{group.Name}"); + } + + Console.WriteLine(groupOutput); + Console.WriteLine("===========================\n"); + } + + // Метод для добавления новой группы + public void AddGroup(string groupName) + { + try + { + _groupUseCase.AddGroup(groupName); + Console.WriteLine($"\nГруппа {groupName} добавлена.\n"); + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка: {ex.Message}\n"); + } + } + + // Метод для обновления названия группы + public void UpdateGroupName(int groupId, string newGroupName) + { + _groupUseCase.UpdateGroup(groupId, newGroupName); + Console.WriteLine($"\nНазвание группы с ID {groupId} изменено на {newGroupName}.\n"); + } + } +} diff --git a/ui/MainMenu.cs b/ui/MainMenu.cs new file mode 100644 index 0000000..80ff6ea --- /dev/null +++ b/ui/MainMenu.cs @@ -0,0 +1,224 @@ +using Demo.domain.Models; +using Demo.Domain.UseCase; +using System; +using System.Globalization; + +namespace Demo.UI +{ + public class MainMenuUI + { + private readonly UserConsoleUI _userConsoleUI; + private readonly GroupConsoleUI _groupConsoleUI; + private readonly PresenceConsole _presenceConsoleUI; + + public MainMenuUI(UserUseCase userUseCase, GroupUseCase groupUseCase, UseCaseGeneratePresence presenceUseCase) + { + _userConsoleUI = new UserConsoleUI(userUseCase); + _groupConsoleUI = new GroupConsoleUI(groupUseCase); + _presenceConsoleUI = new PresenceConsole(presenceUseCase); + } + + public void DisplayMenu() + { + while (true) + { + Console.WriteLine("\n=-= Главное меню =-=\n"); + + Console.WriteLine("=-= Команды с Пользователями =-="); + Console.WriteLine("1. Вывести всех пользователей"); + Console.WriteLine("2. Удалить пользователя по id"); + Console.WriteLine("3. Обновить пользователя по id"); + Console.WriteLine("4. Найти пользователя по id"); + Console.WriteLine(); + + Console.WriteLine("=-= Команды с Группами =-="); + Console.WriteLine("5. Вывести все группы"); + Console.WriteLine("6. Добавить группу"); + Console.WriteLine("7. Изменить название группы"); + Console.WriteLine("8. Поиск группы по ID"); + Console.WriteLine(); + Console.WriteLine("=-= Команды Presence =-="); + Console.WriteLine("9. Сгенерировать посещаемость на день"); + Console.WriteLine("10. Сгенерировать посещаемость на неделю"); + Console.WriteLine("11. Показать посещаемость"); + Console.WriteLine("12. Отметить пользователя как отсутствующего"); + Console.WriteLine("13. Вывести всю посещаемость группы"); + Console.WriteLine("14. Вывести общую информацию об посещаемости по группе"); + Console.WriteLine("15. Вывести отчётв Excel"); + Console.WriteLine(); + Console.WriteLine("0. Выход"); + + Console.Write("\nВаш выбор: "); + string comand = Console.ReadLine(); + Console.WriteLine(); + + switch (comand) + { + case "1": + // Отображение всех пользователей + _userConsoleUI.DisplayAllUsers(); + break; + + case "2": + // Удаление пользователя по ID + Console.Write("Введите ID пользователя для удаления: "); + string inputId = Console.ReadLine(); + if (int.TryParse(inputId, out int userId)) + { + _userConsoleUI.RemoveUserById(userId); + } + else + { + Console.WriteLine("Неверный формат ID"); + } + break; + + case "3": + // Обновление пользователя по ID + Console.Write("Введите ID пользователя для обновления: "); + string updateIdInput = Console.ReadLine(); + if (int.TryParse(updateIdInput, out int updateUserId)) + { + _userConsoleUI.UpdateUserById(updateUserId); + } + else + { + Console.WriteLine("Неверный формат ID"); + } + break; + + case "4": + // Поиск пользователя по ID + Console.Write("Введите ID пользователя для поиска: "); + string findIdInput = Console.ReadLine(); + if (int.TryParse(findIdInput, out int findUserId)) + { + _userConsoleUI.FindUserById(findUserId); + } + else + { + Console.WriteLine("Неверный формат ID"); + } + break; + + case "5": + // Отображение всех групп + _groupConsoleUI.DisplayAllGroups(); + break; + + case "6": + // Добавление новой группы + Console.Write("Введите название новой группы: "); + string newGroupName = Console.ReadLine(); + _groupConsoleUI.AddGroup(newGroupName); + break; + + case "7": + // Изменение названия группы + Console.Write("Введите ID группы для изменения: "); + if (int.TryParse(Console.ReadLine(), out int groupId)) + { + Console.Write("Введите новое название группы: "); + string newName = Console.ReadLine(); + _groupConsoleUI.UpdateGroupName(groupId, newName); + } + else + { + Console.WriteLine("Неверный формат ID группы"); + } + break; + + case "8": + // Поиск группы + Console.Write("Введите ID группы для поиска : "); + if (int.TryParse(Console.ReadLine(), out int IdGroup)) + { + _groupConsoleUI.FindGroupById(IdGroup); + } + break; + + case "9": + // Генерация посещаемости на день + Console.Write("Введите номер первого занятия: "); + int firstLesson = int.Parse(Console.ReadLine()); + Console.Write("Введите номер последнего занятия: "); + int lastLesson = int.Parse(Console.ReadLine()); + Console.Write("Введите ID группы: "); + int groupIdForPresence = int.Parse(Console.ReadLine()); + + _presenceConsoleUI.GeneratePresenceForDay(DateTime.Now, groupIdForPresence, firstLesson, lastLesson); + Console.WriteLine("Посещаемость на день сгенерирована."); + break; + + case "10": + // Генерация посещаемости на неделю + Console.Write("Введите номер первого занятия: "); + int firstLessonForWeek = int.Parse(Console.ReadLine()); + Console.Write("Введите номер последнего занятия: "); + int lastLessonForWeek = int.Parse(Console.ReadLine()); + Console.Write("Введите ID группы: "); + int groupIdForWeekPresence = int.Parse(Console.ReadLine()); + + _presenceConsoleUI.GeneratePresenceForWeek(DateTime.Now, groupIdForWeekPresence, firstLessonForWeek, lastLessonForWeek); + Console.WriteLine("Посещаемость на неделю сгенерирована."); + break; + + case "11": + // Отображение посещаемости + Console.Write("Введите дату (гггг-мм-дд): "); + DateTime date = DateTime.Parse(Console.ReadLine()); + Console.Write("Введите ID группы: "); + int groupForPresenceView = int.Parse(Console.ReadLine()); + + _presenceConsoleUI.DisplayPresence(date, groupForPresenceView); + break; + + case "12": + // Отметить пользователя как отсутствующего + Console.Write("Введите ID пользователя: "); + userId = int.Parse(Console.ReadLine()); + Console.Write("Введите номер первого занятия: "); + int firstAbsLesson = int.Parse(Console.ReadLine()); + Console.Write("Введите номер последнего занятия: "); + int lastAbsLesson = int.Parse(Console.ReadLine()); + Console.Write("Введите ID группы: "); + int absGroupId = int.Parse(Console.ReadLine()); + + Console.Write("Введите дату (дд.мм.гггг): "); + string dateInput = Console.ReadLine(); + DateTime absenceDate; + + if (!DateTime.TryParseExact(dateInput, "d.M.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out absenceDate)) + { + Console.WriteLine("Ошибка: Введен некорректный формат даты. Пожалуйста, используйте формат дд.мм.гггг."); + return; // Завершает выполнение, если дата некорректна + } + _presenceConsoleUI.MarkUserAbsent(absenceDate, absGroupId, userId, firstAbsLesson, lastAbsLesson); + break; + case "13": + Console.Write("Введите ID группы: "); + int groupIdForAllPresence = int.Parse(Console.ReadLine()); + _presenceConsoleUI.DisplayAllPresenceByGroup(groupIdForAllPresence); + break; + + case "14": + Console.Write("Введите ID группы: "); + int searchGroupId = int.Parse(Console.ReadLine()); + _presenceConsoleUI.DisplayGeneralPresence(searchGroupId); + break; + case "15": + _presenceConsoleUI.ExportAttendanceToExcel(); + break; + case "0": + Console.WriteLine("Выход..."); + return; + + default: + Console.WriteLine("Неверный выбор, попробуйте снова."); + break; + } + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git a/ui/PresenceConsole.cs b/ui/PresenceConsole.cs new file mode 100644 index 0000000..dd57112 --- /dev/null +++ b/ui/PresenceConsole.cs @@ -0,0 +1,188 @@ +using Demo.Data.Exceptions; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using Demo.Domain.UseCase; +using System; +using System.Collections.Generic; + +namespace Demo.UI +{ + public class PresenceConsole + { + private readonly UseCaseGeneratePresence _presenceUseCase; + + public PresenceConsole(UseCaseGeneratePresence presenceUseCase) + { + _presenceUseCase = presenceUseCase; + } + + public void ExportAttendanceToExcel() + { + try + { + _presenceUseCase.ExportAttendanceToExcel(); + Console.WriteLine("Данные посещаемости успешно экспортированы в Excel."); + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка при экспорте посещаемости: {ex.Message}"); + } + } + + + + // Метод для генерации посещаемости на день + public void GeneratePresenceForDay(DateTime date, int groupId, int firstLesson, int lastLesson) + { + try + { + _presenceUseCase.GeneratePresenceDaily(firstLesson, lastLesson, groupId); + Console.WriteLine("Посещаемость на день успешно сгенерирована."); + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка при генерации посещаемости: {ex.Message}"); + } + } + + // Метод для генерации посещаемости на неделю + public void GeneratePresenceForWeek(DateTime date, int groupId, int firstLesson, int lastLesson) + { + try + { + _presenceUseCase.GenerateWeeklyPresence(firstLesson, lastLesson, groupId, date); + Console.WriteLine("Посещаемость на неделю успешно сгенерирована."); + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка при генерации посещаемости: {ex.Message}"); + } + } + + // Метод для отображения посещаемости на конкретную дату и группу + public void DisplayPresence(DateTime date, int groupId) + { + try + { + List presences = _presenceUseCase.GetPresenceByDateAndGroup(date, groupId); + + if (presences == null || presences.Count == 0) + { + Console.WriteLine("Посещаемость на выбранную дату отсутствует."); + return; + } + + // Сортируем присутствия по номеру занятия и ID пользователя + var sortedPresences = presences.OrderBy(p => p.LessonNumber) + .ThenBy(p => p.UserId); + + Console.WriteLine($"\nПосещаемость на {date.ToShortDateString()} для группы с ID {groupId}:"); + Console.WriteLine("---------------------------------------------"); + + int previousLessonNumber = -1; // Инициализация для сравнения + foreach (var presence in sortedPresences) + { + if (previousLessonNumber != presence.LessonNumber) + { + Console.WriteLine("---------------------------------------------"); + previousLessonNumber = presence.LessonNumber; + } + string status = presence.IsAttedance ? "Присутствует" : "Отсутствует"; + Console.WriteLine($"Пользователь ID: {presence.UserId}, Занятие {presence.LessonNumber}: {status}"); + } + Console.WriteLine("---------------------------------------------"); + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка при выводе посещаемости: {ex.Message}"); + } + + } + + public void MarkUserAbsent(DateTime date, int groupId, int userId, int firstLesson, int lastLesson) + { + bool check = _presenceUseCase.MarkUserAbsentForLessons(userId, groupId, firstLesson, lastLesson, date); + if (check) + { + Console.WriteLine("Пользователь отмечен как осутсвующий"); + } + else + { + Console.WriteLine($"Посещаемость для пользователя ID: {userId} на дату {date.ToShortDateString()}" + + $" с {firstLesson} по {lastLesson} уроки не найдена."); + } + } + + public void DisplayGeneralPresence(int groupId) + { + var statistics = _presenceUseCase.GetGeneralPresence(groupId); + Console.WriteLine($"Человек в группе: {statistics.UserCount}, " + + $"Количество проведённых занятий: {statistics.TotalLessons}, " + + $"Общий процент посещаемости группы: {statistics.AttendancePercentage}%"); + + foreach (var user in statistics.UserAttendanceDetails) + { + Console.ForegroundColor = user.AttendanceRate < 40 ? ConsoleColor.Red : ConsoleColor.White; + Console.WriteLine($"ID Пользователя: {user.UserId}, Посетил: {user.Attended}, " + + $"Пропустил: {user.Missed}, Процент посещаемости: {user.AttendanceRate}%"); + } + Console.ForegroundColor = ConsoleColor.White; + } + + + + public void DisplayAllPresenceByGroup(int groupId) + { + try + { + // Получаем все посещения для группы + var presences = _presenceUseCase.GetAllPresenceByGroup(groupId); + + if (presences == null || presences.Count == 0) + { + Console.WriteLine($"Посещаемость для группы с ID {groupId} отсутствует."); + return; + } + + // Группируем по дате + var groupedPresences = presences.GroupBy(p => p.Date); + + foreach (var group in groupedPresences) + { + Console.WriteLine("==================================================="); + Console.WriteLine($"Дата: {group.Key.ToString("dd.MM.yyyy")}"); + Console.WriteLine("==================================================="); + + // Группируем по занятию + var groupedByLesson = group.GroupBy(p => p.LessonNumber); + + foreach (var lessonGroup in groupedByLesson) + { + Console.WriteLine($"Занятие {lessonGroup.Key}:"); + + // Создаем HashSet для уникальных пользователей + var userIds = new HashSet(); + + foreach (var presence in lessonGroup) + { + // Проверяем, добавляется ли пользователь в HashSet + if (userIds.Add(presence.UserId)) + { + string status = presence.IsAttedance ? "Присутствует" : "Отсутствует"; + Console.WriteLine($"Пользователь ID: {presence.UserId}, Статус: {status}"); + } + } + + Console.WriteLine("---------------------------------------------------"); + } + } + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка при выводе посещаемости: {ex.Message}"); + } + } + + + } +} \ No newline at end of file diff --git a/ui/UserConsole.cs b/ui/UserConsole.cs new file mode 100644 index 0000000..b3b5c52 --- /dev/null +++ b/ui/UserConsole.cs @@ -0,0 +1,81 @@ +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.Repository; +using Demo.Domain.UseCase; +using System; +using System.Text; + +namespace Demo.UI +{ + public class UserConsoleUI + { + private readonly UserUseCase _userUseCase; + + public UserConsoleUI(UserUseCase userUseCase) + { + _userUseCase = userUseCase; + } + + // Метод для отображения всех пользователей + public void DisplayAllUsers() + { + Console.WriteLine("\n=== Список всех пользователей ==="); + StringBuilder userOutput = new StringBuilder(); + + foreach (var user in _userUseCase.GetAllUsers()) + { + userOutput.AppendLine($"{user.UserId}\t{user.FIO}\t{user.Group.Name}"); + } + + Console.WriteLine(userOutput); + Console.WriteLine("===============================\n"); + } + + // Метод для удаления пользователя по ID + public void RemoveUserById(int userId) + { + // Сначала удаляем все записи о присутствии пользователя + _userUseCase.RemovePresenceByUserId(userId); + + // Теперь удаляем пользователя + string output = _userUseCase.RemoveUserById(userId) ? "Пользователь удален" : "Пользователь не найден"; + Console.WriteLine($"\n{output}\n"); + } + + // Метод для обновления пользователя по ID + public void UpdateUserById(int userId) + { + try + { + var user = _userUseCase.FindUserById(userId); + + + Console.WriteLine($"Текущие данные: {user.FIO}"); + Console.Write("\nВведите новое ФИО: "); + string newFIO = Console.ReadLine(); + Console.Write("\nВведите новый ID группы (или оставьте такой же): "); + int GroupId = int.Parse(Console.ReadLine()); + _userUseCase.UpdateUser(userId, newFIO, GroupId); + + Console.WriteLine("\nПользователь обновлен.\n"); + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка: {ex.Message}\n"); + } + } + + // Метод для поиска пользователя по ID + public void FindUserById(int userId) + { + var user = _userUseCase.FindUserById(userId); + if (user != null) + { + Console.WriteLine($"\nПользователь найден: {user.UserId}, {user.FIO}, {user.Group.Name}\n"); + } + else + { + Console.WriteLine("\nПользователь не найден.\n"); + } + } + } +} diff --git a/ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/ui/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/ui/obj/Debug/net8.0/ui.AssemblyInfo.cs b/ui/obj/Debug/net8.0/ui.AssemblyInfo.cs new file mode 100644 index 0000000..f514c9f --- /dev/null +++ b/ui/obj/Debug/net8.0/ui.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("ui")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("ui")] +[assembly: System.Reflection.AssemblyTitleAttribute("ui")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/ui/obj/Debug/net8.0/ui.AssemblyInfoInputs.cache b/ui/obj/Debug/net8.0/ui.AssemblyInfoInputs.cache new file mode 100644 index 0000000..04da69e --- /dev/null +++ b/ui/obj/Debug/net8.0/ui.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +20ed1ba88db46bd37bf95cc037aa54d55b6a60c0405520a36b7f26aec1c3e1fe diff --git a/ui/obj/Debug/net8.0/ui.GeneratedMSBuildEditorConfig.editorconfig b/ui/obj/Debug/net8.0/ui.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..1dc455c --- /dev/null +++ b/ui/obj/Debug/net8.0/ui.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 = ui +build_property.ProjectDir = C:\Users\adm\source\repos\presence\ui\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/ui/obj/Debug/net8.0/ui.GlobalUsings.g.cs b/ui/obj/Debug/net8.0/ui.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/ui/obj/Debug/net8.0/ui.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/ui/obj/Debug/net8.0/ui.assets.cache b/ui/obj/Debug/net8.0/ui.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..f50371b80fc6a7e54f758e0d82626207f00c6bd6 GIT binary patch literal 9890 zcmd5>OK%%h6m}p<5=_WH*=keWh&%O8ax$7US zEIyaZ<^DeR&y#;2-uugb(s%vQ^#_m6sM_40pZ)jyd%yj7>+4^?`s4ANx!ltv_e0;( z)%>TPa=pA+sN@a1R#bkzYFgW7QF-}F$#Naf+42o#`z61=<(d`sx#MnIj;jpQHp}%d zpgV6&8dH;b-BECSn+#cA{>F}p_Zudzg(j9@Vlgyf6w2kN2oRn=YIq00pHl<8?EwxVq1n!e+D9BY4ob%6dq z$bi+U?h)RHO#{Y;Q*$j9fTR&~kb?{)z2=Tmv$IcpINjyaW}ar5CO=`8X>Ku>cn(nu z=k^(TAENes>bOZs*gnaWhpB-rGGzoTM0vOk<+Jqt?Oss2s%&DS&GN2;_wkM@M~Fqv z<9LL=ze|l!XSZcqx5c#*6-BMO6sSf85m^R^&r`!xzd)^?HtV#T5Mf1C9Jk&KU&IV+ zr4ZYVh7u3li-ZEGj!^@uVQN2R37lhZm5Mdm5wO@gwwe^-YcUWN#Fq#j58`q9{w4$5 zf~qRJplqvNvhS$Io|rO}%R8E@p(c;#%K^YJp0CjNFZ%<3;<0fS|!{dbQHm?Ub!Vtbe-&xjj%(*A;hr}k2!?uM7B`1o_0x~ z!lR9ail1b_F+%O`?x(EkmMSH`bdM+ws7vxUo5v2UPRMeR zdp~qIY>hyp3?xJN8L+8e~J2gfF>~HoF)J{>R}S{aq7>qRqZ#8V9+^@0Cd#J zBGa=YczxngVPWU19dfN7!%areVW36bD9F+sJBVLC#k=e zX$%_@r!g23>TuGKrl>!|Sst*A-Ph;BJ)P4W;6r^*!Z%I*S@xFwra>&UoCX0p>UI+J zE7YGMwApA9!^de7@S&b3;hUlU1Ex_7C8tq9i8`Nza+dn{M6;OBQL+`%EcitIPxART z^>>qoG02>T0W#`>6687R$Ag;9uwmp2rf)X>7?xLcojVvdo_T6`U%&@FSE(JnSzA&5 zdh>#MwUD+NILy^<(Umn_+6*>ttbq_)e8nkew{!lM8~*GuP8yU;ptAjev&vovBoIWPOsMNvr=j?$E88!o1% z)4I@CiF~#gl*pRyJBcnLRoiDpyAvwB5wjAj0|(hk$jeEi5)ii3py66xOhJkHQj&*2 z4u%plC6sN?`9vq|7AmQNZ6pEK#cp5@irtMooITET^=(kPBKS1&b<`HXkA_ZZy_&DcR%4eWhplZ(2~Qze5FJRu?a>((HN#9M({e;Yfpq3re#^UN YYtkOp$vKwlh6b75k0X9y3RkWF107puBme*a literal 0 HcmV?d00001 diff --git a/ui/obj/Debug/net8.0/ui.csproj.AssemblyReference.cache b/ui/obj/Debug/net8.0/ui.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..06f7d0096eed2b57945df16147a64bcf1dcb36cf GIT binary patch literal 9112 zcmds-eM}Q)9LIYT(cprKBVlpCFvv0(_DZ2jJ3D8(VT`;9j?AP3ukE#-ZSTt673f|N zCwozxgSgii7MwE1oWO#6)$G+b_Tm?W)<#ZY!u zjgu_F`s_63##<=bX{Bh~T&C8ji#28!VKI|9%N?03gX16M$Cn4jo4E06o6ChD+(lL9 zeg`u?xfDT=?648YQvYb~lP3I9`J?%t-Q1UycJZLuPPlLbilQb1%42ZDtaRg_!Lfk05CQK*JmQzrb z8%f;D(wM6#x5jI65!NlZZyV*rNh4;n=-25>%Cvf$4a3)J{3YR(r!|*yaFl3DiuEew zStNGI)R=|gE^KAFw3w)g+b9VJ_-VDZB7TKo>!Fs0L$cU~#1ErPbJS!?lTK1hN%(0= z6tf-iFiYbu%nvN)ikjHkU?|`<=MW?EdUyE3fM7^k4=e<&KyB2lf`pTlR2S@oB#P6g zpgC=2anf(@jM|D>cM_ySW-~mfq1JK`Y7#@|nGCw1BtF5#ntqzWsC zxTO2n5ZN04T-2n3%PQ&RQPqT4??Grty}kZ)lWOgkq8eVHoK?+2Z3BF;y8w_~VCLMo zo1%S!nTFVJf}p^hRq{c=MrZZ!9s7abb>@YoQ;37)a?b*ADX0_76Piegy5wWg4lw}< zqOdy_!=y+%;qcP@q8^iN%1)qcp68}#MDvuk9ullWo&yrqSK~odc5zIyt%fyH*$L)V zAo&ocl@SgpGeJ1-jR9vH?!ieLPFj5gxeMo8D@bd7AQ-th5DENsZuW@iuhMNQ09YXy zlHATX$W;&v>9h*@Ch0EKsmQ8=z63$qvoMg(cV2D8&47YPSz8bA{pw7wh_4Q|T(UDk zvfQ_@EX!)bgRPCYg@CF_@;P#AOw*PiA!bziyVR}z>YRAX>K$^&loM~1Un7!6#o@#xmEOuoric0n-! z62UlJP}Bhlom9vF#RWx82|}wW`UTcQ6K;Yfnz;v?{s&xzKoE~vQoON5#y2(}GjVIw^brb&3zqmwoyRs7!pI_ZN?j9llv zDOLDakdVbH;iLR~dlM8PLKZv-I%x|a$pXe%?peQmSz(p2v~6eW6Mi8V{|^WOYx^KGx>S2*`+4qyFGBvc!@HKg)v+H}b{O^8bvyi=fT6HjYq;06ulu3I4 literal 0 HcmV?d00001 diff --git a/ui/obj/project.assets.json b/ui/obj/project.assets.json new file mode 100644 index 0000000..ab1e36e --- /dev/null +++ b/ui/obj/project.assets.json @@ -0,0 +1,821 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Microsoft.EntityFrameworkCore/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.10", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Npgsql/8.0.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Relational": "8.0.10", + "Npgsql": "8.0.5" + }, + "compile": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, + "data/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10" + }, + "compile": { + "bin/placeholder/data.dll": {} + }, + "runtime": { + "bin/placeholder/data.dll": {} + } + }, + "domain/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "data": "1.0.0" + }, + "compile": { + "bin/placeholder/domain.dll": {} + }, + "runtime": { + "bin/placeholder/domain.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.EntityFrameworkCore/8.0.10": { + "sha512": "PPkQdIqfR1nU3n6YgGGDk8G+eaYbaAKM1AzIQtlPNTKf10Osg3N9T+iK9AlnSA/ujsK00flPpFHVfJrbuBFS1A==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "sha512": "FV0QlcX9INY4kAD2o72uPtyOh0nZut2jB11Jf9mNYBtHay8gDLe+x4AbXFwuQg+eSvofjT7naV82e827zGfyMg==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "sha512": "51KkPIc0EMv/gVXhPIUi6cwJE9Mvh+PLr4Lap4naLcsoGZ0lF2SvOPgUUprwRV3MnN7nyD1XPhT5RJ/p+xFAXw==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "sha512": "OefBEE47kGKPRPV3OT+FAW6o5BFgLk2D9EoeWVy7NbOepzUneayLQxbVE098FfedTyMwxvZQoDD9LrvZc3MadA==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "sha512": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/8.0.2": { + "sha512": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "type": "package", + "path": "microsoft.extensions.options/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net6.0/Microsoft.Extensions.Options.dll", + "lib/net6.0/Microsoft.Extensions.Options.xml", + "lib/net7.0/Microsoft.Extensions.Options.dll", + "lib/net7.0/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.8.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "sha512": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "type": "package", + "path": "microsoft.extensions.primitives/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net6.0/Microsoft.Extensions.Primitives.dll", + "lib/net6.0/Microsoft.Extensions.Primitives.xml", + "lib/net7.0/Microsoft.Extensions.Primitives.dll", + "lib/net7.0/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Npgsql/8.0.5": { + "sha512": "zRG5V8cyeZLpzJlKzFKjEwkRMYIYnHWJvEor2lWXeccS2E1G2nIWYYhnukB51iz5XsWSVEtqg3AxTWM0QJ6vfg==", + "type": "package", + "path": "npgsql/8.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net6.0/Npgsql.dll", + "lib/net6.0/Npgsql.xml", + "lib/net7.0/Npgsql.dll", + "lib/net7.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/netstandard2.0/Npgsql.dll", + "lib/netstandard2.0/Npgsql.xml", + "lib/netstandard2.1/Npgsql.dll", + "lib/netstandard2.1/Npgsql.xml", + "npgsql.8.0.5.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "sha512": "gFPl9Dmxih7Yi4tZ3bITzZFzbxFMBx04gqTqcjoL2r5VEW+O2TA5UVw/wm/XW26NAJ7sg59Je0+9QrwiZt6MPQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, + "data/1.0.0": { + "type": "project", + "path": "../data/data.csproj", + "msbuildProject": "../data/data.csproj" + }, + "domain/1.0.0": { + "type": "project", + "path": "../domain/domain.csproj", + "msbuildProject": "../domain/domain.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "domain >= 1.0.0" + ] + }, + "packageFolders": { + "C:\\Users\\adm\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj", + "projectName": "ui", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj" + } + } + } + }, + "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/ui/obj/project.nuget.cache b/ui/obj/project.nuget.cache new file mode 100644 index 0000000..4679b98 --- /dev/null +++ b/ui/obj/project.nuget.cache @@ -0,0 +1,24 @@ +{ + "version": 2, + "dgSpecHash": "OlApgWgwSYg=", + "success": true, + "projectFilePath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj", + "expectedPackageFiles": [ + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.10\\microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512", + "C:\\Users\\adm\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/ui/obj/ui.csproj.nuget.dgspec.json b/ui/obj/ui.csproj.nuget.dgspec.json new file mode 100644 index 0000000..39b29f5 --- /dev/null +++ b/ui/obj/ui.csproj.nuget.dgspec.json @@ -0,0 +1,212 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj": {} + }, + "projects": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "projectName": "data", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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", + "dependencies": { + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.10, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.10, )" + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[8.0.10, )" + } + }, + "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" + } + } + }, + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "projectName": "domain", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\data\\data.csproj" + } + } + } + }, + "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" + } + } + }, + "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj", + "projectName": "ui", + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\ui.csproj", + "packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", + "outputPath": "C:\\Users\\adm\\source\\repos\\presence\\ui\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\adm\\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": { + "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj": { + "projectPath": "C:\\Users\\adm\\source\\repos\\presence\\domain\\domain.csproj" + } + } + } + }, + "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/ui/obj/ui.csproj.nuget.g.props b/ui/obj/ui.csproj.nuget.g.props new file mode 100644 index 0000000..7f1f3dd --- /dev/null +++ b/ui/obj/ui.csproj.nuget.g.props @@ -0,0 +1,18 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\adm\.nuget\packages\ + PackageReference + 6.11.1 + + + + + + + + \ No newline at end of file diff --git a/ui/obj/ui.csproj.nuget.g.targets b/ui/obj/ui.csproj.nuget.g.targets new file mode 100644 index 0000000..baac958 --- /dev/null +++ b/ui/obj/ui.csproj.nuget.g.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/ui/ui.csproj b/ui/ui.csproj new file mode 100644 index 0000000..dcf787d --- /dev/null +++ b/ui/ui.csproj @@ -0,0 +1,13 @@ + + + + + + + + net8.0 + enable + enable + + +