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)); } } }