Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 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"));
     }
 }
Ejemplo n.º 9
0
        //
        // 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"));
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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"));
        }