init commit

This commit is contained in:
Class_Student 2024-12-20 12:16:16 +03:00
parent 2f8555b2c8
commit 54fbd98e94
125 changed files with 350 additions and 470 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,225 +0,0 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\class_student\\source\\repos\\presence\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\viewmodels\\groupviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\groupviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\viewmodels\\grouppresenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\grouppresenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\views\\presenceview.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\presenceview.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\viewmodels\\presencepresentor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\presencepresentor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\viewmodels\\mainwindowviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\mainwindowviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\views\\groupview.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\groupview.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\viewmodels\\studentcsvmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\studentcsvmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\viewmodels\\userpresenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\userpresenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\views\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\views\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
},
{
"AbsoluteMoniker": "D:0:0:{E466FB14-716E-437F-9E6C-B2A0D786694C}|presence_api\\presence_api.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence_api\\presence_api.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
"RelativeMoniker": "D:0:0:{E466FB14-716E-437F-9E6C-B2A0D786694C}|presence_api\\presence_api.csproj|solutionrelative:presence_api\\presence_api.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|c:\\users\\class_student\\source\\repos\\presence\\presence.desktop\\viewmodels\\presenceviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4A745F7C-B312-4411-AA95-5862597C7B0B}|Presence.Desktop\\Presence.Desktop.csproj|solutionrelative:presence.desktop\\viewmodels\\presenceviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1904560F-B17D-4598-AE5C-5FA0D0C2517B}|ui\\ui.csproj|c:\\users\\class_student\\source\\repos\\presence\\ui\\groupconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1904560F-B17D-4598-AE5C-5FA0D0C2517B}|ui\\ui.csproj|solutionrelative:ui\\groupconsole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 2,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "StudentCsvModel.cs",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\StudentCsvModel.cs",
"RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\StudentCsvModel.cs",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\StudentCsvModel.cs",
"RelativeToolTip": "Presence.Desktop\\ViewModels\\StudentCsvModel.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAwAAAABAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T07:45:42.251Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "GroupViewModel.cs",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\GroupViewModel.cs",
"RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\GroupViewModel.cs",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\GroupViewModel.cs",
"RelativeToolTip": "Presence.Desktop\\ViewModels\\GroupViewModel.cs",
"ViewState": "AQIAAJkAAAAAAAAAAAAAAJ4AAABNAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T07:37:02.276Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "MainWindow.axaml",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Views\\MainWindow.axaml",
"RelativeDocumentMoniker": "Presence.Desktop\\Views\\MainWindow.axaml",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Views\\MainWindow.axaml",
"RelativeToolTip": "Presence.Desktop\\Views\\MainWindow.axaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2024-12-19T07:42:07.973Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "presence_api",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\presence_api\\presence_api.csproj",
"RelativeDocumentMoniker": "presence_api\\presence_api.csproj",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\presence_api\\presence_api.csproj",
"RelativeToolTip": "presence_api\\presence_api.csproj",
"ViewState": "AQIAAAAAAAAAAAAAAAAAABYAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2024-12-19T07:38:02.808Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "GroupPresenter.cs",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\GroupPresenter.cs",
"RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\GroupPresenter.cs",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\GroupPresenter.cs",
"RelativeToolTip": "Presence.Desktop\\ViewModels\\GroupPresenter.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAA8AAABGAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T07:36:56.15Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "PresencePresentor.cs",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\PresencePresentor.cs",
"RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\PresencePresentor.cs",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\PresencePresentor.cs",
"RelativeToolTip": "Presence.Desktop\\ViewModels\\PresencePresentor.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAoAAAAcAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T07:36:52.077Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "PresenceViewModel.cs",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\PresenceViewModel.cs",
"RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\PresenceViewModel.cs",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\PresenceViewModel.cs",
"RelativeToolTip": "Presence.Desktop\\ViewModels\\PresenceViewModel.cs",
"ViewState": "AQIAAAgAAAAAAAAAAAAQwBQAAAAnAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T07:35:00.109Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "GroupView.axaml",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Views\\GroupView.axaml",
"RelativeDocumentMoniker": "Presence.Desktop\\Views\\GroupView.axaml",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Views\\GroupView.axaml",
"RelativeToolTip": "Presence.Desktop\\Views\\GroupView.axaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2024-12-19T07:33:07.728Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "PresenceView.axaml",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Views\\PresenceView.axaml",
"RelativeDocumentMoniker": "Presence.Desktop\\Views\\PresenceView.axaml",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Views\\PresenceView.axaml",
"RelativeToolTip": "Presence.Desktop\\Views\\PresenceView.axaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2024-12-19T07:34:46.592Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "MainWindowViewModel.cs",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\MainWindowViewModel.cs",
"RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\MainWindowViewModel.cs",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\MainWindowViewModel.cs",
"RelativeToolTip": "Presence.Desktop\\ViewModels\\MainWindowViewModel.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T07:46:22.387Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "UserPresenter.cs",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\UserPresenter.cs",
"RelativeDocumentMoniker": "Presence.Desktop\\ViewModels\\UserPresenter.cs",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\ViewModels\\UserPresenter.cs",
"RelativeToolTip": "Presence.Desktop\\ViewModels\\UserPresenter.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T07:48:17.874Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "GroupConsole.cs",
"DocumentMoniker": "C:\\Users\\class_student\\source\\repos\\presence\\ui\\GroupConsole.cs",
"RelativeDocumentMoniker": "ui\\GroupConsole.cs",
"ToolTip": "C:\\Users\\class_student\\source\\repos\\presence\\ui\\GroupConsole.cs",
"RelativeToolTip": "ui\\GroupConsole.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T07:33:01.161Z",
"EditorCaption": ""
}
]
}
]
}
]
}

