private static void ToRow(User obj, UserRow row) { row.Id = obj.Id.Value; row.Name = obj.Name; row.Role = ToDbRole(obj.Role); row.Email = obj.Email; row.PasswordSalt = obj.PasswordSalt; row.PasswordHash = obj.PasswordHash; }
private static User FromRow(UserRow row) { var role = FromDbRole(row.Role); return(new User(new UserId(row.Id), row.Name, role, row.Email, row.PasswordSalt, row.PasswordHash )); }
public Task StoreAsync(User user, CancellationToken cancellationToken = default) { return(Task.Factory.StartNew(() => { var dbSet = dbContext.Users; var row = dbSet.FirstOrDefault(x => x.Id == user.Id.Value); if (row != null) { ToRow(user, row); dbSet.Update(row); } else { row = new UserRow(); ToRow(user, row); dbSet.Add(row); } dbContext.SaveChanges(); }, cancellationToken)); }