예제 #1
0
        /// <summary>Retrieves a collection of calendars by role.</summary>
        /// <param name="roleName">The name of the role.</param>
        /// <returns>A collection of calendars.</returns>
        public CalendarCollection GetCalendarByRole(string roleName)
        {
            CalendarCollection collection = new CalendarCollection();

            string listName;
            string url = ParseSiteUrl(m_calendarsListURL, out listName);

            using (SPSite site = new SPSite(url))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList  list  = web.Lists[HttpContext.Current.Server.HtmlDecode(listName)];
                    SPQuery query = new SPQuery();
                    query.Query = "<Where><Contains><FieldRef Name='Role'/><Value Type='Text'>" + roleName + "</Value></Contains></Where>";
                    SPListItemCollection items = list.GetItems(query);

                    if (items.Count > 0)
                    {
                        foreach (SPListItem item in items)
                        {
                            Calendar calendar = CalendarFromListItem(item, true);
                            calendar.IsUserSelected = false;
                            collection.Add(calendar);
                        }
                    }
                }
            }
            return(collection);
        }
예제 #2
0
        /// <summary>Gets a collection of user calendars.</summary>
        /// <param name="calendarsIdList">A list of calendars.</param>
        /// <returns>A <see cref="CalendarCollection"/>.</returns>
        public CalendarCollection GetUserCalendars(string calendarsIdList)
        {
            CalendarCollection collection = new CalendarCollection();

            if (calendarsIdList.Length > 0)
            {
                string listName;
                string url = ParseSiteUrl(m_calendarsListURL, out listName);

                using (SPSite site = new SPSite(url))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList   list    = web.Lists[listName.Replace("%20", " ")];
                        string[] idslist = calendarsIdList.Split(',');

                        SPQuery query = new SPQuery();
                        query.Query = "<Where><Or>";
                        foreach (string tmp in idslist)
                        {
                            query.Query += "<Eq><FieldRef Name='ID'/><Value>" + tmp;
                            query.Query += "</value></Eq>";
                        }
                        query.Query += "</Or></Where>";

                        SPListItemCollection items = list.GetItems(query);

                        if (items.Count > 0)
                        {
                            foreach (SPListItem item in items)
                            {
                                collection.Add(CalendarFromListItem(item, false));
                            }
                        }
                    }
                }
            }
            return(collection);
        }