View File

@ -15,6 +15,7 @@
<ItemGroup>
<PackageReference Include="Avalonia" Version="11.2.1" />
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.2.1" />
<PackageReference Include="Avalonia.Desktop" Version="11.2.1" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.1" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.1" />

View File

@ -15,17 +15,19 @@ using System.Formats.Asn1;
using System.IO;
using CsvHelper;
using CsvHelper.Configuration;
using data.RemoteData.RemoteDataBase;
namespace Presence.Desktop.ViewModels
{
public class GroupViewModel : ViewModelBase, IRoutableViewModel
{
// Объявляем поле _remoteDatabaseContext
private readonly RemoteDatabaseContext _remoteDatabaseContext;
public string? UrlPathSegment { get; }
public IScreen HostScreen { get; }
private readonly UseCaseGeneratePresence _presenceUseCase;
private readonly GroupUseCase _groupUseCase;
private List<GroupPresenter> groupPresentersDataSource = new List<GroupPresenter>();
private ObservableCollection<GroupPresenter> _groups;
@ -60,16 +62,16 @@ namespace Presence.Desktop.ViewModels
public ReactiveCommand<Unit, Unit> EditUserCommand { get; }
public ReactiveCommand<Unit, Unit> NextPageCommand { get; }
public ICommand RemoveAllStudentsCommand { get; }
public ICommand AddStudentCommand { get; }
public GroupViewModel(IScreen screen, GroupUseCase groupUseCase)
// Конструктор, инициализация _remoteDatabaseContext
public GroupViewModel(IScreen screen, GroupUseCase groupUseCase, UseCaseGeneratePresence presenceUseCase, RemoteDatabaseContext remoteDatabaseContext)
{
_groupUseCase = groupUseCase;
_presenceUseCase = presenceUseCase;
HostScreen = screen;
_remoteDatabaseContext = remoteDatabaseContext; // Инициализация _remoteDatabaseContext
OnDeleteUserClicks = ReactiveCommand.Create(OnDeleteUserClick, this.WhenAnyValue(vm => vm.CanDelete));
EditUserCommand = ReactiveCommand.Create(OnEditUserClick, this.WhenAnyValue(vm => vm.CanEdit));
@ -140,20 +142,16 @@ namespace Presence.Desktop.ViewModels
_groupUseCase.RemoveAllStudentsFromGroup(SelectedGroupItem.Id);
SelectedGroupItem.users = new List<UserPresenter>();
SetUsers();
}
private void NextPageButton()
{
HostScreen.Router.Navigate.Execute(new PresenceViewModel());
var groupRepository = new SQLGroupRepositoryImpl(_remoteDatabaseContext);
var groupUseCase = new GroupUseCase(groupRepository);
HostScreen.Router.Navigate.Execute(new PresenceViewModel(HostScreen, groupUseCase, _presenceUseCase));
}
private void AddStudent()
{
string csvFilePath = @"C:\Users\class_student\Documents\Group.csv"; // Укажите путь к CSV файлу
@ -175,7 +173,6 @@ namespace Presence.Desktop.ViewModels
{
_groupUseCase.AddStudentToGroup(SelectedGroupItem.Id, new User
{
FIO = student.Name
});
@ -211,7 +208,7 @@ namespace Presence.Desktop.ViewModels
{
var student = new UserPresenter
{
Guid = Guid.NewGuid(), // Предполагаем, что GUID генерируется здесь
Guid = Guid.NewGuid(), // Генерация GUID
Name = record.Name
};
students.Add(student);
@ -310,8 +307,5 @@ namespace Presence.Desktop.ViewModels
}
_groups = new ObservableCollection<GroupPresenter>(groupPresentersDataSource);
}
}
}

View File

@ -1,4 +1,5 @@
using System;
using data.RemoteData.RemoteDataBase;
using domain.UseCase;
using Microsoft.Extensions.DependencyInjection;
using ReactiveUI;
@ -12,12 +13,10 @@ public class MainWindowViewModel : ViewModelBase, IScreen
public MainWindowViewModel(IServiceProvider serviceProvider)
{
var groupUseCase = serviceProvider.GetRequiredService<GroupUseCase>();
var presenceUseCase = serviceProvider.GetRequiredService<UseCaseGeneratePresence>();
var remoteDatabaseContext = serviceProvider.GetRequiredService<RemoteDatabaseContext>();
Router.Navigate.Execute(new GroupViewModel (this, groupUseCase));
// Передаем все зависимости в GroupViewModel
Router.Navigate.Execute(new GroupViewModel(this, groupUseCase, presenceUseCase, remoteDatabaseContext));
}
}

