public bool AddEvent(CalendarService service, Event item) { var list = service.CalendarList.List().Execute(); var calendars = list.Items; if (calendars.Select(t => t.Summary.ToLower().Contains("WorkCard.vn".ToLower())) == null) { Google.Apis.Calendar.v3.Data.Calendar newCalendar = new Google.Apis.Calendar.v3.Data.Calendar(); newCalendar.Summary = "WorkCard.vn"; newCalendar.Description = "Dùng để quản lý công việc với WorkCard.vn"; newCalendar.Location = "WorkCard.vn"; service.Calendars.Insert(newCalendar); } var myCalendar = list.Items.SingleOrDefault(c => c.Summary == "WorkCard.vn"); if (myCalendar != null) { var newEventRequest = service.Events.Insert(item, myCalendar.Id); var eventResult = newEventRequest.Execute(); return(true); } return(false); }
private Google.Apis.Calendar.v3.Data.Calendar GetGoogleCalendar(string calendarId) { CalendarsResource.GetRequest request = CaneldarService.Calendars.Get(calendarId); Google.Apis.Calendar.v3.Data.Calendar calendar = request.Execute(); if (calendar != null) { return(calendar); } else { return(null); } }
public async Task <string> GetOrCreateGCalID(Uri iCalUrl) { var list = await gCalService.GetCalendarList(); string calendarID = list.SingleOrDefault(c => c.Summary.Equals(iCalUrl.ToString()))?.Id; if (calendarID == null) { var calendar = new GCal.Calendar { Summary = iCalUrl.ToString() }; calendar = await gCalService.Create(calendar); calendarID = calendar.Id; } return(calendarID); }
protected async Task CreateGCalIfNotExists(Calendar calendar) { if (calendar.GoogleCalendarID != null) { return; } var gCal = new GCal.Calendar { Summary = calendar.iCalendarUrl }; logger("Creating Google calendar..."); gCal = await gCalService.Create(gCal); calendar.GoogleCalendarID = gCal.Id; logger($"Saving Google calendar ID..."); await calendarRepository.Update(calendar); }
// Update a calendar using PlanningLibrary (layered code on google calendar) public void updateCalendar(XmlDocument doc) { // Parsing data from XmlDocument XmlNodeList titel = doc.GetElementsByTagName("eventName"); XmlNodeList id = doc.GetElementsByTagName("UUID"); XmlNodeList xmlVersion = doc.GetElementsByTagName("version"); // Logging parsed data Console.WriteLine(titel[0].InnerText); Console.WriteLine(id[0].InnerText); Console.WriteLine(xmlVersion[0].InnerText); // Creating a new <google.api> calendar to update an existing one, filled with parsed data from XmlDocument and finally sent with PlanningLibrary method. // Expects a <google.api> calendar, UUID, version Google.Apis.Calendar.v3.Data.Calendar calendar = new Google.Apis.Calendar.v3.Data.Calendar(); calendar.Summary = titel[0].InnerText; Calendarss.IupdateCalendarById(calendar, id[0].InnerText, xmlVersion[0].InnerText); Console.WriteLine("Event successfully updated"); ControlRoom.SendConfirmationMessage("Planning: Event successfully updated"); }
private static void CreateNewCalendar(ILog logger, CalendarService service, SmEmployee smEmployee) { string calendarId = IsFacebookCalendarType() ? smEmployee.Facebook : smEmployee.Email; var newCalendar = new Google.Apis.Calendar.v3.Data.Calendar() { Summary = $"[{smEmployee.EmpNo}] {smEmployee.EmpFirstName} {smEmployee.EmpLastName} ({smEmployee.EmpNickName})", Location = $"{smEmployee.AddrLine} แขวง{smEmployee.SubDistrict} เขต{smEmployee.District} จังหวัด{smEmployee.Province} {smEmployee.PostCode}", TimeZone = GetTimeZone(), Id = calendarId }; CalendarsResource.InsertRequest insertCalendar = service.Calendars.Insert(newCalendar); try { insertCalendar.Execute(); } catch (Exception e) { logger.Error($"Insert Calendar:{smEmployee.Email} Error:{e.Message}{e.StackTrace}"); } }
public async Task MakeEvents(IReadOnlyList <ScheduleDiff> schedule, WeekSchedule updatedWeekSchedule) { Calendar calendar = await _calendarService.GetCalendarById(_googleCalendarId); if (calendar == null) { throw new CalendarNotFoundException(_googleCalendarId); } var timezone = calendar.TimeZone; EventsResource.ListRequest request = _calendarService.CreateListRequestForWeek( _googleCalendarId, updatedWeekSchedule.Year, updatedWeekSchedule.WeekNumber); Events result = await _calendarService.GetEvents(request); var allRows = new List <Event>(); while (result.Items != null) { // Add the rows to the final list allRows.AddRange(result.Items); // We will know we are on the last page when the next page token is null. // If this is the case, break. if (result.NextPageToken == null) { break; } // Prepare the next page of results request.PageToken = result.NextPageToken; // Execute and process the next page request result = await _calendarService.GetEvents(request); } foreach (Event ev in allRows) { _ = await _calendarService.DeleteEvent(_googleCalendarId, ev); } // add items to calendar. IOrderedEnumerable <ScheduleDiff> addedSchedules = schedule .Where(x => x.Status is ScheduleStatus.Added or ScheduleStatus.Unchanged) .OrderBy(x => x.Start) .ThenBy(x => x.Status); foreach (ScheduleDiff item in addedSchedules) { var extendedProperty = new Event.ExtendedPropertiesData { Shared = new Dictionary <string, string> { { "Week", item.SingleShift.WeekSchedule.Year + "-" + item.SingleShift.WeekSchedule.WeekNumber }, }, }; var newEvent = new Event { Start = CreateEventDateTime(item.SingleShift.StartDateTime, timezone), End = CreateEventDateTime(item.SingleShift.EndDateTime, timezone), Description = string.Empty, Location = item.SingleShift.Location, Summary = item.SingleShift.Location, ExtendedProperties = extendedProperty, }; _ = await _calendarService.InsertEvent(_googleCalendarId, newEvent); } }