Compare commits

..

No commits in common. "680038c0814adc86112bb50c4bef7d88b2995850" and "4aa192ee8817fa90eef0a643199a140baea5f367" have entirely different histories.

44 changed files with 247 additions and 558 deletions

View File

@ -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 string Name { get; set; } public required string Name { get; set; }
public List<UserDao> Users { get; set; } public List<UserDao> Users { get; set; }
} }
} }

View File

@ -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; }
} }
} }

View File

@ -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 required int UserId { get; set; } public 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; }
} }
} }

View File

@ -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=presencedb;Username=postgres;Password=123;Include Error Detail=True;"); optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=postgres;Username=postgres;Password=123");
} }
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
@ -27,8 +27,13 @@ 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 =>presence.PresenceId); modelBuilder.Entity<PresenceDao>().HasKey(presence => new
modelBuilder.Entity<PresenceDao>().Property(presence=>presence.PresenceId).ValueGeneratedOnAdd(); {
presence.UserId,
presence.Date,
presence.IsAttedance,
presence.LessonNumber
});
} }
} }

View File

@ -53,6 +53,11 @@ 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();

View File

@ -11,6 +11,7 @@ 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);

View File

@ -15,7 +15,5 @@ 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);
} }
} }

View File

@ -6,7 +6,7 @@ namespace Demo.Data.Repository
{ {
public interface IUserRepository public interface IUserRepository
{ {
List<UserDao> GetAllUsers(); IEnumerable<UserDao> GetAllUsers { get; }
bool RemoveUserById(int userId); bool RemoveUserById(int userId);
UserDao? UpdateUser(UserDao user); UserDao? UpdateUser(UserDao user);
} }

View File

@ -47,7 +47,5 @@ namespace Demo.Data.Repository
{ {
return _presences.Where(p => p.GroupId == groupId).ToList(); return _presences.Where(p => p.GroupId == groupId).ToList();
} }
} }
} }

View File

@ -2,13 +2,10 @@
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
@ -21,10 +18,7 @@ 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) &&
@ -34,33 +28,31 @@ 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)
{ {
_remoteDatabaseContext.PresenceDaos.AddRange(presences.Select(it => new PresenceDao foreach (var presence in presences)
{ {
Date = it.Date, var existingPresence = _remoteDatabaseContext.PresenceDaos.FirstOrDefault(p =>
IsAttedance = it.IsAttedance, p.UserId == presence.UserId &&
LessonNumber = it.LessonNumber, p.Date == presence.Date &&
UserId = it.UserId, p.LessonNumber == presence.LessonNumber);
GroupId = it.GroupId
})); if (existingPresence == null)
_remoteDatabaseContext.SaveChanges(); {
_remoteDatabaseContext.PresenceDaos.Add(presence);
}
else
{
existingPresence.IsAttedance = presence.IsAttedance;
}
}
} }
public DateOnly? GetLastDateByGroupId(int groupId)
{
// Проверяем наличие записей о посещаемости в базе данных для данной группы.
var lastDate = _remoteDatabaseContext.PresenceDaos
.Where(p => p.GroupId == groupId)
.OrderByDescending(p => p.Date)
.Select(p => p.Date)
.FirstOrDefault();
return lastDate == default ? (DateOnly?)null : lastDate;
}
} }
} }

View File

@ -18,6 +18,8 @@ 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);
@ -32,18 +34,10 @@ 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();
}
} }
} }

View File

@ -29,6 +29,17 @@ 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();

View File

@ -19,7 +19,6 @@
<ItemGroup> <ItemGroup>
<Folder Include="Data\RemoteData\RemoteApi\" /> <Folder Include="Data\RemoteData\RemoteApi\" />
<Folder Include="Migrations\" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -13,6 +13,7 @@ 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; }
} }
} }

View File

@ -91,6 +91,26 @@ 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)

View File

