public ActionResult RewardParticipation(PerksModel model, string Action) { ViewBag.Message = ""; ViewBag.ErrorMessage = ""; ViewBag.ErrorDetails = ""; try { var apiManager = new APIManager(); var apiResponse = apiManager.ValidateCouponCode(model.CouponCode); if (apiResponse.StatusCode.Equals(HttpStatusCode.OK)) { if (apiResponse.status.Equals("error", StringComparison.CurrentCultureIgnoreCase)) { // currently happens when code not found ViewBag.ErrorMessage = apiResponse.error; ViewBag.ErrorDetails = JsonConvert.SerializeObject(apiResponse); } else { if (apiResponse.data.valid) { if (model.CouponCode.Equals("waitlist")) { return(View("JoinWaitList", model)); } else { return(View("UserSignup", model)); } } else { ViewBag.ErrorMessage = "Invalid coupon code."; ViewBag.ErrorDetails = JsonConvert.SerializeObject(apiResponse); } } } else if (apiResponse.StatusCode.Equals(HttpStatusCode.NotFound)) { ViewBag.ErrorMessage = "Invalid coupon code."; ViewBag.ErrorDetails = JsonConvert.SerializeObject(apiResponse); } else { ViewBag.ErrorMessage = string.Format("Unexpected HttpStatusCode: {0}.", apiResponse.StatusCode); ViewBag.ErrorDetails = JsonConvert.SerializeObject(apiResponse); return(View("Error", model)); } } catch (Exception ex) { ViewBag.ErrorMessage = "Exception calling the API."; ViewBag.ErrorDetails = string.Format("{0} {1} {2}", ex.Source, ex.Message, ex.StackTrace); return(View("Error", model)); } return(View(model)); }
public ActionResult JoinWaitList(PerksModel model) { if (string.IsNullOrEmpty(model.CouponCode)) { return(RedirectToAction("RewardParticipation")); } ViewBag.Message = ""; ViewBag.ErrorMessage = ""; ViewBag.ErrorDetails = ""; return(View()); }
public UserSignupResponse UserSignup(PerksModel model) { var app = RequestAppAuthToken(); var user = RequestUserAuthToken(model); if (app.StatusCode.Equals(HttpStatusCode.BadRequest)) { return(new UserSignupResponse { StatusCode = app.StatusCode, code = app.code, message = app.message, description = app.description, policy = app.policy }); } if (user.StatusCode.Equals(HttpStatusCode.BadRequest)) { return(new UserSignupResponse { StatusCode = user.StatusCode, code = user.code, message = user.message, description = user.description, policy = user.policy }); } var request = GetRequestObject(String.Format("{0}/signup", baseUrl), method: "POST", token: app.access_token); var jsonData = JsonConvert.SerializeObject(new UserSignupRequest { uid = user._id, first_name = model.FirstName, last_name = model.LastName, cid = model.ClipperCardNumber, email = model.EmailAddress, invitiation_code = model.CouponCode }); AddJSONDataToRequest(request, jsonData); var apiResponse = GetAPIResponse(request); var response = JsonConvert.DeserializeObject <UserSignupResponse>(apiResponse.JSONString); response.URI = apiResponse.URI; response.StatusCode = apiResponse.StatusCode; log.Debug(JsonConvert.SerializeObject(response)); return(response); }
public ActionResult JoinWaitList(PerksModel model, string Action) { ViewBag.Message = ""; ViewBag.ErrorMessage = ""; ViewBag.ErrorDetails = ""; try { #if DEBUG if (model.EmailAddress == "*****@*****.**") { ViewBag.Message = " you have been added to the waitlist."; return(View("ProcessComplete", model)); } #endif var apiManager = new APIManager(); var apiResponse = apiManager.JoinWaitList(model.EmailAddress); if (apiResponse.StatusCode.Equals(HttpStatusCode.OK)) { if (apiResponse.status.Equals("error", StringComparison.CurrentCultureIgnoreCase)) { ViewBag.ErrorMessage = apiResponse.error; ViewBag.ErrorDetails = JsonConvert.SerializeObject(apiResponse); } else { ViewBag.Message = " you have been added to the waitlist."; return(View("ProcessComplete", model)); } } else { ViewBag.ErrorMessage = string.Format("Unexpected HttpStatusCode: {0}.", apiResponse.StatusCode); ViewBag.ErrorDetails = JsonConvert.SerializeObject(apiResponse); return(View("Error", model)); } } catch (Exception ex) { ViewBag.ErrorMessage = "Exception calling the API."; ViewBag.ErrorDetails = string.Format("{0} {1} {2}", ex.Source, ex.Message, ex.StackTrace); return(View("Error", model)); } return(View(model)); }
public ActionResult UserSignup(PerksModel model, string Action) { ViewBag.Message = ""; ViewBag.ErrorMessage = ""; ViewBag.ErrorDetails = ""; try { var apiManager = new APIManager(); var apiResponse = apiManager.UserSignup(model); if (apiResponse.StatusCode.Equals(HttpStatusCode.OK)) { if (apiResponse.status.Equals("error", StringComparison.CurrentCultureIgnoreCase)) { ViewBag.ErrorMessage = apiResponse.description; ViewBag.ErrorDetails = JsonConvert.SerializeObject(apiResponse); } else { ViewBag.Message = " your signup is complete!"; return(View("ProcessComplete", model)); } } else { ViewBag.ErrorMessage = apiResponse.description; ViewBag.ErrorDetails = JsonConvert.SerializeObject(apiResponse); } } catch (Exception ex) { ViewBag.ErrorMessage = "Exception calling the API."; ViewBag.ErrorDetails = string.Format("{0} {1} {2}", ex.Source, ex.Message, ex.StackTrace); return(View("Error", model)); } return(View(model)); }
public UserTokenResponse RequestUserAuthToken(PerksModel model) { var request = GetRequestObject(ConfigurationManager.AppSettings["auth0:signup_request_url"], method: "POST"); var tokenRequest = new UserTokenRequest { client_id = ConfigurationManager.AppSettings["auth0:client_id"], email = model.EmailAddress, connection = ConfigurationManager.AppSettings["auth0:connection"], password = model.Password, user_metadata = new UserTokenRequestUserMeta { first_name = model.FirstName, last_name = model.LastName, mobile = "", preferences = "" }, email_verified = "true", app_metadata = new UserTokenRequestAppMeta { source_ref = "app" } }; var jsonData = JsonConvert.SerializeObject(tokenRequest); AddJSONDataToRequest(request, jsonData); var apiResponse = GetAPIResponse(request); var response = JsonConvert.DeserializeObject <UserTokenResponse>(apiResponse.JSONString); response.URI = apiResponse.URI; response.StatusCode = apiResponse.StatusCode; log.Debug(JsonConvert.SerializeObject(response)); return(response); }