public long CreateEvent(User accessToken, GamingEvent eventInfo, List<User> inviteList) { GameNickEntities entities = new GameNickEntities(); if (IsAuthenticated(accessToken, entities)) { FacebookClient facebookClient = new FacebookClient(accessToken.FacebookAccessToken); Dictionary<string, object> createEventParameters = new Dictionary<string, object>(); createEventParameters.Add("name", eventInfo.Name); createEventParameters.Add("start_time", eventInfo.StartTime.ToString()); createEventParameters.Add("end_time", eventInfo.EndTime.ToString()); createEventParameters.Add("owner", accessToken.FacebookID.ToString()); createEventParameters.Add("privacy", "OPEN"); createEventParameters.Add("description", eventInfo.Description); try { dynamic result = facebookClient.Post("me/events", createEventParameters); if (result != null) { long eventId = (long) Convert.ToInt64(result["id"].ToString()); if (inviteList != null) if(inviteList.Count > 0) { string inviteString = "/invited?users="; for (int i = 0; i < inviteList.Count(); i++) { inviteString += inviteList[i].FacebookID.ToString(); if (i < inviteList.Count() - 1) // don't add a , at the end inviteString += ","; } dynamic inviteResult = facebookClient.Post(eventId.ToString() + inviteString); } // add event to database Event eEvent = Event.CreateEvent(0, eventInfo.Event.GameID, eventId); entities.AddToEvents(eEvent); entities.SaveChanges(); return eventId; } } catch (Exception e) { throw; } throw new Exception(); } throw new SecurityAccessDeniedException(); }
public List<GamingEvent> GetEvents(User accessToken, User user) { GameNickEntities entities = new GameNickEntities(); if (IsAuthenticated(accessToken, entities)) { // Get users Facebook events FacebookClient facebookClient = new FacebookClient(accessToken.FacebookAccessToken); // Check to see which of these events are also GameNick events dynamic result = facebookClient.Get(user.FacebookID + "/events"); List<GamingEvent> gamingEvents = new List<GamingEvent>(); if (result.data == null) return new List<GamingEvent>() {new GamingEvent() {Name = "No Events"}}; foreach (dynamic o in result.data) { DateTime startTime = Convert.ToDateTime(o.start_time); // If the event date is today or later than today if (startTime >= DateTime.Today) { // If the event is in our database long facebookId = Convert.ToInt64((o.id.ToString())); var e = entities.Events.Where(evnt => evnt.FacebookID == facebookId); if (e.Count() > 0) { // Build the event info to send back to the user Event eEvent = e.First(); dynamic facebookEvent = facebookClient.Get(eEvent.FacebookID.ToString()); GamingEvent gamingEvent = new GamingEvent() { Description = facebookEvent.description, EndTime = facebookEvent.end_time, StartTime = facebookEvent.start_time, Event = eEvent, Name = facebookEvent.name, }; gamingEvents.Add(gamingEvent); } } } return gamingEvents; } throw new SecurityAccessDeniedException(); }
public List<GamingEvent> GetEvents(User accessToken, Game game) { GameNickEntities entities = new GameNickEntities(); if (IsAuthenticated(accessToken, entities)) { List<GamingEvent> events = new List<GamingEvent>(); var result = entities.Events.Where(eEvent => eEvent.GameID == game.ID).ToList(); foreach (Event eEvent in result) { try { FacebookClient facebookClient = new FacebookClient(accessToken.FacebookAccessToken); dynamic fbEvent = facebookClient.Get(eEvent.FacebookID.ToString()); GamingEvent nEvent = new GamingEvent(); nEvent.Event = eEvent; if(fbEvent.description != null) nEvent.Description = fbEvent.description.ToString(); if(fbEvent.start_time != null) nEvent.StartTime = Convert.ToDateTime(fbEvent.start_time.ToString()); if(fbEvent.end_time != null) nEvent.EndTime = Convert.ToDateTime(fbEvent.end_time.ToString()); if(fbEvent.location != null) nEvent.Location = fbEvent.location.ToString(); if(fbEvent.name != null) nEvent.Name = fbEvent.name.ToString(); events.Add(nEvent); } catch (Exception e) { // todo: log error here } } if (events.Count == 0) { events.Add(new GamingEvent() {Name = "No events here"}); } return events; } throw new SecurityAccessDeniedException(); }