public void Handle(SetApprovalStatusCreatedEvent message) { var requestId = message.RequestId; var service = CalendarServiceByToken(_accessTokenService); var scheduleInfo = _schedulingRepository.ScheduleInfoByRequest(requestId); var evt = new Google.Apis.Calendar.v3.Data.Event { Summary = scheduleInfo.Description, Start = new EventDateTime() { DateTime = scheduleInfo.StartDate, TimeZone = "America/Sao_Paulo" } }; if (scheduleInfo.EndDate != DateTime.MinValue) { evt.End = new EventDateTime() { DateTime = scheduleInfo.EndDate, TimeZone = evt.Start.TimeZone } } ; var request = service.Events.Insert(evt, "primary"); var createdEvent = request.Execute(); var created = new ExternalProviderScheduleCreatedEvent(requestId, "Google", createdEvent.ICalUID); _bus.RaiseEvent(created); }
private PSCalendarContract.Dto.Event ConvertEvent(Google.Apis.Calendar.v3.Data.Event googleEvent) { var mapper = AutomapperConfiguration.dtoConfig.CreateMapper(); PSCalendarContract.Dto.Event @event = mapper.Map <Google.Apis.Calendar.v3.Data.Event, PSCalendarContract.Dto.Event>(googleEvent); return(@event); }
private void MoveEvent(string calendarId, EventType eventType, Google.Apis.Calendar.v3.Data.Event googleEvent) { var psGoogleEvent = GetGoogleEvent(googleEvent.Id); CalendarSyncBL.UpdateGoogleCalendar(this.Account, psGoogleEvent.EventGuid, eventType, calendarId); //we are not updating date, as we want to perform update of elements //CalendarSyncBL.UpdateLogItem(psGoogleEvent.EventGuid, googleEvent.Updated.Value); }
public Event AddEvent(string account, PSCalendarContract.Dto.Event @event, string calendarId) { Event e = BuildEvent(@event); var request = GetService(account).Events.Insert(e, calendarId); Google.Apis.Calendar.v3.Data.Event r = request.Execute(); return(r); }
/// <summary> /// Add new event in google calendar /// </summary> /// <param name="event1">added event</param> /// <returns>ID of event in google calendar</returns> public string CreateEvent(TCGSync.Entities.Event event1) { var googleEvent = event1.ToGoogleEvent(); var request = GService.Events.Insert(googleEvent, user.googleCalendarId); Google.Apis.Calendar.v3.Data.Event response = request.Execute(); return(response.Id); }
private void DeleteEvent(Google.Apis.Calendar.v3.Data.Event googleEvent) { PSCalendarContract.Dto.GoogleEvent @event = CalendarSyncBL.GetEvent(googleEvent.Id); CalendarCoreBL.Delete(@event.EventGuid); CalendarSyncBL.SyncAccountEventMarkAsDeleted(@event.GoogleCalendarEventId); CalendarSyncBL.UpdateLogItem(@event.EventGuid, googleEvent.Updated.Value); }
private bool GoogleEventIsMoreUpdated(Google.Apis.Calendar.v3.Data.Event googleEvent) { var psGoogleEvent = GetGoogleEvent(googleEvent.Id); var lastSyncAccountLogItemModyficationDate = CalendarSyncBL.GetLastSyncAccountLogItemModyficationDate(psGoogleEvent.EventGuid); var r = googleEvent.Updated.Value.TrimMilliseconds() > lastSyncAccountLogItemModyficationDate.TrimMilliseconds(); return(r); }
private void AddGoogleEventToPSTable(string calendarId, Google.Apis.Calendar.v3.Data.Event googleEvent) { PSCalendarContract.Dto.Event @event = ConvertEvent(googleEvent); @event.Type = this.CalendarList.Single(x => x.Value == calendarId).Key; Guid eventGuid = CalendarCoreBL.AddEvent(@event); CalendarSyncBL.AddSyncAccountEvent(Account, eventGuid, googleEvent.Id, calendarId); CalendarSyncBL.UpdateLogItem(eventGuid, googleEvent.Updated.Value); }
public async Task <string> CreateGoogleEvent(Database.Entities.Event ev, List <User> attendees) { try { //Create google event var googleEv = new Google.Apis.Calendar.v3.Data.Event() { Summary = ev.Title, Description = ev.Description, Location = ev.Location, Start = new EventDateTime { DateTime = ev.StartDate, TimeZone = "Europe/Stockholm" }, End = new EventDateTime { DateTime = ev.EndDate, TimeZone = "Europe/Stockholm" }, Created = ev.CreateDate }; //Get the creator details of the event var organizer = attendees.Find(u => u.Id == ev.CreatorId); //Inserting many attendees into the event causes calendar usage exceed, //comment out the attendee lines if internal server error 500 if (attendees.Any()) { googleEv.Attendees = attendees.Select(u => new EventAttendee { DisplayName = u.Name, Email = u.Email, ResponseStatus = (u.Email == organizer.Email) ? "accepted" : null }).ToList(); } //Insert in primary(default) calendar for account and send email notification to all attendees var insertRequest = _calendarService.Events.Insert(googleEv, calendarId); insertRequest.SendUpdates = 0; var createdGoogleEv = await insertRequest.ExecuteAsync(); var googleEventId = createdGoogleEv.Id; return(googleEventId); } catch (Exception e) { e.Message.ToString(); } return(null); }
public void Map_CanMapGoogleEventWithCreator_ToEvent() { var calendar = new GoogleEvent { Creator = new GoogleEvent.CreatorData() }; var actual = this.Mapper.Map <Event>(calendar); Assert.IsNotNull(actual); Assert.IsNotNull(actual.Creator); }
public void Map_CanMapEvent_ToEvent() { var calendar = new GoogleEvent { Id = "My id" }; var actual = this.Mapper.Map <Event>(calendar); Assert.IsNotNull(actual); Assert.AreEqual(calendar.Id, actual.Id); }
/// <summary> /// Constructor that creates GoogleEvent from Google Calendar Event /// </summary> /// <param name="event1">Google Calendar Event</param> internal GoogleEvent(Google.Apis.Calendar.v3.Data.Event event1) { //Google EventDateTime is not shift with timezone TimeZone localTimeZone = TimeZone.CurrentTimeZone; TimeSpan currentOffset = localTimeZone.GetUtcOffset(DateTime.Now); GoogleId = event1.Id; Start = event1.Start.DateTime + currentOffset; End = event1.End.DateTime + currentOffset; Description = event1.Summary; }
private void UpdateEvent(Google.Apis.Calendar.v3.Data.Event googleEvent) { var psGoogleEvent = GetGoogleEvent(googleEvent.Id); var lastSyncAccountLogItemModyficationDate = CalendarSyncBL.GetLastSyncAccountLogItemModyficationDate(psGoogleEvent.EventGuid); if (googleEvent.Updated.Value.TrimMilliseconds() > lastSyncAccountLogItemModyficationDate.TrimMilliseconds()) { UpdateEventInPSTable(googleEvent, this.Account); CalendarSyncBL.UpdateLogItem(psGoogleEvent.EventGuid, googleEvent.Updated.Value); } }
public void Map_CanMapGoogleEventWithOriginalStartTime_ToEvent() { var calendar = new GoogleEvent { OriginalStartTime = new GoogleEventDateTime { DateTime = DateTime.Now } }; var actual = this.Mapper.Map <Event>(calendar); Assert.IsNotNull(actual); Assert.AreEqual(calendar.OriginalStartTime.DateTime, actual.OriginalStartTime.Value); }
public static void testEvent() { GService g = new GService(); // these always need to be changed before testing string uuid = "UUIDTESTefefERezfzesefeKE12&"; string uuid2 = "efeefefe"; string uuid3 = "efefefefefef"; string calendarName = "test12345634567VIJF"; Person testPerson = makePerson("testName2", "TestLastName", "*****@*****.**"); Attendee.InewAttendee(testPerson, uuid, "1"); IList <EventAttendee> attendees = new List <EventAttendee>(); EventAttendee test = new EventAttendee() { //Email = "testname2", DisplayName = "*****@*****.**" }; IList <string> UUIDS = new List <string>(); UUIDS.Add(testPerson.UserDefined[0].Value); Console.WriteLine("attendee created"); Console.ReadKey(); //create event //create calendar var testCalendar = Calendarss.InewCalendar(makeCalendar(calendarName), uuid3, "1"); DateTime start = new DateTime(2019, 5, 7, 14, 30, 0); DateTime end = new DateTime(2019, 5, 7, 15, 30, 0); Google.Apis.Calendar.v3.Data.Event ev = makeEvent("1223432123HG23F2V32H2", "tesstlocation", "testDisc", start, end, convertPersonToAttendee(UUIDS)); Eventss.InewEvent(ev, uuid3, uuid2, "1"); Console.WriteLine("event created"); Console.ReadKey(); //update event ev.Summary = "newTestsSummery"; Eventss.IupdateEventById(ev, uuid3, uuid2, "2"); Console.WriteLine("event updated"); Console.ReadKey(); //delete event Eventss.IDeleteEventById(uuid2, uuid3); Calendarss.IdeleteCalendarById(uuid3); Console.WriteLine("event deleted"); Console.ReadKey(); }
/// <summary> /// Edit Event with the same ID /// </summary> /// <param name="event1">Event with changes</param> public void EditEvent(TCGSync.Entities.Event event1) { EventsResource.GetRequest getRequest = new EventsResource.GetRequest(GService, user.googleCalendarId, event1.GoogleId); Google.Apis.Calendar.v3.Data.Event googleEvent = getRequest.Execute(); googleEvent.Start = new EventDateTime() { DateTime = event1.Start }; googleEvent.End = new EventDateTime() { DateTime = event1.End }; googleEvent.Summary = event1.Description; EventsResource.UpdateRequest updateRequest = new EventsResource.UpdateRequest(GService, googleEvent, user.googleCalendarId, event1.GoogleId); updateRequest.Execute(); }
public void Map_CanMapGoogleEventWithReminders_ToEvent() { var calendar = new GoogleEvent { Reminders = new GoogleEvent.RemindersData { Overrides = new List <EventReminder> { new EventReminder() }, UseDefault = true } }; var actual = this.Mapper.Map <Event>(calendar); Assert.IsNotNull(actual); Assert.IsNotNull(actual.RemindersList); }
public void Map_CanMapGoogleEventDateTime_ToDateTime() { var calendar = new GoogleEvent { Start = new GoogleEventDateTime { DateTime = DateTime.Now, }, End = new GoogleEventDateTime { DateTime = DateTime.Now } }; var actual = this.Mapper.Map <Event>(calendar); Assert.IsNotNull(actual); Assert.IsTrue(actual.Start.HasTime); Assert.AreEqual(calendar.Start.DateTime.Value, actual.Start.Value); Assert.IsTrue(actual.Start.HasTime); Assert.AreEqual(calendar.End.DateTime.Value, actual.End.Value); }
public void Map_CanMapGoogleEventDateOnly_ToDateWithoutTime() { var calendar = new GoogleEvent { Start = new GoogleEventDateTime { Date = DateTime.Now.ToString("yyyy-MM-dd") }, End = new GoogleEventDateTime { Date = DateTime.Now.ToString("yyyy-MM-dd") } }; var actual = this.Mapper.Map <Event>(calendar); Assert.IsNotNull(actual); Assert.AreEqual(calendar.Start.Date, actual.Start.Value.ToString("yyyy-MM-dd")); Assert.IsFalse(actual.Start.HasTime); Assert.AreEqual(calendar.End.Date, actual.End.Value.ToString("yyyy-MM-dd")); Assert.IsFalse(actual.Start.HasTime); }
public static Google.Apis.Calendar.v3.Data.Event makeEvent(string summary, string location, string description, DateTime startDate, DateTime endDate, List <EventAttendee> eventAttendees, String TimeZone = "America/Los_Angeles") { Google.Apis.Calendar.v3.Data.Event myEvent = new Google.Apis.Calendar.v3.Data.Event { Summary = summary, Location = location, Description = description, Start = new EventDateTime() { DateTime = startDate, TimeZone = TimeZone }, End = new EventDateTime() { DateTime = endDate, TimeZone = TimeZone }, Attendees = eventAttendees, Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() { UseDefault = false, Overrides = new Google.Apis.Calendar.v3.Data.EventReminder[] { new Google.Apis.Calendar.v3.Data.EventReminder() { Method = "email", Minutes = 30 }, new Google.Apis.Calendar.v3.Data.EventReminder() { Method = "popup", Minutes = 10 } } } }; return(myEvent); }
public static bool IsUniqueId(CalendarService service, Google.Apis.Calendar.v3.Data.Event newevent) { EventsResource.ListRequest request = service.Events.List("primary"); // List events. Events events = request.Execute(); if (events.Items != null) { foreach (Google.Apis.Calendar.v3.Data.Event eventItem in events.Items) { if (newevent.Description.Equals(eventItem.Description) && newevent.Summary.Equals(eventItem.Summary) && newevent.Start.DateTime.Equals(eventItem.Start.DateTime) && newevent.End.DateTime.Equals(eventItem.End.DateTime)) { return(true); } } } return(false); }
public static string AddCalenderEvents(string refreshToken, string emailAddress, string summary, DateTime?start, DateTime?end, out string error) { string eventId = string.Empty; error = string.Empty; string serviceError; try { var calendarService = GetCalendarService(refreshToken, out serviceError); if (calendarService != null && string.IsNullOrWhiteSpace(serviceError)) { var list = calendarService.CalendarList.List().Execute(); var calendar = list.Items.SingleOrDefault(c => c.Summary == emailAddress); if (calendar != null) { Google.Apis.Calendar.v3.Data.Event calenderEvent = new Google.Apis.Calendar.v3.Data.Event(); calenderEvent.Summary = summary; //calenderEvent.Description = summary; //calenderEvent.Location = summary; calenderEvent.Start = new Google.Apis.Calendar.v3.Data.EventDateTime { //DateTime = new DateTime(2018, 1, 20, 19, 00, 0) DateTime = start //, //TimeZone = "Europe/Istanbul" }; calenderEvent.End = new Google.Apis.Calendar.v3.Data.EventDateTime { //DateTime = new DateTime(2018, 4, 30, 23, 59, 0) DateTime = start.Value.AddHours(12) //, //TimeZone = "Europe/Istanbul" }; calenderEvent.Recurrence = new List <string>(); //Set Remainder //calenderEvent.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() //{ // UseDefault = false, // Overrides = new Google.Apis.Calendar.v3.Data.EventReminder[] // { // new Google.Apis.Calendar.v3.Data.EventReminder() { Method = "email", Minutes = 24 * 60 }, // new Google.Apis.Calendar.v3.Data.EventReminder() { Method = "popup", Minutes = 24 * 60 } // } //}; //#region Attendees ////Set Attendees //calenderEvent.Attendees = new Google.Apis.Calendar.v3.Data.EventAttendee[] { // new Google.Apis.Calendar.v3.Data.EventAttendee() { Email = "*****@*****.**" }, // new Google.Apis.Calendar.v3.Data.EventAttendee() { Email = emailAddress } // }; //#endregion var newEventRequest = calendarService.Events.Insert(calenderEvent, calendar.Id); newEventRequest.SendNotifications = true; var eventResult = newEventRequest.Execute(); eventId = eventResult.Id; } } } catch (Exception ex) { eventId = string.Empty; error = ex.Message; } return(eventId); }
//public async Task<ActionResult> PutEvent(Models.Event model) public async Task <ActionResult> PutEvent(Models.Event model) { if (!EventExists(model.googleCalID)) { return(NotFound()); } Models.Event foundEvent = _context.Events.Where(e => e.googleCalID == model.googleCalID).FirstOrDefault(); //var existedEvent = await _context.Set<Models.Event>().FirstOrDefaultAsync(i=> i.id==model.id); if (foundEvent == null) { return(BadRequest()); } string bandLink = ""; if (model.bandLink != null) { bandLink = "<a href=\"" + model.bandLink + "\"> " + model.bandName + "</a> \n"; } Console.WriteLine(model.eventStart.ToString()); Event newEvent = new Event() { //assigning values for events Summary = (model.bandName + " " + model.eventStart.ToShortTimeString() + "-" + model.eventEnd.ToShortTimeString() + " $" + model.ticketPrice).ToUpper(), Location = "137 Kerr St., Oakville, Ontario L6Z 3A6", Description = bandLink + " " + model.description, Start = new EventDateTime() { DateTime = DateTime.Parse("" + model.eventStart.Year + "-" + ((model.eventStart.Month < 10) ? ("0" + model.eventStart.Month) : model.eventStart.Month) + "-" + ((model.eventStart.Day < 10) ? ("0" + model.eventStart.Day) : model.eventStart.Day) + "T" + ((model.eventStart.Hour < 10) ? ("0" + model.eventStart.Hour) : model.eventStart.Hour) + ":" + ((model.eventStart.Minute < 10) ? ("0" + model.eventStart.Minute) : model.eventStart.Minute) + ":" + ((model.eventStart.Second < 10) ? ("0" + model.eventStart.Second) : model.eventStart.Second) + "-5:00"), TimeZone = "America/Toronto" }, End = new EventDateTime() { DateTime = DateTime.Parse("" + model.eventEnd.Year + "-" + ((model.eventEnd.Month < 10) ? ("0" + model.eventEnd.Month) : model.eventEnd.Month) + "-" + ((model.eventEnd.Day < 10) ? ("0" + model.eventEnd.Day) : model.eventEnd.Day) + "T" + ((model.eventEnd.Hour < 10) ? ("0" + model.eventEnd.Hour) : model.eventEnd.Hour) + ":" + ((model.eventEnd.Minute < 10) ? ("0" + model.eventEnd.Minute) : model.eventEnd.Minute) + ":" + ((model.eventEnd.Second < 10) ? ("0" + model.eventEnd.Second) : model.eventEnd.Second) + "-5:00"), TimeZone = "America/Toronto" }, }; try { service.Events.Update(newEvent, calendarId, foundEvent.googleCalID).Execute(); } catch (Exception e) { Console.WriteLine("Failed to Delete on Google Calendar"); return(BadRequest()); } _context.Entry(foundEvent).CurrentValues.SetValues(model); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EventExists(model.id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
static void Main(string[] args) { //UserCredential credential; //using (var stream = new FileStream(@"C:\Users\Alien3\Documents\JESUS\VISUAL STUDIO\ZommAPI\Meet\credentials2bien.json", FileMode.Open, FileAccess.Read)) //{ // // 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 = @"C:\Users\Alien3\Documents\JESUS\VISUAL STUDIO\ZommAPI\Meet\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); //} string[] scopes = new string[] { CalendarService.Scope.Calendar }; GoogleCredential credential; using (var stream = new FileStream(@"C:\Users\52922\source\repos\DashboardMaterias\Meet\credentials2.json", FileMode.Open, FileAccess.Read)) { credential = GoogleCredential.FromStream(stream) .CreateScoped(scopes); } credential = credential.CreateScoped(new[] { "https://www.googleapis.com/auth/calendar" }); try { Task <string> task = ((ITokenAccess)credential).GetAccessTokenForRequestAsync(); task.Wait(); string bearer = task.Result; } catch (AggregateException ex) { throw ex.InnerException; } // Create Google Calendar API service. var service = new CalendarService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); DateTime start = DateTime.Now; Google.Apis.Calendar.v3.Data.Event calenderEvent = new Google.Apis.Calendar.v3.Data.Event(); calenderEvent.Summary = "prueba"; //calenderEvent.Description = summary; //calenderEvent.Location = summary; calenderEvent.Start = new Google.Apis.Calendar.v3.Data.EventDateTime { //DateTime = new DateTime(2018, 1, 20, 19, 00, 0) DateTime = start, TimeZone = "America/Mexico_City" }; calenderEvent.End = new Google.Apis.Calendar.v3.Data.EventDateTime { //DateTime = new DateTime(2018, 4, 30, 23, 59, 0) DateTime = start.AddHours(1), TimeZone = "America/Mexico_City" }; //calenderEvent.Creator = new Google.Apis.Calendar.v3.Data.Event.CreatorData(); //calenderEvent.Creator.DisplayName = "Jesús Torres"; //calenderEvent.Creator.Email = "*****@*****.**"; calenderEvent.Status = "confirmed"; calenderEvent.Visibility = "public"; calenderEvent.Description = "EjemploDescripcion"; var Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" }; calenderEvent.Recurrence = Recurrence; calenderEvent.ConferenceData = new Google.Apis.Calendar.v3.Data.ConferenceData(); calenderEvent.ConferenceData.CreateRequest = new Google.Apis.Calendar.v3.Data.CreateConferenceRequest(); calenderEvent.ConferenceData.CreateRequest.ConferenceSolutionKey = new Google.Apis.Calendar.v3.Data.ConferenceSolutionKey(); calenderEvent.ConferenceData.CreateRequest.ConferenceSolutionKey.Type = "hangoutsMeet"; calenderEvent.ConferenceData.CreateRequest.Status = new Google.Apis.Calendar.v3.Data.ConferenceRequestStatus(); calenderEvent.ConferenceData.CreateRequest.Status.StatusCode = "success"; calenderEvent.ConferenceData.CreateRequest.RequestId = "123456789100"; var pm = new Dictionary <string, string> { { "conferenceDataVersion", "1" } }; List <ConferenceParametersAddOnParameters> listParameters = new List <ConferenceParametersAddOnParameters>(); //listParameters.Add(new ConferenceParametersAddOnParameters { Parameters = { }, ETag = "1" }); ConferenceParameters objParam = new ConferenceParameters(); objParam.AddOnParameters = new ConferenceParametersAddOnParameters(); objParam.AddOnParameters.Parameters = pm; objParam.ETag = "1"; calenderEvent.ConferenceData.Parameters = new ConferenceParameters(); calenderEvent.ConferenceData.Parameters.AddOnParameters = new ConferenceParametersAddOnParameters(); calenderEvent.ConferenceData.Parameters.AddOnParameters.Parameters = pm; calenderEvent.ConferenceData.Parameters.AddOnParameters.ETag = "1"; calenderEvent.ConferenceData.ConferenceSolution = new Google.Apis.Calendar.v3.Data.ConferenceSolution(); calenderEvent.ConferenceData.ConferenceSolution.Key = new Google.Apis.Calendar.v3.Data.ConferenceSolutionKey(); calenderEvent.ConferenceData.ConferenceSolution.Key.Type = "hangoutsMeet"; List <EntryPoint> list = new System.Collections.Generic.List <Google.Apis.Calendar.v3.Data.EntryPoint>(); EntryPoint entry = new Google.Apis.Calendar.v3.Data.EntryPoint(); entry.EntryPointType = "video"; entry.AccessCode = "123456"; //list.Add(new Google.Apis.Calendar.v3.Data.EntryPoint { EntryPointType = "video" }); list.Add(entry); //EntryPoint entry = new Google.Apis.Calendar.v3.Data.EntryPoint(); //entry.EntryPointType = "video"; calenderEvent.ConferenceData.EntryPoints = list; //Set Remainder //calenderEvent.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() //{ // UseDefault = false, // Overrides = new Google.Apis.Calendar.v3.Data.EventReminder[] // { // new Google.Apis.Calendar.v3.Data.EventReminder() { Method = "email", Minutes = 24 * 60 }, // new Google.Apis.Calendar.v3.Data.EventReminder() { Method = "popup", Minutes = 24 * 60 } // } //}; //#region Attendees ////Set Attendees //calenderEvent.Attendees = new Google.Apis.Calendar.v3.Data.EventAttendee[] { // new Google.Apis.Calendar.v3.Data.EventAttendee() { Email = "*****@*****.**" } // //new Google.Apis.Calendar.v3.Data.EventAttendee() { Email = emailAddress } // }; //#endregion try { String calendarId = "primary"; EventsResource.InsertRequest request = service.Events.Insert(calenderEvent, calendarId); Event createdEvent = request.Execute(); Console.WriteLine("Event created: {0}", createdEvent.HtmlLink); } catch (Exception ex) { } }
static void Main(string[] args) { String sUrl = "https://planification.univ-lorraine.fr/jsp/custom/modules/plannings/anonymous_cal.jsp?resources=5424&projectId=5&calType=ical&firstDate=2018-01-29&lastDate=2018-02-04"; Download.copyURLToFile(sUrl, "ade.ics"); List <IEvent> ilist = ParseIcsFile.parseics("ade.ics"); if (!System.IO.File.Exists("tmp.ics")) { try { using (FileStream s = File.Create("tmp.ics")) { string content = File.ReadAllText("ade.ics"); s.Close(); File.WriteAllText("tmp.ics", content); } } catch (System.IO.IOException e) { Console.WriteLine(e.Message); } } else { List <IEvent> ilist1 = ParseIcsFile.parseics("tmp.ics"); //Detecter les evenements qui ont été modifiés la derniere fois(Supprimer- Inserer - Modifier) ParseIcsFile.compareEvents(ilist, ilist1); Console.WriteLine("Element supprimé par rapport à la derniere synchronisation: "); foreach (IEvent e in ParseIcsFile.listeSuppression) { Console.WriteLine(e.Summary); } Console.WriteLine("\nElement inséré par rapport à la derniere synchronisation: "); foreach (IEvent e in ParseIcsFile.listeInsertion) { Console.WriteLine(e.Summary); } Console.WriteLine("\nElement modif par rapport à la derniere synchronisation: "); foreach (IEvent e in ParseIcsFile.listeModification) { Console.WriteLine(e.Summary); } FileStream s = File.Create("tmp.ics"); string content = File.ReadAllText("ade.ics"); s.Close(); File.WriteAllText("tmp.ics", content); } //ADD GOOGLE API AND ADD TEST EVENT string[] Scopes = { CalendarService.Scope.Calendar }; string ApplicationName = "Google Calendar API .NET Quickstart"; 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; Console.WriteLine("Credential file saved to: " + credPath); } // Create Google Calendar API service. var service = new CalendarService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); // TEST ONE EVENT /* Google.Apis.Calendar.v3.Data.Event newEvent1 = new Google.Apis.Calendar.v3.Data.Event(); * newEvent1.Summary = "Summary"; * newEvent1.Description = "New EVent Test"; * newEvent1.Start = new EventDateTime(); * newEvent1.Start.DateTime = new DateTime(2018, 5, 16, 15, 13, 13, 12); * * newEvent1.End = new EventDateTime(); * newEvent1.End.DateTime = new DateTime(2018, 7, 16, 15, 13, 13, 12); * service.Events.Insert(newEvent1, "primary").Execute();*/ var calendars = iCalendar.LoadFromFile("tmp.ics"); IList <Occurrence> occurrences = calendars.GetOccurrences(new DateTime(2017, 1, 1), new DateTime(2018, 3, 26)); int i = 0; foreach (Occurrence occurrence in occurrences) { DateTime occurrenceTime = occurrence.Period.StartTime.Local.AddHours(1); IRecurringComponent rc = occurrence.Source as IRecurringComponent; if (rc != null) { Google.Apis.Calendar.v3.Data.Event newEvent = new Google.Apis.Calendar.v3.Data.Event(); newEvent.Summary = rc.Calendar.Events[i].Summary; DateTime o = new DateTime(rc.Calendar.Events[i].Start.Year, rc.Calendar.Events[i].Start.Month, rc.Calendar.Events[i].Start.Day, rc.Calendar.Events[i].Start.Hour + 1, rc.Calendar.Events[i].Start.Minute, rc.Calendar.Events[i].Start.Second); newEvent.Start = new EventDateTime(); newEvent.Start.DateTime = o; o = new DateTime(rc.Calendar.Events[i].DTEnd.Year, rc.Calendar.Events[i].DTEnd.Month, rc.Calendar.Events[i].DTEnd.Day, rc.Calendar.Events[i].DTEnd.Hour + 1, rc.Calendar.Events[i].DTEnd.Minute, rc.Calendar.Events[i].DTEnd.Second); newEvent.End = new EventDateTime(); newEvent.End.DateTime = o; newEvent.Description = rc.Calendar.Events[i].Description; newEvent.Location = rc.Calendar.Events[i].Location; if (!CalendarHelper.IsUniqueId(service, newEvent)) { service.Events.Insert(newEvent, "primary").Execute(); Console.WriteLine(rc.Calendar.Events[i].Summary); } i++; } } Console.Read(); }
static void Main(string[] args) { 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_creds.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. service = new CalendarService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); // Define parameters of request. EventsResource.ListRequest request = service.Events.List(MasterCalendarId); request.TimeMin = DateTime.Now; request.ShowDeleted = false; request.SingleEvents = true; request.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime; // List events. Events events = request.Execute(); foreach (String day in new String[] { "A", "B", "C", "D", "E", "F" }) { RotationDates.Add(day, new List <DateTime>()); } foreach (var eventItem in events.Items) { Console.WriteLine("Examining: {0}", eventItem.Summary); foreach (String day in new String[] { "A", "B", "C", "D", "E", "F" }) { if (eventItem.Summary.Contains(String.Format("\"{0}\" Day", day))) { RotationDates[day].Add(DateTime.Parse(eventItem.Start.Date)); Console.WriteLine("{0} is an {1} day.", eventItem.Start.Date, day); } } } using (ScheduleDatabaseEntities db = new ScheduleDatabaseEntities()) { int evtId = db.Events.Count() <= 0 ? 1 : db.Events.OrderBy(e => e.Id).ToList().Last().Id + 1; foreach (ClassSchedule schedule in db.ClassSchedules.ToList()) { foreach (DateTime date in RotationDates["A"]) { // only create an event, if it hasn't already been logged. if (schedule.Events.Where(e => e.Date.Equals(date.Date)).Count() <= 0 && schedule.A.Hours > 0) { DateTime st = new DateTime(date.Year, date.Month, date.Day, schedule.A.Hours, schedule.A.Minutes, 0); DateTime et = st.AddMinutes(50); Google.Apis.Calendar.v3.Data.Event evt = new Google.Apis.Calendar.v3.Data.Event() { Start = new EventDateTime() { DateTime = st }, End = new EventDateTime() { DateTime = et }, Summary = schedule.ClassName }; EventReminder reminder = new EventReminder() { Method = "sms", Minutes = 10 }; evt.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() { Overrides = new List <EventReminder>() { reminder }, UseDefault = false }; EventsResource.InsertRequest insReq = new EventsResource.InsertRequest(service, evt, "*****@*****.**"); Google.Apis.Calendar.v3.Data.Event newEvt = insReq.Execute(); Event dbEvent = new Event() { ClassScheduleId = schedule.Id, Date = date, CalendarEventURI = newEvt.Id, Id = evtId++ }; db.Events.Add(dbEvent); db.SaveChanges(); } } foreach (DateTime date in RotationDates["B"]) { // only create an event, if it hasn't already been logged. if (schedule.Events.Where(e => e.Date.Equals(date.Date)).Count() <= 0 && schedule.B.Hours > 0) { DateTime st = new DateTime(date.Year, date.Month, date.Day, schedule.B.Hours, schedule.B.Minutes, 0); DateTime et = st.AddMinutes(50); Google.Apis.Calendar.v3.Data.Event evt = new Google.Apis.Calendar.v3.Data.Event() { Start = new EventDateTime() { DateTime = st }, End = new EventDateTime() { DateTime = et }, Summary = schedule.ClassName }; EventReminder reminder = new EventReminder() { Method = "sms", Minutes = 10 }; evt.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() { Overrides = new List <EventReminder>() { reminder }, UseDefault = false }; EventsResource.InsertRequest insReq = new EventsResource.InsertRequest(service, evt, "primary"); Google.Apis.Calendar.v3.Data.Event newEvt = insReq.Execute(); Event dbEvent = new Event() { ClassScheduleId = schedule.Id, Date = date, CalendarEventURI = newEvt.Id, Id = evtId++ }; db.Events.Add(dbEvent); db.SaveChanges(); } } foreach (DateTime date in RotationDates["C"]) { // only create an event, if it hasn't already been logged. if (schedule.Events.Where(e => e.Date.Equals(date.Date)).Count() <= 0 && schedule.C.Hours > 0) { DateTime st = new DateTime(date.Year, date.Month, date.Day, schedule.C.Hours, schedule.C.Minutes, 0); DateTime et = st.AddMinutes(50); Google.Apis.Calendar.v3.Data.Event evt = new Google.Apis.Calendar.v3.Data.Event() { Start = new EventDateTime() { DateTime = st }, End = new EventDateTime() { DateTime = et }, Summary = schedule.ClassName }; EventReminder reminder = new EventReminder() { Method = "sms", Minutes = 10 }; evt.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() { Overrides = new List <EventReminder>() { reminder }, UseDefault = false }; EventsResource.InsertRequest insReq = new EventsResource.InsertRequest(service, evt, "primary"); Google.Apis.Calendar.v3.Data.Event newEvt = insReq.Execute(); Event dbEvent = new Event() { ClassScheduleId = schedule.Id, Date = date, CalendarEventURI = newEvt.Id, Id = evtId++ }; db.Events.Add(dbEvent); db.SaveChanges(); } } foreach (DateTime date in RotationDates["D"]) { // only create an event, if it hasn't already been logged. if (schedule.Events.Where(e => e.Date.Equals(date.Date)).Count() <= 0 && schedule.D.Hours > 0) { DateTime st = new DateTime(date.Year, date.Month, date.Day, schedule.D.Hours, schedule.D.Minutes, 0); DateTime et = st.AddMinutes(50); Google.Apis.Calendar.v3.Data.Event evt = new Google.Apis.Calendar.v3.Data.Event() { Start = new EventDateTime() { DateTime = st }, End = new EventDateTime() { DateTime = et }, Summary = schedule.ClassName }; EventReminder reminder = new EventReminder() { Method = "sms", Minutes = 10 }; evt.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() { Overrides = new List <EventReminder>() { reminder }, UseDefault = false }; EventsResource.InsertRequest insReq = new EventsResource.InsertRequest(service, evt, "primary"); Google.Apis.Calendar.v3.Data.Event newEvt = insReq.Execute(); Event dbEvent = new Event() { ClassScheduleId = schedule.Id, Date = date, CalendarEventURI = newEvt.Id, Id = evtId++ }; db.Events.Add(dbEvent); db.SaveChanges(); } } foreach (DateTime date in RotationDates["E"]) { // only create an event, if it hasn't already been logged. if (schedule.Events.Where(e => e.Date.Equals(date.Date)).Count() <= 0 && schedule.E.Hours > 0) { DateTime st = new DateTime(date.Year, date.Month, date.Day, schedule.E.Hours, schedule.E.Minutes, 0); DateTime et = st.AddMinutes(50); Google.Apis.Calendar.v3.Data.Event evt = new Google.Apis.Calendar.v3.Data.Event() { Start = new EventDateTime() { DateTime = st }, End = new EventDateTime() { DateTime = et }, Summary = schedule.ClassName }; EventReminder reminder = new EventReminder() { Method = "sms", Minutes = 10 }; evt.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() { Overrides = new List <EventReminder>() { reminder }, UseDefault = false }; EventsResource.InsertRequest insReq = new EventsResource.InsertRequest(service, evt, "primary"); Google.Apis.Calendar.v3.Data.Event newEvt = insReq.Execute(); Event dbEvent = new Event() { ClassScheduleId = schedule.Id, Date = date, CalendarEventURI = newEvt.Id, Id = evtId++ }; db.Events.Add(dbEvent); db.SaveChanges(); } } foreach (DateTime date in RotationDates["F"]) { // only create an event, if it hasn't already been logged. if (schedule.Events.Where(e => e.Date.Equals(date.Date)).Count() <= 0 && schedule.F.Hours > 0) { DateTime st = new DateTime(date.Year, date.Month, date.Day, schedule.F.Hours, schedule.F.Minutes, 0); DateTime et = st.AddMinutes(50); Google.Apis.Calendar.v3.Data.Event evt = new Google.Apis.Calendar.v3.Data.Event() { Start = new EventDateTime() { DateTime = st }, End = new EventDateTime() { DateTime = et }, Summary = schedule.ClassName }; EventReminder reminder = new EventReminder() { Method = "sms", Minutes = 10 }; evt.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() { Overrides = new List <EventReminder>() { reminder }, UseDefault = false }; EventsResource.InsertRequest insReq = new EventsResource.InsertRequest(service, evt, "primary"); Google.Apis.Calendar.v3.Data.Event newEvt = insReq.Execute(); Event dbEvent = new Event() { ClassScheduleId = schedule.Id, Date = date, CalendarEventURI = newEvt.Id, Id = evtId++ }; db.Events.Add(dbEvent); db.SaveChanges(); } } } } Console.WriteLine("I'm Done!"); Console.Read(); }
public void CreateEvent(GooglePlusAccessToken serStatus) { UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync( new ClientSecrets { ClientId = "295167635687-bhugb57e9u7tg46ieolrbs636silvljj.apps.googleusercontent.com", ClientSecret = "CwUAg3ydCCE1dnA6OshbOJfX", }, new[] { CalendarService.Scope.Calendar }, "user", CancellationToken.None).Result; credential.Token = new Google.Apis.Auth.OAuth2.Responses.TokenResponse(); credential.Token.AccessToken = serStatus.access_token; credential.Token.ExpiresInSeconds = serStatus.expires_in; credential.Token.RefreshToken = serStatus.refresh_token; credential.Token.TokenType = serStatus.token_type; var service = new CalendarService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "ProjectMeet", }); DateTime start = DateTime.Now; Google.Apis.Calendar.v3.Data.Event calenderEvent = new Google.Apis.Calendar.v3.Data.Event(); calenderEvent.Summary = "prueba"; //calenderEvent.Description = summary; //calenderEvent.Location = summary; calenderEvent.Start = new Google.Apis.Calendar.v3.Data.EventDateTime { //DateTime = new DateTime(2018, 1, 20, 19, 00, 0) DateTime = start, TimeZone = "America/Mexico_City" }; calenderEvent.End = new Google.Apis.Calendar.v3.Data.EventDateTime { //DateTime = new DateTime(2018, 4, 30, 23, 59, 0) DateTime = start.AddHours(1), TimeZone = "America/Mexico_City" }; //calenderEvent.Creator = new Google.Apis.Calendar.v3.Data.Event.CreatorData(); //calenderEvent.Creator.DisplayName = "Jesús Torres"; //calenderEvent.Creator.Email = "*****@*****.**"; calenderEvent.Status = "confirmed"; calenderEvent.Visibility = "public"; calenderEvent.Description = "EjemploDescripcion"; var Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" }; calenderEvent.Recurrence = Recurrence; calenderEvent.ConferenceData = new Google.Apis.Calendar.v3.Data.ConferenceData(); calenderEvent.ConferenceData.CreateRequest = new Google.Apis.Calendar.v3.Data.CreateConferenceRequest(); calenderEvent.ConferenceData.CreateRequest.ConferenceSolutionKey = new Google.Apis.Calendar.v3.Data.ConferenceSolutionKey(); calenderEvent.ConferenceData.CreateRequest.ConferenceSolutionKey.Type = "hangoutsMeet"; calenderEvent.ConferenceData.CreateRequest.Status = new Google.Apis.Calendar.v3.Data.ConferenceRequestStatus(); calenderEvent.ConferenceData.CreateRequest.Status.StatusCode = "success"; calenderEvent.ConferenceData.CreateRequest.RequestId = "123456789100"; var pm = new Dictionary <string, string> { { "conferenceDataVersion", "1" } }; List <ConferenceParametersAddOnParameters> listParameters = new List <ConferenceParametersAddOnParameters>(); //listParameters.Add(new ConferenceParametersAddOnParameters { Parameters = { }, ETag = "1" }); ConferenceParameters objParam = new ConferenceParameters(); objParam.AddOnParameters = new ConferenceParametersAddOnParameters(); objParam.AddOnParameters.Parameters = pm; objParam.ETag = "1"; calenderEvent.ConferenceData.Parameters = new ConferenceParameters(); calenderEvent.ConferenceData.Parameters.AddOnParameters = new ConferenceParametersAddOnParameters(); calenderEvent.ConferenceData.Parameters.AddOnParameters.Parameters = pm; calenderEvent.ConferenceData.Parameters.AddOnParameters.ETag = "1"; calenderEvent.ConferenceData.ConferenceSolution = new Google.Apis.Calendar.v3.Data.ConferenceSolution(); calenderEvent.ConferenceData.ConferenceSolution.Key = new Google.Apis.Calendar.v3.Data.ConferenceSolutionKey(); calenderEvent.ConferenceData.ConferenceSolution.Key.Type = "hangoutsMeet"; List <EntryPoint> list = new System.Collections.Generic.List <Google.Apis.Calendar.v3.Data.EntryPoint>(); EntryPoint entry = new Google.Apis.Calendar.v3.Data.EntryPoint(); entry.EntryPointType = "video"; entry.AccessCode = "123456"; //list.Add(new Google.Apis.Calendar.v3.Data.EntryPoint { EntryPointType = "video" }); list.Add(entry); //EntryPoint entry = new Google.Apis.Calendar.v3.Data.EntryPoint(); //entry.EntryPointType = "video"; calenderEvent.ConferenceData.EntryPoints = list; try { String calendarId = "primary"; EventsResource.InsertRequest request = service.Events.Insert(calenderEvent, calendarId); Event createdEvent = request.Execute(); Console.WriteLine("Event created: {0}", createdEvent.HtmlLink); } catch (Exception ex) { } }
public static string AddCalenderEvents(string refreshToken, string emailAddress, string summary, DateTime?start, DateTime?end, out string error) { string eventId = string.Empty; error = string.Empty; string serviceError; try { var calendarService = GetCalendarService(refreshToken, out serviceError); if (calendarService != null && string.IsNullOrWhiteSpace(serviceError)) { var list = calendarService.CalendarList.List().Execute(); var calendar = list.Items.SingleOrDefault(c => c.Summary == emailAddress); if (calendar != null) { Google.Apis.Calendar.v3.Data.Event calenderEvent = new Google.Apis.Calendar.v3.Data.Event(); calenderEvent.Summary = "prueba"; //calenderEvent.Description = summary; //calenderEvent.Location = summary; calenderEvent.Start = new Google.Apis.Calendar.v3.Data.EventDateTime { //DateTime = new DateTime(2018, 1, 20, 19, 00, 0) DateTime = start, TimeZone = "America/Mexico_City" }; calenderEvent.End = new Google.Apis.Calendar.v3.Data.EventDateTime { //DateTime = new DateTime(2018, 4, 30, 23, 59, 0) DateTime = start.Value.AddHours(1), TimeZone = "America/Mexico_City" }; calenderEvent.Creator = new Google.Apis.Calendar.v3.Data.Event.CreatorData(); calenderEvent.Creator.DisplayName = "Jesús Torres"; calenderEvent.Creator.Email = "*****@*****.**"; EventAttendee a = new EventAttendee(); a.Email = "*****@*****.**"; List <EventAttendee> attendes = new List <EventAttendee>(); attendes.Add(a); calenderEvent.Attendees = attendes; calenderEvent.Status = "confirmed"; calenderEvent.Visibility = "public"; calenderEvent.Description = "EjemploDescripcion"; var Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" }; calenderEvent.Recurrence = Recurrence; calenderEvent.ConferenceData = new Google.Apis.Calendar.v3.Data.ConferenceData { CreateRequest = new CreateConferenceRequest { ConferenceSolutionKey = new ConferenceSolutionKey { Type = "hangoutsMeet" }, Status = new ConferenceRequestStatus { StatusCode = "success" }, RequestId = "123456789", }, ConferenceSolution = new ConferenceSolution { Key = new ConferenceSolutionKey { Type = "hangoutsMeet" } }, EntryPoints = new List <EntryPoint> { new EntryPoint { EntryPointType = "video" } } }; //calenderEvent.ConferenceData.CreateRequest = new Google.Apis.Calendar.v3.Data.CreateConferenceRequest(); //calenderEvent.ConferenceData.CreateRequest.ConferenceSolutionKey = new Google.Apis.Calendar.v3.Data.ConferenceSolutionKey(); //calenderEvent.ConferenceData.CreateRequest.ConferenceSolutionKey.Type = "hangoutsMeet"; //calenderEvent.ConferenceData.CreateRequest.Status = new Google.Apis.Calendar.v3.Data.ConferenceRequestStatus(); //calenderEvent.ConferenceData.CreateRequest.Status.StatusCode = "success"; //calenderEvent.ConferenceData.CreateRequest.RequestId = "123456789100"; //calenderEvent.ConferenceData.ConferenceSolution = new ConferenceSolution(); //calenderEvent.ConferenceData.ConferenceSolution.Key = new ConferenceSolutionKey(); //calenderEvent.ConferenceData.ConferenceSolution.Key.Type = "hangoutsMeet"; IDictionary <string, string> pm = new Dictionary <string, string> { { "conferenceDataVersion", "1" } }; calenderEvent.ConferenceData.Parameters = new ConferenceParameters(); calenderEvent.ConferenceData.Parameters.AddOnParameters = new ConferenceParametersAddOnParameters(); calenderEvent.ConferenceData.Parameters.AddOnParameters.Parameters = pm; calenderEvent.ConferenceData.Parameters.AddOnParameters.ETag = "1"; //calenderEvent.ConferenceData.ConferenceSolution = new Google.Apis.Calendar.v3.Data.ConferenceSolution(); //calenderEvent.ConferenceData.ConferenceSolution.Key = new Google.Apis.Calendar.v3.Data.ConferenceSolutionKey(); //calenderEvent.ConferenceData.ConferenceSolution.Key.Type = "hangoutsMeet"; //List<EntryPoint> list1 = new System.Collections.Generic.List<Google.Apis.Calendar.v3.Data.EntryPoint>(); //EntryPoint entry = new Google.Apis.Calendar.v3.Data.EntryPoint(); //entry.EntryPointType = "video"; //entry.AccessCode = "123456"; //list1.Add(entry); //calenderEvent.ConferenceData.EntryPoints = list1; //calenderEvent.ExtendedProperties = new Event.ExtendedPropertiesData { Private__ = pm, Shared = pm }; //calenderEvent.ExtendedProperties= try { String calendarId = "primary"; // EventsResource.InsertRequest request = new EventsResource.InsertRequest(calendarService, calenderEvent, calendarId); EventsResource.InsertRequest request = calendarService.Events.Insert(calenderEvent, calendarId); request.ConferenceDataVersion = 1; Event createdEvent = request.Execute(); Console.WriteLine("Event created: {0}", createdEvent.HtmlLink); } catch (Exception ex) { } } } } catch (Exception ex) { eventId = string.Empty; error = ex.Message; } return(eventId); }
public static Google.Apis.Calendar.v3.Data.Event UpdateCalenderEvents(string refreshToken, string emailAddress, string summary, DateTime?start, DateTime?end, string eventId, out string error) { Google.Apis.Calendar.v3.Data.Event eventResult = null; error = string.Empty; string serviceError; try { var calendarService = GetCalendarService(refreshToken, out serviceError); if (calendarService != null) { var list = calendarService.CalendarList.List().Execute(); var calendar = list.Items.SingleOrDefault(c => c.Summary == emailAddress); if (calendar != null) { // Define parameters of request EventsResource.ListRequest request = calendarService.Events.List("primary"); request.TimeMin = DateTime.Now; request.ShowDeleted = false; request.SingleEvents = true; request.MaxResults = 10; request.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime; // Get selected event Google.Apis.Calendar.v3.Data.Events events = request.Execute(); var selectedEvent = events.Items.FirstOrDefault(c => c.Id == eventId); if (selectedEvent != null) { selectedEvent.Summary = summary; selectedEvent.Start = new Google.Apis.Calendar.v3.Data.EventDateTime { DateTime = start }; selectedEvent.End = new Google.Apis.Calendar.v3.Data.EventDateTime { DateTime = start.Value.AddHours(12) }; selectedEvent.Recurrence = new List <string>(); // Set Remainder selectedEvent.Reminders = new Google.Apis.Calendar.v3.Data.Event.RemindersData() { UseDefault = false, Overrides = new Google.Apis.Calendar.v3.Data.EventReminder[] { new Google.Apis.Calendar.v3.Data.EventReminder() { Method = "email", Minutes = 24 * 60 }, new Google.Apis.Calendar.v3.Data.EventReminder() { Method = "popup", Minutes = 24 * 60 } } }; // Set Attendees selectedEvent.Attendees = new Google.Apis.Calendar.v3.Data.EventAttendee[] { new Google.Apis.Calendar.v3.Data.EventAttendee() { Email = "*****@*****.**" }, new Google.Apis.Calendar.v3.Data.EventAttendee() { Email = emailAddress } }; } var updateEventRequest = calendarService.Events.Update(selectedEvent, calendar.Id, eventId); updateEventRequest.SendNotifications = true; eventResult = updateEventRequest.Execute(); } } } catch (Exception ex) { eventResult = null; error = ex.ToString(); } return(eventResult); }
public void Test_OldRecurringAppointment() { string gmailUsername; string syncProfile; LoadSettings(out gmailUsername, out syncProfile); EventsResource service; CalendarListEntry primaryCalendar = null; var scopes = new List <string>(); //Contacts-Scope scopes.Add("https://www.google.com/m8/feeds"); scopes.Add(CalendarService.Scope.Calendar); UserCredential credential; byte[] jsonSecrets = Properties.Resources.client_secrets; //using (var stream = new FileStream(Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(this.GetType()).Location) + "\\client_secrets.json", FileMode.Open, FileAccess.Read)) //using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)) //using (var stream = new FileStream(Application.StartupPath + "\\client_secrets.json", FileMode.Open, FileAccess.Read)) using (var stream = new MemoryStream(jsonSecrets)) { FileDataStore fDS = new FileDataStore(Logger.AuthFolder, true); credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, scopes, gmailUsername, CancellationToken.None, fDS).Result; var initializer = new Google.Apis.Services.BaseClientService.Initializer(); initializer.HttpClientInitializer = credential; var CalendarRequest = new CalendarService(initializer); //CalendarRequest.setUserCredentials(username, password); var list = CalendarRequest.CalendarList.List().Execute().Items; foreach (var calendar in list) { if (calendar.Primary != null && calendar.Primary.Value) { primaryCalendar = calendar; break; } } if (primaryCalendar == null) { throw new Exception("Primary Calendar not found"); } //EventQuery query = new EventQuery("https://www.google.com/calendar/feeds/default/private/full"); //ToDo: Upgrade to v3, EventQuery query = new EventQuery("https://www.googleapis.com/calendar/v3/calendars/default/events"); service = CalendarRequest.Events; } #region Delete previously created test contact. var query = service.List(primaryCalendar.Id); query.MaxResults = 500; query.TimeMin = DateTime.Now.AddDays(-10); query.TimeMax = DateTime.Now.AddDays(10); //query.Q = "GCSM Test Appointment"; var feed = query.Execute(); Logger.Log("Loaded Google appointments", EventType.Information); foreach (Google.Apis.Calendar.v3.Data.Event entry in feed.Items) { if (entry.Summary != null && entry.Summary.Contains("GCSM Test Appointment") && !entry.Status.Equals("cancelled")) { Logger.Log("Deleting Google appointment:" + entry.Summary + " - " + entry.Start.DateTime.ToString(), EventType.Information); service.Delete(primaryCalendar.Id, entry.Id); Logger.Log("Deleted Google appointment", EventType.Information); //break; } } #endregion DateTimeZone zone = DateTimeZoneProviders.Tzdb["Europe/Warsaw"]; LocalDateTime e1_start = new LocalDateTime(1970, 10, 14, 10, 0, 0); ZonedDateTime e1_start_zoned = e1_start.InZoneLeniently(zone); DateTime e1_start_utc = e1_start_zoned.ToDateTimeUtc(); LocalDateTime e1_end = new LocalDateTime(1970, 10, 14, 11, 0, 0); ZonedDateTime e1_end_zoned = e1_start.InZoneLeniently(zone); DateTime e1_end_utc = e1_start_zoned.ToDateTimeUtc(); var s = new EventDateTime(); s.DateTime = e1_start_utc; s.TimeZone = "Europe/Warsaw"; var e = new EventDateTime(); e.DateTime = e1_end_utc; e.TimeZone = "Europe/Warsaw"; var e1 = new Google.Apis.Calendar.v3.Data.Event() { Summary = "Birthday 1", Start = s, End = e, Recurrence = new string[] { "RRULE:FREQ=YEARLY;BYMONTHDAY=14;BYMONTH=10" } }; Assert.AreEqual("1970-10-14T09:00:00.000Z", e1.Start.DateTimeRaw); var c1 = service.Insert(e1, primaryCalendar.Id).Execute(); Assert.AreEqual("1970-10-14T10:00:00+01:00", c1.Start.DateTimeRaw); LocalDateTime e2_start = new LocalDateTime(2000, 10, 14, 10, 0, 0); ZonedDateTime e2_start_zoned = e2_start.InZoneLeniently(zone); DateTime e2_start_utc = e2_start_zoned.ToDateTimeUtc(); LocalDateTime e2_end = new LocalDateTime(2000, 10, 14, 11, 0, 0); ZonedDateTime e2_end_zoned = e2_start.InZoneLeniently(zone); DateTime e2_end_utc = e2_start_zoned.ToDateTimeUtc(); var ss = new EventDateTime(); ss.DateTime = e2_start_utc; ss.TimeZone = "Europe/Warsaw"; var ee = new EventDateTime(); ee.DateTime = e2_end_utc; ee.TimeZone = "Europe/Warsaw"; var e2 = new Google.Apis.Calendar.v3.Data.Event() { Summary = "Birthday 2", Start = ss, End = ee, Recurrence = new string[] { "RRULE:FREQ=YEARLY;BYMONTHDAY=14;BYMONTH=10" } }; Assert.AreEqual("2000-10-14T08:00:00.000Z", e2.Start.DateTimeRaw); var c2 = service.Insert(e2, primaryCalendar.Id).Execute(); Assert.AreEqual("2000-10-14T10:00:00+02:00", c2.Start.DateTimeRaw); Logger.Log("Created Google appointment", EventType.Information); Assert.IsNotNull(c1.Id); //delete test contacts //service.Delete(primaryCalendar.Id, createdEntry.Id).Execute(); Logger.Log("Deleted Google appointment", EventType.Information); }