コード例 #1
0
        private void FetchEvents(EventsResource.ListRequest fetcher)
        {
            var exec = fetcher.Execute();

            foreach (var item in exec.Items)
            {
                _fetchedEvents.Add(item);
            }
            if (exec.NextPageToken != null)
            {
                fetcher.PageToken = exec.NextPageToken;
                FetchEvents(fetcher);
            }
        }
コード例 #2
0
        private Events GetData(UserCredential credential)
        {
            // Define parameters of request.
            EventsResource.ListRequest request = CalendarSer(credential).Events.List("primary");
            request.TimeMin      = DateTime.Now;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 100;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            Events events = request.Execute();

            return(events);
        }
コード例 #3
0
        private Task <Events> QueryCalendarEventsAsync(string calendarId, int n, DateTimeOffset d)
        {
            // Define parameters of request.
            EventsResource.ListRequest request = this._googleService.Events.List(calendarId);
            request.TimeMin      = d.Date;
            request.TimeMax      = new DateTimeOffset(d.Year, d.Month, d.Day, 23, 59, 59, d.Offset).AddDays(n).Date;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 20;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // async WebRequest
            return(request.ExecuteAsync());
        }
コード例 #4
0
        public static bool IsOverlapping(DateTime start, DateTime end, CalendarService service)
        {
            Console.WriteLine("Upcoming events:");

            // Define parameters of request.
            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin      = DateTime.Now;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 10;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            Events events = request.Execute();

            Console.WriteLine("Upcoming events:");
            if (events.Items != null && events.Items.Count > 0)
            {
                foreach (var eventItem in events.Items)
                {
                    string when = eventItem.Start.DateTime.ToString();

                    if (String.IsNullOrEmpty(when))
                    {
                        when = eventItem.Start.Date;
                    }
                    // Response.Write(eventItem.Summary + " " + when);
                    Console.WriteLine(eventItem.Summary + " " + when);

                    if (((eventItem.Start.DateTime >= start) && (eventItem.Start.DateTime < end)) || ((eventItem.End.DateTime > start) && (eventItem.End.DateTime < end)) || ((eventItem.Start.DateTime < start) && (eventItem.End.DateTime >= end)))
                    {
                        return(true);
                        //Console.WriteLine("2 appointments are overlapping");
                    }

                    else if ((eventItem.Start.DateTime == start) || (eventItem.End.DateTime == end))
                    {
                        return(true);
                        //Console.WriteLine("2 appointments are overlapping");
                    }
                }

                return(false);
            }

            else
            {
                return(false);
            }
        }
コード例 #5
0
        public ServiceProvider(string applicationName,
                               string path, params string[] scopes)
        {
            _userId     = "me";
            _calendarId = "primary";
            UserCredential credential;

            using (var stream = new FileStream(
                       "client_secret.json", FileMode.Open,
                       FileAccess.Read))
            {
                credential = GoogleWebAuthorizationBroker
                             .AuthorizeAsync(
                    GoogleClientSecrets.Load(stream)
                    .Secrets,
                    scopes, "user",
                    CancellationToken.None,
                    new FileDataStore(path, true))
                             .Result;
            }

            _calendarService = new CalendarService(
                new BaseClientService.Initializer
            {
                HttpClientInitializer = credential,
                ApplicationName       = applicationName
            });
            _mailService = new GmailService(
                new BaseClientService.Initializer
            {
                HttpClientInitializer = credential,
                ApplicationName       = applicationName
            });
            _checkEventsRequest =
                new EventsResource.ListRequest(
                    _calendarService, CalendarId)
            {
                PrivateExtendedProperty =
                    "AutoGenerated=true",
                MaxResults = 1
            };
            _messageRequest =
                new UsersResource.MessagesResource.
                ListRequest(_mailService, UserId)
            {
                Q        = MessageQuery,
                LabelIds = "INBOX"
            };
        }
