commit e48ef1dfcccd75c38613f2210fb93e02d2e08e05 Author: adm Date: Fri Dec 20 11:49:17 2024 +0300 init diff --git a/.vs/Presence.Desktop.git1/v17/.wsuo b/.vs/Presence.Desktop.git1/v17/.wsuo new file mode 100644 index 0000000..8d229c8 Binary files /dev/null and b/.vs/Presence.Desktop.git1/v17/.wsuo differ diff --git a/.vs/Presence.Desktop.git1/v17/DocumentLayout.json b/.vs/Presence.Desktop.git1/v17/DocumentLayout.json new file mode 100644 index 0000000..fd78791 --- /dev/null +++ b/.vs/Presence.Desktop.git1/v17/DocumentLayout.json @@ -0,0 +1,27 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\prdb\\source\\repos\\Presence.Desktop.git1\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/Presence.Desktop/v17/.wsuo b/.vs/Presence.Desktop/v17/.wsuo new file mode 100644 index 0000000..08e82aa Binary files /dev/null and b/.vs/Presence.Desktop/v17/.wsuo differ diff --git a/.vs/Presence.Desktop/v17/DocumentLayout.backup.json b/.vs/Presence.Desktop/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..7e890f0 --- /dev/null +++ b/.vs/Presence.Desktop/v17/DocumentLayout.backup.json @@ -0,0 +1,27 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\prdb\\source\\repos\\Presence.Desktop\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/Presence.Desktop/v17/DocumentLayout.json b/.vs/Presence.Desktop/v17/DocumentLayout.json new file mode 100644 index 0000000..57209ae --- /dev/null +++ b/.vs/Presence.Desktop/v17/DocumentLayout.json @@ -0,0 +1,27 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/Presence.Desktop1/v17/.wsuo b/.vs/Presence.Desktop1/v17/.wsuo new file mode 100644 index 0000000..92aae93 Binary files /dev/null and b/.vs/Presence.Desktop1/v17/.wsuo differ diff --git a/.vs/Presence.Desktop1/v17/DocumentLayout.json b/.vs/Presence.Desktop1/v17/DocumentLayout.json new file mode 100644 index 0000000..2126cb6 --- /dev/null +++ b/.vs/Presence.Desktop1/v17/DocumentLayout.json @@ -0,0 +1,27 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\adm\\source\\repos\\Presence.Desktop1\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/Presence.Desktop1234/v17/.wsuo b/.vs/Presence.Desktop1234/v17/.wsuo new file mode 100644 index 0000000..e488196 Binary files /dev/null and b/.vs/Presence.Desktop1234/v17/.wsuo differ diff --git a/.vs/Presence.Desktop1234/v17/DocumentLayout.json b/.vs/Presence.Desktop1234/v17/DocumentLayout.json new file mode 100644 index 0000000..6ec17e4 --- /dev/null +++ b/.vs/Presence.Desktop1234/v17/DocumentLayout.json @@ -0,0 +1,27 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/ProjectEvaluation/presnce.metadata.v9.bin b/.vs/ProjectEvaluation/presnce.metadata.v9.bin new file mode 100644 index 0000000..5e3daa3 Binary files /dev/null and b/.vs/ProjectEvaluation/presnce.metadata.v9.bin differ diff --git a/.vs/ProjectEvaluation/presnce.projects.v9.bin b/.vs/ProjectEvaluation/presnce.projects.v9.bin new file mode 100644 index 0000000..4be9d53 Binary files /dev/null and b/.vs/ProjectEvaluation/presnce.projects.v9.bin differ diff --git a/.vs/ProjectEvaluation/presnce.strings.v9.bin b/.vs/ProjectEvaluation/presnce.strings.v9.bin new file mode 100644 index 0000000..eb76558 Binary files /dev/null and b/.vs/ProjectEvaluation/presnce.strings.v9.bin differ diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..cdb970f --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,7 @@ +{ + "ExpandedNodes": [ + "" + ], + "SelectedNode": "\\presnce.sln", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/presence_api/v17/.wsuo b/.vs/presence_api/v17/.wsuo new file mode 100644 index 0000000..fcea05e Binary files /dev/null and b/.vs/presence_api/v17/.wsuo differ diff --git a/.vs/presence_api/v17/DocumentLayout.backup.json b/.vs/presence_api/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..296a5e1 --- /dev/null +++ b/.vs/presence_api/v17/DocumentLayout.backup.json @@ -0,0 +1,23 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\prdb\\source\\repos\\presence_api\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/presence_api/v17/DocumentLayout.json b/.vs/presence_api/v17/DocumentLayout.json new file mode 100644 index 0000000..7716295 --- /dev/null +++ b/.vs/presence_api/v17/DocumentLayout.json @@ -0,0 +1,23 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\adm\\source\\repos\\presence_api\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/presence_api123/v17/.wsuo b/.vs/presence_api123/v17/.wsuo new file mode 100644 index 0000000..72402eb Binary files /dev/null and b/.vs/presence_api123/v17/.wsuo differ diff --git a/.vs/presence_api123/v17/DocumentLayout.json b/.vs/presence_api123/v17/DocumentLayout.json new file mode 100644 index 0000000..61eb8e3 --- /dev/null +++ b/.vs/presence_api123/v17/DocumentLayout.json @@ -0,0 +1,23 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\sokol\\source\\repos\\presence_api123\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/presnce/DesignTimeBuild/.dtbcache.v2 b/.vs/presnce/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000..c7ebe4c Binary files /dev/null and b/.vs/presnce/DesignTimeBuild/.dtbcache.v2 differ diff --git a/.vs/presnce/FileContentIndex/5bc92bcc-4eee-4f8a-9af8-d642504e7a12.vsidx b/.vs/presnce/FileContentIndex/5bc92bcc-4eee-4f8a-9af8-d642504e7a12.vsidx new file mode 100644 index 0000000..129953a Binary files /dev/null and b/.vs/presnce/FileContentIndex/5bc92bcc-4eee-4f8a-9af8-d642504e7a12.vsidx differ diff --git a/.vs/presnce/FileContentIndex/7b535b99-f49e-48aa-883f-826f4e821957.vsidx b/.vs/presnce/FileContentIndex/7b535b99-f49e-48aa-883f-826f4e821957.vsidx new file mode 100644 index 0000000..2ef1cd3 Binary files /dev/null and b/.vs/presnce/FileContentIndex/7b535b99-f49e-48aa-883f-826f4e821957.vsidx differ diff --git a/.vs/presnce/FileContentIndex/a119e361-e5bd-4c44-a38f-a945add781e3.vsidx b/.vs/presnce/FileContentIndex/a119e361-e5bd-4c44-a38f-a945add781e3.vsidx new file mode 100644 index 0000000..87341a2 Binary files /dev/null and b/.vs/presnce/FileContentIndex/a119e361-e5bd-4c44-a38f-a945add781e3.vsidx differ diff --git a/.vs/presnce/FileContentIndex/d0f0f7b8-73e9-483d-a201-42b4c11b8feb.vsidx b/.vs/presnce/FileContentIndex/d0f0f7b8-73e9-483d-a201-42b4c11b8feb.vsidx new file mode 100644 index 0000000..cd80bed Binary files /dev/null and b/.vs/presnce/FileContentIndex/d0f0f7b8-73e9-483d-a201-42b4c11b8feb.vsidx differ diff --git a/.vs/presnce/FileContentIndex/d7714cc3-683d-4f43-b0c6-a4bc9e5cff26.vsidx b/.vs/presnce/FileContentIndex/d7714cc3-683d-4f43-b0c6-a4bc9e5cff26.vsidx new file mode 100644 index 0000000..ce9bd93 Binary files /dev/null and b/.vs/presnce/FileContentIndex/d7714cc3-683d-4f43-b0c6-a4bc9e5cff26.vsidx differ diff --git a/.vs/presnce/v17/.futdcache.v2 b/.vs/presnce/v17/.futdcache.v2 new file mode 100644 index 0000000..9bbea0d Binary files /dev/null and b/.vs/presnce/v17/.futdcache.v2 differ diff --git a/.vs/presnce/v17/.suo b/.vs/presnce/v17/.suo new file mode 100644 index 0000000..653c46d Binary files /dev/null and b/.vs/presnce/v17/.suo differ diff --git a/.vs/presnce/v17/DocumentLayout.backup.json b/.vs/presnce/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..18963d4 --- /dev/null +++ b/.vs/presnce/v17/DocumentLayout.backup.json @@ -0,0 +1,549 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\adm\\source\\repos\\presence.desktop\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\attendanceview.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\attendanceview.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\mainwindowviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\mainwindowviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\attendanceview.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\attendanceview.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\attendanceviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\attendanceviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\presenceviewitem.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\presenceviewitem.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\edituserdialog.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\edituserdialog.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\data\\remotedata\\remotedatabase\\dao\\userdao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\userdao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\data\\remotedata\\remotedatabase\\dao\\groupdao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\groupdao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewlocator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewlocator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\edituserdialog.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\edituserdialog.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\app.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\app.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\app.manifest||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\app.manifest||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\studentcsvmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\studentcsvmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\viewmodelbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\viewmodelbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\di\\servicecollectionextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\di\\servicecollectionextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\sokol\\Source\\Repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 3, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "MainWindowViewModel.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\MainWindowViewModel.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\MainWindowViewModel.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\MainWindowViewModel.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\MainWindowViewModel.cs", + "ViewState": "AgIAAFUAAAAAAAAAAAAqwHIAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T07:44:10.449Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "AttendanceView.axaml", + "DocumentMoniker": "C:\\Users\\adm\\Source\\Repos\\Presence.Desktop\\Presence.Desktop\\Views\\AttendanceView.axaml", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\AttendanceView.axaml", + "ToolTip": "C:\\Users\\adm\\Source\\Repos\\Presence.Desktop\\Presence.Desktop\\Views\\AttendanceView.axaml", + "RelativeToolTip": "Presence.Desktop\\Views\\AttendanceView.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-20T07:36:00.489Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "MainMenu.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\ui\\MainMenu.cs", + "RelativeDocumentMoniker": "ui\\MainMenu.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\ui\\MainMenu.cs", + "RelativeToolTip": "ui\\MainMenu.cs", + "ViewState": "AgIAAIwAAAAAAAAAAAAAAKIAAABmAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T08:18:33.965Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "AttendanceViewModel.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\AttendanceViewModel.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\AttendanceViewModel.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\AttendanceViewModel.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\AttendanceViewModel.cs", + "ViewState": "AgIAACQAAAAAAAAAAADwvzUAAAAqAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:47:47.621Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "UseCaseGeneratePresence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\UseCaseGeneratePresence.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\UseCaseGeneratePresence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\UseCaseGeneratePresence.cs", + "RelativeToolTip": "domain\\UseCase\\UseCaseGeneratePresence.cs", + "ViewState": "AgIAADQAAAAAAAAAAAAkwEYAAAAwAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:37:17.702Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "PresenceConsole.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\ui\\PresenceConsole.cs", + "RelativeDocumentMoniker": "ui\\PresenceConsole.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\ui\\PresenceConsole.cs", + "RelativeToolTip": "ui\\PresenceConsole.cs", + "ViewState": "AgIAACsAAAAAAAAAAADgvz8AAAAUAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:40:45.684Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "AttendanceView.axaml.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\AttendanceView.axaml.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\AttendanceView.axaml.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\AttendanceView.axaml.cs", + "RelativeToolTip": "Presence.Desktop\\Views\\AttendanceView.axaml.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:36:00.24Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "IPresenceRepository.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\IPresenceRepository.cs", + "RelativeDocumentMoniker": "data\\Repository\\IPresenceRepository.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\IPresenceRepository.cs", + "RelativeToolTip": "data\\Repository\\IPresenceRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAqwAYAAAAVAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:37:40.925Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "PresenceViewItem.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\PresenceViewItem.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\PresenceViewItem.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\PresenceViewItem.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\PresenceViewItem.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:43:44.272Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "AttendanceRecord.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T08:09:28.854Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "SQLPresenceRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLPresenceRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLPresenceRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLPresenceRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLPresenceRepositoryImpl.cs", + "ViewState": "AgIAABUAAAAAAAAAAAAiwCcAAAAJAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T13:29:39.495Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "Presence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAoAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T08:04:04.602Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 24, + "Title": "app.manifest", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\app.manifest", + "RelativeDocumentMoniker": "Presence.Desktop\\app.manifest", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\app.manifest", + "RelativeToolTip": "Presence.Desktop\\app.manifest", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001203|", + "WhenOpened": "2024-12-09T12:41:22.438Z" + }, + { + "$type": "Document", + "DocumentIndex": 22, + "Title": "EditUserDialog.axaml", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\EditUserDialog.axaml", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\EditUserDialog.axaml", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\EditUserDialog.axaml", + "RelativeToolTip": "Presence.Desktop\\Views\\EditUserDialog.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-09T12:35:52.852Z" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "GroupDao.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\GroupDao.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\GroupDao.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\GroupDao.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\GroupDao.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAjAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T13:25:08.498Z" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "MainWindow.axaml", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\MainWindow.axaml", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\MainWindow.axaml", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\MainWindow.axaml", + "RelativeToolTip": "Presence.Desktop\\Views\\MainWindow.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-06T07:46:05.495Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "SQLGroupRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLGroupRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLGroupRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLGroupRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLGroupRepositoryImpl.cs", + "ViewState": "AgIAAFQAAAAAAAAAAAAvwGEAAAAMAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T13:29:45.564Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 16, + "Title": "EditUserDialog.axaml.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\EditUserDialog.axaml.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\EditUserDialog.axaml.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\EditUserDialog.axaml.cs", + "RelativeToolTip": "Presence.Desktop\\Views\\EditUserDialog.axaml.cs", + "ViewState": "AgIAAC0AAAAAAAAAAAAqwDgAAAAhAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T12:35:52.116Z" + }, + { + "$type": "Document", + "DocumentIndex": 29, + "Title": "Window1.axaml", + "DocumentMoniker": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml", + "RelativeDocumentMoniker": "..\\..\\..\\..\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml", + "ToolTip": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml", + "RelativeToolTip": "..\\..\\..\\..\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-09T12:34:33.919Z" + }, + { + "$type": "Document", + "DocumentIndex": 17, + "Title": "UserDao.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\UserDao.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\UserDao.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\UserDao.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\UserDao.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAnAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T13:30:55.584Z" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "SQLUserRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLUserRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLUserRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLUserRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLUserRepositoryImpl.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T12:33:15.684Z" + }, + { + "$type": "Document", + "DocumentIndex": 27, + "Title": "ViewModelBase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\ViewModelBase.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\ViewModelBase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\ViewModelBase.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\ViewModelBase.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T12:30:44.53Z" + }, + { + "$type": "Document", + "DocumentIndex": 30, + "Title": "userToEdit.axaml", + "DocumentMoniker": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml", + "RelativeDocumentMoniker": "..\\..\\..\\..\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml", + "ToolTip": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml", + "RelativeToolTip": "..\\..\\..\\..\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-09T12:23:38.7Z" + }, + { + "$type": "Document", + "DocumentIndex": 23, + "Title": "App.axaml.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\App.axaml.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\App.axaml.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\App.axaml.cs", + "RelativeToolTip": "Presence.Desktop\\App.axaml.cs", + "ViewState": "AgIAAAEAAAAAAAAAAAAYwC8AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T11:58:58.291Z" + }, + { + "$type": "Document", + "DocumentIndex": 28, + "Title": "ServiceCollectionExtensions.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\DI\\ServiceCollectionExtensions.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\DI\\ServiceCollectionExtensions.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\DI\\ServiceCollectionExtensions.cs", + "RelativeToolTip": "Presence.Desktop\\DI\\ServiceCollectionExtensions.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAsAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T08:20:37.692Z" + }, + { + "$type": "Document", + "DocumentIndex": 21, + "Title": "ViewLocator.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewLocator.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewLocator.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewLocator.cs", + "RelativeToolTip": "Presence.Desktop\\ViewLocator.cs", + "ViewState": "AgIAAA4AAAAAAAAAAAAkwB0AAAAIAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T08:20:34.901Z" + }, + { + "$type": "Document", + "DocumentIndex": 25, + "Title": "Program.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Program.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\Program.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Program.cs", + "RelativeToolTip": "Presence.Desktop\\Program.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T08:20:32.091Z" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "MainWindow.axaml.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\MainWindow.axaml.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\MainWindow.axaml.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\MainWindow.axaml.cs", + "RelativeToolTip": "Presence.Desktop\\Views\\MainWindow.axaml.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAiAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T08:01:49.439Z" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "Title": "UserUseCase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\UserUseCase.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\UserUseCase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\UserUseCase.cs", + "RelativeToolTip": "domain\\UseCase\\UserUseCase.cs", + "ViewState": "AgIAABUAAAAAAAAAAAAowCUAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T07:57:21.387Z" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "GroupUseCase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\GroupUseCase.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\GroupUseCase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\GroupUseCase.cs", + "RelativeToolTip": "domain\\UseCase\\GroupUseCase.cs", + "ViewState": "AgIAADgAAAAAAAAAAAAkwE8AAAA3AAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T07:56:47.265Z" + }, + { + "$type": "Document", + "DocumentIndex": 26, + "Title": "StudentCsvModel.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\StudentCsvModel.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\StudentCsvModel.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\StudentCsvModel.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\StudentCsvModel.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T07:49:21.258Z" + } + ] + }, + { + "DockedWidth": 993, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}" + }, + { + "$type": "Bookmark", + "Name": "ST:1:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}" + } + ] + } + ] + } + ] +} \ 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..56cd53a --- /dev/null +++ b/.vs/presnce/v17/DocumentLayout.json @@ -0,0 +1,549 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\adm\\source\\repos\\presence.desktop\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\mainwindowviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\mainwindowviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\attendanceview.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\attendanceview.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\attendanceview.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\attendanceview.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\attendanceviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\attendanceviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8CAAF4C4-09A3-419C-B232-56A150F0F30D}|ui\\ui.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\presenceviewitem.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\presenceviewitem.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\edituserdialog.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\edituserdialog.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\data\\remotedata\\remotedatabase\\dao\\userdao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\userdao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\data\\remotedata\\remotedatabase\\dao\\groupdao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|solutionrelative:data\\remotedata\\remotedatabase\\dao\\groupdao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{4C6194FF-B704-406B-89A7-03C2EE38A899}|domain\\domain.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{B61AE661-CF04-46B2-9862-386DD078A071}|data\\data.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\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:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewlocator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewlocator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\views\\edituserdialog.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\edituserdialog.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\app.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\app.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\app.manifest||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\app.manifest||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\studentcsvmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\studentcsvmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\viewmodels\\viewmodelbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\viewmodelbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\adm\\source\\repos\\presence.desktop\\presence.desktop\\di\\servicecollectionextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{197B665D-A688-4661-8C15-52CD08344229}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\di\\servicecollectionextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\sokol\\Source\\Repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "MainWindowViewModel.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\MainWindowViewModel.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\MainWindowViewModel.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\MainWindowViewModel.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\MainWindowViewModel.cs", + "ViewState": "AgIAAFUAAAAAAAAAAAAqwHIAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T07:44:10.449Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "AttendanceView.axaml", + "DocumentMoniker": "C:\\Users\\adm\\Source\\Repos\\Presence.Desktop\\Presence.Desktop\\Views\\AttendanceView.axaml", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\AttendanceView.axaml", + "ToolTip": "C:\\Users\\adm\\Source\\Repos\\Presence.Desktop\\Presence.Desktop\\Views\\AttendanceView.axaml", + "RelativeToolTip": "Presence.Desktop\\Views\\AttendanceView.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-20T07:36:00.489Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "MainMenu.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\ui\\MainMenu.cs", + "RelativeDocumentMoniker": "ui\\MainMenu.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\ui\\MainMenu.cs", + "RelativeToolTip": "ui\\MainMenu.cs", + "ViewState": "AgIAAIwAAAAAAAAAAAAAAKIAAABmAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T08:18:33.965Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "AttendanceViewModel.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\AttendanceViewModel.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\AttendanceViewModel.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\AttendanceViewModel.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\AttendanceViewModel.cs", + "ViewState": "AgIAACQAAAAAAAAAAADwvzUAAAAqAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:47:47.621Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "UseCaseGeneratePresence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\UseCaseGeneratePresence.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\UseCaseGeneratePresence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\UseCaseGeneratePresence.cs", + "RelativeToolTip": "domain\\UseCase\\UseCaseGeneratePresence.cs", + "ViewState": "AgIAADQAAAAAAAAAAAAkwEYAAAAwAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:37:17.702Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "PresenceConsole.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\ui\\PresenceConsole.cs", + "RelativeDocumentMoniker": "ui\\PresenceConsole.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\ui\\PresenceConsole.cs", + "RelativeToolTip": "ui\\PresenceConsole.cs", + "ViewState": "AgIAACsAAAAAAAAAAADgvz8AAAAUAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:40:45.684Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "AttendanceView.axaml.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\AttendanceView.axaml.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\AttendanceView.axaml.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\AttendanceView.axaml.cs", + "RelativeToolTip": "Presence.Desktop\\Views\\AttendanceView.axaml.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:36:00.24Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "IPresenceRepository.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\IPresenceRepository.cs", + "RelativeDocumentMoniker": "data\\Repository\\IPresenceRepository.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\IPresenceRepository.cs", + "RelativeToolTip": "data\\Repository\\IPresenceRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAqwAYAAAAVAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:37:40.925Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "PresenceViewItem.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\PresenceViewItem.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\PresenceViewItem.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\PresenceViewItem.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\PresenceViewItem.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T07:43:44.272Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "AttendanceRecord.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\AttendanceRecord.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T08:09:28.854Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "SQLPresenceRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLPresenceRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLPresenceRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLPresenceRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLPresenceRepositoryImpl.cs", + "ViewState": "AgIAABUAAAAAAAAAAAAiwCcAAAAJAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T13:29:39.495Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "Presence.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\Presence.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAoAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-20T08:04:04.602Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 24, + "Title": "app.manifest", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\app.manifest", + "RelativeDocumentMoniker": "Presence.Desktop\\app.manifest", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\app.manifest", + "RelativeToolTip": "Presence.Desktop\\app.manifest", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001203|", + "WhenOpened": "2024-12-09T12:41:22.438Z" + }, + { + "$type": "Document", + "DocumentIndex": 22, + "Title": "EditUserDialog.axaml", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\EditUserDialog.axaml", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\EditUserDialog.axaml", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\EditUserDialog.axaml", + "RelativeToolTip": "Presence.Desktop\\Views\\EditUserDialog.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-09T12:35:52.852Z" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "GroupDao.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\GroupDao.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\GroupDao.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\GroupDao.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\GroupDao.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAjAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T13:25:08.498Z" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "MainWindow.axaml", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\MainWindow.axaml", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\MainWindow.axaml", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\MainWindow.axaml", + "RelativeToolTip": "Presence.Desktop\\Views\\MainWindow.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-06T07:46:05.495Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "SQLGroupRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLGroupRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLGroupRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLGroupRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLGroupRepositoryImpl.cs", + "ViewState": "AgIAAFQAAAAAAAAAAAAvwGEAAAAMAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T13:29:45.564Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 16, + "Title": "EditUserDialog.axaml.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\EditUserDialog.axaml.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\EditUserDialog.axaml.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\EditUserDialog.axaml.cs", + "RelativeToolTip": "Presence.Desktop\\Views\\EditUserDialog.axaml.cs", + "ViewState": "AgIAAC0AAAAAAAAAAAAqwDgAAAAhAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T12:35:52.116Z" + }, + { + "$type": "Document", + "DocumentIndex": 29, + "Title": "Window1.axaml", + "DocumentMoniker": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml", + "RelativeDocumentMoniker": "..\\..\\..\\..\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml", + "ToolTip": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml", + "RelativeToolTip": "..\\..\\..\\..\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\Window1.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-09T12:34:33.919Z" + }, + { + "$type": "Document", + "DocumentIndex": 17, + "Title": "UserDao.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\UserDao.cs", + "RelativeDocumentMoniker": "data\\RemoteData\\RemoteDatabase\\DAO\\UserDao.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\RemoteData\\RemoteDatabase\\DAO\\UserDao.cs", + "RelativeToolTip": "data\\RemoteData\\RemoteDatabase\\DAO\\UserDao.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAnAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T13:30:55.584Z" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "SQLUserRepositoryImpl.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLUserRepositoryImpl.cs", + "RelativeDocumentMoniker": "data\\Repository\\SQLUserRepositoryImpl.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\data\\Repository\\SQLUserRepositoryImpl.cs", + "RelativeToolTip": "data\\Repository\\SQLUserRepositoryImpl.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T12:33:15.684Z" + }, + { + "$type": "Document", + "DocumentIndex": 27, + "Title": "ViewModelBase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\ViewModelBase.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\ViewModelBase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\ViewModelBase.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\ViewModelBase.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T12:30:44.53Z" + }, + { + "$type": "Document", + "DocumentIndex": 30, + "Title": "userToEdit.axaml", + "DocumentMoniker": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml", + "RelativeDocumentMoniker": "..\\..\\..\\..\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml", + "ToolTip": "C:\\Users\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml", + "RelativeToolTip": "..\\..\\..\\..\\sokol\\source\\repos\\Presence.Desktop1234\\Presence.Desktop\\Views\\userToEdit.axaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-12-09T12:23:38.7Z" + }, + { + "$type": "Document", + "DocumentIndex": 23, + "Title": "App.axaml.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\App.axaml.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\App.axaml.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\App.axaml.cs", + "RelativeToolTip": "Presence.Desktop\\App.axaml.cs", + "ViewState": "AgIAAAEAAAAAAAAAAAAYwC8AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-09T11:58:58.291Z" + }, + { + "$type": "Document", + "DocumentIndex": 28, + "Title": "ServiceCollectionExtensions.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\DI\\ServiceCollectionExtensions.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\DI\\ServiceCollectionExtensions.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\DI\\ServiceCollectionExtensions.cs", + "RelativeToolTip": "Presence.Desktop\\DI\\ServiceCollectionExtensions.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAsAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T08:20:37.692Z" + }, + { + "$type": "Document", + "DocumentIndex": 21, + "Title": "ViewLocator.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewLocator.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewLocator.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewLocator.cs", + "RelativeToolTip": "Presence.Desktop\\ViewLocator.cs", + "ViewState": "AgIAAA4AAAAAAAAAAAAkwB0AAAAIAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T08:20:34.901Z" + }, + { + "$type": "Document", + "DocumentIndex": 25, + "Title": "Program.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Program.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\Program.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Program.cs", + "RelativeToolTip": "Presence.Desktop\\Program.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T08:20:32.091Z" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "MainWindow.axaml.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\MainWindow.axaml.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\Views\\MainWindow.axaml.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\Views\\MainWindow.axaml.cs", + "RelativeToolTip": "Presence.Desktop\\Views\\MainWindow.axaml.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAiAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T08:01:49.439Z" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "Title": "UserUseCase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\UserUseCase.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\UserUseCase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\UserUseCase.cs", + "RelativeToolTip": "domain\\UseCase\\UserUseCase.cs", + "ViewState": "AgIAABUAAAAAAAAAAAAowCUAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T07:57:21.387Z" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "GroupUseCase.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\GroupUseCase.cs", + "RelativeDocumentMoniker": "domain\\UseCase\\GroupUseCase.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\domain\\UseCase\\GroupUseCase.cs", + "RelativeToolTip": "domain\\UseCase\\GroupUseCase.cs", + "ViewState": "AgIAADgAAAAAAAAAAAAkwE8AAAA3AAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T07:56:47.265Z" + }, + { + "$type": "Document", + "DocumentIndex": 26, + "Title": "StudentCsvModel.cs", + "DocumentMoniker": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\StudentCsvModel.cs", + "RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\StudentCsvModel.cs", + "ToolTip": "C:\\Users\\adm\\source\\repos\\presence.desktop\\Presence.Desktop\\ViewModels\\StudentCsvModel.cs", + "RelativeToolTip": "Presence.Desktop\\ViewModels\\StudentCsvModel.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-12-06T07:49:21.258Z" + } + ] + }, + { + "DockedWidth": 993, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}" + }, + { + "$type": "Bookmark", + "Name": "ST:1:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Presence.Desktop/App.axaml b/Presence.Desktop/App.axaml new file mode 100644 index 0000000..eea6afa --- /dev/null +++ b/Presence.Desktop/App.axaml @@ -0,0 +1,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Presence.Desktop/App.axaml.cs b/Presence.Desktop/App.axaml.cs new file mode 100644 index 0000000..fb44792 --- /dev/null +++ b/Presence.Desktop/App.axaml.cs @@ -0,0 +1,47 @@ +using Avalonia; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Markup.Xaml; +using Microsoft.Extensions.DependencyInjection; +using Presence.Desktop.DI; +using Presence.Desktop.ViewModels; +using Presence.Desktop.Views; +using data.Domain.UseCase; // GroupUseCase UserUseCase + +namespace Presence.Desktop +{ + public partial class App : Application + { + public override void Initialize() + { + AvaloniaXamlLoader.Load(this); + } + + public override void OnFrameworkInitializationCompleted() + { + var serviceCollection = new ServiceCollection(); + serviceCollection.AddCommonService(); + + // UseCase + serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); + + var services = serviceCollection.BuildServiceProvider(); + var mainViewModel = services.GetRequiredService(); + + // MainWindow + var groupUseCase = services.GetRequiredService(); + var userUseCase = services.GetRequiredService(); + + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + // MainWindow + desktop.MainWindow = new MainWindow(groupUseCase, userUseCase) + { + DataContext = mainViewModel, + }; + } + + base.OnFrameworkInitializationCompleted(); + } + } +} diff --git a/Presence.Desktop/Assets/avalonia-logo.ico b/Presence.Desktop/Assets/avalonia-logo.ico new file mode 100644 index 0000000..da8d49f Binary files /dev/null and b/Presence.Desktop/Assets/avalonia-logo.ico differ diff --git a/Presence.Desktop/DI/ServiceCollectionExtensions.cs b/Presence.Desktop/DI/ServiceCollectionExtensions.cs new file mode 100644 index 0000000..8175897 --- /dev/null +++ b/Presence.Desktop/DI/ServiceCollectionExtensions.cs @@ -0,0 +1,31 @@ +using data.Domain.UseCase; +using data.RemoteData.RemoteDataBase; +using data.Repository; +using Microsoft.Extensions.DependencyInjection; +using Presence.Desktop.ViewModels; +using Presence.Desktop.Views; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace Presence.Desktop.DI +{ + public static class ServiceCollectionExtensions + { + public static void AddCommonService(this IServiceCollection collection) + { + collection + .AddDbContext() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddTransient() + .AddTransient(); + } + } +} diff --git a/Presence.Desktop/Presence.Desktop.csproj b/Presence.Desktop/Presence.Desktop.csproj new file mode 100644 index 0000000..c1aa37b --- /dev/null +++ b/Presence.Desktop/Presence.Desktop.csproj @@ -0,0 +1,41 @@ + + + WinExe + net8.0 + enable + true + app.manifest + true + + + + + + + + + + + + + + + + + + + + + None + All + + + + + + + + + + + diff --git a/Presence.Desktop/Program.cs b/Presence.Desktop/Program.cs new file mode 100644 index 0000000..9d4a474 --- /dev/null +++ b/Presence.Desktop/Program.cs @@ -0,0 +1,24 @@ +using Avalonia; +using Avalonia.ReactiveUI; +using System; + +namespace Presence.Desktop +{ + internal sealed class Program + { + // Initialization code. Don't use any Avalonia, third-party APIs or any + // SynchronizationContext-reliant code before AppMain is called: things aren't initialized + // yet and stuff might break. + [STAThread] + public static void Main(string[] args) => BuildAvaloniaApp() + .StartWithClassicDesktopLifetime(args); + + // Avalonia configuration, don't remove; also used by visual designer. + public static AppBuilder BuildAvaloniaApp() + => AppBuilder.Configure() + .UsePlatformDetect() + .WithInterFont() + .LogToTrace() + .UseReactiveUI(); + } +} diff --git a/Presence.Desktop/ViewLocator.cs b/Presence.Desktop/ViewLocator.cs new file mode 100644 index 0000000..9c1864d --- /dev/null +++ b/Presence.Desktop/ViewLocator.cs @@ -0,0 +1,32 @@ +using Avalonia.Controls; +using Avalonia.Controls.Templates; +using Presence.Desktop.ViewModels; +using System; + +namespace Presence.Desktop +{ + public class ViewLocator : IDataTemplate + { + + public Control? Build(object? param) + { + if (param is null) + return null; + + var name = param.GetType().FullName!.Replace("ViewModel", "View", StringComparison.Ordinal); + var type = Type.GetType(name); + + if (type != null) + { + return (Control)Activator.CreateInstance(type)!; + } + + return new TextBlock { Text = "Not Found: " + name }; + } + + public bool Match(object? data) + { + return data is ViewModelBase; + } + } +} \ No newline at end of file diff --git a/Presence.Desktop/ViewModels/AttendanceViewModel.cs b/Presence.Desktop/ViewModels/AttendanceViewModel.cs new file mode 100644 index 0000000..ba74273 --- /dev/null +++ b/Presence.Desktop/ViewModels/AttendanceViewModel.cs @@ -0,0 +1,68 @@ +using data.Domain.UseCase; +using data.RemoteData.RemoteDataBase.DAO; +using ReactiveUI; +using System; +using System.Collections.ObjectModel; +using System.Reactive; +using System.Threading.Tasks; +using static data.Domain.UseCase.UseCaseGeneratePresence; + +public class AttendanceViewModel : ReactiveObject +{ + private readonly UseCaseGeneratePresence _presenceUseCase; + + public AttendanceViewModel(UseCaseGeneratePresence presenceUseCase) + { + _presenceUseCase = presenceUseCase; + + Groups = new ObservableCollection(); + Presences = new ObservableCollection(); + + LoadDataCommand = ReactiveCommand.CreateFromTask(LoadDataAsync); + DeleteSelectedCommand = ReactiveCommand.CreateFromTask(DeleteSelectedAsync); + } + + public ObservableCollection Groups { get; } + public ObservableCollection Presences { get; } + + private GroupDao _selectedGroup; + public GroupDao SelectedGroup + { + get => _selectedGroup; + set => this.RaiseAndSetIfChanged(ref _selectedGroup, value); + } + + private DateOnly _startDate = DateOnly.FromDateTime(DateTime.Now).AddDays(-7); + public DateOnly StartDate + { + get => _startDate; + set => this.RaiseAndSetIfChanged(ref _startDate, value); + } + + private DateOnly _endDate = DateOnly.FromDateTime(DateTime.Now); + public DateOnly EndDate + { + get => _endDate; + set => this.RaiseAndSetIfChanged(ref _endDate, value); + } + + public ReactiveCommand LoadDataCommand { get; } + public ReactiveCommand DeleteSelectedCommand { get; } + + private async Task LoadDataAsync() + { + if (SelectedGroup == null) return; + + var presences = _presenceUseCase.GetFilteredPresence(SelectedGroup.Id, StartDate, EndDate); + Presences.Clear(); + foreach (var presence in presences) + { + Presences.Add(presence); + } + } + + private async Task DeleteSelectedAsync() + { + // Реализуем логику удаления записей + } +} diff --git a/Presence.Desktop/ViewModels/MainWindowViewModel.cs b/Presence.Desktop/ViewModels/MainWindowViewModel.cs new file mode 100644 index 0000000..de7e96c --- /dev/null +++ b/Presence.Desktop/ViewModels/MainWindowViewModel.cs @@ -0,0 +1,342 @@ +using data.domain.Models; +using data.Domain.UseCase; +using ReactiveUI; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using CsvHelper; +using System.IO; +using System.Linq; +using System.Reactive.Linq; +using System.Windows.Input; +using CsvHelper.Configuration; +using System.Reactive; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia; +using data.RemoteData.RemoteDataBase.DAO; +using Presence.Desktop.ViewModels; +using Presence.Desktop.Views; + +namespace Presence.Desktop.ViewModels +{ + public class MainWindowViewModel : ViewModelBase + { + private readonly GroupUseCase _groupUseCase; + private readonly UserUseCase _userUseCase; + + private readonly UseCaseGeneratePresence presenceUseCase; + + private ObservableCollection _users; + public ObservableCollection Users => _users; + + public ObservableCollection SelectedUsers { get; set; } = new ObservableCollection(); + + private List GroupDaosDataSource = new List(); + private ObservableCollection _groups; + public ObservableCollection Groups => _groups; + + private GroupDao? _selectedGroupItem; + public GroupDao? SelectedGroupItem + { + get => _selectedGroupItem; + set => this.RaiseAndSetIfChanged(ref _selectedGroupItem, value); + } + + public List SortOptions { get; } = new List { "По фамилии", "По убыванию" }; + + private string _selectedSortOption; + public string SelectedSortOption + { + get => _selectedSortOption; + set => this.RaiseAndSetIfChanged(ref _selectedSortOption, value); + } + + public bool CanDelete => SelectedUsers?.Count > 0; + public bool CanEdit => SelectedUsers?.Count == 1; + + public ReactiveCommand OnDeleteUserClicks { get; } + public ReactiveCommand EditUserCommand { get; } + public ICommand RemoveAllStudentsCommand { get; } + public ICommand AddStudentCommand { get; } + + public ReactiveCommand GoPresenceScreen { get; } + + public MainWindowViewModel(GroupUseCase groupUseCase, UserUseCase userUseCase) + { + OnDeleteUserClicks = ReactiveCommand.Create(OnDeleteUserClick, this.WhenAnyValue(vm => vm.CanDelete)); + EditUserCommand = ReactiveCommand.Create(OnEditUserClick, this.WhenAnyValue(vm => vm.CanEdit)); + _groupUseCase = groupUseCase; + _userUseCase = userUseCase; + GoPresenceScreen = ReactiveCommand.Create(OpenPresenceScreen); + + _groups = new ObservableCollection(GroupDaosDataSource); + _users = new ObservableCollection(); + + this.WhenAnyValue(vm => vm.SelectedGroupItem) + .Subscribe(_ => + { + RefreshGroups(); + SetUsers(); + }); + + this.WhenAnyValue(vm => vm.SelectedGroupItem) + .Subscribe(vm => SetUsers()); + + this.WhenAnyValue(vm => vm.SelectedSortOption) + .Subscribe(_ => SortUsers()); + + RemoveAllStudentsCommand = ReactiveCommand.Create(RemoveAllStudents); + AddStudentCommand = ReactiveCommand.Create(AddStudent); + + SelectedUsers.CollectionChanged += (s, e) => + { + this.RaisePropertyChanged(nameof(CanDelete)); + this.RaisePropertyChanged(nameof(CanEdit)); + }; + } + + private void OpenPresenceScreen() + { + // Создаём новое окно AttendanceView с правильным DataContext + var presenceView = new AttendanceView + { + DataContext = new AttendanceViewModel(presenceUseCase) // Устанавливаем нужный DataContext + }; + + // Получаем текущее главное окно для передачи его в ShowDialog + var mainWindow = (Application.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime)?.MainWindow; + + if (mainWindow != null) + { + // Для модального окна используем ShowDialog и передаем mainWindow в качестве родительского окна + presenceView.ShowDialog(mainWindow); // Показываем окно как модальное + } + } + + + private void SetUsers() + { + _users.Clear(); + + if (SelectedGroupItem != null && SelectedGroupItem.Users != null) + { + foreach (var user in SelectedGroupItem.Users) + { + _users.Add(user); + } + } + RefreshGroups(); + this.RaisePropertyChanged(nameof(Users)); + } + + private void SortUsers() + { + if (SelectedGroupItem?.Users == null) return; + + var sortedUsers = SelectedGroupItem.Users.ToList(); + + switch (SelectedSortOption) + { + case "По фамилии": + sortedUsers = sortedUsers.OrderBy(u => u.FIO).ToList(); + break; + case "По убыванию": + sortedUsers = sortedUsers.OrderByDescending(u => u.FIO).ToList(); + break; + } + + Users.Clear(); + foreach (var item in sortedUsers) + { + Users.Add(item); + } + } + + private void RemoveAllStudents() + { + if (SelectedGroupItem == null) return; + + _groupUseCase.RemoveAllStudentsFromGroup(SelectedGroupItem.Id); + SelectedGroupItem.Users = new List(); + SetUsers(); + } + + private void AddStudent() + { + string csvFilePath = @"C:\Users\sokol\OneDrive\Desktop\csv.csv"; + + List students; + try + { + students = ReadStudentsFromCsv(csvFilePath); + } + catch (Exception ex) + { + // Обработка ошибок чтения CSV файла + Console.WriteLine($"Ошибка при чтении CSV: {ex.Message}"); + return; + } + + if (SelectedGroupItem == null) return; + + foreach (var student in students) + { + _groupUseCase.AddStudentToGroup(SelectedGroupItem.Id, new User + { + ID = student.ID, + FIO = student.FIO + }); + + var newStudent = new UserDao + { + UserId = student.ID, + FIO = student.FIO, + GroupId = student.GroupId + }; + + var updatedUsers = SelectedGroupItem.Users?.ToList() ?? new List(); + updatedUsers.Add(newStudent); + SelectedGroupItem.Users = updatedUsers; + } + + SetUsers(); + } + + private List ReadStudentsFromCsv(string filePath) + { + var students = new List(); + + try + { + using (var reader = new StreamReader(filePath)) + using (var csv = new CsvReader(reader, new CsvConfiguration(System.Globalization.CultureInfo.InvariantCulture) + { + HasHeaderRecord = true, + Delimiter = "," + })) + { + var records = csv.GetRecords().ToList(); + foreach (var record in records) + { + var student = new User + { + FIO = record.Name + }; + students.Add(student); + } + } + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка при чтении CSV файла: {ex.Message}"); + } + + return students; + } + + public void OnDeleteUserClick() + { + // Проверка на наличие выбранных пользователей и группы + if (SelectedUsers.Count == 0 || SelectedGroupItem?.Users == null) + return; + + // Удаляем каждого пользователя из SelectedUsers + foreach (var user in SelectedUsers.ToList()) + { + _userUseCase.RemoveUserById(user.UserId); // Удаляем пользователя через UseCase + + // Обновляем локальную коллекцию, удаляя пользователя + var updatedUsers = SelectedGroupItem.Users.Where(u => u != user).ToList(); + SelectedGroupItem.Users = new List(updatedUsers); + } + + // Обновляем список пользователей + SetUsers(); + + // Очищаем выбранных пользователей после удаления + SelectedUsers.Clear(); + + // Обновляем состояние кнопок в интерфейсе + this.RaisePropertyChanged(nameof(CanDelete)); + this.RaisePropertyChanged(nameof(CanEdit)); + } + + private void RefreshGroups() + { + GroupDaosDataSource.Clear(); + _groups.Clear(); + + foreach (var item in _groupUseCase.GetAllGroups()) + { + var groupPresenter = new GroupDao + { + Id = item.Id, + Name = item.Name, + Users = item.Users?.Select(user => new UserDao + { + FIO = user.FIO, + UserId = user.UserId, + Group = new GroupDao { Id = item.Id, Name = item.Name } + }).ToList() + }; + + GroupDaosDataSource.Add(groupPresenter); + _groups.Add(item); + } + + this.RaisePropertyChanged(nameof(Groups)); + } + + + + + public async void OnEditUserClick() + { + var user = SelectedUsers.FirstOrDefault(); + if (user == null) return; + + // Сохраняем текущую выбранную группу + var previousSelectedGroupId = SelectedGroupItem?.Id; + + // Получаем список групп + var groups = _groupUseCase.GetAllGroups(); + + // Создаем диалог и передаем данные + var editDialog = new EditUserDialog(user.UserId, user.FIO, user.GroupId, groups); + + var mainWindow = (Application.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime)?.MainWindow; + if (mainWindow == null) return; + + var result = await editDialog.ShowEditDialog(mainWindow); + + if (result != (null, null)) + { + var newName = result.Item1; + var newGroup = result.Item2; + + // Обновляем имя и группу пользователя + user.FIO = newName; + user.GroupId = newGroup.Id; + + // Обновляем данные пользователя через UseCase + _userUseCase.UpdateUser(user.UserId, user.FIO, user.GroupId); + + SelectedUsers.Clear(); + } + + // Обновляем группы и восстанавливаем выбранный элемент + RefreshGroups(); + SelectedGroupItem = Groups.FirstOrDefault(g => g.Id == previousSelectedGroupId); + + // Обновляем состояние интерфейса + this.RaisePropertyChanged(nameof(CanEdit)); + this.RaisePropertyChanged(nameof(CanDelete)); + } + + + + + + + } +} diff --git a/Presence.Desktop/ViewModels/PresenceView.cs b/Presence.Desktop/ViewModels/PresenceView.cs new file mode 100644 index 0000000..483657b --- /dev/null +++ b/Presence.Desktop/ViewModels/PresenceView.cs @@ -0,0 +1,7 @@ +namespace Presence.Desktop.ViewModels +{ + internal class PresenceView + { + public AttendanceViewModel DataContext { get; set; } + } +} \ No newline at end of file diff --git a/Presence.Desktop/ViewModels/PresenceViewItem.cs b/Presence.Desktop/ViewModels/PresenceViewItem.cs new file mode 100644 index 0000000..847f725 --- /dev/null +++ b/Presence.Desktop/ViewModels/PresenceViewItem.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Presence.Desktop.ViewModels +{ + public class PresenceViewItem + { + public DateOnly Date { get; set; } + public int LessonNumber { get; set; } + public string Name { get; set; } // ФИО + public string Attendance { get; set; } // Тип посещаемости: Present/Absent + } + +} diff --git a/Presence.Desktop/ViewModels/StudentCsvModel.cs b/Presence.Desktop/ViewModels/StudentCsvModel.cs new file mode 100644 index 0000000..0360523 --- /dev/null +++ b/Presence.Desktop/ViewModels/StudentCsvModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Presence.Desktop.ViewModels +{ + public class StudentCsvModel + { + public string Name { get; set; } + } +} diff --git a/Presence.Desktop/ViewModels/ViewModelBase.cs b/Presence.Desktop/ViewModels/ViewModelBase.cs new file mode 100644 index 0000000..66c82c5 --- /dev/null +++ b/Presence.Desktop/ViewModels/ViewModelBase.cs @@ -0,0 +1,8 @@ +using ReactiveUI; + +namespace Presence.Desktop.ViewModels +{ + public class ViewModelBase : ReactiveObject + { + } +} diff --git a/Presence.Desktop/Views/AttendanceView.axaml b/Presence.Desktop/Views/AttendanceView.axaml new file mode 100644 index 0000000..7b4f347 --- /dev/null +++ b/Presence.Desktop/Views/AttendanceView.axaml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + +