public static void CreateUser(string username, string authCode) { ValidateUsername(username); ValidateAuthCode(authCode); using (FoursquareContext context = new FoursquareContext()) { var usernameToLower = username.ToLower(); var dbUser = context.Users.FirstOrDefault(u => u.Username.ToLower() == usernameToLower); if (dbUser != null) { if (dbUser.Username.ToLower() == usernameToLower) { throw new ServerErrorException("Username already exists", "ERR_DUP_USR"); } } dbUser = new User() { Username = usernameToLower, AuthCode = authCode }; context.Users.Add(dbUser); context.SaveChanges(); } }
public static IEnumerable<PlaceModel> GetNearby(long userId) { var context = new FoursquareContext(); var user = context.Users.FirstOrDefault(u => u.Id == userId); if (user == null) { throw new ServerErrorException("User does not exist", "ERR_GEN_SVR"); } List<PlaceModel> models = new List<PlaceModel>(); foreach (var place in context.Places) { if (IsInProximity(place.Latitude, place.Longitude, user.Latitude, user.Longitude)) { PlaceModel currentModel = new PlaceModel(); currentModel.Name = place.Name; currentModel.Latitude = place.Latitude; currentModel.Longitude = place.Longitude; models.Add(currentModel); } } return models; }
public static string CheckIn(int userId, int placeId) { var context = new FoursquareContext(); var user = context.Users.FirstOrDefault(u => u.Id == userId); var place = context.Places.FirstOrDefault(p => p.Id == placeId); if (user == null || place == null) { throw new ServerErrorException("User or place does not exist.", "INV_NICK_LEN"); } user.Latitude = place.Latitude; user.Longitude = place.Longitude; context.SaveChanges(); PubnubAPI pubnub = new PubnubAPI( "pub-c-b428e4fd-a82e-4cc7-a0d2-d4f832fd1d2b", // PUBLISH_KEY "sub-c-20f993fa-04b4-11e3-a005-02ee2ddab7fe", // SUBSCRIBE_KEY "sec-c-ZGEzODJjZDEtOWE1ZC00YTE4LTg2NTctNzdiYTc4NjBlODVh", // SECRET_KEY true // SSL_ON? ); string channel = place.Id + "" + place.Name; List<object> publishResult = pubnub.Publish(channel, string.Format("User {0} checked at {1}.", user.Username, place.Name)); return channel; }
public static void AddPlace(PlaceModel place) { ValidatePlaceModel(place); var context = new FoursquareContext(); Place newPlace = new Place(); newPlace.Name = place.Name; newPlace.Latitude = place.Latitude; newPlace.Longitude = place.Longitude; context.Places.Add(newPlace); context.SaveChanges(); }
public static int LoginUser(string sessionKey) { ValidateSessionKey(sessionKey); var context = new FoursquareContext(); using (context) { var user = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey); if (user == null) { throw new ServerErrorException("Invalid user authentication", "INV_USR_AUTH"); } return (int)user.Id; } }
public static IEnumerable<PlaceModel> GetAll() { var context = new FoursquareContext(); List<PlaceModel> models = new List<PlaceModel>(); foreach (var place in context.Places) { PlaceModel currentModel = new PlaceModel(); currentModel.Name = place.Name; currentModel.Latitude = place.Latitude; currentModel.Longitude = place.Longitude; models.Add(currentModel); } return models; }
public static string LoginUser(string username, string authCode, out string nameToReturn, out int id) { ValidateUsername(username); ValidateAuthCode(authCode); var context = new FoursquareContext(); using (context) { var usernameToLower = username.ToLower(); var user = context.Users.FirstOrDefault(u => u.Username.ToLower() == usernameToLower && u.AuthCode == authCode); if (user == null) { throw new ServerErrorException("Invalid user authentication", "INV_USR_AUTH"); } var sessionKey = GenerateSessionKey((int)user.Id); user.SessionKey = sessionKey; context.SaveChanges(); nameToReturn = user.Username; id = (int)user.Id; return sessionKey; } }
public static void AddComment(int userId, int placeId, CommentModel comment) { ValidateComment(comment); FoursquareContext context = new FoursquareContext(); var place = context.Places.FirstOrDefault(p => p.Id == placeId); if (place == null) { throw new ServerErrorException("Place does not exist anymore.", "INV_NICK_LEN"); } Comment newComment = new Comment(); newComment.Text = comment.Text; var user = context.Users.FirstOrDefault(u => u.Id == userId); if (user == null) { throw new ServerErrorException("User does not exist anymore.", "INV_NICK_LEN"); } newComment.User = user; place.Comments.Add(newComment); context.SaveChanges(); }
public static void LogoutUser(string sessionKey) { ValidateSessionKey(sessionKey); var context = new FoursquareContext(); using (context) { var user = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey); if (user == null) { throw new ServerErrorException("Invalid user authentication", "INV_USR_AUTH"); } user.SessionKey = null; context.SaveChanges(); } }