public ActionResult NearbyVenues(int maxRadius) { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "FoursquareLogin")); } FoursquareUserContext foursquareUserContext = new FoursquareUserContext(); //TODO maybe change to premium warning notification int userId = Convert.ToInt32(User.Identity.Name); FoursquareUserModel user = foursquareUserContext.FoursquareUsers. First(x => x.FoursquareUserId == userId); int premiumRadius = Convert.ToInt32(ConfigurationManager.AppSettings["PremiumRadius"]); if (!user.IsPremium && premiumRadius < maxRadius) { maxRadius = premiumRadius; } string token = GetCurrentUserToken(); logger.Debug("Got token " + token); Logic.FoursquareOAuth FSQOAuth = new FoursquareOAuth(token); List <string> res = FSQOAuth.GetNearbyVenues(maxRadius); logger.Debug("Got venues " + res.Count); List <FoursquareOAuth.Venue> venues = new List <FoursquareOAuth.Venue>(); if (res.Count == 0) { ViewBag.venues = null; return(View()); } try { foreach (var re in res) { venues.Add(FSQOAuth.GetVenuesInfo(re)); } } catch (Exception e) { logger.Error(e.Message); } logger.Debug("Got venues info"); ViewBag.venues = venues; return(View()); }
private string GetCurrentUserToken() { if (!User.Identity.IsAuthenticated) { return(null); } Models.FoursquareUserContext fsqDBContext = new FoursquareUserContext(); Models.FoursquareUserModel um = fsqDBContext.FoursquareUsers.Find(Convert.ToInt32(User.Identity.Name)); if (um != null) { return(um.Token); } return(null); }
public NameValueCollection GetProfileInfo(int targetId) { string token = GetCurrentUserToken(); Logic.FoursquareOAuth FSQOAuth = new FoursquareOAuth(token); Profile pf = FSQOAuth.GetProfileInfo(targetId); Models.FoursquareUserContext db = new FoursquareUserContext(); int userID = FSQOAuth.GetUserId(); FoursquareUserModel um = db.FoursquareUsers.Find(userID); NameValueCollection nv = pf.getInfo(um.IsPremium); nv["isPremium"] = um.IsPremium.ToString(); return(nv); }
public ActionResult NearbyUsers() { //TODO redirect to Friends if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "FoursquareLogin")); } string token = GetCurrentUserToken(); Logic.FoursquareOAuth FSQOAuth = new FoursquareOAuth(token); Models.FoursquareUserContext db = new FoursquareUserContext(); IEnumerable <FoursquareUserModel> foursquareUsers = db.FoursquareUsers; foreach (var foursquareUserModel in foursquareUsers) { Logic.FoursquareOAuth tmp = new FoursquareOAuth(foursquareUserModel.Token); foursquareUserModel.LastVenueID = tmp.GetLastVenue(); UpdateModel(foursquareUserModel); logger.Debug("Got last venue " + foursquareUserModel.FoursquareUserId); } db.SaveChanges(); logger.Debug("Got all venues"); List <int> res = FSQOAuth.GetNearByUsers(1000); logger.Debug("got nearby users"); List <string> names = new List <string>(); for (int i = 0; i < res.Count; ++i) { NameValueCollection tmp; if (res[i] != null) { tmp = GetProfileInfo(res[i]); names.Add(tmp["firstname"]); } else { res.Remove(i); } } logger.Debug("got profile info"); ViewBag.users = res; ViewBag.names = names; return(View()); }
public ActionResult AuthInfo() { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Login")); } FoursquareUserContext fsqDBContext = new FoursquareUserContext(); FoursquareUserModel curUser = fsqDBContext.FoursquareUsers.Find(Convert.ToInt32(User.Identity.Name)); if (curUser != null) { UserAuthInfo res = new UserAuthInfo(curUser.FoursquareUserId, curUser.Token); return(Json(res, JsonRequestBehavior.AllowGet)); } return(null); }
public static bool ValidateAuthData(int userId, string token) { FoursquareUserContext dbContent = new FoursquareUserContext(); FoursquareUserModel user = dbContent.FoursquareUsers.Find(userId); if (user == null) { return(false); } if (user.FoursquareUserId == userId && token == user.Token) { return(true); } return(false); }
public Profile GetProfile(string userId, string token, string targetId) { int uId = Convert.ToInt32(userId); int tId = Convert.ToInt32(targetId); if (AuthService.ValidateAuthData(uId, token)) { FoursquareUserContext dbContext = new FoursquareUserContext(); IMessageRepository repository = new MessageRepository(dbContext); FoursquareOAuth fsqOAuth = new FoursquareOAuth(token); if (fsqOAuth.CheckForFriendship(tId)) { Profile res = fsqOAuth.GetProfileInfo(tId); return(res); } } return(null); }
public ActionResult Login() { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Authenticate")); } Models.FoursquareUserContext fsqDBContext = new FoursquareUserContext(); Models.FoursquareUserModel fsqUser = fsqDBContext.FoursquareUsers.Find(Convert.ToInt32(User.Identity.Name)); Logic.FoursquareOAuth FSQOAuth = new FoursquareOAuth(fsqUser.Token); try { FSQOAuth.GetUserId(); return(RedirectToAction("Index", "Foursquare")); } catch (WebException) { return(RedirectToAction("Authenticate")); } }
// // GET: /FoursquareLogin/ public ActionResult Index() { Models.FoursquareUserContext fsqDBContext = new FoursquareUserContext(); fsqDBContext.FoursquareUsers.Add(new FoursquareUserModel() { FoursquareUserId = 1, Token = "fafaf", UserGuid = Guid.NewGuid(), UserName = "******" }); fsqDBContext.Messages.Add(new MessageModel() { From = 1, To = 1, Message = "daf", time = DateTime.Now }); return(RedirectToAction("Login")); }
public List <int> GetNearByUsers(int radius) { Models.FoursquareUserContext db = new FoursquareUserContext(); List <string> venueList = GetNearbyVenues(radius); if (venueList == null) { return(new List <int>()); } List <int> res = new List <int>(); int userId = GetUserId(); foreach (string s in venueList) { IEnumerable <int> q = from o in db.FoursquareUsers where o.LastVenueID == s && o.FoursquareUserId != userId select o.FoursquareUserId; res.AddRange(q); } return(res); }
public ActionResult Authenticate() { Logic.FoursquareOAuth FSQOAuth = new Logic.FoursquareOAuth(null); if (Request["code"] == null) { return(Redirect(FSQOAuth.GetAuthURL())); } if (FSQOAuth.makeAuthentication(Request["code"])) { int userId = FSQOAuth.GetUserId(); string lastVenue; try { lastVenue = FSQOAuth.GetLastVenue(); } catch (Exception e) { lastVenue = null; } FoursquareUserContext fsqDBContext = new FoursquareUserContext(); FoursquareUserModel curUser = fsqDBContext.FoursquareUsers.Find(userId); if (curUser != null) { MembershipUser mUser = Membership.GetUser(curUser.UserGuid); curUser.LastVenueID = lastVenue; if (curUser.Token != FSQOAuth.Token) { curUser.Token = FSQOAuth.Token; } UpdateModel(curUser); fsqDBContext.SaveChanges(); FormsAuthentication.SetAuthCookie(mUser.UserName, true); } else { curUser = new FoursquareUserModel(); curUser.FoursquareUserId = userId; curUser.Token = FSQOAuth.Token; string password = Guid.NewGuid().ToString(); MembershipUser mUser; try { mUser = Membership.CreateUser(userId.ToString(), password); } catch (Exception) { mUser = Membership.FindUsersByName(userId.ToString())[userId.ToString()]; } curUser.UserGuid = (Guid)mUser.ProviderUserKey; curUser.UserName = userId.ToString(); curUser.LastVenueID = lastVenue; fsqDBContext.FoursquareUsers.Add(curUser); fsqDBContext.SaveChanges(); FormsAuthentication.SetAuthCookie(curUser.UserName, true); } } return(RedirectToAction("Index")); }