@ -1,7 +1,6 @@
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;
@ -15,7 +14,6 @@ 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;
@ -30,65 +28,33 @@ namespace Demo.Domain.UseCase
return _presenceRepository.GetPresenceByDateAndGroup(date, groupId); return _presenceRepository.GetPresenceByDateAndGroup(date, groupId);
} }
public void GeneratePresenceDaily(int firstLesson, int lastLesson, int groupId) public void GeneratePresenceDaily(int firstLesson, int lastLesson, int groupId, DateTime currentDate)
{ {
try var users = _userRepository.GetAllUsers.Where(u => u.GroupId == groupId).ToList();
List<PresenceDao> presences = new List<PresenceDao>();
for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++)
{ {
var users = _userRepository.GetAllUsers().Where(u => u.GroupId == groupId).ToList(); foreach (var user in users)
// Находим последнюю дату посещаемости для данной группы
DateOnly startDate = _presenceRepository.GetLastDateByGroupId(groupId)?.AddDays(1)
?? DateOnly.FromDateTime(DateTime.Today);
List<PresenceDao> presences = new List<PresenceDao>();
for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++)
{ {
foreach (var user in users) presences.Add(new PresenceDao
{ {
var presence = new PresenceDao UserId = user.UserId,
{ GroupId = user.GroupId,
UserId = user.UserId, Date = DateOnly.FromDateTime(currentDate),
GroupId = user.GroupId, LessonNumber = lessonNumber,
Date = startDate, IsAttedance = true
LessonNumber = lessonNumber, });
IsAttedance = true
};
try
{
_presenceRepository.SavePresence(new List<PresenceDao> { presence });
Console.WriteLine($"Посещаемость добавлена для UserId = {user.UserId}, LessonNumber = {lessonNumber} на дату {startDate}");
}
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}");
} }
_presenceRepository.SavePresence(presences);
} }
} }
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); GeneratePresenceDaily(firstLesson, lastLesson, groupId, currentTime);
} }
} }
@ -97,26 +63,24 @@ 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)
{ {
List<PresenceDao> presences = _presenceRepository.GetPresenceForAbsent(date, groupId); var presences = _presenceRepository.GetPresenceByDateAndGroup(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);
} }
} }
} }

View File

@ -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,16 +86,15 @@ namespace Demo.Domain.UseCase
} }
// Обновить пользователя по id // Обновить пользователя по id
public UserDao UpdateUser(UserDao user) public User UpdateUser(User user)
{ {
ValidateUserFIO(user.FIO); ValidateUserFIO(user.FIO);
ValidateGroupExistence(user.GroupId); ValidateGroupExistence(user.Group.Id);
UserDao userDao = new UserDao UserDao userDao = new UserDao
{ {
UserId = user.UserId,
FIO = user.FIO, FIO = user.FIO,
GroupId = user.GroupId GroupId = user.Group.Id
}; };
UserDao? result = _repositoryUserImpl.UpdateUser(userDao); UserDao? result = _repositoryUserImpl.UpdateUser(userDao);
@ -107,26 +106,27 @@ namespace Demo.Domain.UseCase
var groupEntity = ValidateGroupExistence(result.GroupId); var groupEntity = ValidateGroupExistence(result.GroupId);
return new UserDao return new User
{ {
UserId=user.UserId,
FIO = result.FIO, FIO = result.FIO,
GroupId = result.GroupId Group = new Group
{
Id = groupEntity.Id,
Name = groupEntity.Name
}
}; };
} }
// Найти пользователя по id // Найти пользователя по id
public UserDao FindUserById(int userId) public User FindUserById(int userId)
{ {
var user = ValidateUserExistence(userId); var user = ValidateUserExistence(userId);
var group = ValidateGroupExistence(user.GroupId); var group = ValidateGroupExistence(user.GroupId);
return new UserDao return new User
{ {
UserId = user.UserId,
FIO = user.FIO, FIO = user.FIO,
GroupId = group.Id Group = new Group { Id = group.Id, Name = group.Name }
}; };
} }
} }

View File

@ -1,113 +0,0 @@
// <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
}
}
}

View File

@ -1,84 +0,0 @@
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");
}
}
}