コード例 #6
0
        public static void createEventCalendar(CalendarService calendar, string titulo, string materia, string dataFim, string status)
        {
            // Define parameters of request.
            EventsResource.ListRequest request = calendar.Events.List("primary");
            request.TimeMin      = Convert.ToDateTime(dataFim).AddHours(-24);
            request.TimeMax      = Convert.ToDateTime(dataFim);
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 10;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            Events eventsList = request.Execute();

            Console.WriteLine("Upcoming events:");
            if (eventsList.Items != null && eventsList.Items.Count > 0)
            {
                foreach (var eventItem in eventsList.Items)
                {
                    if (eventItem.Description != null)
                    {
                        if (eventItem.Description.Equals(titulo + "\n" + status))
                        {
                            calendar.Events.Delete("primary", eventItem.Id).Execute();
                            break;
                        }
                    }
                }
            }
            Event newEvent = new Event()
            {
                Summary     = materia.Split('-')[0].Trim(),
                Description = titulo + "\n" + status,
                Start       = new EventDateTime()
                {
                    DateTime = Convert.ToDateTime(dataFim).AddHours(-1),
                },
                End = new EventDateTime()
                {
                    DateTime = Convert.ToDateTime(dataFim),
                },
            };

            String calendarId = "primary";

            EventsResource.InsertRequest requestCreate = calendar.Events.Insert(newEvent, calendarId);
            Event createdEvent = requestCreate.Execute();

            Console.WriteLine("Event created: {0}", createdEvent.HtmlLink);
        }
コード例 #7
0
        public async Task AddEventsToCalendar(string calendarId, List <Show> shows)
        {
            // Define parameters of request
            EventsResource.ListRequest request = service.Events.List("*****@*****.**");
            request.TimeMin      = shows.Select(x => x.StartTime).Min();
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = shows.Count;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            Events events = request.Execute();

            foreach (var show in shows)
            {
                bool isSame = false;
                foreach (var actEvent in events.Items)
                {
                    bool SummaryBool     = actEvent.Summary == $"[{show.Title}] {show.EpisodeTitle}";
                    bool StartBool       = actEvent.Start.DateTime == show.StartTime;
                    bool EndBool         = actEvent.End.DateTime == show.EndTime;
                    bool DescriptionBool = actEvent.Description == $"Channel: {show.Channel}, Description:{show.Description}";
                    if (SummaryBool == true && StartBool == true && EndBool == true && DescriptionBool == true)
                    {
                        isSame = true;
                        break;
                    }
                }

                if (isSame == false)
                {
                    // TODO check is even exists?
                    Event newEvent = new Event()
                    {
                        Summary = $"[{show.Title}] {show.EpisodeTitle}",
                        Start   = new EventDateTime()
                        {
                            DateTime = show.StartTime
                        },
                        End = new EventDateTime()
                        {
                            DateTime = show.EndTime
                        },
                        Description = $"Channel: {show.Channel}, Description:{show.Description}"
                    };
                    newEvent = service.Events.Insert(newEvent, calendarId).Execute();
                }
            }
        }
