コード例 #1
0
        /// <summary>
        /// Binds a data source to the invoked server control and all its child controls.
        /// </summary>
        public override void DataBind()
        {
            base.DataBind();
            CalendarEventList.DataSource = this.UpcomingEvents;
            PageList.DataSource          = this.UpcomingEvents;

            listPanel.Visible = CalendarEventList.DataCount != 0;
            PageList.DataBind();
            CalendarEventList.DataBind();
            PageList.DataBind();
        }
コード例 #2
0
        protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            EventList = (CalendarEventList )ViewState["EventList"];
            path      = (string)ViewState["path"];
            if (EventList == null)
            {
                EventList.LoadXML_months(path, DateTime.Now.Month, 1, DateTime.Now.Year);
            }
            DateTime t = e.Day.Date;

            e.Day.IsSelectable = false;
            foreach (CalendarEvent ev in EventList.EventList)
            {
                if ((ev.date.Day == t.Day) && (ev.date.Month == t.Month) && Display_CalendarItem(ev))
                {
                    string s = ev.title; if (s.Length > 14)
                    {
                        s = s.Substring(0, 14) + "...";
                    }
                    e.Day.IsSelectable = true;
                    e.Cell.ForeColor   = System.Drawing.Color.Black;
                    Label l1 = new Label();
                    l1.Text      = "<BR>" + s;
                    l1.Font.Size = FontUnit.XSmall;
                    e.Cell.Controls.Add(l1);
                    if (ev.Categories.Contains("Event"))
                    {
                        l1.ForeColor = System.Drawing.Color.Red;
                    }
                    if (ev.Categories.Contains("Meeting"))
                    {
                        l1.ForeColor = System.Drawing.Color.Green;
                    }
                    if (ev.Categories.Contains("Match"))
                    {
                        l1.ForeColor = System.Drawing.Color.Chocolate;
                    }
                    if (ev.Categories.Contains("Visit"))
                    {
                        l1.ForeColor = System.Drawing.Color.Blue;
                    }
                }
            }
        }
コード例 #3
0
        public void GetComparingEventsTest()
        {
            List <string> s = new List <string>();

            s.Add("*****@*****.**");
            s.Add("*****@*****.**");
            //CalendarEventList events = calendar.GetComparingEvents(DateTime.Today, DateTime.Today, s, "Free Busy View");
            CalendarEventList events = service.GetComparingEvents(calendar, period.Today(), s, "Free Busy View", false);
            CalendarEvent     ev     = new CalendarEvent("", "all free until ", "", new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 9, 0, 0), new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 10, 0, 0));
            CalendarEvent     ev2    = new CalendarEvent("", "all free until ", "", new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 12, 30, 0), new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 2, 0, 0).AddHours(12));

            CalendarEventList l = new CalendarEventList();

            l.Add(ev);
            l.Add(ev2);
            Console.WriteLine("################################################################################");
            Console.WriteLine("test result " + events.Count);
            //Assert.AreEqual(l, events, "Events are not equal " + events.Count);
        }
コード例 #4
0
 private void UpdateTable()
 {
     if (RadioButtonList2.Items.FindByText("Display").Selected)
     {
         List <CalendarEvent> EventFound = new List <CalendarEvent>();
         DateTime             t1         = Calendar1.SelectedDate;
         //Label_Heading.Text = "Events for " + t1.ToLongDateString();
         EventList = (CalendarEventList)ViewState["EventList"];
         foreach (CalendarEvent ev in EventList.EventList)
         {
             if ((ev.date.Month == t1.Month) && (ev.date.Day == t1.Day))
             {
                 if (Display_CalendarItem(ev))
                 {
                     EventFound.Add(ev);
                 }
             }
         }
         servercontent.InnerHtml = DisplayEventsAsTable(EventFound, false);
     }
 }