View File

@ -41,28 +41,27 @@ namespace Demo.Migrations
modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b => modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b =>
{ {
b.Property<int>("PresenceId") b.Property<int>("UserId")
.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>("UserId") b.Property<int>("GroupId")
.HasColumnType("integer"); .HasColumnType("integer");
b.HasKey("PresenceId"); b.Property<int>("UserDaoUserId")
.HasColumnType("integer");
b.HasKey("UserId", "Date", "IsAttedance", "LessonNumber");
b.HasIndex("UserDaoUserId");
b.ToTable("PresenceDaos"); b.ToTable("PresenceDaos");
}); });
@ -89,6 +88,17 @@ 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")

View File

@ -47,6 +47,13 @@ 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)
{ {

View File

@ -1,7 +1,6 @@
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
{ {
@ -34,15 +33,16 @@ 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. Поиск группы по ID"); Console.WriteLine("8. Изменить название группы");
Console.WriteLine("9. Поиск группы по ID");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("=-= Команды Presence =-="); Console.WriteLine("=-= Команды Presence =-=");
Console.WriteLine("9. Сгенерировать посещаемость на день"); Console.WriteLine("10. Сгенерировать посещаемость на день");
Console.WriteLine("10. Сгенерировать посещаемость на неделю"); Console.WriteLine("11. Сгенерировать посещаемость на неделю");
Console.WriteLine("11. Показать посещаемость"); Console.WriteLine("12. Показать посещаемость");
Console.WriteLine("12. Отметить пользователя как отсутствующего"); Console.WriteLine("13. Отметить пользователя как отсутствующего");
Console.WriteLine("13. Вывести всю посещаемость группы"); Console.WriteLine("14. Вывести всю посещаемость группы");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("0. Выход"); Console.WriteLine("0. Выход");
@ -112,6 +112,13 @@ 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))
@ -126,7 +133,7 @@ namespace Demo.UI
} }
break; break;
case "8": case "9":
// Поиск группы // Поиск группы
Console.Write("Введите ID группы для поиска : "); Console.Write("Введите ID группы для поиска : ");
if (int.TryParse(Console.ReadLine(), out int IdGroup)) if (int.TryParse(Console.ReadLine(), out int IdGroup))
@ -135,7 +142,7 @@ namespace Demo.UI
} }
break; break;
case "9": case "10":
// Генерация посещаемости на день // Генерация посещаемости на день
Console.Write("Введите номер первого занятия: "); Console.Write("Введите номер первого занятия: ");
int firstLesson = int.Parse(Console.ReadLine()); int firstLesson = int.Parse(Console.ReadLine());
@ -148,7 +155,7 @@ namespace Demo.UI
Console.WriteLine("Посещаемость на день сгенерирована."); Console.WriteLine("Посещаемость на день сгенерирована.");
break; break;
case "10": case "11":
// Генерация посещаемости на неделю // Генерация посещаемости на неделю
Console.Write("Введите номер первого занятия: "); Console.Write("Введите номер первого занятия: ");
int firstLessonForWeek = int.Parse(Console.ReadLine()); int firstLessonForWeek = int.Parse(Console.ReadLine());
@ -161,7 +168,7 @@ namespace Demo.UI
Console.WriteLine("Посещаемость на неделю сгенерирована."); Console.WriteLine("Посещаемость на неделю сгенерирована.");
break; break;
case "11": case "12":
// Отображение посещаемости // Отображение посещаемости
Console.Write("Введите дату (гггг-мм-дд): "); Console.Write("Введите дату (гггг-мм-дд): ");
DateTime date = DateTime.Parse(Console.ReadLine()); DateTime date = DateTime.Parse(Console.ReadLine());
@ -171,7 +178,7 @@ namespace Demo.UI
_presenceConsoleUI.DisplayPresence(date, groupForPresenceView); _presenceConsoleUI.DisplayPresence(date, groupForPresenceView);
break; break;
case "12": case "13":
// Отметить пользователя как отсутствующего // Отметить пользователя как отсутствующего
Console.Write("Введите ID пользователя: "); Console.Write("Введите ID пользователя: ");
userId = int.Parse(Console.ReadLine()); userId = int.Parse(Console.ReadLine());
@ -182,22 +189,11 @@ namespace Demo.UI
Console.Write("Введите ID группы: "); Console.Write("Введите ID группы: ");
int absGroupId = int.Parse(Console.ReadLine()); int absGroupId = int.Parse(Console.ReadLine());
Console.Write("Введите дату (дд.мм.гггг): "); _presenceConsoleUI.MarkUserAbsent(DateTime.Now, absGroupId, userId, firstAbsLesson, lastAbsLesson);
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);

