Exemple #1
0
        public ResponseModel ObtainPhoneNumberCode(GetPhoneNumberCodeModel model)
        {
            var response = new ResponseModel
            {
                Success  = false,
                Messages = new List <string>()
            };

            if (ModelState.IsValid)
            {
                try
                {
                    var user = UserManager.FindByName(model.PhoneNumber);
                    if (user != null)
                    {
                        GeneratePhoneCodeApiMethod(user.Id, user.PhoneNumber);
                        response.Success = true;
                        response.Messages.Add("Code has been sent");
                    }
                    else
                    {
                        response.Messages.Add("User not found");
                    }
                }
                catch (Exception error)
                {
                    response.Messages.Add(error.InnerException.Message);
                }
            }
            else
            {
                foreach (var error in ModelState.Values.SelectMany(obj => obj.Errors))
                {
                    response.Messages.Add(error.ErrorMessage);
                }
            }
            return(response);
        }
        public async Task <ActionResult> ForgotPassword(GetPhoneNumberCodeModel model)
        {
            try
            {
                //if (!ModelState.IsValid)
                //{
                //    return Json(new { Success = false, Message = "Either UserId or Code is empty" }, JsonRequestBehavior.AllowGet);
                //}
                string        actionPath      = "User/RequestResetPassword";
                ResponseModel responseContent = null;
                using (HttpClient client = new HttpClient())
                {
                    client.BaseAddress = new Uri(CommonFunction.GetWebAPIBaseURL());
                    client.DefaultRequestHeaders.Authorization = AuthHandler.AuthenticationHeader();

                    //client.BaseAddress = new Uri(path);
                    HttpResponseMessage response = await client.PostAsJsonAsync(actionPath, model);

                    if (response.IsSuccessStatusCode)
                    {
                        responseContent = await response.Content.ReadAsAsync <ResponseModel>();
                    }
                }
                if (responseContent != null && responseContent.Success)
                {
                    var json = JsonConvert.SerializeObject(responseContent.Data);
                    var itemsResponseModel = JsonConvert.DeserializeObject <UserModel>(json);
                    //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                    return(Json(new { Success = responseContent.Success, Message = String.Join(" ", responseContent.Messages), Object = new { UserId = itemsResponseModel.Id != Guid.Empty ? itemsResponseModel.Id : itemsResponseModel.UserId } }, JsonRequestBehavior.AllowGet));
                }
                return(Json(new { Success = false, Message = String.Join(" ", responseContent.Messages) }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = false, Message = "Something went wrong while user forgot password" }, JsonRequestBehavior.AllowGet));
            }
        }
        public async Task <ActionResult> ResendCode(GetPhoneNumberCodeModel model)
        {
            try
            {
                //if (!ModelState.IsValid)
                //{
                //    return Json(new { Success = false, Message = "Either UserId or Code is empty" }, JsonRequestBehavior.AllowGet);
                //}
                string        actionPath      = "account/GetPhoneNumberCode";
                ResponseModel responseContent = null;
                using (HttpClient client = new HttpClient())
                {
                    client.BaseAddress = new Uri(CommonFunction.GetWebAPIBaseURL());
                    client.DefaultRequestHeaders.Authorization = AuthHandler.AuthenticationHeader();

                    //client.BaseAddress = new Uri(path);
                    HttpResponseMessage response = await client.PostAsJsonAsync(actionPath, model);

                    if (response.IsSuccessStatusCode)
                    {
                        responseContent = await response.Content.ReadAsAsync <ResponseModel>();
                    }
                }
                if (responseContent != null && responseContent.Success)
                {
                    //var json = JsonConvert.SerializeObject(responseContent.Data);
                    //var itemsResponseModel = JsonConvert.DeserializeObject<UserModel>(json);
                    return(Json(new { Success = responseContent.Success, Message = String.Join(" ", responseContent.Messages) }, JsonRequestBehavior.AllowGet));
                }
                return(Json(new { Success = false, Message = String.Join(" ", responseContent.Messages) }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = false, Message = "Something went wrong while resending code on phone number" }, JsonRequestBehavior.AllowGet));
            }
        }