View File

@ -6,8 +6,5 @@ using System.Threading.Tasks;
namespace Presence.Desktop.ViewModels
{
public class PresencePresentor
{
public string NAame;
}
}

View File

@ -1,37 +1,96 @@
using ReactiveUI;
using System.Collections.Generic;
using Avalonia.Data.Converters;
using domain.Models;
using domain.UseCase;
using Presence.Desktop.ViewModels;
using ReactiveUI;
using System;
using System.Collections.ObjectModel;
using System.Globalization;
using System.Reactive;
namespace Presence.Desktop.ViewModels;
namespace Presence.Desktop.ViewModels
{
public class PresenceViewModel : ViewModelBase, IRoutableViewModel
{
public string? UrlPathSegment { get; }
public string? UrlPathSegment { get; } = "Presence";
public IScreen HostScreen { get; }
public ObservableCollection<Person> People { get; }
private readonly GroupUseCase _groupUseCase;
private readonly UseCaseGeneratePresence _presenceUseCase;
public ObservableCollection<PresenceLocalEntity> AttendanceRecords { get; set; } = new();
public ObservableCollection<Group> Groups { get; set; } = new();
public PresenceViewModel()
private Group? _selectedGroup;
public Group? SelectedGroup
{
var people = new List<Person>
get => _selectedGroup;
set
{
new Person("Neil", "Armstrong"),
new Person("Buzz", "Lightyear"),
new Person("James", "Kirk")
};
People = new ObservableCollection<Person>(people);
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
this.RaiseAndSetIfChanged(ref _selectedGroup, value);
FilterAttendanceRecords();
}
}
private DateTime? _selectedDate;
public DateTime? SelectedDate
{
get => _selectedDate;
set
{
this.RaiseAndSetIfChanged(ref _selectedDate, value);
FilterAttendanceRecords();
}
}
public ReactiveCommand<Unit, Unit> NavigateBackCommand { get; }
public PresenceViewModel(IScreen hostScreen, GroupUseCase groupUseCase, UseCaseGeneratePresence presenceUseCase)
{
_groupUseCase = groupUseCase;
_presenceUseCase = presenceUseCase;
HostScreen = hostScreen;
NavigateBackCommand = ReactiveCommand.Create(() => { });
LoadGroups();
}
private void LoadGroups()
{
Groups.Clear();
var groups = _groupUseCase.GetAllGroups();
foreach (var group in groups)
{
Groups.Add(group);
}
}
private void FilterAttendanceRecords()
{
if (SelectedGroup == null || SelectedDate == null)
{
AttendanceRecords.Clear();
return;
}
var records = _presenceUseCase.GetPresenceByGroupAndDate(
SelectedGroup.Id,
SelectedDate.Value);
AttendanceRecords.Clear();
foreach (var record in records)
{
AttendanceRecords.Add(record);
}
}
public void UpdateAttendanceType(PresenceLocalEntity presence)
{
_presenceUseCase.UpdateAttendance(presence);
}
}
}