コード例 #8
0
ファイル: ApiMethods.cs プロジェクト: Alexsus87/GAPI
        public Events GetEventsFromCalendar(DateTime TimeMin, DateTime TimeMax)
        {
            //Define parameters of request.
            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin      = TimeMin;
            request.TimeMax      = TimeMax;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            Events events = request.Execute();

            return(events);
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: JanJerghoff/Merlin
        // Finde alle Einträge zu einem Tag
        public static Events kalenderKundenFinder(DateTime Date)
        {
            // Define parameters of request.
            EventsResource.ListRequest request = dienst.Events.List("primary");
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 2500;
            request.TimeMin      = new DateTime(Date.Year, Date.Month, Date.Day, 1, 0, 0);
            request.TimeMax      = new DateTime(Date.Year, Date.Month, Date.Day, 23, 59, 59);
            // List events.
            Events events = request.Execute();
            Events temp   = new Events();

            return(events);
        }
コード例 #10
0
        public Events GetEvents(string userEmailAddress, string calenderType = "primary", int max = 10)
        {
            var service = GetService(userEmailAddress);

            // Define parameters of request.
            EventsResource.ListRequest request = service.Events.List(calenderType);
            request.TimeMin      = DateTime.Now;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = max;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            return(request.Execute());
        }
コード例 #11
0
        public async Task <Events> GetEvents(DateTime timeMax, string calendar = "primary")
        {
            if (calService == null)
            {
                await Auth(EditScopes);
            }

            EventsResource.ListRequest req = calService.Events.List(calendar);
            req.TimeMin      = DateTime.Now;
            req.TimeMax      = timeMax;
            req.ShowDeleted  = false;
            req.SingleEvents = true;
            req.OrderBy      = EventsResource.ListRequest.OrderByEnum.Updated;
            return(await req.ExecuteAsync());
        }
コード例 #12
0
        public Events GetEvents()
        {
            // Define parameters of request.
            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin      = DateTime.Now;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 10;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            Events events = request.Execute();

            return(events);
        }
コード例 #13
0
        /// <summary>
        /// Pulls a list of appointments for the set calendar between a given date range.
        /// </summary>
        /// <param name="startDate">The start of the date range</param>
        /// <param name="endDate">The end of the date range</param>
        /// <returns>List of CalendarItems with the startDate and endDate</returns>
        public List <CalendarItem> PullListOfAppointmentsByDate(DateTime startDate, DateTime endDate)
        {
            try
            {
                PerformAuthentication();

                List <CalendarItem> items = new List <CalendarItem>();

                Log.Write($"Pulling a list of Google Appointments by date from {m_currentCalendar}.");

                // Iterate over the events in the specified calendar
                string pageToken = null;
                do
                {
                    EventsResource.ListRequest list = m_service.Events.List(m_currentCalendar);
                    list.TimeMin   = startDate;
                    list.TimeMax   = endDate;
                    list.PageToken = pageToken;

                    Events       events = list.Execute();
                    List <Event> i      = events.Items.ToList();

                    foreach (var @event in i)
                    {
                        if (@event.Status.Equals("cancelled"))
                        {
                            continue;
                        }

                        var cal = new CalendarItem();
                        cal.LoadFromGoogleEvent(@event);
                        if (!items.Exists(x => x.CalendarItemIdentifier.GoogleId.Equals(cal.CalendarItemIdentifier.GoogleId)))
                        {
                            items.Add(cal);
                        }
                    }

                    pageToken = events.NextPageToken;
                } while (pageToken != null);

                return(items);
            } catch (GoogleApiException ex)
            {
                Log.Write(ex);
                HandleException(ex, "There was an error when trying to pull a list of events from google.");
                return(null);
            }
        }
コード例 #14
0
        public void AddDebtItemEvent(DebtItem debtItem)
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = "token.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            var service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin      = DateTime.Now;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 10;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            var           debtItemEvent = new Event();
            EventDateTime start         = new EventDateTime();

            start.DateTime = debtItem.DueDate;

            EventDateTime end = new EventDateTime();

            end.DateTime = debtItem.DueDate.AddMinutes(30);

            debtItemEvent.Start       = start;
            debtItemEvent.End         = end;
            debtItemEvent.Summary     = $"{debtItem.DebtItemName} due date";
            debtItemEvent.Description = $"Your {debtItem.DebtItemName} is due!";;

            var calendarId = "primary";

            debtItemEvent = service.Events.Insert(debtItemEvent, calendarId).Execute();
        }
コード例 #15
0
        private static Events GetEventsFromGoogleCalandar()
        {
            // Define parameters of request.
            EventsResource.ListRequest request = GoogleCalendarService.Events.List(Config["Google:CalendarId"]);
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 2500;
            request.ShowDeleted  = true;
            request.TimeMin      = From.AddDays(-1);
            request.TimeMax      = To.AddDays(1);

            // List events.
            Events events = request.Execute();

            return(events);
        }
コード例 #16
0
        // API使用許可とデータ取得設定
        private void CreateAPIService()
        {
            var service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // データ取得設定
            request              = service.Events.List("primary");
            request.TimeMin      = DateTime.Parse("2016/04/01 00:00:00"); // 今年度から
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 200;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;
        }
コード例 #17
0
        public CalendarEvents GetAllEvents(string calendarId)
        {
            var service = GetGoogleService();

            // Define parameters of request
            EventsResource.ListRequest request = service.Events.List(calendarId);
            request.TimeMin      = DateTime.Now;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 1000;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            Events events = request.Execute();

            return(events.ToMyCalendarEvents());
        }
コード例 #18
0
        private bool ReadExistingEvents(out List <SharedCalendarEvent> existingEvents)
        {
            existingEvents = new List <SharedCalendarEvent>();

            try
            {
                // Create Google Calendar API service.
                using CalendarService service = new CalendarService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = CredentialToken, ApplicationName = ApplicationName
                });

                // Define parameters of requestList.
                EventsResource.ListRequest requestList = service.Events.List(SelectedCalendarEntry.Id);
                requestList.TimeMin      = DateTime.Now - TimeSpan.FromHours(1);
                requestList.ShowDeleted  = false;
                requestList.SingleEvents = true;
                requestList.MaxResults   = 100;
                requestList.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

                // List events.
                Events events = requestList.Execute();
                if (events.Items == null)
                {
                    return(false);
                }

                foreach (var eventItem in events.Items)
                {
                    DateTime?StartDate = eventItem.Start.DateTime;
                    DateTime?EndDate   = eventItem.End.DateTime;

                    if (SharedCalendarEvent.TryParse(StartDate, EndDate, out SharedCalendarEvent? NewEvent) && NewEvent != null)
                    {
                        existingEvents.Add(NewEvent);
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Debug.Print(e.Message);
            }

            return(false);
        }
