public async Task <HttpResponseMessage> VerifyCode(VerifyRegisterCodeViewModel userModel) { if (!ModelState.IsValid) { return(new HttpResponseMessage() { Content = new StringContent( "<strong>Invalid Model</strong>", Encoding.UTF8, "text/html") }); } ReturnData result = await _repo.VerifyCode(userModel); return(OkResponse <ReturnData>(result)); }
public async Task <ReturnData> VerifyCode(VerifyRegisterCodeViewModel model) { var isValidCode = await _userManager.VerifyChangePhoneNumberTokenAsync(model.UserId, model.Code, model.PhoneNumber); if (isValidCode) { var user = await _userManager.FindByIdAsync(model.UserId); if (user != null) { var crmUserEntity = new Contact() { ContactId = "0", MobilePhone = user.PhoneNumber, FullName = user.Name, Email = user.Email }; try { var crmUser = new ContactManager().RegisterContactInPortal(crmUserEntity); var result = await _userManager.ChangePhoneNumberAsync(model.UserId, model.PhoneNumber, model.Code); if (result.Succeeded) { user.CrmUserId = crmUser.ContactId; await _userManager.UpdateAsync(user); } var request = HttpContext.Current.Request; var tokenServiceUrl = request.Url.GetLeftPart(UriPartial.Authority) + request.ApplicationPath + "/Token"; using (var client = new HttpClient()) { var requestParams = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("grant_type", "password"), new KeyValuePair <string, string>("username", user.UserName), new KeyValuePair <string, string>("password", model.Password) }; var requestParamsFormUrlEncoded = new FormUrlEncodedContent(requestParams); var tokenServiceResponse = await client.PostAsync(tokenServiceUrl, requestParamsFormUrlEncoded); var responseString = await tokenServiceResponse.Content.ReadAsStringAsync(); var responseCode = tokenServiceResponse.StatusCode; var responseMsg = new HttpResponseMessage(responseCode) { Content = new StringContent(responseString, Encoding.UTF8, "application/json") }; return(new ReturnData() { State = true, Data = new { code = responseString, user = user } }); } } catch (Exception) { return(new ReturnData() { State = false, Data = "Failed to save in CRM" }); } } } return(new ReturnData() { State = false, Data = "Invalid code" }); }