View File

@ -7,15 +7,31 @@
x:Class="Presence.Desktop.Views.PresenceView"
x:DataType="vm:PresenceViewModel">
<DockPanel Background="White">
<!-- Верхняя панель с DataGrid -->
<DataGrid Margin="10" ItemsSource="{Binding People}"
HorizontalAlignment="Center"
AutoGenerateColumns="True" IsReadOnly="True"
GridLinesVisibility="All"
BorderThickness="1" BorderBrush="Gray">
<Grid RowDefinitions="Auto, Auto, *, Auto" Margin="10">
<StackPanel Orientation="Horizontal" Grid.Row="0" Spacing="10">
<!-- Выбор группы -->
<ComboBox ItemsSource="{Binding Groups}" SelectedItem="{Binding SelectedGroup}" Width="200" PlaceholderText="Выберите группу">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<!-- Календарь -->
<Calendar SelectedDate="{Binding SelectedDate}" />
</StackPanel>
<!-- Таблица с посещаемостью -->
<DataGrid Grid.Row="2" AutoGenerateColumns="False" ItemsSource="{Binding AttendanceRecords}" CanUserSortColumns="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Дата" Binding="{Binding Date}" />
<DataGridTextColumn Header="Номер урока" Binding="{Binding LessonNumber}" />
<DataGridTextColumn Header="ФИО" Binding="{Binding UserGuid}" />
<!-- Тип посещаемости -->
<DataGridCheckBoxColumn Header="Тип посещаемости" Binding="{Binding IsAttedance, Mode=TwoWay}" />
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</Grid>
</UserControl>

View File

