using System; using System.Collections.Generic; using System.Linq; using Griffin.Container; using Griffin.Container.DomainEvents; namespace Example7 { [Component(Lifetime = Lifetime.Scoped)] public class UserRepository : IUserQueries, IUserStorage { private readonly List<User> _fakeDb = new List<User>(); #region IUserQueries Members public User Get(string id) { if (id == null) throw new ArgumentNullException("id"); return _fakeDb.SingleOrDefault(x => x.Id == id); } #endregion #region IUserStorage Members public User Create(string userName) { if (userName == null) throw new ArgumentNullException("userName"); var user = new User(_fakeDb.Count.ToString()); user.UserName = userName; _fakeDb.Add(user); DomainEvent.Publish(new UserCreated(user.Id)); return user; } public void Save(User user) { if (user == null) throw new ArgumentNullException("user"); var dbUser = Get(user.Id); if (dbUser == null) _fakeDb.Add(user); //assume that it's in our list otherwise. // remember: fakedb ;) } public void Delete(User user) { if (user == null) throw new ArgumentNullException("user"); _fakeDb.RemoveAll(x => x.Id == user.Id); } #endregion } }
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)