コード例 #19
0
ファイル: Calendar.cs プロジェクト: caseygruse/EliteK9
        //causing the access error for google calendar on hosted website not the production site.
        public static Events GetCalendarEvents()
        {
            string[] Scopes          = { CalendarService.Scope.CalendarReadonly };
            string   ApplicationName = "EliteK9";


            //https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging-azure?view=vs-2017
            UserCredential credential;
            string         path = HttpContext.Current.Server.MapPath("~/App_Data/credentials.json");



            using (var stream =
                       new FileStream(path, FileMode.Open, FileAccess.ReadWrite))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = HttpContext.Current.Server.MapPath("~/token.json");
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                //Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Google Calendar API service.
            var service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin      = DateTime.Now;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 500;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            Events events = request.Execute();

            return(events);
        }
コード例 #20
0
        public GoogleCalenderPG()
        {
            InitializeComponent();

            grabDBInfo();

            UserCredential credential;

            using (var stream =
                       new FileStream("client_secrets_gc.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                credPath = System.IO.Path.Combine(credPath, ".credentials/calendar-dotnet-quickstart");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
            }

            // Create Google Calendar API service.
            var service = new CalendarService(new BaseClientService.Initializer()  //Creates the Google Calender service. This is used to manage the calendar.
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            myService = service;
            request   = service.Events.List("primary");

            setReadRequest();
            EventListBox.DataContext = request.Execute();

            txtStartYear.Text   = DateTime.Today.AddDays(1).Year.ToString();
            txtStartMonth.Text  = DateTime.Today.AddDays(1).Month.ToString();
            txtStartDay.Text    = DateTime.Today.AddDays(1).Day.ToString();
            txtStartHour.Text   = DateTime.Now.Hour.ToString();
            txtStartMinute.Text = DateTime.Now.Minute.ToString();

            txtEndYear.Text   = DateTime.Today.AddDays(2).Year.ToString();
            txtEndMonth.Text  = DateTime.Today.AddDays(2).Month.ToString();
            txtEndDay.Text    = DateTime.Today.AddDays(2).Day.ToString();
            txtEndHour.Text   = DateTime.Now.Hour.ToString();
            txtEndMinute.Text = DateTime.Now.Minute.ToString();
        }
        public Events GetGoogleCalendarEvents(string account, DateTime start, DateTime end, string calendarId)
        {
            // Define parameters of request.
            EventsResource.ListRequest request = GetService(account).Events.List(calendarId);
            request.TimeMin      = start;
            request.TimeMax      = end;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 100;
            request.ShowDeleted  = true;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            Events events = request.Execute();

            return(events);
        }
コード例 #22
0
        public Events GetEventsByDate(DateTime data, CalendarService service)
        {
            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin = data;
            if (data != null)
            {
                var sd = data;
                request.TimeMax = sd.AddDays(1).AddTicks(-1);
            }
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 30;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            return(request.Execute());
        }
コード例 #23
0
        public Events GetGoogleCalendarEvents()
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/calendar-dotnet-quickstart.json");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                var pathString = "Credential file saved to: " + credPath;
            }

            // Create Google Calendar API service.
            var service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            DayOfWeek day   = DateTime.Now.DayOfWeek;
            int       days  = day - DayOfWeek.Monday;
            DateTime  start = DateTime.Now.AddDays(-days);
            DateTime  end   = start.AddDays(4);

            // Define parameters of request.
            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin      = start;
            request.TimeMax      = end;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 250;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            Events events = request.Execute();

            return(events);
        }
