using AMessanger.Core; using AMessanger.Core.Abstraction; using AMessanger.Core.DTO; using AMessanger.Core.Models; using AMessanger.DataAccess.Entities; namespace AMessanger.DataAccess.Repositories; public class UsersRepository : IUsersRepository { private static readonly List sUsers = []; public Task> AddAsync(User user, CancellationToken cancellationToken = default) { sUsers.Add(new(user.Id, user.Name, user.HashedPassword)); return Task.FromResult(Result.Success(user.Id)); } public Task> DeleteAsync(Guid id, CancellationToken cancellationToken = default) { var user = sUsers.Find(u => u.Id == id); if (user == null) return Task.FromResult(Result.Error("Not found")); sUsers.Remove(user); return Task.FromResult(Result.Success(user.Id)); } public Task>> GetAllAsync(CancellationToken cancellationToken = default) { return Task.FromResult( Result>.Success( sUsers.Select(u => new User(u.Id, u.Name, u.HashedPassword)) ) ); } public Task> GetByIdAsync(Guid id, CancellationToken cancellationToken = default) { var user = sUsers.Find(u => u.Id == id); if (user == null) return Task.FromResult(Result.Error("Not found")); return Task.FromResult( Result.Success(new User(user.Id, user.Name, user.HashedPassword)) ); } public Task> GetByUserNameAsync(string userName, CancellationToken cancellationToken = default) { var user = sUsers.Find(u => u.Name.Equals(userName, StringComparison.InvariantCultureIgnoreCase)); if (user == null) return Task.FromResult(Result.Error("Not found")); return Task.FromResult( Result.Success(new User(user.Id, user.Name, user.HashedPassword)) ); } public Task> UpdateAsync(Guid id, UpdateUserDto dto, CancellationToken cancellationToken = default) { throw new NotImplementedException(); } }