View File

@ -20,7 +20,7 @@ namespace Demo.UI
{ {
try try
{ {
_presenceUseCase.GeneratePresenceDaily(firstLesson, lastLesson, groupId); _presenceUseCase.GeneratePresenceDaily(firstLesson, lastLesson, groupId, date);
Console.WriteLine("Посещаемость на день успешно сгенерирована."); Console.WriteLine("Посещаемость на день успешно сгенерирована.");
} }
catch (Exception ex) catch (Exception ex)
@ -56,31 +56,26 @@ 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;
int previousLessonNumber = -1; // Инициализация для сравнения foreach (var presence in presences)
foreach (var presence in sortedPresences)
{ {
if (previousLessonNumber != presence.LessonNumber) if (a != presence.LessonNumber)
{ {
Console.WriteLine("---------------------------------------------"); Console.WriteLine("---------------------------------------------");
previousLessonNumber = presence.LessonNumber; a = 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)
@ -95,17 +90,16 @@ namespace Demo.UI
{ {
try try
{ {
// Получаем все посещения для группы var presences = _presenceUseCase.GetAllPresenceByGroup(groupId);
var presences = _presenceUseCase.GetAllPresenceByGroup(groupId);
if (presences == null || presences.Count == 0) if (presences == null || !presences.Any())
{ {
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);
foreach (var group in groupedPresences) foreach (var group in groupedPresences)
{ {
@ -113,28 +107,18 @@ 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)
{ {
Console.WriteLine($"Занятие {lessonGroup.Key}:"); if (a != presence.LessonNumber)
// Создаем HashSet для уникальных пользователей
var userIds = new HashSet<int>();
foreach (var presence in lessonGroup)
{ {
// Проверяем, добавляется ли пользователь в HashSet Console.WriteLine("---------------------------------------------------");
if (userIds.Add(presence.UserId)) a= presence.LessonNumber;
{
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
Console.WriteLine($"Пользователь ID: {presence.UserId}, Статус: {status}");
}
} }
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
Console.WriteLine("---------------------------------------------------"); Console.WriteLine($"Пользователь ID: {presence.UserId}, Занятие {presence.LessonNumber}: {status}");
} }
Console.WriteLine("---------------------------------------------------");
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -42,8 +42,7 @@ 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();
@ -64,7 +63,7 @@ namespace Demo.UI
var user = _userUseCase.FindUserById(userId); var user = _userUseCase.FindUserById(userId);
if (user != null) if (user != null)
{ {
Console.WriteLine($"\nПользователь найден: {user.UserId}, {user.FIO}, {user.Group.Name}\n"); Console.WriteLine($"\nПользователь найден: {user.ID}, {user.FIO}, {user.Group.Name}\n");
} }
else else
{ {

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("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+5f424596e2b0fa84375965a237d76913c98a016f")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6d8c19351234da2add52da771bf06d55d3df6cad")]
[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")]

View File

@ -1 +1 @@
e42cc116f635190b7c9988c97519c211c4b2432424ca6ac866ba04673b9f3fa7 d7265b338b27fdfdb190863dec9fcea57549cd505f57822d2d846379358bebf3

View File

@ -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\adm\Source\Repos\presence\Demo\ build_property.ProjectDir = C:\Users\sokol\Source\Repos\presence123\Demo\
build_property.EnableComHosting = build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop = build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -1 +1 @@
1e41011bf1bd18b43960533c1b9a8180853e639316cffb41dabd64b373687e5e b74e8cd37e3d75b4852913dbcfdd32ab1ebce041b1f20cdb3236fba5980496f8

View File

@ -222,101 +222,3 @@ 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.

View File

@ -1 +1 @@
8d7493d59976f54fd4618a2aa5dda91cb081e5f448046094a0d285a3f37d59f2 2ba2d99d6310b7ec801cf41e6531441c3e676004139cd180dab040422e702bb2

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,20 +1,20 @@
{ {
"format": 1, "format": 1,
"restore": { "restore": {
"C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj": {} "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj": {}
}, },
"projects": { "projects": {
"C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj": { "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj", "projectUniqueName": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
"projectName": "Demo", "projectName": "Demo",
"projectPath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj", "projectPath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
"packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", "packagesPath": "C:\\Users\\sokol\\.nuget\\packages\\",
"outputPath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\obj\\", "outputPath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\adm\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\sokol\\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.400/PortableRuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.403/PortableRuntimeIdentifierGraph.json"
} }
} }
} }

View File

@ -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\adm\.nuget\packages\</NuGetPackageFolders> <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\sokol\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.0</NuGetToolVersion> <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.1</NuGetToolVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\adm\.nuget\packages\" /> <SourceRoot Include="C:\Users\sokol\.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\adm\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3</PkgMicrosoft_CodeAnalysis_Analyzers> <PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\sokol\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3</PkgMicrosoft_CodeAnalysis_Analyzers>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -2111,19 +2111,19 @@
] ]
}, },
"packageFolders": { "packageFolders": {
"C:\\Users\\adm\\.nuget\\packages\\": {} "C:\\Users\\sokol\\.nuget\\packages\\": {}
}, },
"project": { "project": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj", "projectUniqueName": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
"projectName": "Demo", "projectName": "Demo",
"projectPath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj", "projectPath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
"packagesPath": "C:\\Users\\adm\\.nuget\\packages\\", "packagesPath": "C:\\Users\\sokol\\.nuget\\packages\\",
"outputPath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\obj\\", "outputPath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\adm\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\sokol\\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.400/PortableRuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.403/PortableRuntimeIdentifierGraph.json"
} }
} }
} }

View File

@ -1,47 +1,47 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "1jgLqgxs2pA=", "dgSpecHash": "U8P56hzRT2E=",
"success": true, "success": true,
"projectFilePath": "C:\\Users\\adm\\Source\\Repos\\presence\\Demo\\Demo.csproj", "projectFilePath": "C:\\Users\\sokol\\Source\\Repos\\presence123\\Demo\\Demo.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
"C:\\Users\\adm\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", "C:\\Users\\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.workspaces\\4.5.0\\microsoft.codeanalysis.csharp.workspaces.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.workspaces.common\\4.5.0\\microsoft.codeanalysis.workspaces.common.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.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.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.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.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.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.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.design\\8.0.10\\microsoft.entityframeworkcore.design.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.relational\\8.0.10\\microsoft.entityframeworkcore.relational.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.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.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.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.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.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.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.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.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.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.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.dependencymodel\\8.0.2\\microsoft.extensions.dependencymodel.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.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.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.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.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.options\\8.0.2\\microsoft.extensions.options.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.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.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\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.io.pipelines\\6.0.3\\system.io.pipelines.6.0.3.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.io.pipelines\\6.0.3\\system.io.pipelines.6.0.3.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.reflection.metadata\\6.0.1\\system.reflection.metadata.6.0.1.nupkg.sha512", "C:\\Users\\sokol\\.nuget\\packages\\system.reflection.metadata\\6.0.1\\system.reflection.metadata.6.0.1.nupkg.sha512",
"C:\\Users\\adm\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", "C:\\Users\\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.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.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.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512" "C:\\Users\\sokol\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512"
], ],
"logs": [] "logs": []
} }