Compare commits

..

4 Commits

Author SHA1 Message Date
680038c081 Merge pull request 'master' (#1) from master into main
Reviewed-on: #1
2024-11-01 16:13:46 +00:00
614d395305 init 2024-11-01 19:12:59 +03:00
adm
416f0914dc init 2024-11-01 12:42:31 +03:00
adm
5f424596e2 init 2024-10-31 14:48:30 +03:00
44 changed files with 561 additions and 250 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 required string Name { get; set; } public 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 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; }
} }
} }

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=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
});
} }
} }

View File

@ -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();

View File

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

View File

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

View File

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

View File

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

View File

@ -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
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,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();
}
} }
} }

View File

@ -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();

View File

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

View File

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

View File

@ -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)

View File

@ -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;
@ -13,6 +14,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)
{ {
@ -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
List<PresenceDao> presences = new List<PresenceDao>();
for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++)
{ {
foreach (var user in users) 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>();
for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++)
{ {
presences.Add(new PresenceDao foreach (var user in users)
{ {
UserId = user.UserId, var presence = new PresenceDao
GroupId = user.GroupId, {
Date = DateOnly.FromDateTime(currentDate), UserId = user.UserId,
LessonNumber = lessonNumber, GroupId = user.GroupId,
IsAttedance = true Date = startDate,
}); 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, 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);
} }
} }
} }

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

View 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
}
}
}

View 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");
}
}
}

View File

@ -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")

View File

@ -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)
{ {

View File

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

View File

@ -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,35 +95,46 @@ namespace Demo.UI
{ {
try try
{ {
var presences = _presenceUseCase.GetAllPresenceByGroup(groupId); // Получаем все посещения для группы
var presences = _presenceUseCase.GetAllPresenceByGroup(groupId);
if (presences == null || presences.Count == 0)
{
Console.WriteLine($"Посещаемость для группы с ID {groupId} отсутствует.");
return;
}
// Группируем по дате
var groupedPresences = presences.GroupBy(p => p.Date);
if (presences == null || !presences.Any())
{
Console.WriteLine($"Посещаемость для группы с ID {groupId} отсутствует.");
return;
}
int a = presences[0].LessonNumber;
// Группируем по дате
var groupedPresences = presences.GroupBy(p => p.Date);
foreach (var group in groupedPresences) foreach (var group in groupedPresences)
{ {
Console.WriteLine("==================================================="); Console.WriteLine("===================================================");
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);
if (a != presence.LessonNumber)
{
Console.WriteLine("---------------------------------------------------");
a= presence.LessonNumber;
}
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
Console.WriteLine($"Пользователь ID: {presence.UserId}, Занятие {presence.LessonNumber}: {status}");
}
Console.WriteLine("---------------------------------------------------"); foreach (var lessonGroup in groupedByLesson)
{
Console.WriteLine($"Занятие {lessonGroup.Key}:");
// Создаем HashSet для уникальных пользователей
var userIds = new HashSet<int>();
foreach (var presence in lessonGroup)
{
// Проверяем, добавляется ли пользователь в HashSet
if (userIds.Add(presence.UserId))
{
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
Console.WriteLine($"Пользователь ID: {presence.UserId}, Статус: {status}");
}
}
Console.WriteLine("---------------------------------------------------");
}
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -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.

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+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")]

View File

@ -1 +1 @@
d7265b338b27fdfdb190863dec9fcea57549cd505f57822d2d846379358bebf3 e42cc116f635190b7c9988c97519c211c4b2432424ca6ac866ba04673b9f3fa7

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\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 =

View File

@ -1 +1 @@
b74e8cd37e3d75b4852913dbcfdd32ab1ebce041b1f20cdb3236fba5980496f8 1e41011bf1bd18b43960533c1b9a8180853e639316cffb41dabd64b373687e5e

View File

@ -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.

View File

@ -1 +1 @@
2ba2d99d6310b7ec801cf41e6531441c3e676004139cd180dab040422e702bb2 8d7493d59976f54fd4618a2aa5dda91cb081e5f448046094a0d285a3f37d59f2

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\\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"
} }
} }
} }

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\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>

View File

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

View File

@ -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": []
} }