@ -9,6 +9,7 @@
"Presence.Desktop/1.0.0": {
"dependencies": {
"Avalonia": "11.2.1",
"Avalonia.Controls.DataGrid": "11.2.1",
"Avalonia.Desktop": "11.2.1",
"Avalonia.Diagnostics": "11.2.1",
"Avalonia.Fonts.Inter": "11.2.1",

View File

@ -1 +1 @@
7dfd2923929a2afbcc37aeba16ee71d47e8f217d4e735a1b3ceb5268557b85be
a23503c731f2ac5bd0780a18d1ceb2203d20d4d76ec277b7a6010b57655e4ca5

View File

@ -26,10 +26,10 @@ C:\Users\class_student\.nuget\packages\avalonia.x11\11.2.1\lib\net8.0\Avalonia.X
C:\Users\class_student\.nuget\packages\closedxml\0.104.1\lib\netstandard2.1\ClosedXML.dll
C:\Users\class_student\.nuget\packages\closedxml.parser\1.2.0\lib\netstandard2.1\ClosedXML.Parser.dll
C:\Users\class_student\.nuget\packages\csvhelper\33.0.1\lib\net8.0\CsvHelper.dll
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\ref\data.dll
C:\Users\class_student\Source\Repos\presence\data\obj\Debug\net8.0\ref\data.dll
C:\Users\class_student\.nuget\packages\documentformat.openxml\3.0.1\lib\net8.0\DocumentFormat.OpenXml.dll
C:\Users\class_student\.nuget\packages\documentformat.openxml.framework\3.0.1\lib\net8.0\DocumentFormat.OpenXml.Framework.dll
C:\Users\class_student\source\repos\presence\domain\obj\Debug\net8.0\ref\domain.dll
C:\Users\class_student\Source\Repos\presence\domain\obj\Debug\net8.0\ref\domain.dll
C:\Users\class_student\.nuget\packages\dynamicdata\8.4.1\lib\net8.0\DynamicData.dll
C:\Users\class_student\.nuget\packages\excelnumberformat\1.1.0\lib\netstandard2.0\ExcelNumberFormat.dll
C:\Users\class_student\.nuget\packages\harfbuzzsharp\7.3.0.2\lib\net6.0\HarfBuzzSharp.dll

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Presence.Desktop")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a3e8920712739903c1b67511a152f4a0e9ba6b2e")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2f8555b2c8df89129a4c5e0ba9006f4e6aa83291")]
[assembly: System.Reflection.AssemblyProductAttribute("Presence.Desktop")]
[assembly: System.Reflection.AssemblyTitleAttribute("Presence.Desktop")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
445af2288a0f282aea641ef6a964c4c3461039de3f45a9d7cf9b4c334978653a
a857411128b7f1ee85bd916d7df4714983b1177b19fa46c98ed8473db3503e1a

View File

@ -15,21 +15,21 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Presence.Desktop
build_property.ProjectDir = C:\Users\class_student\source\repos\presence\Presence.Desktop\
build_property.ProjectDir = C:\Users\class_student\Source\Repos\presence\Presence.Desktop\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
[C:/Users/class_student/source/repos/presence/Presence.Desktop/App.axaml]
[C:/Users/class_student/Source/Repos/presence/Presence.Desktop/App.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[C:/Users/class_student/source/repos/presence/Presence.Desktop/Views/EditUserDialog.axaml]
[C:/Users/class_student/Source/Repos/presence/Presence.Desktop/Views/EditUserDialog.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[C:/Users/class_student/source/repos/presence/Presence.Desktop/Views/GroupView.axaml]
[C:/Users/class_student/Source/Repos/presence/Presence.Desktop/Views/GroupView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[C:/Users/class_student/source/repos/presence/Presence.Desktop/Views/MainWindow.axaml]
[C:/Users/class_student/Source/Repos/presence/Presence.Desktop/Views/MainWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[C:/Users/class_student/source/repos/presence/Presence.Desktop/Views/PresenceView.axaml]
[C:/Users/class_student/Source/Repos/presence/Presence.Desktop/Views/PresenceView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml

View File

@ -1 +1 @@
8e1b871b1ae947cf23b6fe825f00035e68e17dd875e1e987c19e2e34b885cbb6
4c7d244a72da5abe5fc2a78fe640148bcc1fbed46eeced5201782d0eaaf96e80

View File

@ -1,17 +1,17 @@
{
"format": 1,
"restore": {
"C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj": {}
"C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj": {}
},
"projects": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -84,14 +84,14 @@
}
}
},
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"projectName": "domain",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -112,8 +112,8 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj"
}
}
}
@ -158,14 +158,14 @@
}
}
},
"C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"projectName": "Presence.Desktop",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -186,11 +186,11 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj"
},
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj"
}
}
}
@ -214,6 +214,10 @@
"target": "Package",
"version": "[11.2.1, )"
},
"Avalonia.Controls.DataGrid": {
"target": "Package",
"version": "[11.2.1, )"
},
"Avalonia.Desktop": {
"target": "Package",
"version": "[11.2.1, )"

View File

@ -2797,6 +2797,7 @@
"projectFileDependencyGroups": {
"net8.0": [
"Avalonia >= 11.2.1",
"Avalonia.Controls.DataGrid >= 11.2.1",
"Avalonia.Desktop >= 11.2.1",
"Avalonia.Diagnostics >= 11.2.1",
"Avalonia.Fonts.Inter >= 11.2.1",
@ -2815,11 +2816,11 @@
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"projectName": "Presence.Desktop",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -2840,11 +2841,11 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj"
},
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj"
}
}
}
@ -2868,6 +2869,10 @@
"target": "Package",
"version": "[11.2.1, )"
},
"Avalonia.Controls.DataGrid": {
"target": "Package",
"version": "[11.2.1, )"
},
"Avalonia.Desktop": {
"target": "Package",
"version": "[11.2.1, )"

View File

@ -1,8 +1,8 @@
{
"version": 2,
"dgSpecHash": "S9m3q8B/DtB2gOSOHvNFQBsFeDxgKkGvx6DjgxvLG3zrKWOZd2ToZyA875yLI7RIavDPanPOf/MFiRMMmz9yGQ==",
"dgSpecHash": "qbNxlkdZP9GePy6ahF4xRVr4t+hV5j0ZKhTKwRrnKXaH6vNID+aQq92djy1j+2Q7pcZVeU5Y/IoL1L7lmtM6gw==",
"success": true,
"projectFilePath": "C:\\Users\\class_student\\source\\repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"projectFilePath": "C:\\Users\\class_student\\Source\\Repos\\presence\\Presence.Desktop\\Presence.Desktop.csproj",
"expectedPackageFiles": [
"C:\\Users\\class_student\\.nuget\\packages\\avalonia\\11.2.1\\avalonia.11.2.1.nupkg.sha512",
"C:\\Users\\class_student\\.nuget\\packages\\avalonia.angle.windows.natives\\2.1.22045.20230930\\avalonia.angle.windows.natives.2.1.22045.20230930.nupkg.sha512",

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("console_ui")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a3e8920712739903c1b67511a152f4a0e9ba6b2e")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2f8555b2c8df89129a4c5e0ba9006f4e6aa83291")]
[assembly: System.Reflection.AssemblyProductAttribute("console_ui")]
[assembly: System.Reflection.AssemblyTitleAttribute("console_ui")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
4b8e74fc32091abc29c5af647acb5dee706c95435510ee47553b54c489eaadd1
473f060aeb3d21ddc39e0981ee571267556b6d8ce706278ea26d57fdc64e78ac

View File

@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = console_ui
build_property.ProjectDir = C:\Users\class_student\source\repos\presence\console_ui\
build_property.ProjectDir = C:\Users\class_student\Source\Repos\presence\console_ui\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -1 +1 @@
26d3e230181239da2f5c0ec50a011c8201532e8bf41b8953993ac55370a1416f
0f75281e4866378625f56e61d7576f6f9cd38f2cdb7d10445496448d11c7a7d2

View File

@ -1,17 +1,17 @@
{
"format": 1,
"restore": {
"C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\console_ui.csproj": {}
"C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\console_ui.csproj": {}
},
"projects": {
"C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\console_ui.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\console_ui.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\console_ui.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\console_ui.csproj",
"projectName": "console_ui",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\console_ui.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\console_ui.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -32,14 +32,14 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj"
},
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj"
},
"C:\\Users\\class_student\\source\\repos\\presence\\ui\\ui.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\ui\\ui.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\ui\\ui.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\ui\\ui.csproj"
}
}
}
@ -92,14 +92,14 @@
}
}
},
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -172,14 +172,14 @@
}
}
},
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"projectName": "domain",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -200,8 +200,8 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj"
}
}
}
@ -246,14 +246,14 @@
}
}
},
"C:\\Users\\class_student\\source\\repos\\presence\\ui\\ui.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\ui\\ui.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\ui\\ui.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\ui\\ui.csproj",
"projectName": "ui",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\ui\\ui.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\ui\\ui.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\ui\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\ui\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -274,8 +274,8 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj"
}
}
}

