public static async Task <V2GetCardsResponse> GetRegisteredCards(string secureToken) { using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("X-FD-BingIDToken", secureToken); client.Timeout = TimeSpan.FromMilliseconds(5000); client.DefaultRequestHeaders.Add("X-Flight-ID", "Earn"); string data = await client.GetStringAsync("https://commerce.earnbymicrosoft.com/api/commerce/v2/cards"); V2GetCardsResponse response = JsonConvert.DeserializeObject <V2GetCardsResponse>(data); return(response); } }
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()); }
//To be used only by certain apis. public static async Task <bool> IsUserRegisteredWithCardLink(UserModel user, string secureToken) { string key = "clo_user:"******"UnregisteredUser") { return(false); } HttpRuntime.Cache.Insert(key, true, null, Cache.NoAbsoluteExpiration, TimeSpan.FromDays(1)); return(true); }