commit
680038c081
@ -10,7 +10,7 @@ namespace Demo.Data.RemoteData.RemoteDataBase.DAO
|
|||||||
public class GroupDao
|
public class GroupDao
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public required string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public List<UserDao> Users { get; set; }
|
public List<UserDao> Users { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,11 @@ namespace Demo.Data.RemoteData.RemoteDataBase.DAO
|
|||||||
{
|
{
|
||||||
public class PresenceDao
|
public class PresenceDao
|
||||||
{
|
{
|
||||||
|
public int PresenceId { get; set; }
|
||||||
public int UserId { get; set; }
|
public int UserId { get; set; }
|
||||||
public bool IsAttedance { get; set; } = true;
|
public bool IsAttedance { get; set; } = true;
|
||||||
public DateOnly Date { get; set; }
|
public DateOnly Date { get; set; }
|
||||||
public int LessonNumber { get; set; }
|
public int LessonNumber { get; set; }
|
||||||
public UserDao UserDao { get; set; }
|
|
||||||
public int GroupId { get; set; }
|
public int GroupId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,8 @@ namespace Demo.Data.RemoteData.RemoteDataBase.DAO
|
|||||||
public class UserDao
|
public class UserDao
|
||||||
{
|
{
|
||||||
public required string FIO { get; set; }
|
public required string FIO { get; set; }
|
||||||
public int UserId { get; set; }
|
public required int UserId { get; set; }
|
||||||
public required int GroupId { get; set; }
|
public required int GroupId { get; set; }
|
||||||
public GroupDao Group { get; set; }
|
public GroupDao? Group { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ namespace Demo.Data.RemoteData.RemoteDataBase
|
|||||||
|
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||||
{
|
{
|
||||||
optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=postgres;Username=postgres;Password=123");
|
optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=presencedb;Username=postgres;Password=123;Include Error Detail=True;");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
@ -27,13 +27,8 @@ namespace Demo.Data.RemoteData.RemoteDataBase
|
|||||||
modelBuilder.Entity<GroupDao>().Property(group => group.Id).ValueGeneratedOnAdd();
|
modelBuilder.Entity<GroupDao>().Property(group => group.Id).ValueGeneratedOnAdd();
|
||||||
modelBuilder.Entity<UserDao>().HasKey(user=>user.UserId);
|
modelBuilder.Entity<UserDao>().HasKey(user=>user.UserId);
|
||||||
modelBuilder.Entity<UserDao>().Property(user=>user.UserId).ValueGeneratedOnAdd();
|
modelBuilder.Entity<UserDao>().Property(user=>user.UserId).ValueGeneratedOnAdd();
|
||||||
modelBuilder.Entity<PresenceDao>().HasKey(presence => new
|
modelBuilder.Entity<PresenceDao>().HasKey(presence =>presence.PresenceId);
|
||||||
{
|
modelBuilder.Entity<PresenceDao>().Property(presence=>presence.PresenceId).ValueGeneratedOnAdd();
|
||||||
presence.UserId,
|
|
||||||
presence.Date,
|
|
||||||
presence.IsAttedance,
|
|
||||||
presence.LessonNumber
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,11 +53,6 @@ public class GroupRepositoryImpl: IGroupRepository
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IGroupRepository.RemoveGroupById(int groupID)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
List<GroupDao> IGroupRepository.GetAllGroups()
|
List<GroupDao> IGroupRepository.GetAllGroups()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
@ -11,7 +11,6 @@ namespace Demo.Data.Repository
|
|||||||
public interface IGroupRepository
|
public interface IGroupRepository
|
||||||
{
|
{
|
||||||
List<GroupDao> GetAllGroups();
|
List<GroupDao> GetAllGroups();
|
||||||
bool RemoveGroupById(int groupID);
|
|
||||||
bool UpdateGroupById(int groupID, GroupDao updatedGroup);
|
bool UpdateGroupById(int groupID, GroupDao updatedGroup);
|
||||||
GroupDao GetGroupById(int groupID);
|
GroupDao GetGroupById(int groupID);
|
||||||
bool AddGroup(string Name);
|
bool AddGroup(string Name);
|
||||||
|
@ -15,5 +15,7 @@ namespace Demo.Data.Repository
|
|||||||
List<PresenceDao> GetPresenceByDateAndGroup(DateTime date, int groupId);
|
List<PresenceDao> GetPresenceByDateAndGroup(DateTime date, int groupId);
|
||||||
void SavePresence(List<PresenceDao> presences);
|
void SavePresence(List<PresenceDao> presences);
|
||||||
List<PresenceDao> GetPresenceByGroup(int groupId);
|
List<PresenceDao> GetPresenceByGroup(int groupId);
|
||||||
|
DateOnly? GetLastDateByGroupId(int groupId);
|
||||||
|
List<PresenceDao> GetPresenceForAbsent(DateTime date, int GroupId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ namespace Demo.Data.Repository
|
|||||||
{
|
{
|
||||||
public interface IUserRepository
|
public interface IUserRepository
|
||||||
{
|
{
|
||||||
IEnumerable<UserDao> GetAllUsers { get; }
|
List<UserDao> GetAllUsers();
|
||||||
bool RemoveUserById(int userId);
|
bool RemoveUserById(int userId);
|
||||||
UserDao? UpdateUser(UserDao user);
|
UserDao? UpdateUser(UserDao user);
|
||||||
}
|
}
|
||||||
|
@ -47,5 +47,7 @@ namespace Demo.Data.Repository
|
|||||||
{
|
{
|
||||||
return _presences.Where(p => p.GroupId == groupId).ToList();
|
return _presences.Where(p => p.GroupId == groupId).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,13 @@
|
|||||||
using Demo.Data.RemoteData.RemoteDataBase;
|
using Demo.Data.RemoteData.RemoteDataBase;
|
||||||
using Demo.Data.RemoteData.RemoteDataBase.DAO;
|
using Demo.Data.RemoteData.RemoteDataBase.DAO;
|
||||||
using Demo.domain.Models;
|
using Demo.domain.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Demo.Data.Repository
|
namespace Demo.Data.Repository
|
||||||
@ -18,7 +21,10 @@ namespace Demo.Data.Repository
|
|||||||
{
|
{
|
||||||
_remoteDatabaseContext = remoteDatabaseContext;
|
_remoteDatabaseContext = remoteDatabaseContext;
|
||||||
}
|
}
|
||||||
|
public List<PresenceDao> GetPresenceForAbsent(DateTime date, int GroupId)
|
||||||
|
{
|
||||||
|
return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == GroupId && p.Date==DateOnly.FromDateTime(date)).ToList();
|
||||||
|
}
|
||||||
public List<PresenceDao> GetPresenceByDateAndGroup(DateTime date, int groupId)
|
public List<PresenceDao> GetPresenceByDateAndGroup(DateTime date, int groupId)
|
||||||
{
|
{
|
||||||
return _remoteDatabaseContext.PresenceDaos.Where(p => p.Date == DateOnly.FromDateTime(date) &&
|
return _remoteDatabaseContext.PresenceDaos.Where(p => p.Date == DateOnly.FromDateTime(date) &&
|
||||||
@ -28,31 +34,33 @@ namespace Demo.Data.Repository
|
|||||||
// Реализация метода для получения всех данных по группе
|
// Реализация метода для получения всех данных по группе
|
||||||
public List<PresenceDao> GetPresenceByGroup(int groupId)
|
public List<PresenceDao> GetPresenceByGroup(int groupId)
|
||||||
{
|
{
|
||||||
foreach (var user in _remoteDatabaseContext.PresenceDaos)
|
|
||||||
{
|
|
||||||
Console.WriteLine(user);
|
|
||||||
}
|
|
||||||
return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == groupId).ToList();
|
return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == groupId).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SavePresence(List<PresenceDao> presences)
|
public void SavePresence(List<PresenceDao> presences)
|
||||||
{
|
{
|
||||||
foreach (var presence in presences)
|
_remoteDatabaseContext.PresenceDaos.AddRange(presences.Select(it => new PresenceDao
|
||||||
{
|
{
|
||||||
var existingPresence = _remoteDatabaseContext.PresenceDaos.FirstOrDefault(p =>
|
Date = it.Date,
|
||||||
p.UserId == presence.UserId &&
|
IsAttedance = it.IsAttedance,
|
||||||
p.Date == presence.Date &&
|
LessonNumber = it.LessonNumber,
|
||||||
p.LessonNumber == presence.LessonNumber);
|
UserId = it.UserId,
|
||||||
|
GroupId = it.GroupId
|
||||||
|
}));
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
if (existingPresence == null)
|
public DateOnly? GetLastDateByGroupId(int groupId)
|
||||||
{
|
{
|
||||||
_remoteDatabaseContext.PresenceDaos.Add(presence);
|
// Проверяем наличие записей о посещаемости в базе данных для данной группы.
|
||||||
}
|
var lastDate = _remoteDatabaseContext.PresenceDaos
|
||||||
else
|
.Where(p => p.GroupId == groupId)
|
||||||
{
|
.OrderByDescending(p => p.Date)
|
||||||
existingPresence.IsAttedance = presence.IsAttedance;
|
.Select(p => p.Date)
|
||||||
}
|
.FirstOrDefault();
|
||||||
}
|
|
||||||
|
return lastDate == default ? (DateOnly?)null : lastDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,8 +18,6 @@ namespace Demo.Data.Repository
|
|||||||
_remoteDatabaseContext = remoteDatabaseContext;
|
_remoteDatabaseContext = remoteDatabaseContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<UserDao> GetAllUsers => _remoteDatabaseContext.Users;
|
|
||||||
|
|
||||||
public bool RemoveUserById(int userId)
|
public bool RemoveUserById(int userId)
|
||||||
{
|
{
|
||||||
var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == userId);
|
var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == userId);
|
||||||
@ -34,10 +32,18 @@ namespace Demo.Data.Repository
|
|||||||
var existingUser = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == user.UserId);
|
var existingUser = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == user.UserId);
|
||||||
if (existingUser == null) throw new UserNotFoundException(user.UserId);
|
if (existingUser == null) throw new UserNotFoundException(user.UserId);
|
||||||
|
|
||||||
|
// Обновляем поля существующего пользователя
|
||||||
existingUser.FIO = user.FIO;
|
existingUser.FIO = user.FIO;
|
||||||
existingUser.GroupId = user.GroupId;
|
existingUser.GroupId = user.GroupId;
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
|
||||||
return existingUser;
|
return existingUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<UserDao> GetAllUsers()
|
||||||
|
{
|
||||||
|
// Возвращаем пользователей, отсортированных по UserId
|
||||||
|
return _remoteDatabaseContext.Users.OrderBy(u => u.UserId).ToList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,17 +29,6 @@ namespace Demo.Data.Repository
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserLocalEnity? UpdateUser(UserLocalEnity user)
|
|
||||||
{
|
|
||||||
var existingUser = _users.FirstOrDefault(u => u.ID == user.ID);
|
|
||||||
if (existingUser == null) throw new UserNotFoundException(user.ID);
|
|
||||||
|
|
||||||
existingUser.FIO = user.FIO;
|
|
||||||
existingUser.GroupID = user.GroupID;
|
|
||||||
|
|
||||||
return existingUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UserDao? UpdateUser(UserDao user)
|
public UserDao? UpdateUser(UserDao user)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Data\RemoteData\RemoteApi\" />
|
<Folder Include="Data\RemoteData\RemoteApi\" />
|
||||||
|
<Folder Include="Migrations\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -13,7 +13,6 @@ namespace Demo.domain.Models
|
|||||||
public required int GroupId { get; set; }
|
public required int GroupId { get; set; }
|
||||||
public bool IsAttedance { get; set; } = true;
|
public bool IsAttedance { get; set; } = true;
|
||||||
public required DateTime Date { get; set; }
|
public required DateTime Date { get; set; }
|
||||||
|
|
||||||
public required int LessonNumber { get; set; }
|
public required int LessonNumber { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,26 +91,6 @@ namespace Demo.Domain.UseCase
|
|||||||
_repositoryGroupImpl.AddGroup(newGroup.Name);
|
_repositoryGroupImpl.AddGroup(newGroup.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveGroupById(int groupId)
|
|
||||||
{
|
|
||||||
ValidateGroupId(groupId);
|
|
||||||
var existingGroup = ValidateGroupExistence(groupId);
|
|
||||||
List<Group> _groups = GetAllGroups();
|
|
||||||
|
|
||||||
// Находим группу по ID и удаляем ее
|
|
||||||
var groupToRemove = _groups.FirstOrDefault(g => g.Id == existingGroup.Id);
|
|
||||||
if (groupToRemove != null)
|
|
||||||
{
|
|
||||||
_groups.Remove(groupToRemove);
|
|
||||||
_repositoryGroupImpl.RemoveGroupById(existingGroup.Id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new ArgumentException("Группа не найдена.");
|
|
||||||
// Обработка случая, если группа не найдена (например, выброс исключения)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Метод для изменения названия группы
|
// Метод для изменения названия группы
|
||||||
public void UpdateGroup(int groupId, string newGroupName)
|
public void UpdateGroup(int groupId, string newGroupName)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using Demo.Data.RemoteData.RemoteDataBase.DAO;
|
using Demo.Data.RemoteData.RemoteDataBase.DAO;
|
||||||
using Demo.Data.Repository;
|
using Demo.Data.Repository;
|
||||||
using Demo.domain.Models;
|
using Demo.domain.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -14,6 +15,7 @@ namespace Demo.Domain.UseCase
|
|||||||
public readonly IUserRepository _userRepository;
|
public readonly IUserRepository _userRepository;
|
||||||
public readonly IPresenceRepository _presenceRepository;
|
public readonly IPresenceRepository _presenceRepository;
|
||||||
|
|
||||||
|
|
||||||
public UseCaseGeneratePresence(IUserRepository userRepository, IPresenceRepository presenceRepository)
|
public UseCaseGeneratePresence(IUserRepository userRepository, IPresenceRepository presenceRepository)
|
||||||
{
|
{
|
||||||
_userRepository = userRepository;
|
_userRepository = userRepository;
|
||||||
@ -28,33 +30,65 @@ namespace Demo.Domain.UseCase
|
|||||||
return _presenceRepository.GetPresenceByDateAndGroup(date, groupId);
|
return _presenceRepository.GetPresenceByDateAndGroup(date, groupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GeneratePresenceDaily(int firstLesson, int lastLesson, int groupId, DateTime currentDate)
|
public void GeneratePresenceDaily(int firstLesson, int lastLesson, int groupId)
|
||||||
{
|
{
|
||||||
var users = _userRepository.GetAllUsers.Where(u => u.GroupId == groupId).ToList();
|
try
|
||||||
|
{
|
||||||
|
var users = _userRepository.GetAllUsers().Where(u => u.GroupId == groupId).ToList();
|
||||||
|
|
||||||
|
// Находим последнюю дату посещаемости для данной группы
|
||||||
|
DateOnly startDate = _presenceRepository.GetLastDateByGroupId(groupId)?.AddDays(1)
|
||||||
|
?? DateOnly.FromDateTime(DateTime.Today);
|
||||||
|
|
||||||
List<PresenceDao> presences = new List<PresenceDao>();
|
List<PresenceDao> presences = new List<PresenceDao>();
|
||||||
for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++)
|
for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++)
|
||||||
{
|
{
|
||||||
foreach (var user in users)
|
foreach (var user in users)
|
||||||
{
|
{
|
||||||
presences.Add(new PresenceDao
|
var presence = new PresenceDao
|
||||||
{
|
{
|
||||||
UserId = user.UserId,
|
UserId = user.UserId,
|
||||||
GroupId = user.GroupId,
|
GroupId = user.GroupId,
|
||||||
Date = DateOnly.FromDateTime(currentDate),
|
Date = startDate,
|
||||||
LessonNumber = lessonNumber,
|
LessonNumber = lessonNumber,
|
||||||
IsAttedance = true
|
IsAttedance = true
|
||||||
});
|
};
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_presenceRepository.SavePresence(new List<PresenceDao> { presence });
|
||||||
|
Console.WriteLine($"Посещаемость добавлена для UserId = {user.UserId}, LessonNumber = {lessonNumber} на дату {startDate}");
|
||||||
}
|
}
|
||||||
_presenceRepository.SavePresence(presences);
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Ошибка при добавлении посещаемости для UserId = {user.UserId}: {ex.Message}");
|
||||||
|
if (ex.InnerException != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Inner exception: {ex.InnerException.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Ошибка при генерации посещаемости: {ex.Message}");
|
||||||
|
if (ex.InnerException != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Inner exception: {ex.InnerException.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void GenerateWeeklyPresence(int firstLesson, int lastLesson, int groupId, DateTime startTime)
|
public void GenerateWeeklyPresence(int firstLesson, int lastLesson, int groupId, DateTime startTime)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 7; i++)
|
for (int i = 0; i < 7; i++)
|
||||||
{
|
{
|
||||||
DateTime currentTime = startTime.AddDays(i);
|
DateTime currentTime = startTime.AddDays(i);
|
||||||
GeneratePresenceDaily(firstLesson, lastLesson, groupId, currentTime);
|
GeneratePresenceDaily(firstLesson, lastLesson, groupId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,24 +97,26 @@ namespace Demo.Domain.UseCase
|
|||||||
// Отметить пользователя как отсутствующего на диапазоне занятий
|
// Отметить пользователя как отсутствующего на диапазоне занятий
|
||||||
public void MarkUserAbsentForLessons(int userId, int groupId, int firstLesson, int lastLesson, DateTime date)
|
public void MarkUserAbsentForLessons(int userId, int groupId, int firstLesson, int lastLesson, DateTime date)
|
||||||
{
|
{
|
||||||
var presences = _presenceRepository.GetPresenceByDateAndGroup(date, groupId);
|
List<PresenceDao> presences = _presenceRepository.GetPresenceForAbsent(date, groupId);
|
||||||
|
|
||||||
|
// Обновляем состояние присутствия для указанных занятий
|
||||||
foreach (var presence in presences.Where(p => p.UserId == userId && p.LessonNumber >= firstLesson && p.LessonNumber <= lastLesson))
|
foreach (var presence in presences.Where(p => p.UserId == userId && p.LessonNumber >= firstLesson && p.LessonNumber <= lastLesson))
|
||||||
{
|
{
|
||||||
presence.IsAttedance = false;
|
presence.IsAttedance = false; // Устанавливаем отсутствие
|
||||||
|
Console.WriteLine($"PresenceId: {presence.PresenceId}, UserId: {presence.UserId}, Lesson Num: {presence.LessonNumber}, Att: {presence.IsAttedance}");
|
||||||
}
|
}
|
||||||
|
// Сохраняем изменения в репозитории
|
||||||
_presenceRepository.SavePresence(presences);
|
_presenceRepository.SavePresence(presences);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<PresenceDao> GetAllPresenceByGroup(int groupId)
|
public List<PresenceDao> GetAllPresenceByGroup(int groupId)
|
||||||
{
|
{
|
||||||
|
|
||||||
return _presenceRepository.GetPresenceByGroup(groupId);
|
return _presenceRepository.GetPresenceByGroup(groupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ namespace Demo.Domain.UseCase
|
|||||||
// Приватный метод для валидации существования пользователя по ID
|
// Приватный метод для валидации существования пользователя по ID
|
||||||
private UserDao ValidateUserExistence(int userId)
|
private UserDao ValidateUserExistence(int userId)
|
||||||
{
|
{
|
||||||
var user = _repositoryUserImpl.GetAllUsers
|
var user = _repositoryUserImpl.GetAllUsers()
|
||||||
.FirstOrDefault(u => u.UserId == userId);
|
.FirstOrDefault(u => u.UserId == userId);
|
||||||
|
|
||||||
if (user == null)
|
if (user == null)
|
||||||
@ -54,11 +54,11 @@ namespace Demo.Domain.UseCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Вывести всех пользователей
|
// Вывести всех пользователей
|
||||||
public List<User> GetAllUsers() => _repositoryUserImpl.GetAllUsers
|
public List<User> GetAllUsers() => _repositoryUserImpl.GetAllUsers()
|
||||||
.Join(_repositoryGroupImpl.GetAllGroups(),
|
.Join(_repositoryGroupImpl.GetAllGroups(),
|
||||||
user => user.GroupId,
|
user => user.GroupId, // Ключ для пользователей
|
||||||
group => group.Id,
|
group => group.Id, // Ключ для групп
|
||||||
(user, group) =>
|
(user, group) => // Результирующий объект
|
||||||
new User
|
new User
|
||||||
{
|
{
|
||||||
ID = user.UserId,
|
ID = user.UserId,
|
||||||
@ -86,15 +86,16 @@ namespace Demo.Domain.UseCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Обновить пользователя по id
|
// Обновить пользователя по id
|
||||||
public User UpdateUser(User user)
|
public UserDao UpdateUser(UserDao user)
|
||||||
{
|
{
|
||||||
ValidateUserFIO(user.FIO);
|
ValidateUserFIO(user.FIO);
|
||||||
ValidateGroupExistence(user.Group.Id);
|
ValidateGroupExistence(user.GroupId);
|
||||||
|
|
||||||
UserDao userDao = new UserDao
|
UserDao userDao = new UserDao
|
||||||
{
|
{
|
||||||
|
UserId = user.UserId,
|
||||||
FIO = user.FIO,
|
FIO = user.FIO,
|
||||||
GroupId = user.Group.Id
|
GroupId = user.GroupId
|
||||||
};
|
};
|
||||||
|
|
||||||
UserDao? result = _repositoryUserImpl.UpdateUser(userDao);
|
UserDao? result = _repositoryUserImpl.UpdateUser(userDao);
|
||||||
@ -106,27 +107,26 @@ namespace Demo.Domain.UseCase
|
|||||||
|
|
||||||
var groupEntity = ValidateGroupExistence(result.GroupId);
|
var groupEntity = ValidateGroupExistence(result.GroupId);
|
||||||
|
|
||||||
return new User
|
return new UserDao
|
||||||
{
|
{
|
||||||
|
UserId=user.UserId,
|
||||||
FIO = result.FIO,
|
FIO = result.FIO,
|
||||||
Group = new Group
|
GroupId = result.GroupId
|
||||||
{
|
|
||||||
Id = groupEntity.Id,
|
|
||||||
Name = groupEntity.Name
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Найти пользователя по id
|
// Найти пользователя по id
|
||||||
public User FindUserById(int userId)
|
public UserDao FindUserById(int userId)
|
||||||
{
|
{
|
||||||
var user = ValidateUserExistence(userId);
|
var user = ValidateUserExistence(userId);
|
||||||
var group = ValidateGroupExistence(user.GroupId);
|
var group = ValidateGroupExistence(user.GroupId);
|
||||||
|
|
||||||
return new User
|
return new UserDao
|
||||||
{
|
{
|
||||||
|
UserId = user.UserId,
|
||||||
FIO = user.FIO,
|
FIO = user.FIO,
|
||||||
Group = new Group { Id = group.Id, Name = group.Name }
|
GroupId = group.Id
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
113
Demo/Migrations/20241101064613_InitialMigration.Designer.cs
generated
Normal file
113
Demo/Migrations/20241101064613_InitialMigration.Designer.cs
generated
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
using System;
|
||||||
|
using Demo.Data.RemoteData.RemoteDataBase;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Demo.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(RemoteDatabaseContext))]
|
||||||
|
[Migration("20241101064613_InitialMigration")]
|
||||||
|
partial class InitialMigration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "8.0.10")
|
||||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||||
|
|
||||||
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.GroupDao", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Groups");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("PresenceId")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("PresenceId"));
|
||||||
|
|
||||||
|
b.Property<DateOnly>("Date")
|
||||||
|
.HasColumnType("date");
|
||||||
|
|
||||||
|
b.Property<int>("GroupId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<bool>("IsAttedance")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<int>("LessonNumber")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<int>("UserId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.HasKey("PresenceId");
|
||||||
|
|
||||||
|
b.ToTable("PresenceDaos");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("UserId")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("UserId"));
|
||||||
|
|
||||||
|
b.Property<string>("FIO")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<int>("GroupId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.HasKey("UserId");
|
||||||
|
|
||||||
|
b.HasIndex("GroupId");
|
||||||
|
|
||||||
|
b.ToTable("Users");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Demo.Data.RemoteData.RemoteDataBase.DAO.GroupDao", "Group")
|
||||||
|
.WithMany("Users")
|
||||||
|
.HasForeignKey("GroupId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("Group");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.GroupDao", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Users");
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
84
Demo/Migrations/20241101064613_InitialMigration.cs
Normal file
84
Demo/Migrations/20241101064613_InitialMigration.cs
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Demo.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class InitialMigration : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Groups",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
Name = table.Column<string>(type: "text", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Groups", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "PresenceDaos",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
PresenceId = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
UserId = table.Column<int>(type: "integer", nullable: false),
|
||||||
|
IsAttedance = table.Column<bool>(type: "boolean", nullable: false),
|
||||||
|
Date = table.Column<DateOnly>(type: "date", nullable: false),
|
||||||
|
LessonNumber = table.Column<int>(type: "integer", nullable: false),
|
||||||
|
GroupId = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_PresenceDaos", x => x.PresenceId);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Users",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
UserId = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
FIO = table.Column<string>(type: "text", nullable: false),
|
||||||
|
GroupId = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Users", x => x.UserId);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Users_Groups_GroupId",
|
||||||
|
column: x => x.GroupId,
|
||||||
|
principalTable: "Groups",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Users_GroupId",
|
||||||
|
table: "Users",
|
||||||
|
column: "GroupId");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "PresenceDaos");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Users");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Groups");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -41,27 +41,28 @@ namespace Demo.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b =>
|
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b =>
|
||||||
{
|
{
|
||||||
b.Property<int>("UserId")
|
b.Property<int>("PresenceId")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
.HasColumnType("integer");
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("PresenceId"));
|
||||||
|
|
||||||
b.Property<DateOnly>("Date")
|
b.Property<DateOnly>("Date")
|
||||||
.HasColumnType("date");
|
.HasColumnType("date");
|
||||||
|
|
||||||
|
b.Property<int>("GroupId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
b.Property<bool>("IsAttedance")
|
b.Property<bool>("IsAttedance")
|
||||||
.HasColumnType("boolean");
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
b.Property<int>("LessonNumber")
|
b.Property<int>("LessonNumber")
|
||||||
.HasColumnType("integer");
|
.HasColumnType("integer");
|
||||||
|
|
||||||
b.Property<int>("GroupId")
|
b.Property<int>("UserId")
|
||||||
.HasColumnType("integer");
|
.HasColumnType("integer");
|
||||||
|
|
||||||
b.Property<int>("UserDaoUserId")
|
b.HasKey("PresenceId");
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "Date", "IsAttedance", "LessonNumber");
|
|
||||||
|
|
||||||
b.HasIndex("UserDaoUserId");
|
|
||||||
|
|
||||||
b.ToTable("PresenceDaos");
|
b.ToTable("PresenceDaos");
|
||||||
});
|
});
|
||||||
@ -88,17 +89,6 @@ namespace Demo.Migrations
|
|||||||
b.ToTable("Users");
|
b.ToTable("Users");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", "UserDao")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserDaoUserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("UserDao");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", b =>
|
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Demo.Data.RemoteData.RemoteDataBase.DAO.GroupDao", "Group")
|
b.HasOne("Demo.Data.RemoteData.RemoteDataBase.DAO.GroupDao", "Group")
|
||||||
|
@ -47,13 +47,6 @@ namespace Demo.UI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveGroup(string groupIdStr)
|
|
||||||
{
|
|
||||||
int groupId = int.Parse(groupIdStr);
|
|
||||||
_groupUseCase.RemoveGroupById(groupId);
|
|
||||||
Console.WriteLine($"Группа с ID: {groupId} удалена");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Метод для обновления названия группы
|
// Метод для обновления названия группы
|
||||||
public void UpdateGroupName(int groupId, string newGroupName)
|
public void UpdateGroupName(int groupId, string newGroupName)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using Demo.domain.Models;
|
using Demo.domain.Models;
|
||||||
using Demo.Domain.UseCase;
|
using Demo.Domain.UseCase;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
|
||||||
namespace Demo.UI
|
namespace Demo.UI
|
||||||
{
|
{
|
||||||
@ -33,16 +34,15 @@ namespace Demo.UI
|
|||||||
Console.WriteLine("=-= Команды с Группами =-=");
|
Console.WriteLine("=-= Команды с Группами =-=");
|
||||||
Console.WriteLine("5. Вывести все группы");
|
Console.WriteLine("5. Вывести все группы");
|
||||||
Console.WriteLine("6. Добавить группу");
|
Console.WriteLine("6. Добавить группу");
|
||||||
Console.WriteLine("7. Удалить группу");
|
Console.WriteLine("7. Изменить название группы");
|
||||||
Console.WriteLine("8. Изменить название группы");
|
Console.WriteLine("8. Поиск группы по ID");
|
||||||
Console.WriteLine("9. Поиск группы по ID");
|
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
Console.WriteLine("=-= Команды Presence =-=");
|
Console.WriteLine("=-= Команды Presence =-=");
|
||||||
Console.WriteLine("10. Сгенерировать посещаемость на день");
|
Console.WriteLine("9. Сгенерировать посещаемость на день");
|
||||||
Console.WriteLine("11. Сгенерировать посещаемость на неделю");
|
Console.WriteLine("10. Сгенерировать посещаемость на неделю");
|
||||||
Console.WriteLine("12. Показать посещаемость");
|
Console.WriteLine("11. Показать посещаемость");
|
||||||
Console.WriteLine("13. Отметить пользователя как отсутствующего");
|
Console.WriteLine("12. Отметить пользователя как отсутствующего");
|
||||||
Console.WriteLine("14. Вывести всю посещаемость группы");
|
Console.WriteLine("13. Вывести всю посещаемость группы");
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
Console.WriteLine("0. Выход");
|
Console.WriteLine("0. Выход");
|
||||||
|
|
||||||
@ -112,13 +112,6 @@ namespace Demo.UI
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "7":
|
case "7":
|
||||||
// Удаление группы
|
|
||||||
Console.Write("Введите ID группы для удаления: ");
|
|
||||||
string groupIdForDelete = Console.ReadLine();
|
|
||||||
_groupConsoleUI.RemoveGroup(groupIdForDelete);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "8":
|
|
||||||
// Изменение названия группы
|
// Изменение названия группы
|
||||||
Console.Write("Введите ID группы для изменения: ");
|
Console.Write("Введите ID группы для изменения: ");
|
||||||
if (int.TryParse(Console.ReadLine(), out int groupId))
|
if (int.TryParse(Console.ReadLine(), out int groupId))
|
||||||
@ -133,7 +126,7 @@ namespace Demo.UI
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "9":
|
case "8":
|
||||||
// Поиск группы
|
// Поиск группы
|
||||||
Console.Write("Введите ID группы для поиска : ");
|
Console.Write("Введите ID группы для поиска : ");
|
||||||
if (int.TryParse(Console.ReadLine(), out int IdGroup))
|
if (int.TryParse(Console.ReadLine(), out int IdGroup))
|
||||||
@ -142,7 +135,7 @@ namespace Demo.UI
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "10":
|
case "9":
|
||||||
// Генерация посещаемости на день
|
// Генерация посещаемости на день
|
||||||
Console.Write("Введите номер первого занятия: ");
|
Console.Write("Введите номер первого занятия: ");
|
||||||
int firstLesson = int.Parse(Console.ReadLine());
|
int firstLesson = int.Parse(Console.ReadLine());
|
||||||
@ -155,7 +148,7 @@ namespace Demo.UI
|
|||||||
Console.WriteLine("Посещаемость на день сгенерирована.");
|
Console.WriteLine("Посещаемость на день сгенерирована.");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "11":
|
case "10":
|
||||||
// Генерация посещаемости на неделю
|
// Генерация посещаемости на неделю
|
||||||
Console.Write("Введите номер первого занятия: ");
|
Console.Write("Введите номер первого занятия: ");
|
||||||
int firstLessonForWeek = int.Parse(Console.ReadLine());
|
int firstLessonForWeek = int.Parse(Console.ReadLine());
|
||||||
@ -168,7 +161,7 @@ namespace Demo.UI
|
|||||||
Console.WriteLine("Посещаемость на неделю сгенерирована.");
|
Console.WriteLine("Посещаемость на неделю сгенерирована.");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "12":
|
case "11":
|
||||||
// Отображение посещаемости
|
// Отображение посещаемости
|
||||||
Console.Write("Введите дату (гггг-мм-дд): ");
|
Console.Write("Введите дату (гггг-мм-дд): ");
|
||||||
DateTime date = DateTime.Parse(Console.ReadLine());
|
DateTime date = DateTime.Parse(Console.ReadLine());
|
||||||
@ -178,7 +171,7 @@ namespace Demo.UI
|
|||||||
_presenceConsoleUI.DisplayPresence(date, groupForPresenceView);
|
_presenceConsoleUI.DisplayPresence(date, groupForPresenceView);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "13":
|
case "12":
|
||||||
// Отметить пользователя как отсутствующего
|
// Отметить пользователя как отсутствующего
|
||||||
Console.Write("Введите ID пользователя: ");
|
Console.Write("Введите ID пользователя: ");
|
||||||
userId = int.Parse(Console.ReadLine());
|
userId = int.Parse(Console.ReadLine());
|
||||||
@ -189,11 +182,22 @@ namespace Demo.UI
|
|||||||
Console.Write("Введите ID группы: ");
|
Console.Write("Введите ID группы: ");
|
||||||
int absGroupId = int.Parse(Console.ReadLine());
|
int absGroupId = int.Parse(Console.ReadLine());
|
||||||
|
|
||||||
_presenceConsoleUI.MarkUserAbsent(DateTime.Now, absGroupId, userId, firstAbsLesson, lastAbsLesson);
|
Console.Write("Введите дату (дд.мм.гггг): ");
|
||||||
|
string dateInput = Console.ReadLine();
|
||||||
|
DateTime absenceDate;
|
||||||
|
|
||||||
|
if (!DateTime.TryParseExact(dateInput, "d.M.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out absenceDate))
|
||||||
|
{
|
||||||
|
Console.WriteLine("Ошибка: Введен некорректный формат даты. Пожалуйста, используйте формат дд.мм.гггг.");
|
||||||
|
return; // Завершает выполнение, если дата некорректна
|
||||||
|
}
|
||||||
|
_presenceConsoleUI.MarkUserAbsent(absenceDate, absGroupId, userId, firstAbsLesson, lastAbsLesson);
|
||||||
Console.WriteLine("Пользователь отмечен как отсутствующий.");
|
Console.WriteLine("Пользователь отмечен как отсутствующий.");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "14":
|
|
||||||
|
|
||||||
|
case "13":
|
||||||
Console.Write("Введите ID группы: ");
|
Console.Write("Введите ID группы: ");
|
||||||
int groupIdForAllPresence = int.Parse(Console.ReadLine());
|
int groupIdForAllPresence = int.Parse(Console.ReadLine());
|
||||||
_presenceConsoleUI.DisplayAllPresenceByGroup(groupIdForAllPresence);
|
_presenceConsoleUI.DisplayAllPresenceByGroup(groupIdForAllPresence);
|
||||||
|
@ -20,7 +20,7 @@ namespace Demo.UI
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_presenceUseCase.GeneratePresenceDaily(firstLesson, lastLesson, groupId, date);
|
_presenceUseCase.GeneratePresenceDaily(firstLesson, lastLesson, groupId);
|
||||||
Console.WriteLine("Посещаемость на день успешно сгенерирована.");
|
Console.WriteLine("Посещаемость на день успешно сгенерирована.");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -56,26 +56,31 @@ namespace Demo.UI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Сортируем присутствия по номеру занятия и ID пользователя
|
||||||
|
var sortedPresences = presences.OrderBy(p => p.LessonNumber)
|
||||||
|
.ThenBy(p => p.UserId);
|
||||||
|
|
||||||
Console.WriteLine($"\nПосещаемость на {date.ToShortDateString()} для группы с ID {groupId}:");
|
Console.WriteLine($"\nПосещаемость на {date.ToShortDateString()} для группы с ID {groupId}:");
|
||||||
Console.WriteLine("---------------------------------------------");
|
Console.WriteLine("---------------------------------------------");
|
||||||
int a = presences[0].LessonNumber;
|
|
||||||
foreach (var presence in presences)
|
int previousLessonNumber = -1; // Инициализация для сравнения
|
||||||
|
foreach (var presence in sortedPresences)
|
||||||
{
|
{
|
||||||
if (a != presence.LessonNumber)
|
if (previousLessonNumber != presence.LessonNumber)
|
||||||
{
|
{
|
||||||
Console.WriteLine("---------------------------------------------");
|
Console.WriteLine("---------------------------------------------");
|
||||||
a = presence.LessonNumber;
|
previousLessonNumber = presence.LessonNumber;
|
||||||
}
|
}
|
||||||
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
|
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
|
||||||
Console.WriteLine($"Пользователь ID: {presence.UserId}, Занятие {presence.LessonNumber}: {status}");
|
Console.WriteLine($"Пользователь ID: {presence.UserId}, Занятие {presence.LessonNumber}: {status}");
|
||||||
}
|
}
|
||||||
Console.WriteLine("---------------------------------------------");
|
Console.WriteLine("---------------------------------------------");
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Ошибка при выводе посещаемости: {ex.Message}");
|
Console.WriteLine($"Ошибка при выводе посещаемости: {ex.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MarkUserAbsent(DateTime date, int groupId, int userId, int firstLesson, int lastLesson)
|
public void MarkUserAbsent(DateTime date, int groupId, int userId, int firstLesson, int lastLesson)
|
||||||
@ -90,14 +95,15 @@ namespace Demo.UI
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
// Получаем все посещения для группы
|
||||||
var presences = _presenceUseCase.GetAllPresenceByGroup(groupId);
|
var presences = _presenceUseCase.GetAllPresenceByGroup(groupId);
|
||||||
|
|
||||||
if (presences == null || !presences.Any())
|
if (presences == null || presences.Count == 0)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Посещаемость для группы с ID {groupId} отсутствует.");
|
Console.WriteLine($"Посещаемость для группы с ID {groupId} отсутствует.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int a = presences[0].LessonNumber;
|
|
||||||
// Группируем по дате
|
// Группируем по дате
|
||||||
var groupedPresences = presences.GroupBy(p => p.Date);
|
var groupedPresences = presences.GroupBy(p => p.Date);
|
||||||
|
|
||||||
@ -107,20 +113,30 @@ namespace Demo.UI
|
|||||||
Console.WriteLine($"Дата: {group.Key.ToString("dd.MM.yyyy")}");
|
Console.WriteLine($"Дата: {group.Key.ToString("dd.MM.yyyy")}");
|
||||||
Console.WriteLine("===================================================");
|
Console.WriteLine("===================================================");
|
||||||
|
|
||||||
foreach (var presence in group)
|
// Группируем по занятию
|
||||||
|
var groupedByLesson = group.GroupBy(p => p.LessonNumber);
|
||||||
|
|
||||||
|
foreach (var lessonGroup in groupedByLesson)
|
||||||
{
|
{
|
||||||
if (a != presence.LessonNumber)
|
Console.WriteLine($"Занятие {lessonGroup.Key}:");
|
||||||
|
|
||||||
|
// Создаем HashSet для уникальных пользователей
|
||||||
|
var userIds = new HashSet<int>();
|
||||||
|
|
||||||
|
foreach (var presence in lessonGroup)
|
||||||
|
{
|
||||||
|
// Проверяем, добавляется ли пользователь в HashSet
|
||||||
|
if (userIds.Add(presence.UserId))
|
||||||
{
|
{
|
||||||
Console.WriteLine("---------------------------------------------------");
|
|
||||||
a= presence.LessonNumber;
|
|
||||||
}
|
|
||||||
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
|
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
|
||||||
Console.WriteLine($"Пользователь ID: {presence.UserId}, Занятие {presence.LessonNumber}: {status}");
|
Console.WriteLine($"Пользователь ID: {presence.UserId}, Статус: {status}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Console.WriteLine("---------------------------------------------------");
|
Console.WriteLine("---------------------------------------------------");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Ошибка при выводе посещаемости: {ex.Message}");
|
Console.WriteLine($"Ошибка при выводе посещаемости: {ex.Message}");
|
||||||
|
@ -42,7 +42,8 @@ namespace Demo.UI
|
|||||||
{
|
{
|
||||||
var user = _userUseCase.FindUserById(userId);
|
var user = _userUseCase.FindUserById(userId);
|
||||||
|
|
||||||
Console.WriteLine($"Текущие данные: {user.FIO}, {user.Group.Name}");
|
|
||||||
|
Console.WriteLine($"Текущие данные: {user.FIO}");
|
||||||
Console.Write("\nВведите новое ФИО: ");
|
Console.Write("\nВведите новое ФИО: ");
|
||||||
string newFIO = Console.ReadLine();
|
string newFIO = Console.ReadLine();
|
||||||
|
|
||||||
@ -63,7 +64,7 @@ namespace Demo.UI
|
|||||||
var user = _userUseCase.FindUserById(userId);
|
var user = _userUseCase.FindUserById(userId);
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"\nПользователь найден: {user.ID}, {user.FIO}, {user.Group.Name}\n");
|
Console.WriteLine($"\nПользователь найден: {user.UserId}, {user.FIO}, {user.Group.Name}\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -14,7 +14,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Demo")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Demo")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6d8c19351234da2add52da771bf06d55d3df6cad")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5f424596e2b0fa84375965a237d76913c98a016f")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Demo")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Demo")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Demo")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Demo")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
@ -1 +1 @@
|
|||||||
d7265b338b27fdfdb190863dec9fcea57549cd505f57822d2d846379358bebf3
|
e42cc116f635190b7c9988c97519c211c4b2432424ca6ac866ba04673b9f3fa7
|
||||||
|
@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly =
|
|||||||
build_property.EnforceExtendedAnalyzerRules =
|
build_property.EnforceExtendedAnalyzerRules =
|
||||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||||
build_property.RootNamespace = Demo
|
build_property.RootNamespace = Demo
|
||||||
build_property.ProjectDir = C:\Users\sokol\Source\Repos\presence123\Demo\
|
build_property.ProjectDir = C:\Users\adm\Source\Repos\presence\Demo\
|
||||||
build_property.EnableComHosting =
|
build_property.EnableComHosting =
|
||||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
|||||||
b74e8cd37e3d75b4852913dbcfdd32ab1ebce041b1f20cdb3236fba5980496f8
|
1e41011bf1bd18b43960533c1b9a8180853e639316cffb41dabd64b373687e5e
|
||||||
|
@ -222,3 +222,101 @@ C:\Users\sokol\source\repos\presence123\Demo\obj\Debug\net8.0\refint\Demo.dll
|
|||||||
C:\Users\sokol\source\repos\presence123\Demo\obj\Debug\net8.0\Demo.pdb
|
C:\Users\sokol\source\repos\presence123\Demo\obj\Debug\net8.0\Demo.pdb
|
||||||
C:\Users\sokol\source\repos\presence123\Demo\obj\Debug\net8.0\Demo.genruntimeconfig.cache
|
C:\Users\sokol\source\repos\presence123\Demo\obj\Debug\net8.0\Demo.genruntimeconfig.cache
|
||||||
C:\Users\sokol\source\repos\presence123\Demo\obj\Debug\net8.0\ref\Demo.dll
|
C:\Users\sokol\source\repos\presence123\Demo\obj\Debug\net8.0\ref\Demo.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Demo.exe
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Demo.deps.json
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Demo.runtimeconfig.json
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Demo.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Demo.pdb
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Humanizer.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Bcl.AsyncInterfaces.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.CodeAnalysis.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.CodeAnalysis.Workspaces.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Abstractions.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Design.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Relational.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.Caching.Abstractions.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.Caching.Memory.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.Configuration.Abstractions.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.DependencyInjection.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.DependencyModel.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.Logging.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.Logging.Abstractions.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.Options.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Microsoft.Extensions.Primitives.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Mono.TextTemplating.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Npgsql.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\System.CodeDom.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\System.Composition.AttributedModel.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\System.Composition.Convention.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\System.Composition.Hosting.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\System.Composition.Runtime.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\System.Composition.TypedParts.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\System.IO.Pipelines.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.csproj.AssemblyReference.cache
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.AssemblyInfoInputs.cache
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.AssemblyInfo.cs
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.csproj.CoreCompileInputs.cache
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.csproj.Up2Date
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\refint\Demo.dll
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.pdb
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\Demo.genruntimeconfig.cache
|
||||||
|
C:\Users\adm\Source\Repos\presence\Demo\obj\Debug\net8.0\ref\Demo.dll
|
||||||
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
2ba2d99d6310b7ec801cf41e6531441c3e676004139cd180dab040422e702bb2
|
8d7493d59976f54fd4618a2aa5dda91cb081e5f448046094a0d285a3f37d59f2
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,20 +1,20 @@
|
|||||||
{
|
{
|
||||||
"format": 1,
|
"format": 1,
|
||||||
"restore": {
|
"restore": {
|
||||||
"C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj": {}
|
"C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj": {}
|
||||||
},
|
},
|
||||||
"projects": {
|
"projects": {
|
||||||
"C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj": {
|
"C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"restore": {
|
"restore": {
|
||||||
"projectUniqueName": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
|
"projectUniqueName": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj",
|
||||||
"projectName": "Demo",
|
"projectName": "Demo",
|
||||||
"projectPath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
|
"projectPath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj",
|
||||||
"packagesPath": "C:\\Users\\sokol\\.nuget\\packages\\",
|
"packagesPath": "C:\\Users\\adm\\.nuget\\packages\\",
|
||||||
"outputPath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\obj\\",
|
"outputPath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\obj\\",
|
||||||
"projectStyle": "PackageReference",
|
"projectStyle": "PackageReference",
|
||||||
"configFilePaths": [
|
"configFilePaths": [
|
||||||
"C:\\Users\\sokol\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
"C:\\Users\\adm\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||||
],
|
],
|
||||||
"originalTargetFrameworks": [
|
"originalTargetFrameworks": [
|
||||||
@ -80,7 +80,7 @@
|
|||||||
"privateAssets": "all"
|
"privateAssets": "all"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.403/PortableRuntimeIdentifierGraph.json"
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,18 +5,18 @@
|
|||||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\sokol\.nuget\packages\</NuGetPackageFolders>
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\adm\.nuget\packages\</NuGetPackageFolders>
|
||||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.1</NuGetToolVersion>
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.0</NuGetToolVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
<SourceRoot Include="C:\Users\sokol\.nuget\packages\" />
|
<SourceRoot Include="C:\Users\adm\.nuget\packages\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props')" />
|
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props')" />
|
||||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore.design\8.0.10\build\net8.0\Microsoft.EntityFrameworkCore.Design.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore.design\8.0.10\build\net8.0\Microsoft.EntityFrameworkCore.Design.props')" />
|
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore.design\8.0.10\build\net8.0\Microsoft.EntityFrameworkCore.Design.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore.design\8.0.10\build\net8.0\Microsoft.EntityFrameworkCore.Design.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\sokol\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3</PkgMicrosoft_CodeAnalysis_Analyzers>
|
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\adm\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3</PkgMicrosoft_CodeAnalysis_Analyzers>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
@ -2111,19 +2111,19 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"packageFolders": {
|
"packageFolders": {
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\": {}
|
"C:\\Users\\adm\\.nuget\\packages\\": {}
|
||||||
},
|
},
|
||||||
"project": {
|
"project": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"restore": {
|
"restore": {
|
||||||
"projectUniqueName": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
|
"projectUniqueName": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj",
|
||||||
"projectName": "Demo",
|
"projectName": "Demo",
|
||||||
"projectPath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
|
"projectPath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj",
|
||||||
"packagesPath": "C:\\Users\\sokol\\.nuget\\packages\\",
|
"packagesPath": "C:\\Users\\adm\\.nuget\\packages\\",
|
||||||
"outputPath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\obj\\",
|
"outputPath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\obj\\",
|
||||||
"projectStyle": "PackageReference",
|
"projectStyle": "PackageReference",
|
||||||
"configFilePaths": [
|
"configFilePaths": [
|
||||||
"C:\\Users\\sokol\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
"C:\\Users\\adm\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||||
],
|
],
|
||||||
"originalTargetFrameworks": [
|
"originalTargetFrameworks": [
|
||||||
@ -2189,7 +2189,7 @@
|
|||||||
"privateAssets": "all"
|
"privateAssets": "all"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.403/PortableRuntimeIdentifierGraph.json"
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,47 +1,47 @@
|
|||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"dgSpecHash": "U8P56hzRT2E=",
|
"dgSpecHash": "1jgLqgxs2pA=",
|
||||||
"success": true,
|
"success": true,
|
||||||
"projectFilePath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
|
"projectFilePath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj",
|
||||||
"expectedPackageFiles": [
|
"expectedPackageFiles": [
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\4.5.0\\microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\4.5.0\\microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\4.5.0\\microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\4.5.0\\microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.entityframeworkcore.design\\8.0.10\\microsoft.entityframeworkcore.design.8.0.10.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.design\\8.0.10\\microsoft.entityframeworkcore.design.8.0.10.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.10\\microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.10\\microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.dependencymodel\\8.0.2\\microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.dependencymodel\\8.0.2\\microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.io.pipelines\\6.0.3\\system.io.pipelines.6.0.3.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.io.pipelines\\6.0.3\\system.io.pipelines.6.0.3.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.reflection.metadata\\6.0.1\\system.reflection.metadata.6.0.1.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.reflection.metadata\\6.0.1\\system.reflection.metadata.6.0.1.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512",
|
"C:\\Users\\adm\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512",
|
||||||
"C:\\Users\\sokol\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512"
|
"C:\\Users\\adm\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512"
|
||||||
],
|
],
|
||||||
"logs": []
|
"logs": []
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user