View File

@ -1062,11 +1062,11 @@
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\console_ui.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\console_ui.csproj",
"projectName": "console_ui",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\console_ui.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\console_ui.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -1087,14 +1087,14 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj"
},
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj"
},
"C:\\Users\\class_student\\source\\repos\\presence\\ui\\ui.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\ui\\ui.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\ui\\ui.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\ui\\ui.csproj"
}
}
}

View File

@ -1,8 +1,8 @@
{
"version": 2,
"dgSpecHash": "8SnqRBoHTrXC6zNRgD35iWqKQFrMMB1xnQ0tZsRXiQnDkKksHZdiEnJsZgKSiOtjn3nAN28hgxy0Jfv7jHYl4g==",
"dgSpecHash": "yfJCYMI2ah3sfp2aK6Ke6ce9kWJKxkrL993rMZ5hRfO/n/HG67U+7imrDbnyVEbFgC9j14ziYrduCNKKBW5lDw==",
"success": true,
"projectFilePath": "C:\\Users\\class_student\\source\\repos\\presence\\console_ui\\console_ui.csproj",
"projectFilePath": "C:\\Users\\class_student\\Source\\Repos\\presence\\console_ui\\console_ui.csproj",
"expectedPackageFiles": [
"C:\\Users\\class_student\\.nuget\\packages\\closedxml\\0.104.1\\closedxml.0.104.1.nupkg.sha512",
"C:\\Users\\class_student\\.nuget\\packages\\closedxml.parser\\1.2.0\\closedxml.parser.1.2.0.nupkg.sha512",

View File

@ -8,11 +8,15 @@ namespace domain.Models
{
public class PresenceLocalEntity
{
public int Id { get; set; }
public Guid UserGuid { get; set; }
public int GroupId { get; set; }
public int LessonNumber { get; set; }
public DateTime Date { get; set; }
public bool IsAttedance { get; set; }
}
}

View File

@ -17,7 +17,7 @@ namespace data.Repository
void MarkUserAsAbsent(Guid userGuid, int firstLessonNumber, int lastLessonNumber);
void AddPresence(PresenceLocalEntity presence);
List<PresenceDao> GetAttendanceByGroup(int groupId);
void UpdateAttendance(PresenceLocalEntity attendance);
void ClearAllPresence();
}

View File

@ -219,5 +219,25 @@ namespace data.Repository
_remoteDatabaseContext.SaveChanges();
}
public void UpdateAttendance(PresenceLocalEntity attendance)
{
if (attendance == null)
throw new ArgumentNullException(nameof(attendance));
// Ищем запись в базе данных по идентификатору
var existingAttendance = _remoteDatabaseContext.PresenceDaos
.FirstOrDefault(p => p.Id == attendance.Id);
if (existingAttendance != null)
{
// Обновляем запись
existingAttendance.IsAttedance = attendance.IsAttedance;
_remoteDatabaseContext.SaveChanges();
}
else
{
throw new InvalidOperationException("Запись с указанным ID не найдена.");
}
}
}
}

