using GerbilManager.Models; namespace GerbilManager.Repositories { public class InMemGerbilRepository : IGerbilRepository { private readonly List _gerbilList = new() { new Gerbil() {Id = Guid.NewGuid(), Name = "Blacky", Breeder = null, Litter = null, Gender = Gender.unknown}, new Gerbil() {Id = Guid.NewGuid(), Name = "Coocky", Breeder = null, Litter = null, Gender = Gender.male}, new Gerbil() {Id = Guid.NewGuid(), Name = "Lazy", Breeder = null, Litter = null, Gender = Gender.female} }; public IEnumerable GetGerbils() { return _gerbilList; } public Gerbil GetGerbil(Guid id) => _gerbilList.SingleOrDefault(x => x.Id == id); public void CreateGerbil(Gerbil gerbil) { _gerbilList.Add(gerbil); } public void UpdateGerbil(Gerbil gerbil) { var index = this._gerbilList.FindIndex(existingGerbil => existingGerbil.Id == gerbil.Id); _gerbilList[index] = gerbil; } public void DeleteGerbil(Gerbil gerbil) { var index = this._gerbilList.FindIndex(existingGerbil => existingGerbil.Id == gerbil.Id); _gerbilList.RemoveAt(index); } } }