コード例 #1
0
        public ActionResult SaveEvent(string EventID, string EventTitle, string EventVenue, string EventAddress1, string EventAddress2, string EventCity, string EventState, string EventPostalCode, DateTime EventStartDateTime, DateTime EventEndDateTime, string EventDescription)
        {
            Models.EventData eventData = new Models.EventData();
            string           saved     = eventData.UpdateEvent(EventID, EventTitle, EventVenue, EventAddress1, EventAddress2, EventCity, EventState, EventPostalCode, EventStartDateTime.ToUniversalTime(), EventEndDateTime.ToUniversalTime(), EventDescription);

            if (saved.StartsWith("Point8020.Error"))
            {
                return(RedirectToAction("TrappedError", "Home", new { ErrorMessage = "Event could not be saved: Error Code is: " + saved, SPHostUrl = SharePointContext.GetSPHostUrl(HttpContext.Request).AbsoluteUri }));
            }
            else
            {
                var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
                using (var clientContext = spContext.CreateUserClientContextForSPHost())
                {
                    if (clientContext != null)
                    {
                        hostWeb = clientContext.Web;
                        clientContext.Load(hostWeb);
                        ListCollection hostLists = hostWeb.Lists;
                        clientContext.Load(hostLists);
                        clientContext.ExecuteQuery();
                        bool calendarFound = false;
                        foreach (List lst in hostLists)
                        {
                            if (lst.BaseTemplate == (int)ListTemplateType.Events)
                            {
                                if (lst.Title == "Contoso Events Calendar")
                                {
                                    calendarFound = true;
                                    break;
                                }
                            }
                        }
                        eVentCalendarExists = calendarFound;
                        if (calendarFound)
                        {
                            List calendar = hostWeb.Lists.GetByTitle("Contoso Events Calendar");

                            clientContext.Load(calendar);
                            clientContext.ExecuteQuery();
                            CamlQuery camlQuery = new CamlQuery();
                            camlQuery.ViewXml = "<View><Query><Where><Eq><FieldRef Name='Category' /><Value Type='Text'>" + EventID + "</Value></Eq></Where></Query></View>";
                            ListItemCollection eventItems = calendar.GetItems(camlQuery);
                            clientContext.Load(eventItems);
                            clientContext.ExecuteQuery();
                            ListItem editEvent = eventItems[0];


                            editEvent["Title"]     = EventTitle;
                            editEvent["Location"]  = EventCity;
                            editEvent["EventDate"] = EventStartDateTime.ToUniversalTime();
                            editEvent["EndDate"]   = EventEndDateTime.ToUniversalTime();
                            editEvent["Category"]  = saved;

                            editEvent.Update();
                            clientContext.ExecuteQuery();
                        }
                    }
                    return(RedirectToAction("Events", "Home", new { SPHostUrl = SharePointContext.GetSPHostUrl(HttpContext.Request).AbsoluteUri }));
                }
            }
        }