Binary file not shown.

Binary file not shown.

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("data")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a3e8920712739903c1b67511a152f4a0e9ba6b2e")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2f8555b2c8df89129a4c5e0ba9006f4e6aa83291")]
[assembly: System.Reflection.AssemblyProductAttribute("data")]
[assembly: System.Reflection.AssemblyTitleAttribute("data")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
f23e71fea1d443c315d6f97457243328d8b36eecffab88e692255a6d746dfd08
462565a6fb6914920f9b07589cc0ec03c2d49766f526a7fde2ad10aba08b4113

View File

@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = data
build_property.ProjectDir = C:\Users\class_student\source\repos\presence\data\
build_property.ProjectDir = C:\Users\class_student\Source\Repos\presence\data\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

Binary file not shown.

View File

@ -1 +1 @@
b84345f992d3666be6b0e025aa74afc1a71aca079d190d689c0864402727cdd0
ad0a4479b59a7ef873597a5be47af04d30bf61b8a15ec5b82893655c935f039d

Binary file not shown.

Binary file not shown.

View File

@ -1,17 +1,17 @@
{
"format": 1,
"restore": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {}
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {}
},
"projects": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"

View File

@ -1,8 +1,8 @@
{
"version": 2,
"dgSpecHash": "dq+xJQNSo82BcvI1YOEsRM5SyN3J419X1oAn1yZywg6ptvxskzy0YvsVYIchdWZwskiwWAGbewHiRF0FFD64Gg==",
"dgSpecHash": "dBPobGZbW4jKftpopDdOdvwpbzROWoiPzYBMGL/hXvUgdi/u/sEl0RkoQlrjuHoJDOWHTVpRo8RBVk4zjt8Z3g==",
"success": true,
"projectFilePath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectFilePath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"expectedPackageFiles": [
"C:\\Users\\class_student\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
"C:\\Users\\class_student\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512",

View File

@ -186,6 +186,11 @@ namespace domain.UseCase
_presenceRepository.ClearAllPresence();
}
public void UpdateAttendance(PresenceLocalEntity attendance)
{
_presenceRepository.UpdateAttendance(attendance);
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("domain")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a3e8920712739903c1b67511a152f4a0e9ba6b2e")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2f8555b2c8df89129a4c5e0ba9006f4e6aa83291")]
[assembly: System.Reflection.AssemblyProductAttribute("domain")]
[assembly: System.Reflection.AssemblyTitleAttribute("domain")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
17504c0919a17856cddae5775c6a234bc8ca3a3ce14a57edaa7ad3b51d74606d
8f649d08ce77824aa544393cb6a227470dca9cbbeab997e1a3b6842e297ef716

View File

@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = domain
build_property.ProjectDir = C:\Users\class_student\source\repos\presence\domain\
build_property.ProjectDir = C:\Users\class_student\Source\Repos\presence\domain\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

Binary file not shown.

Binary file not shown.

View File

@ -1,17 +1,17 @@
{
"format": 1,
"restore": {
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {}
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {}
},
"projects": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -84,14 +84,14 @@
}
}
},
"C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj": {
"C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"projectName": "domain",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -112,8 +112,8 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj"
}
}
}

