public virtual async Task <AccountResult <string> > RegisterAsync(Models.RegisterInfo register) { if (register.Password != register.ConfirmPassword) { return(AccountResult.Unsuccessful(data: "", "两次密码不一致")); } var user = await GetUserFromEmailAsync(register.Email); if (user != null) { return(AccountResult.Unsuccessful(data: "", "已经被使用的邮箱")); } user = new ScreamBackend.DB.Tables.User { Email = register.Email, NormalizedEmail = Formator.EmailNormaliz(register.Email), Username = Formator.SplitUsernameFromEmail(register.Email), PasswordHash = register.Password }; user.NormalizedUsername = Formator.UsernameNormaliz(user.Username); _db.Users.Add(user); int effects = await _db.SaveChangesAsync(); if (effects == 1) { return(AccountResult.Successful(user.Email)); } throw new Exception("Register fail"); }
public static AccountResult <T> Unsuccessful <T>(T data, params string[] errors) { var baseResult = Unsuccessful(errors); return(AccountResult <T> .Parse(baseResult, data, baseResult.Errors)); }
public static AccountResult <T> Successful <T>(T data) { var result = Successful(); return(AccountResult <T> .Parse(result, data, new List <string>())); }