コード例 #5
0
ファイル: CalendarEventService.cs プロジェクト: Aishaj/AGC.v3
        public CalendarEventList GetOthersEvents(IGoogleCalendar calendar, DateTime start, DateTime end , String CalendarIDs)
        {
            log.Debug("Select events, period=" + start + " - " + end);
            CalendarEventList selectedEvents = new CalendarEventList();


            foreach (CalendarEvent ev in calendar.GetOthersEvents(start, end, CalendarIDs))
            {
                try
                {
                    if (MatchStartDate(ev.Start, start) && MatchEndDate(ev.End, end))
                    {
                        selectedEvents.Add(ev);
                    }
                }
                catch (Exception ex)
                {
                    log.Error("Failed to get events for a specified period", ex);
                    log.Info("Event info: " + ev.ToString());
                }
            }
            log.Debug("Successfully selected events for a specified period");
            return selectedEvents;
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: Aishaj/AGC.v3
        public void GetComparingEventsTest()
        {
            List<string> s = new List<string>();
            s.Add("*****@*****.**");
            s.Add("*****@*****.**");
            //CalendarEventList events = calendar.GetComparingEvents(DateTime.Today, DateTime.Today, s, "Free Busy View");
            CalendarEventList events = service.GetComparingEvents(calendar, period.Today(), s, "Free Busy View",false);
            CalendarEvent ev = new CalendarEvent("", "all free until ", "", new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 9, 0, 0), new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 10, 0, 0));
            CalendarEvent ev2 = new CalendarEvent("", "all free until ", "", new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 12, 30, 0), new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 2, 0, 0).AddHours(12));

            CalendarEventList l = new CalendarEventList();
            l.Add(ev);
            l.Add(ev2);
            Console.WriteLine("################################################################################");
            Console.WriteLine("test result " + events.Count);
            //Assert.AreEqual(l, events, "Events are not equal " + events.Count);
        }
コード例 #7
0
ファイル: CalendarEventService.cs プロジェクト: Aishaj/AGC.v3
        public CalendarEventList SearchEvents(CalendarEventList events, String keyword)
        {
            CalendarEventList selectedEvents = new CalendarEventList();
            try
            {
                if (!String.IsNullOrEmpty(keyword))
                {
                    foreach (CalendarEvent ev in events)
                    {
                        if (!string.IsNullOrEmpty(ev.Title))
                        {
                            if (ev.Title.ToLower().Contains(keyword.ToLower()))
                            {
                                selectedEvents.Add(ev);
                            }
                        }
                        else if (!string.IsNullOrEmpty(ev.Location))
                        {
                            if (ev.Location.ToLower().Contains(keyword.ToLower()))
                            {
                                selectedEvents.Add(ev);
                            }
                        }
                        else if (!string.IsNullOrEmpty(ev.Location))
                        {
                            if (ev.Content.ToLower().Contains(keyword.ToLower()))
                            {
                                selectedEvents.Add(ev);
                            }
                        }
                    }
                }
            }
            catch(Exception ex)
            {
                log.Error("Failed to get events for a specified keyword \"" + keyword + "\"", ex);
            }

            return selectedEvents;
        }
コード例 #8
0
 public CalendarEventList Sort(CalendarEventList allEvents)
 {
     switch (SortParam)
     {
         case SortBy.start:
             {
                 return allEvents.SortByStartDate(SortOrderAscending);
             }
         case SortBy.status:
             {
                 return allEvents.SortByStatus(SortOrderAscending);
             }
         case SortBy.title:
             {
                 return allEvents.SortByTitle(SortOrderAscending);
             }
         case SortBy.location:
             {
                 return allEvents.SortByLocation(SortOrderAscending);
             }
         case SortBy.content:
             {
                 return allEvents.SortByContent(SortOrderAscending);
             }
         case SortBy.end:
             {
                 return allEvents.SortByEndDate(SortOrderAscending);
             }
         default:
             {
                 return allEvents;
             }
     }
 }