View File

@ -1025,11 +1025,11 @@
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectUniqueName": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"projectName": "domain",
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"packagesPath": "C:\\Users\\class_student\\.nuget\\packages\\",
"outputPath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\obj\\",
"outputPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
@ -1050,8 +1050,8 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\source\\repos\\presence\\data\\data.csproj"
"C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\class_student\\Source\\Repos\\presence\\data\\data.csproj"
}
}
}

View File

@ -1,8 +1,8 @@
{
"version": 2,
"dgSpecHash": "lJTJ14wBwjXFnaVaxoabnlDogMX3Sp0lQVlqyaedGyWhAz5YJhifXah8drXyM7t4sf35FH72dxhiyf+6Qi+IXA==",
"dgSpecHash": "huTb6uPnY4Oy6459ePz3VJW91KIPhP3IHAaAETusVV7WDseLI/x2QkHrEeLo/1s2QMdcVBzKbOVfAT7f8Vi3Cw==",
"success": true,
"projectFilePath": "C:\\Users\\class_student\\source\\repos\\presence\\domain\\domain.csproj",
"projectFilePath": "C:\\Users\\class_student\\Source\\Repos\\presence\\domain\\domain.csproj",
"expectedPackageFiles": [
"C:\\Users\\class_student\\.nuget\\packages\\closedxml\\0.104.1\\closedxml.0.104.1.nupkg.sha512",
"C:\\Users\\class_student\\.nuget\\packages\\closedxml.parser\\1.2.0\\closedxml.parser.1.2.0.nupkg.sha512",

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("presence_api")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a3e8920712739903c1b67511a152f4a0e9ba6b2e")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2f8555b2c8df89129a4c5e0ba9006f4e6aa83291")]
[assembly: System.Reflection.AssemblyProductAttribute("presence_api")]
[assembly: System.Reflection.AssemblyTitleAttribute("presence_api")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

Some files were not shown because too many files have changed in this diff Show More