public static async Task <UserEntity> CreateUser(IAsyncRepository repo, string identifier) { using (var trans = repo.BeginTransaction()) { var user = new UserEntity { Id = await repo.NextSequenceAsync <UserEntity>(), DateCreated = DateTime.Now, UserCreatedId = Config.SystemUserId }; var returnUser = await repo.AddAsync(user); var remoteUser = new RemoteUserEntity { Id = await repo.NextSequenceAsync <RemoteUserEntity>(), Identifier = identifier, DateCreated = DateTime.Now, UserCreatedId = Config.SystemUserId }; var returnRemoteUser = await repo.AddAsync(remoteUser); var userMapping = new UserMappingReferenceEntity { Id = returnUser.Id, RemoteUserId = returnRemoteUser.Id, DateCreated = DateTime.Now, UserCreatedId = Config.SystemUserId }; var returnUserMapping = repo.AddAsync(userMapping); trans.Commit(); return(returnUser); } }