// // GET: /Foursquare/Checkins public ActionResult Checkins() { if (Session["CurrentUser"] != null) { var daysRequest = Request["days"] ?? null; int days = 0; FoursquareUser currentUser = Session["CurrentUser"] as Cuatro.Common.FoursquareUser; string accessToken = currentUser.AccessToken; Users myUser = new Users(currentUser, accessToken); if (daysRequest != null) { days = int.Parse(daysRequest); if (days > 365) { days = 365; } } else { days = 7; } ViewBag.Days = days; List <Cuatro.Common.Checkin> myCheckins = new List <Checkin>(); List <Cuatro.Common.Checkin> tempCheckins = myUser.GetCheckins(new TimeSpan(Math.Abs(days), 0, 0, 0), 0); int theOffset = 0; myCheckins.AddRange(tempCheckins); if (tempCheckins.Count == 20) { while (tempCheckins.Count == 20) { tempCheckins = myUser.GetCheckins(new TimeSpan(Math.Abs(days), 0, 0, 0), theOffset); if (tempCheckins != null) { myCheckins.AddRange(tempCheckins); theOffset += 20; } else { break; } } } if (myCheckins != null && myCheckins.Count > 0) { return(View(myCheckins)); } else { return(View()); } } return(RedirectToAction("LogOn", "FoursquareOauth")); }
public async Task <IActionResult> DeleteConfirmed(Guid id) { FoursquareUser foursquareUser = await _context.FoursquareUsers.SingleAsync(m => m.Id == id); _context.FoursquareUsers.Remove(foursquareUser); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Create(FoursquareUser foursquareUser) { if (ModelState.IsValid) { var factory = FourSquareFactory.Create(); var authURI = factory.GetAuthenticationURI(); return(Redirect(authURI)); } return(View(foursquareUser)); }
// // GET: /Home/Profile public ActionResult Profile(FoursquareUser user) { if (user != null) { return(View(user)); } else { return(View()); } }
public async Task <IActionResult> Edit(FoursquareUser foursquareUser) { if (ModelState.IsValid) { _context.Update(foursquareUser); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(foursquareUser)); }
// GET: FoursquareUser/Edit/5 public async Task <IActionResult> Edit(Guid?id) { if (id == null) { return(HttpNotFound()); } FoursquareUser foursquareUser = await _context.FoursquareUsers.SingleAsync(m => m.Id == id); if (foursquareUser == null) { return(HttpNotFound()); } return(View(foursquareUser)); }
public IActionResult FoursquareOauth([FromQuery] string uri) { if (ModelState.IsValid) { var factory = FourSquareFactory.Create(); factory.Authenticate(uri); var foursquareUser = new FoursquareUser { Id = Guid.NewGuid() }; _context.FoursquareUsers.Add(foursquareUser); _context.SaveChangesAsync(); } return(RedirectToAction("Index")); }
public ActionResult UserSearchSubmit(FormCollection collection) { if (Session["CurrentUser"] != null) { FoursquareUser currentUser = Session["CurrentUser"] as Cuatro.Common.FoursquareUser; string accessToken = currentUser.AccessToken; Users myUser = new Users(currentUser, accessToken); UserSearchType type = UserSearchType.twitter; // TODO: Consider creating its own class (UserSearchResult or something) to order by relevance/etc List <FoursquareUser> resultList = new List <FoursquareUser>(); switch (int.Parse(collection.GetValue("typeIndex").ToString())) { case 1: type = UserSearchType.phone; break; case 2: type = UserSearchType.email; break; case 3: type = UserSearchType.fbid; break; case 4: type = UserSearchType.twitter; break; } resultList = myUser.SearchUser(type, collection.GetValue("query").ToString()); if (resultList != null) { return(PartialView("SearchResults", resultList)); } else { return(PartialView()); } } return(RedirectToAction("LogOn", "FoursquareOauth")); }
public ActionResult VenueSearch(FormCollection collection) { try { List <Venue> results = new List <Venue>(); string query = collection["SearchQuery"] ?? ""; string near = collection["Near"] ?? ""; double mylat = 0.00f; double mylong = 0.00f; double.TryParse(collection["Latitude"], out mylat); double.TryParse(collection["Longitude"], out mylong); LocationCoords coords = new LocationCoords() { Latitude = mylat, Longitude = mylong }; FoursquareUser currentUser = Session["CurrentUser"] as Cuatro.Common.FoursquareUser; string accessToken = currentUser.AccessToken; Venues myVenues = new Venues(currentUser, accessToken); if (mylat != 0.00f && mylong != 0.00f) { results = myVenues.SearchVenues(query, coords, near); } return(View(new VenueSearchModel() { Latitude = mylat, Longitude = mylong, Near = near, SearchQuery = query, VenueResults = results })); } catch (Exception ex) { return(RedirectToAction("Error", "Home", new { error = "There was a problem. Ex: " + ex.Message })); throw; } }
// // GET: /Foursquare/Leaderboard public ActionResult Leaderboard() { if (Session["CurrentUser"] != null) { FoursquareUser currentUser = Session["CurrentUser"] as Cuatro.Common.FoursquareUser; string accessToken = currentUser.AccessToken; Users myUser = new Users(currentUser, accessToken); Cuatro.Common.Leaderboard myLeaderboard = myUser.GetLeaderboard(); if (myLeaderboard != null && myLeaderboard.UsersList != null && myLeaderboard.UsersList.Count > 0) { return(View(myLeaderboard)); } else { return(View()); } } return(RedirectToAction("LogOn", "FoursquareOauth")); }
// // GET: /Foursquare/Requests public ActionResult Requests() { if (Session["CurrentUser"] != null) { FoursquareUser currentUser = Session["CurrentUser"] as Cuatro.Common.FoursquareUser; string accessToken = currentUser.AccessToken; Users myUser = new Users(currentUser, accessToken); List <FriendRequest> myRequests = myUser.GetFriendRequests(); if (myRequests != null && myRequests.Count > 0) { return(View(myRequests)); } else { return(View()); } } return(RedirectToAction("LogOn", "FoursquareOauth")); }
// // GET: /FoursquareOauth/Receiver /// <summary> /// Receive the oauth token from Foursquare /// </summary> /// <returns></returns> public ActionResult Receiver() { Session["foursquare_access_token"] = ""; string code = Request["code"] ?? ""; var tokenJson = Request["access_token"] ?? null; string message = Request["error"] ?? ""; FoursquareUser user = new FoursquareUser(); if (tokenJson == null) { if (code != "" && code != null) { StringBuilder accessTokenUri = new StringBuilder(); accessTokenUri.Append("https://foursquare.com/oauth2/access_token"); accessTokenUri.Append(String.Format("?client_id={0}", FoursquareSecrets.CLIENT_ID)); accessTokenUri.Append(String.Format("&client_secret={0}", FoursquareSecrets.CLIENT_SECRET)); accessTokenUri.Append("&grant_type=authorization_code"); accessTokenUri.Append(String.Format("&redirect_uri={0}", FoursquareSecrets.REDIRECT_URI)); accessTokenUri.Append("&code=" + code); var response = WebRequestHelper.WebRequest(WebRequestHelper.Method.GET, accessTokenUri.ToString(), string.Empty); if (response != null && response != "") { var json = JObject.Parse(response); string token = json["access_token"].ToString().Replace("\"", ""); String foursquareUserUri = String.Format("https://api.foursquare.com/v2/users/self?oauth_token={0}", token); var responseUser = WebRequestHelper.WebRequest(WebRequestHelper.Method.GET, foursquareUserUri.ToString(), string.Empty); var jsonUser = JObject.Parse(responseUser); if (int.Parse(jsonUser["meta"]["code"].ToString()) == 200) { user.AccessToken = token; user.FirstName = jsonUser["response"]["user"]["firstName"].ToString().Replace("\"", ""); user.LastName = jsonUser["response"]["user"]["lastName"].ToString().Replace("\"", ""); user.FoursquareUserId = int.Parse(jsonUser["response"]["user"]["id"].ToString().Replace("\"", "")); user.Gender = jsonUser["response"]["user"]["gender"].ToString().Replace("\"", ""); user.HomeCity = jsonUser["response"]["user"]["homeCity"].ToString().Replace("\"", ""); user.PhotoUri = jsonUser["response"]["user"]["photo"].ToString().Replace("\"", ""); } else { var errorCode = int.Parse(jsonUser["meta"]["code"].ToString()); var errorMessage = jsonUser["meta"]["errorMessage"].ToString() ?? null; var errorToSend = String.Format("Error code: {0} Error Message: {1}", errorCode, errorMessage); return(RedirectToAction("Error", new { error = errorToSend })); } } } else { ViewBag.Message = "Error: " + message; } } if (user.FoursquareUserId > 0) { Session["foursquare_access_token"] = user.AccessToken; //FormsAuthentication.SetAuthCookie(user.FoursquareUserId.ToString(), false); Session["CurrentUser"] = user; Session["foursquareId"] = user.FoursquareUserId; return(RedirectToAction("Profile", "Home", user)); } else { return(RedirectToAction("Error", "Home", new { error = "Problem Authenticating user" })); } }
/// <summary> /// Setup the endpoint for use with API calls /// </summary> /// <param name="CurrentAccessToken"></param> /// <param name="CurrentUser"></param> /// <param name="Extras"></param> public void SetupEndpoint(FoursquareUser CurrentUser, string CurrentAccessToken, object extras) { AccessToken = CurrentAccessToken; User = CurrentUser; }
public Users(FoursquareUser User, string AccessToken) { SetupEndpoint(User, AccessToken, null); }