public async Task <Microsoft.AspNet.Identity.Owin.SignInStatus> SignupUser(SignUpVM vm, params RoleName[] roles) { var id = GenerateId(); var user = Builder.BuildUser(vm, id, GenerateUsername()); await AddAsync(user); var link = Links.Get(vm.ReferralCode); if (link.IsLeftLink) { await AssignToLeft(link.CreatorId, user.Id); } else { await AssignToRight(link.CreatorId, user.Id); } await Auth.AddToRoleAsync(id, roles); await _notify.AddAsync(id, Message.Welcome); return(await Auth.Login(user.UserName, vm.Password)); }