コード例 #1
0
        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();
        }