コード例 #1
0
        public async Task <HttpResponseMessage> CreateUser(ApplicationUser user)
        {
            if (!base.GoogleReCaptcha(user.CaptchaCode))
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Verify Captcha!"));
            }

            //if (!ModelState.IsValid)
            //    return BadRequest(ModelState);
            //var baseUrl = Request.RequestUri.GetLeftPart(UriPartial.Authority);
            var            baseUrl       = Utilities.GetConfigurationValue(Common.Constants.ConfigurationKeys.BaseUrl);
            IdentityResult addUserResult = await this.AppUserManager.CreateAsync(user);

            if (!addUserResult.Succeeded)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, addUserResult.Errors.FirstOrDefault()));
                //return GetErrorResult(addUserResult);
            }

            else
            {
                idMessage.Destination = user.Email;
                idMessage.Subject     = Utilities.GetResourceValue(Common.Constants.Resources.DurraEmailConfirmation);
                var result = loginFacade.GenerateCofnirmationToken(user.Email);

                var tokens = new Dictionary <string, string>();
                tokens.Add(Common.Constants.EmailKeys.BaseUrl, baseUrl);
                tokens.Add(Common.Constants.EmailKeys.Result, result);
                tokens.Add(Common.Constants.EmailKeys.Email, user.Email);

                if (result != string.Empty)
                {
                    var messageBody = Utilities.GetResourceValue(Common.Constants.Resources.ConfirmationBody).GetMessageBody(tokens);
                    idMessage.Body = messageBody;
                    emailService.SendAsync(idMessage);
                    return(Request.CreateResponse(HttpStatusCode.OK, Utilities.GetResourceValue(Common.Constants.Resources.ConfirmationSent)));
                    //return Ok(Utilities.GetResourceValue(Common.Constants.Resources.ConfirmationSent));
                }
                else
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, result));
                }
            }
        }