コード例 #24
0
        public static async Task <List <Event> > GetUpcomingCalendarEvents(string serviceAccountEmail, string keyFileName,
                                                                           string calendarId, int maxResults)
        {
            //The values of the Google Service Account will be read from the .json key file, which should be available to the project
            GoogleServiceAccount keyValues;

            using (StreamReader r = new StreamReader(keyFileName))
            {
                string json = r.ReadToEnd();
                keyValues = JsonConvert.DeserializeObject <GoogleServiceAccount>(json);
            }

            CalendarService service = GoogleCalendarAuth.AuthenticateServiceAccountFromKey(serviceAccountEmail, keyValues.private_key);

            // Define parameter values of the Google Calendar request
            EventsResource.ListRequest request = service.Events.List(calendarId);
            request.TimeMin      = DateTime.Now;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = maxResults;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // Execute the request
            var events = await request.ExecuteAsync();

            //Add the resulting events to a list (split this into a separate method)
            var eventList = new List <Event>();

            if (events.Items != null && events.Items.Count > 0)
            {
                eventList = events.Items.Select(i =>
                                                new Event
                {
                    StartDate        = i.Start?.DateTime ?? DateTime.MinValue,
                    EndDate          = i.End?.DateTime ?? DateTime.MinValue,
                    EventDescription = i.Description,
                    EventSummary     = i.Summary
                }
                                                ).ToList();
            }
            else
            {
                Console.WriteLine("No upcoming events found.");
            }
            return(eventList);
        }
コード例 #25
0
        private void UpdateList()
        {
            lvEvents.Items.Clear();
            // Create Google Calendar API service.
            service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = "Google Calendar API",
            });

            // Define parameters of request.
            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin      = new DateTime(1997, 9, 11);
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 100;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // List events.
            Events events = request.Execute();

            if (events.Items != null && events.Items.Count > 0)
            {
                foreach (var eventItem in events.Items)
                {
                    string start = eventItem.Start.DateTime.ToString();
                    string end   = eventItem.End.DateTime.ToString();
                    if (String.IsNullOrEmpty(start))
                    {
                        start = eventItem.Start.Date;
                    }
                    if (String.IsNullOrEmpty(end))
                    {
                        end = eventItem.Start.Date;
                    }
                    var newItem = new ListViewItem(new string[] { eventItem.Summary, eventItem.Location, start, end });
                    newItem.Tag = eventItem.Id;
                    lvEvents.Items.Add(newItem);
                }
                lvEvents.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            }
            else
            {
                MessageBox.Show("No upcoming events found.");
            }
        }
コード例 #26
0
ファイル: GCalAPI.cs プロジェクト: helljol/RainmeterGoogleAPI
        /**
         * filter events
         *
         * @param calId
         * @param startMin
         * @param updatedMin
         * @param maxResults
         * @return
         */
        public List <GCalEvent> GetEvents(String calId, DateTime?startDate, DateTime?maxEndDate, int maxResults)
        {
            List <GCalEvent> events = new List <GCalEvent>();

            try
            {
                GCal gcal = GetCalendar(calId);

                if (maxResults < 0)
                {
                    maxResults = DEFAULT_MAX_RESULTS;
                }

                EventsResource.ListRequest request = cs.Events.List(calId);
                request.MaxResults = maxResults;



                if (startDate != null)
                {
                    request.TimeMin = startDate;
                }

                request.TimeMax = maxEndDate;

                request.OrderBy      = Google.Apis.Calendar.v3.EventsResource.ListRequest.OrderByEnum.StartTime;
                request.SingleEvents = true;
                request.ShowDeleted  = false;

                Events gevents = request.Execute();

                foreach (Event e in gevents.Items)
                {
                    GCalEvent g = Convert(e, gcal);
                    g.Calendar = gcal;

                    events.Add(g);
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(events);
        }
コード例 #27
0
        public List <CalendarEvent> GetCalendarEvents(DateTime rangeFrom, DateTime rangeTo)
        {
            UserCredential credential = GetCredentials();

            var service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = "GoSync"
            });

            EventsResource.ListRequest request = service.Events.List("primary");
            request.TimeMin      = rangeFrom;
            request.TimeMax      = rangeTo;
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 1000;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            Events events = request.Execute();

            List <CalendarEvent> calendarEvents = new List <CalendarEvent>();

            foreach (var calendarEvent in events.Items)
            {
                var sourceId = calendarEvent.Id;

                if (calendarEvent.ExtendedProperties != null && calendarEvent.ExtendedProperties.Shared != null && calendarEvent.ExtendedProperties.Shared.ContainsKey("SourceID"))
                {
                    sourceId = calendarEvent.ExtendedProperties.Shared["SourceID"];
                }

                calendarEvents.Add(new GoogleCalendarEvent()
                {
                    DateFrom    = calendarEvent.Start.DateTime.GetValueOrDefault(),
                    DateTo      = calendarEvent.End.DateTime.GetValueOrDefault(),
                    Description = calendarEvent.Description,
                    Location    = calendarEvent.Location,
                    Title       = calendarEvent.Summary,
                    ID          = calendarEvent.Id,
                    SourceID    = sourceId
                });
            }

            return(calendarEvents);
        }
