Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
        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);
        }