public async Task <ActionResult> Restaurants(DealSortOrder sortBy = DealSortOrder.City, string sortOrder = "asc") { try { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; AuthorizeUserResult userResult = await AuthorizeUser(liveIdAuthResult); if (!userResult.Authorized) { return(userResult.Result); } if (liveIdAuthResult != null) { ViewBag.ProfileName = liveIdAuthResult.ProfileName; ViewBag.SignOutHtmlLink = liveIdAuthResult.SignOutHtmlLink; } string state = (HttpContext.Items["state"] as string) ?? "wa"; if (state == "wa") { ViewBag.wa = "selected"; } else if (state == "az") { ViewBag.az = "selected"; } if (state == "ma") { ViewBag.ma = "selected"; } string revIpHeader = HttpContext.Request.Headers["X-FD-RevIP"]; Task <List <Deal> > dealTask = DealService.GetDeals(state); UserModel userModel = new UserModel(User.Identity as ClaimsIdentity); string secureToken = HttpContext.Items["backendtoken"] as string; Task <string> earnedAmountTask = CommerceService.GetTotalEarnedAmount(userModel, secureToken); string earnedAmount = await earnedAmountTask; List <Deal> deals = await dealTask; SortDealsBy(deals, sortBy, sortOrder); AccountsPageModel pageModel = new AccountsPageModel { LocalDeals = deals, SelectedState = state, EarnTotal = earnedAmount, SortBy = Enum.GetName(sortBy.GetType(), sortBy), SortOrder = sortOrder, Page = "restaurants", UserId = userModel.UserId }; return(View("~/offers/earn/views/account/restaurants.cshtml", pageModel)); } catch (Exception e) { } return(HandleServerError()); }
private ActionResult HandleUnauthenticatedOrUnregisteredUser(LiveIdAuthResult result) { LearnPageModel learnPageModel = new LearnPageModel(); if (result != null) { learnPageModel.LiveIdResult = result; } return(View("~/offers/earn/views/learn/learn.cshtml", learnPageModel)); }
/// <summary> /// enrolls the user registered card brand to the earn program /// defaults to mastercard /// </summary> /// <param name="ut">The user token</param> /// <returns>The view</returns> public async Task <ActionResult> Index(string ut) { if (string.IsNullOrWhiteSpace(ut)) { Log.Error("MigrateController: invalid user token, redirecting to home page"); } else { try { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; if (liveIdAuthResult != null) { if (liveIdAuthResult.IsUserAuthenticated) { ViewBag.ProfileName = liveIdAuthResult.ProfileName; ViewBag.LoginHtmlLink = liveIdAuthResult.SignOutHtmlLink; } else { ViewBag.LoginHtmlLink = liveIdAuthResult.SignInHtmlLink; } } var content = new { user_id = Cipher.Decrypt(ut, WebConfigurationManager.AppSettings["MigrateUserDecryptKey"]), card_brands = new[] { "MasterCard" }, reward_programs = new[] { "EarnBurn" } }; using (var handler = new WebRequestHandler()) { X509Certificate2 cert = TryGetCertificate(CertThumbprint); if (cert != null) { handler.ClientCertificates.Add(cert); using (HttpClient client = new HttpClient(handler)) { HttpResponseMessage response = await client.PutAsJsonAsync(WebConfigurationManager.AppSettings["MigrateUserUri"], content); response.EnsureSuccessStatusCode(); Log.Info("MigrateController: user {0} enrolled successfully.", ut); return(View("~/offers/earn/views/migrate/index.cshtml")); } } } } catch (Exception ex) { Log.Error(ex, "MigrateController: Decrypting the token {0} failed.", ut); } } return(RedirectToRoute("Default")); }
public ActionResult Index() { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; LearnPageModel learnPageModel = new LearnPageModel(); if (liveIdAuthResult != null) { learnPageModel.LiveIdResult = liveIdAuthResult; } return(View("~/offers/earn/views/learn/learn.cshtml", learnPageModel)); }
// TODO: Replace with a different auth model public ActionResult Index() { LiveIdAuthResult liveIdAuthResult = new LiveIdAuthResult(); LearnPageModel learnPageModel = new LearnPageModel(); if (liveIdAuthResult != null) { learnPageModel.LiveIdResult = liveIdAuthResult; } return(View("~/offers/earn/views/learn/learn.cshtml", learnPageModel)); }
public async Task <ActionResult> Index() { try { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; AuthorizeUserResult userResult = await AuthorizeUser(liveIdAuthResult); if (!userResult.Authorized) { return(userResult.Result); } if (liveIdAuthResult != null) { ViewBag.ProfileName = liveIdAuthResult.ProfileName; ViewBag.SignOutHtmlLink = liveIdAuthResult.SignOutHtmlLink; } string state = (HttpContext.Items["state"] as string) ?? "wa"; Task <List <Deal> > dealTask = DealService.GetDeals(state); UserModel userModel = new UserModel(User.Identity as ClaimsIdentity); string secureToken = HttpContext.Items["backendtoken"] as string; Task <string> earnedAmountTask = CommerceService.GetTotalEarnedAmount(userModel, secureToken); string earnedAmount = await earnedAmountTask; List <Deal> deals = await dealTask; List <Deal> topDeals = DealService.GetTopDeals(state); if (deals != null) { AccountsPageModel model = new AccountsPageModel { LocalDeals = deals, TopDeals = topDeals, EarnTotal = earnedAmount, UserId = userModel.UserId, Page = "places to earn" }; return(View("~/offers/earn/views/account/places.cshtml", model)); } } catch (Exception e) { } return(HandleServerError()); }
public ActionResult Index() { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; if (!User.Identity.IsAuthenticated) { LearnPageModel learnPageModel = new LearnPageModel(); if (liveIdAuthResult != null) { learnPageModel.LiveIdResult = liveIdAuthResult; } return(View("~/offers/earn/views/learn/learn.cshtml", learnPageModel)); } return(Content(liveIdAuthResult.Anid)); }
public async Task <ActionResult> GiftCards() { try { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; AuthorizeUserResult userResult = await AuthorizeUser(liveIdAuthResult); if (!userResult.Authorized) { return(userResult.Result); } if (liveIdAuthResult != null) { ViewBag.ProfileName = liveIdAuthResult.ProfileName; ViewBag.SignOutHtmlLink = liveIdAuthResult.SignOutHtmlLink; } string state = (HttpContext.Items["state"] as string) ?? "wa"; string revIpHeader = HttpContext.Request.Headers["X-FD-RevIP"]; UserModel userModel = new UserModel(User.Identity as ClaimsIdentity); string secureToken = HttpContext.Items["backendtoken"] as string; Task <string> earnedAmountTask = CommerceService.GetTotalEarnedAmount(userModel, secureToken); User userInfo = await UserService.GetUserInfo(secureToken); string earnedAmount = await earnedAmountTask; if (userInfo != null) { AccountsPageModel pageModel = new AccountsPageModel { UserInfo = userInfo, EarnTotal = earnedAmount, UserId = userModel.UserId, Page = "GiftCards" }; return(View("~/offers/earn/views/account/giftcards.cshtml", pageModel)); } } catch (Exception e) { } return(HandleServerError()); }
public async Task <ActionResult> Referrals() { try { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; AuthorizeUserResult userResult = await AuthorizeUser(liveIdAuthResult); if (!userResult.Authorized) { return(userResult.Result); } if (liveIdAuthResult != null) { ViewBag.ProfileName = liveIdAuthResult.ProfileName; ViewBag.SignOutHtmlLink = liveIdAuthResult.SignOutHtmlLink; } UserModel userModel = new UserModel(User.Identity as ClaimsIdentity); string secureToken = HttpContext.Items["backendtoken"] as string; Task <string> earnedAmountTask = CommerceService.GetTotalEarnedAmount(userModel, secureToken); Task <string> referralCodeTask = CommerceService.LoadReferralCode(userModel, secureToken); Task <List <ReferralCodeReportDataContract> > referralReportTask = CommerceService.LoadReferralReport(userModel, secureToken); string earnedAmount = await earnedAmountTask; string referralCode = await referralCodeTask; List <ReferralCodeReportDataContract> referralReport = await referralReportTask; AccountsPageModel pageModel = new AccountsPageModel { EarnTotal = earnedAmount, ReferralReport = referralReport, ReferralCode = referralCode, Page = "referrals", UserId = userModel.UserId }; return(View("~/offers/earn/views/account/referrals.cshtml", pageModel)); } catch (Exception e) { } return(HandleServerError()); }
public async Task <ActionResult> Settings() { try { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; AuthorizeUserResult userResult = await AuthorizeUser(liveIdAuthResult); if (!userResult.Authorized) { return(userResult.Result); } if (liveIdAuthResult != null) { ViewBag.ProfileName = liveIdAuthResult.ProfileName; ViewBag.SignOutHtmlLink = liveIdAuthResult.SignOutHtmlLink; } UserModel userModel = new UserModel(User.Identity as ClaimsIdentity); string secureToken = HttpContext.Items["backendtoken"] as string; Task <V2GetCardsResponse> getCardsResponseTask = CommerceService.GetRegisteredCards(secureToken); Task <string> earnedAmountTask = CommerceService.GetTotalEarnedAmount(userModel, secureToken); User userInfo = await UserService.GetUserInfo(secureToken); string earnedAmount = await earnedAmountTask; V2GetCardsResponse getCardsResponse = await getCardsResponseTask; AccountsPageModel pageModel = new AccountsPageModel { EarnTotal = earnedAmount, Cards = getCardsResponse.Cards, UserInfo = userInfo, Page = "settings", UserId = userModel.UserId }; return(View("~/offers/earn/views/account/settings.cshtml", pageModel)); } catch (Exception e) { } return(HandleServerError()); }
public async Task <ActionResult> Index(bool debug = false, string step = "step1") { try { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; ViewBag.CurrentStep = step; if (!User.Identity.IsAuthenticated) { return(HandleUnauthenticatedUser(liveIdAuthResult)); } UserModel userModel = new UserModel(User.Identity as ClaimsIdentity); ViewBag.UserId = userModel.UserId; string secureToken = HttpContext.Items["backendtoken"] as string; bool status = await CommerceService.IsUserRegisteredWithCardLink(userModel, secureToken); if (liveIdAuthResult != null) { ViewBag.ProfileName = liveIdAuthResult.ProfileName; ViewBag.SignOutHtmlLink = liveIdAuthResult.SignOutHtmlLink; } if (debug) { return(View("~/offers/earn/views/enroll/enroll.cshtml")); } if (status) { return(HandleRegisteredUser()); } return(View("~/offers/earn/views/enroll/enroll.cshtml")); } catch { return(HandleServerError()); } }
private async Task <AuthorizeUserResult> AuthorizeUser(LiveIdAuthResult liveIdAuthResult) { AuthorizeUserResult authorizeResult = new AuthorizeUserResult(); if (!User.Identity.IsAuthenticated) { authorizeResult.Result = HandleUnauthenticatedOrUnregisteredUser(liveIdAuthResult); return(authorizeResult); } UserModel userModel = new UserModel(User.Identity as ClaimsIdentity); string secureToken = HttpContext.Items["backendtoken"] as string; bool status = await CommerceService.IsUserRegisteredWithCardLink(userModel, secureToken); if (!status) { authorizeResult.Result = HandleUnauthenticatedOrUnregisteredUser(liveIdAuthResult); return(authorizeResult); } authorizeResult.Authorized = true; return(authorizeResult); }
private ActionResult HandleUnauthenticatedUser(LiveIdAuthResult result) { ViewBag.SignInHtmlLink = result.SignInHtmlLink;; return(View("~/offers/earn/views/enroll/enrollunauthenticated.cshtml")); }
public async Task <ActionResult> History() { try { LiveIdAuthResult liveIdAuthResult = HttpContext.Items["liveauthstate"] as LiveIdAuthResult; AuthorizeUserResult userResult = await AuthorizeUser(liveIdAuthResult); if (!userResult.Authorized) { return(userResult.Result); } if (liveIdAuthResult != null) { ViewBag.ProfileName = liveIdAuthResult.ProfileName; ViewBag.SignOutHtmlLink = liveIdAuthResult.SignOutHtmlLink; } string state = (HttpContext.Items["state"] as string) ?? "wa"; string revIpHeader = HttpContext.Request.Headers["X-FD-RevIP"]; string secureToken = HttpContext.Items["backendtoken"] as string; UserModel userModel = new UserModel(User.Identity as ClaimsIdentity); GetEarnBurnTransactionHistoryResponse response = await CommerceService.GetTransactionHistory(userModel, secureToken); if (response != null && response.RedemptionHistory != null) { AccountsPageModel pageModel = new AccountsPageModel { RedemptionHistory = response.RedemptionHistory.Where(x => x.CreditStatus == "CreditGranted").ToList(), EarnTotal = response.CreditBalance, PendingRedemptionHistory = response.RedemptionHistory.Where(x => x.CreditStatus == "AuthorizationReceived" || x.CreditStatus == "ClearingReceived" || x.CreditStatus == "StatementCreditRequested").ToList(), UserId = userModel.UserId, Page = "history" }; List <EarnBurnTransactionItemDataContract> removeList = new List <EarnBurnTransactionItemDataContract>(); if (pageModel.PendingRedemptionHistory.Count > 0) { foreach (EarnBurnTransactionItemDataContract item in pageModel.PendingRedemptionHistory) { List <EarnBurnTransactionItemDataContract> result = pageModel.RedemptionHistory.Where(x => x.CardBrand == item.CardBrand && x.EventDateTime == item.EventDateTime && x.RedemptionType == item.RedemptionType && x.MerchantName == item.MerchantName && x.LastFourDigits == item.LastFourDigits && x.EventAmount == item.EventAmount && x.DiscountAmount == item.DiscountAmount).ToList(); if (result != null && result.Count > 0) { removeList.AddRange(result); } } if (removeList.Count > 0) { foreach (EarnBurnTransactionItemDataContract item in removeList) { pageModel.PendingRedemptionHistory.RemoveAll(x => x.EventDateTime == item.EventDateTime && x.EventAmount == item.EventAmount && x.RedemptionType == item.RedemptionType && x.DiscountAmount == item.DiscountAmount && x.LastFourDigits == item.LastFourDigits && x.CardBrand == item.CardBrand && x.MerchantName == item.MerchantName); } } if (pageModel.PendingRedemptionHistory != null && pageModel.PendingRedemptionHistory.Count > 0) { foreach (var pendingTransaction in pageModel.PendingRedemptionHistory) { if (pendingTransaction.MerchantName.Trim() == "Shell") { pendingTransaction.DiscountAmount = "TBD"; pendingTransaction.EventAmount = "TBD"; } } } } return(View("~/offers/earn/views/account/history.cshtml", pageModel)); } } catch (Exception e) { } return(HandleServerError()); }