private MLG2007.Helper.CalendarStore.CalendarCollection GetCalendars(string role) { MLG2007.Helper.CalendarStore.CalendarCollection calendarCollection = null; MLG2007.Helper.CalendarStore.CalendarStore calendarStore = new MLG2007.Helper.CalendarStore.CalendarStore(); calendarStore.CalendarListURL = this.Page.Server.UrlDecode(this.CalendarsListUrl); try { calendarCollection = calendarStore.GetCalendarByRole(role); } catch (Exception exception) { //ToDO:Write Handling code overhere } return(calendarCollection); }
private Appointments GetData(DateTime StartDate, DateTime EndDate) { string[] calendarIds; string calendarNames = string.Empty; string calendarUrls = string.Empty; string exchangeCalednarsUrls = string.Empty; Appointments appointments = new Appointments(); string userID; if (this.Context.Request.QueryString["UserID"] != null) { userID = this.Context.Request.QueryString["UserID"]; } else { userID = this.Context.User.Identity.Name; } // SLK data SLKEvents slkData = new SLKEvents(); if (webpartConnected) { slkData.Username = userName; } else { slkData.Username = this.Context.User.Identity.Name; } slkData.StartDate = StartDate; slkData.EndDate = EndDate; slkData.ClassesUrl = SPContext.Current.Site.RootWeb.Url; slkData.Mode = Mode; // Strip domain name from the user ID if (userID.IndexOf("\\") != 0) { userID = userID.Substring(userID.LastIndexOf("\\") + 1); } // Exchange ExchEvents exdata = new ExchEvents(); exdata.UTCStartDate = StartDate; exdata.UTCEndDate = EndDate; exdata.ExchangeUser = userID; exdata.ExchangePassword = this.Context.Request.ServerVariables["AUTH_PASSWORD"].ToString(); exdata.ExchangeURL = ExchangeUrl; exdata.ExchangeDomain = ExchangeDomain; //If overriding exchange default mail alias is enabled, get the user mail from the Active Directory if (EnableOverrideDomain) { exdata.User = GetUserMail(userID); } else { exdata.User = userID; } ExchEvents exdataPC = new ExchEvents(); exdataPC.UTCStartDate = StartDate; exdataPC.UTCEndDate = EndDate; exdataPC.ExchangeUser = userID; exdataPC.ExchangePassword = this.Context.Request.ServerVariables["AUTH_PASSWORD"].ToString(); exdataPC.ExchangeURL = ExchangeUrl; exdataPC.ExchangeDomain = ExchangeDomain; if (EnableOverrideDomain) { exdataPC.User = GetUserMail(userID); } else { exdataPC.User = userID; } // SharePoint //SPSEvents spsdata = new SPSEvents(); //spsdata.StartDate = StartDate; //spsdata.EndDate = EndDate; //spsdata.EventLists = SchoolEventList; //spsdata.Cont = this.Context; //spsdata.ListTitles = listTitles; //Getting the selected Calendars if (calendars != null) { calendarIds = CalendarIDList.Split(','); MLG2007.Helper.CalendarStore.CalendarStore store = new MLG2007.Helper.CalendarStore.CalendarStore(); foreach (MLG2007.Helper.CalendarStore.Calendar calObj in calendars) { string temp = null; if (calObj.IsUserSelected) { try { store.CalendarListURL = CalendarsListUrl; //calObj = store.GetCalendarbyID(int.Parse(id)); if (calObj != null) { if (calObj.CalendarType == MLG2007.Helper.CalendarStore.CalendarType.SharePoint) { store.ParseSiteUrl(calObj.CalendarUrl, out temp); if (calendarNames.Length > 0) { calendarNames += ',' + temp; } else { calendarNames += temp; } if (calendarUrls.Length > 0) { calendarUrls += ',' + calObj.CalendarUrl; } else { calendarUrls += calObj.CalendarUrl; } } else { if (exchangeCalednarsUrls.Length > 0) { exchangeCalednarsUrls += "," + this.Page.Server.HtmlEncode(calObj.CalendarUrl); } else { exchangeCalednarsUrls += this.Page.Server.HtmlEncode(calObj.CalendarUrl);; } } } } catch (Exception exception) { continue; } } } SPSEvents calendarsEvents = null; if (calendarUrls.Length != 0) { calendarsEvents = new SPSEvents(); calendarsEvents.StartDate = StartDate; calendarsEvents.EndDate = EndDate; calendarsEvents.EventLists = calendarUrls; calendarsEvents.Cont = this.Context; calendarsEvents.ListTitles = calendarNames.Replace("%20", " "); calendarsEvents.DNSName = this.DNSName; calendarsEvents.GetData(); if (calendarsEvents.HasError) { AddErrorMessage(String.Format(rm.GetString("Error", CultureInfo.CurrentCulture) + "(SharePoint) " + calendarsEvents.ErrorDesc)); } else { appointments.Merge(calendarsEvents); } calendarsEvents.Dispose(); } } if (exchangeCalednarsUrls.Length > 0) { string[] tmpArray = exchangeCalednarsUrls.Split(','); foreach (string tmp2 in tmpArray) { exdataPC.GetPublicCalendarData(tmp2); } appointments.Merge(exdataPC); } if (this.ShowPersonalCalendar) { // Call the GetData() methods asynchronously ExGetDataDelegate exGetDataDelegate = new ExGetDataDelegate(exdata.GetData); //SLKGetDataDelegate slkGetDataDelegate = new SLKGetDataDelegate(slkData.GetData); //SPGetDataDelegate spGetDataDelegate = new SPGetDataDelegate(spsdata.GetData); IAsyncResult exResult = exGetDataDelegate.BeginInvoke(null, null); //IAsyncResult slkResult = slkGetDataDelegate.BeginInvoke(null, null); //IAsyncResult spResult = spGetDataDelegate.BeginInvoke(null, null); exResult.AsyncWaitHandle.WaitOne(defaultTimeOutms, false); if (!exResult.IsCompleted) { AddErrorMessage(String.Format(rm.GetString("NoEX", CultureInfo.CurrentCulture))); } else { if (exdata.HasError) { AddErrorMessage(String.Format(rm.GetString("Error", CultureInfo.CurrentCulture) + "(Exchange) " + exdata.ErrorDesc)); } else { appointments.Merge(exdata); } exdata.Dispose(); } } // TODO: Make this work asynchronously //exdata.GetData(); if (this.ShowSLK) { slkData.GetData(); } //spsdata.GetData(); //Set the class server cookie //System.Web.HttpCookie cookieNew = new System.Web.HttpCookie("MSCSTicket", csdata.ClassServerTicket); //this.Context.Response.Cookies.Add(cookieNew); //slkResult.AsyncWaitHandle.WaitOne(defaultTimeOutms, false); //spResult.AsyncWaitHandle.WaitOne(defaultTimeOutms, false); // Display errors if necessary, otherwise add the result to the appointments dataset //if (!slkResult.IsCompleted) // AddErrorMessage(String.Format(rm.GetString("NoCS", CultureInfo.CurrentCulture))); //else //{ if (slkData.HasError) { AddErrorMessage(String.Format(rm.GetString("Error", CultureInfo.CurrentCulture) + "(SharePoint Learning Kit) " + slkData.ErrorDescription)); } else { appointments.Merge(slkData); } slkData.Dispose(); // } //if (!spResult.IsCompleted) // Controls.Add(new LiteralControl(String.Format(rm.GetString("NoSPS", CultureInfo.CurrentCulture)))); //else //{ //if (spsdata.HasError) // //AddErrorMessage(String.Format(rm.GetString("Error", CultureInfo.CurrentCulture) + "(SharePoint) " + spsdata.ErrorDesc)); // AddErrorMessage("XXX"); //else // appointments.Merge(spsdata); //spsdata.Dispose(); // } return(appointments); }