using System.Data.Common; using Contracts.DTO; using Contracts.Repositories; using Contracts.SearchModels; using Services.Tests.Support.Fakes.Database; namespace Services.Tests.Support.Fakes.Repositories; internal class UserRepoFake : IUserRepo { public async Task ChangeBalance(UserSearch search, decimal amount) { var user = DbFake.Users.FirstOrDefault(u => u.Id == search.Id); if (user != null) { user.Balance += amount; return await Task.FromResult(true); } return await Task.FromResult(false); } public async Task Create(UserDto user) { DbFake.Users.Add(user); return await Task.FromResult(user); } public async Task Delete(UserSearch search) { var user = DbFake.Users.FirstOrDefault(u => u.Id == search.Id); if (user != null) { DbFake.Users.Remove(user); } return await Task.FromResult(user); } public async Task Get(UserSearch search) { return await Task.FromResult(DbFake.Users.FirstOrDefault(u => u.Id == search.Id)); } public async Task Update(UserDto user) { var existingUser = DbFake.Users.FirstOrDefault(u => u.Id == user.Id); if (existingUser != null) { existingUser.Name = user.Name; existingUser.Password = user.Password; DbFake.Users.Remove(existingUser); DbFake.Users.Add(existingUser); } return await Task.FromResult(existingUser); } }