/// <summary> /// Registers the user. /// </summary> /// <param name="userModel">The user model.</param> /// <param name="actorClaim">The actor claim.</param> /// <returns></returns> private async Task<IdentityResult> RegisterUser(UserModel userModel, string actorClaim) { try { var user = new IdentityUser { UserName = userModel.UserName }; var claim = new IdentityUserClaim {ClaimType = ClaimTypes.Actor, ClaimValue = actorClaim}; claim.UserId = user.Id; user.Claims.Add(claim); var result = await _userManager.CreateAsync(user, userModel.Password); return result; } catch (DbEntityValidationException) { return IdentityResult.Failed(); } }
/// <summary> /// Registers the specified user model. /// </summary> /// <param name="userModel">The user model.</param> /// <param name="type">The type.</param> /// <returns></returns> private async Task<IHttpActionResult> Register(UserModel userModel, UserType type) { if (!ModelState.IsValid) { return BadRequest(ModelState); } IdentityResult result; if (type == UserType.Buyer) result = await _repo.RegisterBuyer(userModel); else result = await _repo.RegisterSeller(userModel); var errorResult = GetErrorResult(result); if (errorResult != null) { return errorResult; } return Ok(); }
/// <summary> /// Registers the seller. /// </summary> /// <param name="sellerModel">The seller model.</param> /// <returns></returns> public async Task<IdentityResult> RegisterSeller(UserModel sellerModel) { return await RegisterUser(sellerModel, "seller"); }
/// <summary> /// Registers the buyer. /// </summary> /// <param name="buyerModel">The buyer model.</param> /// <returns></returns> public async Task<IdentityResult> RegisterBuyer(UserModel buyerModel) { return await RegisterUser(buyerModel, "buyer"); //todo const }
public async Task<IHttpActionResult> RegisterSeller(UserModel userModel) { return await Register(userModel, UserType.Seller); }