コード例 #9
0
ファイル: GoogleCalendar.cs プロジェクト: Aishaj/AGC.v3
        public CalendarEventList GetComparingEvents(DateTime timeMin, DateTime timeMax, List<String> CalendarIDs, String ViewFormat,bool primaryEmail)
        {

             allFree = new List<FreeTime>();
         finalFree = new List<FreeTime>();
         FinalallFree= new Dictionary<FreeTime, int>();
         FinalallFreeConnection = new Dictionary<FreeTime, String>();
         FreeBusy = new Dictionary<FreeTime, string>();
      FinalFreeBusy = new Dictionary<FreeTime, string>();
      primary = primaryEmail;
            if(primary)
                firstEmail = CalendarIDs[0].Substring(0, CalendarIDs[0].IndexOf("."));

            //Console.WriteLine("fffffffffffff "+ firstEmail);


            log.Debug("Try to compare  events from other Google Calendars ");
            CalendarEventList calendarEvents = new CalendarEventList();

            Dictionary<string, List<FreeTime>> personAndFreeTimes = new Dictionary<string, List<FreeTime>>();
            List<String> noEvents = new List<string>();

            

            try
            {
                foreach (String calendarID in CalendarIDs)
                {

                    List<FreeTime> freeTimeList = new List<FreeTime>();
                    if (timeMax.DayOfWeek == 0)
                        timeMax = timeMax.AddDays(-2);

                    if (timeMax.DayOfWeek == DayOfWeek.Saturday)
                        timeMax = timeMax.AddDays(-1);

                    if (timeMin.DayOfWeek == DayOfWeek.Saturday)
                        timeMax = timeMax.AddDays(+2);

                    if (timeMin.DayOfWeek == DayOfWeek.Sunday)
                        timeMax = timeMax.AddDays(+1);





                    EventsResource.ListRequest events = service.Events.List(calendarID);

                    events.SingleEvents = true;
                    events.MaxResults = 2500;
                    events.TimeMin = timeMin;
                    events.TimeMax = timeMax;
                    Events eventList = events.Execute();






                    FreeBusyRequest request = new FreeBusyRequest();
                    List<FreeBusyRequestItem> requestItems = new List<FreeBusyRequestItem>();
                    request.TimeMin = timeMin;
                    request.TimeMax = timeMax;
                    FreeBusyRequestItem r = new FreeBusyRequestItem();
                                                          

                    r.Id = calendarID;

                    request.Items = new List<FreeBusyRequestItem>();
                    request.Items.Add(r);

                    FreebusyResource.QueryRequest TestRequest = service.Freebusy.Query(request);
                    var responseOBJ = TestRequest.Execute();
                    int count = responseOBJ.Calendars[calendarID].Busy.Count;
                    

                    if (count == 0)
                    {
                        FreeTime free = new FreeTime();

                        free.setStart(new DateTime(timeMax.Year, timeMax.Month, timeMax.Day, 9, 0, 0));
                        free.setEnd(new DateTime(timeMax.Year, timeMax.Month, timeMax.Day, 5, 0, 0).AddHours(12));
                        free.setEmail(calendarID);
                        freeTimeList.Add(free);
                        //Console.WriteLine(calendarID + " " + free.Start + " " + free.End);

                    }


                    if (count != 0)
                    {


                       // Console.WriteLine(timeMax.Date + "date max ");
                        //Console.WriteLine(timeMin.Date + "date min ");
                       // Console.WriteLine(DateTime.Today + "fff");
                        DateTime d = timeMin.Date;
                        Boolean found = false;
                        

                        if (d.DayOfWeek == DayOfWeek.Sunday)
                            d = d.AddDays(1);

                      //  Console.WriteLine("first     "+ d.Date);
                        if (timeMax.Date.CompareTo(timeMin.Date) != 0 && d.DayOfWeek != DayOfWeek.Saturday && d.DayOfWeek != DayOfWeek.Sunday)
                        {

                            //Console.WriteLine("second    " + d.Date);
                        while (d <= timeMax)
                        {
                          found = false;
                            foreach (TimePeriod n in responseOBJ.Calendars[calendarID].Busy)
                            { 
                                //Console.WriteLine("third    " + d.Date);
                                //Console.WriteLine(d.CompareTo(n.Start.Value.Date) + " d: " + d.Date + "n :  " + n.Start.Value.Date); 
                                if (d.CompareTo(n.Start.Value.Date) == 0)
                                {
                                    found = true;
                                    break;
                                }
                            }

                           // Console.WriteLine("fourth    " + d.Date + " " + found);
                            if (!found)
                            {
                                //Console.WriteLine("not found    " + d.Date);
                                FreeTime free = new FreeTime();

                                free.setStart(new DateTime(d.Year, d.Month, d.Day, 9, 0, 0));
                                free.setEnd(new DateTime(d.Year, d.Month, d.Day, 5, 0, 0).AddHours(12));
                                free.setEmail(calendarID);
                                freeTimeList.Add(free);
                               // Console.WriteLine("adding to list    " + free.Start + " " + free.End);
                            }
                            d= d.AddDays(+1);
                            
                            if (d.DayOfWeek == DayOfWeek.Saturday)
                                d = d.AddDays(+2);
                            
                        }
                        }


                        int i = 0;
                        int j = 0;
                        Boolean singleevent = false;
                       // Console.WriteLine("the count " + count);
                        if (count == 1) singleevent = true;
                        while (i < count && count != 0)
                        {
                            FreeTime free = new FreeTime();
                            Boolean startatNine = false;
                            Boolean endFive = false;

                            DateTime starttime = (responseOBJ.Calendars[calendarID].Busy[i].Start).Value;
                            DateTime endtime = (responseOBJ.Calendars[calendarID].Busy[i].End).Value;


                           // Console.WriteLine(" lets see " + starttime + " " + endtime);

                            DateTime startworkhours = new DateTime(starttime.Year, starttime.Month, starttime.Day, 9, 0, 0);
                            DateTime endworkhours = new DateTime(starttime.Year, starttime.Month, starttime.Day, 5, 0, 0).AddHours(12);


                            if (i == 0 && singleevent == false)
                            {
                                if (j == 0 && (DateTime.Compare(startworkhours, starttime) != 0))
                                {
                                    free = subtractFromNine(starttime, endtime, i);
                                    free.setEmail(calendarID);

                                    if ((DateTime.Compare(starttime.Date, ((DateTime)responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Date) < 0))
                                    {

                                        i--;
                                        j++;
                                    }

                                }



                                else if (startworkhours.Equals(starttime) || j > 0)
                                {
                                    //Console.WriteLine("urghhhhh" + DateTime.Compare(starttime.Date, ((DateTime)responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Date));

                                    if (startworkhours.Equals(starttime) && j == 0)
                                    {

                                       // Console.WriteLine("inside second if ");
                                        startatNine = true;
                                        if (DateTime.Compare(starttime.Date, ((DateTime)responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Date) < 0)
                                        {
                                          // Console.WriteLine("::::::::::::::::::::::::::::::::::::::::::::::::::::");
                                            j++;
                                            i--;

                                        }


                                    }

                                    else if ((DateTime.Compare(starttime.Date, ((DateTime)responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Date) < 0) && j > 0)
                                    {
                                        //Console.WriteLine("inside first if ");
                                        free = subtractFromFive(starttime, endtime, i);
                                        free.setEmail(calendarID);
                                        j = 0;
                                    }

                                }

                            }




                            else if (i + 1 == count && singleevent == false)
                            {
                                if (j == 0)
                                {
                                   //Console.WriteLine(" else if (i + 1 == count && !(endworkhours.equals(endtime)) && singleevent == false) j==0 ");
                                    DateTime tempstarttime = (responseOBJ.Calendars[calendarID].Busy[i - 1].Start).Value;
                                    DateTime tempendtime = (responseOBJ.Calendars[calendarID].Busy[i - 1].End).Value;

                                    if ((DateTime.Compare(starttime.Date, tempendtime.Date) == 0))
                                    {
                                        //Console.WriteLine(" entered if ");
                                        TimeSpan interval = starttime - tempendtime;
                                        free.setStart(starttime - interval);
                                        //Console.WriteLine(free.Start);
                                        free.setEnd(starttime);
                                        free.setEmail(calendarID);

                                  }

                                    else
                                    {
                                        free = subtractFromNine(starttime, endtime, i);
                                        
                                    }

                                    if (!(endworkhours.Equals(endtime)))
                                    {
                                        j++;
                                        i--;
                                    }

                                }
                                else
                                {
                                    if (!(endworkhours.Equals(endtime)))
                                    {
                                        free = subtractFromFive(starttime, endtime, i);
                                        j = 0;
                                    }
                                    else endFive = true;


                                }


                            }
                            else if (singleevent)
                            {
                                //Console.WriteLine("inside single event " + j + " " + starttime + " " + startworkhours);
                                if (j == 0 && !(DateTime.Compare(starttime, startworkhours) == 0))
                                {
                                    free = subtractFromNine(starttime, endtime, i);


                                    if (!(DateTime.Compare(endtime, endworkhours) == 0))
                                    {
                                        j++;
                                        i--;
                                    }

                                }


                                else
                                {
                                    if (!(DateTime.Compare(endtime, endworkhours) == 0))
                                    {
                                        free = subtractFromFive(starttime, endtime, i);
                                        free.setEmail(calendarID);
                                        j = 0;
                                    }
                                    else endFive = true;

                                }


                            }

                            else
                            {

                               //Console.WriteLine("yaaaaaaaaaaaaaaarab");
                                DateTime tempstarttime = (responseOBJ.Calendars[calendarID].Busy[i - 1].Start).Value;
                                DateTime tempendtime = (responseOBJ.Calendars[calendarID].Busy[i - 1].End).Value;
                                if (j == 0)
                                {
                                    if ((DateTime.Compare(tempendtime.Date, starttime.Date) == 0))
                                    {
                                        //Console.WriteLine("entered the first");
                                        TimeSpan interval = starttime - tempendtime;
                                        free.setStart(starttime - interval);
                                        free.setEnd(starttime);
                                        free.setEmail(calendarID);


                                    }

                                    else
                                    {
                                        //Console.WriteLine("entered the second");
                                        if (startworkhours.Equals(starttime))
                                        {
                                           // Console.WriteLine("statrt at nine");
                                            startatNine = true;
                                        }
                                        else
                                        {
                                            free = subtractFromNine(starttime, endtime, i);
                                        }

                                    }

                                    if ((DateTime.Compare(starttime.Date, ((DateTime)(responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Value).Date) < 0))
                                    {
                                       //Console.WriteLine("entered the comparason");
                                        i--;
                                        j++;



                                    }

                                }
                                else
                                {
                                    //Console.WriteLine("supposed " + endworkhours.Equals(endtime));
                                    if (!(endworkhours.Equals(endtime)))
                                    {
                                        free = subtractFromFive(starttime, endtime, i);
                                        free.setEmail(calendarID);
                                        j = 0;
                                    }
                                    else { endFive = true; j = 0; }

                                }



                            }
                            i++;


                            if (!startatNine && !endFive)
                            {
                                //Console.WriteLine("befor adding " + free.Start + "  " + free.End);
                                freeTimeList.Add(free);
                               //  Console.WriteLine(calendarID + " " + free.Start + " " + free.End);

                            }

                            //Console.WriteLine("after adding to list");

                        }//end while
                    }//end if (count !=0 )

                   
                    personAndFreeTimes.Add(calendarID.Substring(0, calendarID.IndexOf(".")), freeTimeList);

                    //foreach (String k in personAndFreeTimes.Keys)
                    //{
                    //    foreach (FreeTime f in personAndFreeTimes[k])
                    //        //Console.WriteLine(k + " " + f.Start + " " + f.End);
                    //}

                    freeTimeList.Sort();

                   

                    }//end foreach


                numberOfEmails = personAndFreeTimes.Count;
                Stack myStack = new Stack();
                foreach (String key in personAndFreeTimes.Keys)
                {


                    myStack.Push(personAndFreeTimes[key]);
                }

                //  -----------------------------------  All People View   --------------------------------------------------   //

                if (ViewFormat == "All People")
                {

                 
                    Stack s1 = new Stack();
                    Stack s2 = new Stack();
                    foreach (String key in personAndFreeTimes.Keys)
                    {
                        // string result = noEvents.Find(delegate(String  i) { return i == key; });
                        //  if(result!=null)
                        KeyValuePair<List<FreeTime>, String> pair = new KeyValuePair<List<FreeTime>, String>(personAndFreeTimes[key], key);

                        s1.Push(pair);
                        s2.Push(pair);
                        //Console.WriteLine("pair " + pair.Key.ToString() + " " + pair.Value);
                    }



                    while (s1.Count != 0)
                    {
                        KeyValuePair<List<FreeTime>, String> sp1 = (KeyValuePair<List<FreeTime>, String>)s1.Pop();
                        while (s2.Count != 0)
                        {
                            KeyValuePair<List<FreeTime>, String> sp2 = (KeyValuePair<List<FreeTime>, String>)s2.Pop();
                            if (!(sp1.Value.Equals(sp2.Value)))
                                FindMutual2(sp1, sp2);
                        }
                        s2 = s1;
                    }



                    FinalMutual2();

                    if (personAndFreeTimes.Count > 2)
                    {

                        FinalMutual3();
                        FinalMutual3();
                    }
                    //Console.WriteLine(" back to main");
                    // FinalMutual4();
                    calendarEvents = ConvertToMutualCalendarEvents(FinalFreeBusy);

                }//end if All People view

                //  -----------------------------------     --------------------------------------------------   //


                //  -----------------------------------  "Some People" View   --------------------------------------------------   //

                if (ViewFormat == "Some People")
                {

                    Stack s1 = new Stack();
                    Stack s2 = new Stack();
                    foreach (String key in personAndFreeTimes.Keys)
                    {
                        
                        KeyValuePair<List<FreeTime>, String> pair = new KeyValuePair<List<FreeTime>, String>(personAndFreeTimes[key], key);

                        s1.Push(pair);
                        s2.Push(pair);
                        //Console.WriteLine("pair " + pair.Key.ToString() + " " + pair.Value);
                    }



                    while (s1.Count != 0)
                    {
                        KeyValuePair<List<FreeTime>, String> sp1 = (KeyValuePair<List<FreeTime>, String>)s1.Pop();
                        while (s2.Count != 0)
                        {
                            KeyValuePair<List<FreeTime>, String> sp2 = (KeyValuePair<List<FreeTime>, String>)s2.Pop();
                            if (!(sp1.Value.Equals(sp2.Value)))
                                FindMutual2(sp1, sp2);
                        }
                        s2 = s1;
                    }



                    FinalMutual2();

                    // if (personAndFreeTimes.Count > 2)
                    int num = 1;
                    while( num<personAndFreeTimes.Count)
                    {
                        FinalMutual3();
                        num++;
                    }
                    FinalMutual3();
                    
                    calendarEvents = ConvertToFreeBusyCalendarEvents(FinalFreeBusy);
                } //end free busy view 

                //Console.WriteLine("before sort");
                calendarEvents.SortByDate();

                log.Debug("Successfully compared  events from other Google Calendars");
            }// end try


            catch (Exception ex)
            {
                log.Error("Failed to compare  events from other  Google Calendars with error:", ex);
            }

            
            return calendarEvents;

        }
コード例 #10
0
ファイル: GoogleCalendar.cs プロジェクト: Aishaj/AGC.v3
 public void DeleteEvents(CalendarEventList evs)
 {
     foreach (CalendarEvent ev in evs)
     {
         DeleteEvent(ev, ActionType.single);
     }
 }
コード例 #11
0
ファイル: GoogleCalendar.cs プロジェクト: Aishaj/AGC.v3
        private static CalendarEventList ConvertToFreeBusyCalendarEvents(Dictionary<FreeTime, string> FreeBusy)
        {
            CalendarEventList calendarEvents = new CalendarEventList();

            foreach (KeyValuePair<FreeTime, String> kv in FreeBusy)
            {
                 if (primary)
                 {
                     if (kv.Value.IndexOf(firstEmail) != -1)
                         calendarEvents.Add(ConvertFreeBusyGoogleEventToCalendarEvent(kv));
                     else
                         continue;

                 }
                 else
                calendarEvents.Add(ConvertFreeBusyGoogleEventToCalendarEvent(kv));
            }

            return calendarEvents;
        }
コード例 #12
0
ファイル: GoogleCalendar.cs プロジェクト: Aishaj/AGC.v3
        public CalendarEventList GetOthersEvents(DateTime timeMin, DateTime timeMax, String CalendarIDs)
        {
            log.Debug("Try to get  events from other Google Calendar");
            CalendarEventList calendarEvents = new CalendarEventList();

            try
            {
                EventsResource.ListRequest events = service.Events.List(CalendarIDs);
                events.SingleEvents = true;
                events.MaxResults = 2500;
                events.TimeMin = timeMin;
                events.TimeMax = timeMax;
                Events eventList = events.Execute();
                calendarEvents = ConvertToCalendarEvents(eventList.Items);
                calendarEvents.SortByDate();

                log.Debug("Successfully got  events from other Google Calendar");
            }
            catch (Exception ex)
            {
                log.Error("Failed to get  events from other  Google Calendar with error:", ex);
            }

            return calendarEvents;

        }
コード例 #13
0
ファイル: GoogleCalendar.cs プロジェクト: Aishaj/AGC.v3
        private static CalendarEventList ConvertToCalendarEvents(IList<Event> googleEvents)
        {
            CalendarEventList calendarEvents = new CalendarEventList();

            foreach (Event ev in googleEvents)
            {
                calendarEvents.Add(ConvertGoogleEventToCalendarEvent(ev));
            }

            return calendarEvents;
        }
コード例 #14
0
ファイル: GoogleCalendar.cs プロジェクト: Aishaj/AGC.v3
        private static CalendarEventList ConvertToMutualCalendarEvents(Dictionary<FreeTime, string> FreeBusy)
        {
            CalendarEventList calendarEvents = new CalendarEventList();

           
            
            foreach (KeyValuePair<FreeTime, String> kv in FreeBusy)
            {
               if (kv.Value.Count(Char.IsWhiteSpace) == numberOfEmails - 1)
                calendarEvents.Add(ConvertMutualGoogleEventToCalendarEvent(kv));

            }

            return calendarEvents;
        }
コード例 #15
0
ファイル: CalendarEventService.cs プロジェクト: Aishaj/AGC.v3
        public CalendarEventList FormatEventsDatesStringRepresentation(CalendarEventList allEvents, DateTimePreferences preferences)
        {
            CalendarEventList formatedEvents = new CalendarEventList();

            bool multipleMonths;

            // Find if there are events from different month in the list by comparing years and month data of the first and last event in the list
            if (allEvents.Count > 1)
            {
                multipleMonths = allEvents[0].Start.Year != allEvents[allEvents.Count - 1].Start.Year ? true :
                                 allEvents[0].Start.Month != allEvents[allEvents.Count - 1].Start.Month;
            }
            else
            {
                multipleMonths = false;
            }
            
            try
            {
                int month = 0;

                foreach (CalendarEvent ev in allEvents)
                {
                    if (preferences.GroupByMonth && multipleMonths && month != ev.Start.Month)
                    {
                        formatedEvents.Add(new CalendarEvent(months[ev.Start.Month]));
                        month = ev.Start.Month;
                    }

                    ev.FormatedStartDate = preferences.StartDateTime(ev);
                    ev.FormatedEndDate = preferences.EndDateTime(ev);
                    formatedEvents.Add(ev);                    
                }
                return formatedEvents;
            }
            catch(Exception ex)
            {
                log.Error("Failed to format events dates", ex);
                return allEvents;
            }
        }
コード例 #16
0
ファイル: CalendarEventService.cs プロジェクト: Aishaj/AGC.v3
        public CalendarEventList FilterByStatus(CalendarEventList allEvents, SortFilterPreferences preferences)
        {
            if (!preferences.EnableStatusFilter)
            {
                return allEvents;
            }

            CalendarEventList filteredEvents = new CalendarEventList();

            foreach (CalendarEvent ev in allEvents)
            {
                if (ev.Status == (preferences.ShowConfirmedOnly ? CONFIRMED : TENTATIVE))
                {
                    filteredEvents.Add(ev);
                }
            }
            return filteredEvents;
        }
コード例 #17
0
ファイル: CalendarEventService.cs プロジェクト: Aishaj/AGC.v3
        public CalendarEventList FilterByDayOfWeek(CalendarEventList allEvents, SortFilterPreferences preferences)
        {
            if (!preferences.EnableDayOfWeekFilter)
            {
                return allEvents;
            }

            CalendarEventList filteredEvents = new CalendarEventList();

            foreach (CalendarEvent ev in allEvents)
            {
                if (ev.Start.DayOfWeek == DayOfWeek.Monday && preferences.Monday)
                {
                    filteredEvents.Add(ev);
                }
                else if (ev.Start.DayOfWeek == DayOfWeek.Tuesday && preferences.Tuesday)
                {
                    filteredEvents.Add(ev);
                }
                else if (ev.Start.DayOfWeek == DayOfWeek.Wednesday && preferences.Wednesday)
                {
                    filteredEvents.Add(ev);
                }
                else if (ev.Start.DayOfWeek == DayOfWeek.Thursday && preferences.Thursday)
                {
                    filteredEvents.Add(ev);
                }
                else if (ev.Start.DayOfWeek == DayOfWeek.Friday && preferences.Friday)
                {
                    filteredEvents.Add(ev);
                }
                else if (ev.Start.DayOfWeek == DayOfWeek.Saturday && preferences.Saturday)
                {
                    filteredEvents.Add(ev);
                }
                else if (ev.Start.DayOfWeek == DayOfWeek.Sunday && preferences.Sunday)
                {
                    filteredEvents.Add(ev);
                }
            }
            return filteredEvents;
        }
コード例 #18
0
ファイル: CalendarEventService.cs プロジェクト: Aishaj/AGC.v3
        public CalendarEventList FilterByStartTime(CalendarEventList allEvents, SortFilterPreferences preferences)
        {
            if (!preferences.EnableTimeFilter)
            {
                return allEvents;
            }

            CalendarEventList filteredEvents = new CalendarEventList();

            foreach (CalendarEvent ev in allEvents)
            {
                int starTimeInMinutes = ev.Start.Hour * 60 + ev.Start.Minute;
                if (starTimeInMinutes >= preferences.TimeInMinutesMin && starTimeInMinutes <= preferences.TimeInMinutesMax)
                {
                    filteredEvents.Add(ev);
                }
            }
            return filteredEvents;
        }
コード例 #19
0
ファイル: CalendarEventService.cs プロジェクト: Aishaj/AGC.v3
 public CalendarEventList Sort(CalendarEventList allEvents, SortFilterPreferences preferences)
 {
     return preferences.Sort(allEvents);
 }