예제 #1
0
        /// <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();
            }
        }
예제 #2
0
        /// <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();
        }
예제 #3
0
 /// <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");
 }
예제 #4
0
 /// <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
 }
예제 #5
0
 public async Task<IHttpActionResult> RegisterSeller(UserModel userModel)
 {
     return await Register(userModel, UserType.Seller);
 }