コード例 #28
0
        private void run_Button_Click(object sender, EventArgs e)
        {
            //Calendar calendar = null;
            try
            {
                m_provider = new NativeApplicationClient(GoogleAuthenticationServer.Description);
                m_provider.ClientIdentifier = "475623449109-og3q1tijq7kuu82i8dnfjcjklhb32g47.apps.googleusercontent.com";
                m_provider.ClientSecret     = "OdlJ_oaKeWQXdXEpkMsjF3HF";
                m_auth    = new OAuth2Authenticator <NativeApplicationClient>(m_provider, GetAuthorization);
                m_service = new CalendarService(m_auth);
                EventsResource.ListRequest listRequest = m_service.Events.List("*****@*****.**");
                listRequest.MaxResults = 1;
                listRequest.Q          = "authentication";
                listRequest.TimeMax    = "1981-01-01T23:59:59+05:30";
                Events events = listRequest.Fetch();

                //calendar = m_service.Calendars.Get("*****@*****.**").Fetch();
                this.authorizationCode_Textbox.Text = "Number of Items = " + events.Items.Count;
                Event ev = events.Items[0];
                this.authorizationCode_Textbox.Text += "   \nSummary : " + ev.Summary;
                this.authorizationCode_Textbox.Text += "   \nDescription : " + ev.Description;
                try
                {
                    if (ev.Description.EndsWith("x"))
                    {
                        ev.Description = ev.Description.Substring(0, ev.Description.Length - 1);
                    }
                    else
                    {
                        ev.Description += "x";
                    }
                    m_service.Events.Update(ev, "*****@*****.**", ev.Id).Fetch();
                    //m_service.Calendars.Update(calendar, calendar.Id).Fetch();
                    this.authorizationCode_Textbox.Text += "\nSucess!!!";
                }
                catch (Exception ex)
                {
                    this.authorizationCode_Textbox.Text += "After Update" + ex.Message;
                }
            }
            catch (Exception ex)
            {
                this.authorizationCode_Textbox.Text += "Before Update" + ex.Message;
            }
        }
コード例 #29
0
        public async Task <Events> GetEvents(string id, bool all = true)
        {
            var service = new CalendarService(new BaseClientService.Initializer
            {
                HttpClientInitializer = ServiceAccount.Instance.Credential,
                ApplicationName       = "Calendar API Sample"
            });

            try
            {
                EventsResource.ListRequest request = service.Events.List(id);
                request.TimeMin = GetCorrectStart();
                if (!all)
                {
                    //get just this weeks
                    request.TimeMax = GetCorrectEndOfWeek();
                }
                else
                {
                    request.TimeMax = DateTime.UtcNow.NextMonth();
                }

                //request.

                request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;
                request.SingleEvents = true;

                request.MaxResults  = 5;
                request.ShowDeleted = false;


                var result = await request.ExecuteAsync();

                return(result);
            }
            catch (Exception exp)
            {
                System.Diagnostics.Debug.WriteLine(id);
                System.Diagnostics.Debug.WriteLine(exp.Message);
                throw;
            }

            //return ProcessResults(request);
        }
コード例 #30
0
        // GET: Calendar
        public ActionResult Index()
        {
            UserCredential credential;

            //將自己的驗證json檔放到app_data
            string path = HttpContext.Server.MapPath("~/App_Data/client_secret.json");

            using (var stream =
                       new FileStream(path, FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/calendar-dotnet-quickstart");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Google Calendar API service.
            var service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            EventsResource.ListRequest request = service.Events.List("primary");
            //設定存取時間
            request.TimeMin      = DateTime.Now.AddDays(-100);
            request.ShowDeleted  = false;
            request.SingleEvents = true;
            request.MaxResults   = 10;
            request.OrderBy      = EventsResource.ListRequest.OrderByEnum.StartTime;

            // 讀取事件
            Events events = request.Execute();

            return(View(events));
        }