private bool IsNewUser(Budget.Users.Domain.WriteModel.User user) { var newSubscriptions = user.NewChanges.Where( @event => @event.GetType() == typeof(UserSubscribed) ); return(newSubscriptions.Any()); }
public async Task Save(Budget.Users.Domain.WriteModel.User user) { var dbUser = new User(user); if (IsNewUser(user)) { await Users.InsertOneAsync(dbUser); } else { await Users.FindOneAndReplaceAsync <User>(u => u.Id == dbUser.Id, dbUser); } }
public async Task <Budget.Users.Domain.WriteModel.User> Get(Guid id) { Budget.Users.Domain.WriteModel.User user = null; var search = await Users.FindAsync <User>(u => u.Id == id); var dbUser = search.FirstOrDefault(); if (dbUser != null) { user = UserFactory.Load(id, dbUser.Changes); } return(user); }
public User(Budget.Users.Domain.WriteModel.User user) { Id = user.Id; Changes = user.Changes; }