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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        /// <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;
        }
Exemplo n.º 13
0
        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);
            }
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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();
        }
Exemplo n.º 16
0
 /// <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();
 }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 23
0
        //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());
        }
Exemplo n.º 24
0
        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)

            {
            }
        }
Exemplo n.º 25
0
        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();
        }
Exemplo n.º 26
0
        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();
        }
Exemplo n.º 27
0
        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)

            {
            }
        }
Exemplo n.º 28
0
        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);
        }
Exemplo n.º 29
0
        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);
        }
Exemplo n.º 30
0
        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);
        }