Пример #1
0
        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));
        }
Пример #2
0
        public ActionResult JoinWaitList(PerksModel model)
        {
            if (string.IsNullOrEmpty(model.CouponCode))
            {
                return(RedirectToAction("RewardParticipation"));
            }

            ViewBag.Message      = "";
            ViewBag.ErrorMessage = "";
            ViewBag.ErrorDetails = "";

            return(View());
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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);
        }