/// <summary>
        /// 新しいイベントをGoogleCalendarに追加する
        /// </summary>
        /// <param name="add_item">追加するイベントアイテム</param>
        /// <param name="calendar_id">イベントを追加するカレンダー</param>
        /// <returns>追加したイベント</returns>
        public CalendarEvent AddCalendarEvent(CalendarEvent add_item, string calendar_id)
        {
            Event         insert         = new Event();
            EventDateTime items_datetime = new EventDateTime();

            insert.Summary = add_item.summary;
            if (add_item.color != null)
            {
                insert.ColorId = add_item.color;
            }
            EventDateTime start = new EventDateTime();
            EventDateTime end   = new EventDateTime();

            if (add_item.dateonly == true)
            {
                start.Date = add_item.start.Date.ToString();
                end.Date   = add_item.end.Date.ToString();
            }
            else
            {
                start.DateTime = add_item.start;
                end.DateTime   = add_item.end;
            }
            insert.Start       = start;
            insert.End         = end;
            insert.Description = add_item.description;
            insert.Location    = add_item.location;
            Event.RemindersData remindersData = new Event.RemindersData();
            remindersData.UseDefault = false;
            insert.Reminders         = null;
            add_item.id = _service.Events.Insert(insert, calendar_id).Execute().Id;
            return(add_item);
        }
Ejemplo n.º 2
0
 public EventCalendar()
 {
     Start = new EventDateTime()
     {
         TimeZone = "Europe/Kiev"
     };
     End = new EventDateTime()
     {
         TimeZone = "Europe/Kiev"
     };
     Attendees = new EventAttendee[] { new EventAttendee()
                                       {
                                           Email = "*****@*****.**"
                                       } };
     Reminders = new Event.RemindersData()
     {
         UseDefault = false,
         Overrides  = new EventReminder[]
         {
             new EventReminder()
             {
                 Method = "email", Minutes = 24 * 60
             },
             new EventReminder()
             {
                 Method = "sms", Minutes = 10
             },
         }
     };
     Transparency = "opaque";
 }
        public void CreateEvent(DateTime date, string roomName, string name, string phone, string email, string googleCredPath)
        {
            var myEventStart = new EventDateTime();

            myEventStart.DateTime = date;
            myEventStart.TimeZone = _settings.TimeZone;

            var myEventEnd = new EventDateTime();

            myEventEnd.DateTime = date.AddHours(1);
            myEventEnd.TimeZone = _settings.TimeZone;
            var reminders = new Event.RemindersData()
            {
                UseDefault = false,
                Overrides  = new EventReminder[] {
                    new EventReminder()
                    {
                        Method = "email", Minutes = 2 * 60
                    },
                    new EventReminder()
                    {
                        Method = "popup", Minutes = 60
                    }
                }
            };



            var myEvent = new Event();

            myEvent.Summary     = $"Interview - {name}";
            myEvent.Description = $"{name}, {email}, {phone}";
            myEvent.Start       = myEventStart;
            myEvent.End         = myEventEnd;
            myEvent.Location    = $"Kolektif House - Maslak, {roomName}";
            myEvent.Reminders   = reminders;

            //File.AppendAllText("googleCalendar.txt", JsonConvert.SerializeObject(myEvent));

            UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                new ClientSecrets {
                ClientId     = _settings.ClientId,
                ClientSecret = _settings.ClientSecret,
            },
                new[] { CalendarService.Scope.Calendar },
                "user",
                CancellationToken.None, new FileDataStore(googleCredPath)).Result;

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

            EventsResource.InsertRequest request = service.Events.Insert(myEvent, _settings.CalendarId);
            Event createdEvent = request.Execute();
        }
Ejemplo n.º 4
0
        public string AddEvent(DateTime startDate, DateTime endDate, string summary, string description)
        {
            var service = GetCalendarService();

            Event ev = new Event()
            {
                Summary     = summary,
                Location    = location,
                Description = description,
                Start       = new EventDateTime()
                {
                    DateTime = startDate
                },
                End = new EventDateTime()
                {
                    DateTime = endDate
                },
            };

            ev.Transparency = "transparent";

            EventReminder remPopup = new EventReminder();

            remPopup.Method  = "popup";
            remPopup.Minutes = 15;

            EventReminder remMail = new EventReminder();

            remMail.Method  = "email";
            remMail.Minutes = 15;

            Event.RemindersData rd = new Event.RemindersData();
            rd.UseDefault = false;

            IList <EventReminder> list = new List <EventReminder>();

            list.Add(remPopup);
            list.Add(remMail);

            rd.Overrides = list;
            ev.Reminders = rd;

            var   calendarId     = "primary";
            Event recurringEvent = service.Events.Insert(ev, calendarId).Execute();

            string eidWord = "eid=";
            var    index   = recurringEvent.HtmlLink.IndexOf(eidWord, 0);
            var    eid     = recurringEvent.HtmlLink.Substring(index + eidWord.Length, recurringEvent.HtmlLink.Length - (index + eidWord.Length));

            //var calendarEditLink = string.Format(@"https://calendar.google.com/calendar/u/2/r/eventedit/{0}?sf=true", eid);
            return(eid);
        }
Ejemplo n.º 5
0
 private static Event.RemindersData ConvertMinutesToGoogleEventReminder(int minutes)
 {
     Event.RemindersData reminder = new Event.RemindersData()
     {
         Overrides = new List <EventReminder>
         {
             new EventReminder()
             {
                 Method  = "email",
                 Minutes = minutes
             }
         },
         UseDefault = false
     };
     return(reminder);
 }
Ejemplo n.º 6
0
        public void AddEventToCalendar(List <Lesson> lessons, int reminderMinutes = 15)
        {
            try
            {
                if (lessons != null && lessons.Count > 0)
                {
                    foreach (var lesson in lessons)
                    {
                        var           ev = new Event();
                        var           startLessonTime = DateTime.Parse(lesson.Date + " " + lesson.StartTime);
                        var           endLessonTime   = DateTime.Parse(lesson.Date + " " + lesson.EndTime);
                        EventDateTime start           = new EventDateTime {
                            DateTime = startLessonTime
                        };
                        EventDateTime end = new EventDateTime {
                            DateTime = endLessonTime
                        };
                        var reminder1 = new EventReminder {
                            Method = "popup", Minutes = reminderMinutes
                        };

                        var eventReminderData = new Event.RemindersData {
                            UseDefault = false, Overrides = new[] { reminder1 }
                        };

                        ev.Start       = start;
                        ev.End         = end;
                        ev.Summary     = lesson.LessonName + " " + lesson.ClassRoom;
                        ev.Description = lesson.TeacherName + " " + lesson.Group;
                        ev.Reminders   = eventReminderData;



                        var   calendarId     = "primary";
                        Event recurringEvent = _service.Events.Insert(ev, calendarId).Execute();
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                throw;
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Создает и добавляет новое событие в календарь
        /// </summary>
        /// <param name="title"></param>
        /// <param name="location"></param>
        /// <param name="description"></param>
        /// <param name="startdate"></param>
        /// <param name="enddate"></param>
        /// <returns></returns>
        public static bool CreateNewEvent(String googleCalendarAdress, DateTime startdate, DateTime enddate, string title, bool remind, string description = "", string location = "")
        {
            if (startdate == null || enddate == null)
                throw new ArgumentNullException("Аргументы startdate и enddate не могут быть null");
            if (startdate < DateTime.Today || enddate < DateTime.Today || enddate < startdate)
                throw new ArgumentOutOfRangeException("Даты события не могут быть меньше сегодняшней. Дата окончания события не может быть меньше даты начала события");
            if (String.IsNullOrEmpty(title))
                throw new ArgumentException("Аргумент title не может быть пустым или null");

            Event eventdata = new Event();
            eventdata.Summary = title;
            eventdata.Location = location;
            eventdata.Description = description;

            EventDateTime start = new EventDateTime();
            start.DateTime = startdate;
            eventdata.Start = start;
            EventDateTime end = new EventDateTime();
            end.DateTime = enddate;
            eventdata.End = end;

            eventdata.Transparency = "transparent";

            if(remind)
            {

                EventReminder rem = new EventReminder();
                rem.Method = "popup";
                rem.Minutes = 15;
                Event.RemindersData rd = new Event.RemindersData();
                rd.UseDefault = false;
                IList<EventReminder> list = new List<EventReminder>();
                list.Add(rem);
                rd.Overrides = list;
                eventdata.Reminders = rd;
            }

            var insertevent = _calService.Events.Insert(eventdata, googleCalendarAdress);
            Event createdevent = insertevent.Execute();

            return true;
        }
Ejemplo n.º 8
0
        /// <summary>
        /// This Function fetch Calendar detail from Gmail and insert in Appointment Table
        /// </summary>
        /// <param name="_calenderSer"></param>
        private void FetchCalender(CalendarService _calenderSer, Ctx ctx)
        {
            string sqlCategory       = "SELECT APPOINTMENTCATEGORY_ID FROM APPOINTMENTCATEGORY WHERE VALUE='Appointment' AND ISACTIVE='Y'";
            int    appointCategoryID = Util.GetValueOfInt(DB.ExecuteScalar(sqlCategory));

            try
            {
                Google.Apis.Calendar.v3.EventsResource ev = new EventsResource(_calenderSer, _authenticator);
                //ev.List(CalendarList.Id).SingleEvents = true;
                Events e = null;
                try
                {
                    e = ev.List("primary").Fetch(); //Fetch Calendar Events From Gmail which are Primary
                }
                catch (Exception ex)
                {
                    msg.Append(ex.Message);
                }

                if (e.Items == null)
                {
                    msg.Append("no Item Found");
                    return;
                }
                StringBuilder sql = new StringBuilder();

                if (e.Items.Count == 0)
                {
                    msg.Append("no Item Found");
                    return;
                }

                for (int i = 0; i < e.Items.Count; i++)
                {
                    try
                    {
                        VAdvantage.Model.MAppointmentsInfo ainfo = new VAdvantage.Model.MAppointmentsInfo(ctx, 0, null);

                        sql.Clear();
                        sql.Append("select  appointmentsinfo_id From APPOINTMENTSINFO ")
                        .Append(" where utaskid='" + e.Items[i].Id + "' and AD_User_ID=" + AD_User_ID);
                        DataSet ds = DB.ExecuteDataset(sql.ToString());
                        if (ds == null || ds.Tables[0].Rows.Count == 0)
                        {
                            ainfo.SetAD_Org_ID(AD_Org_ID);
                            ainfo.SetAD_Client_ID(AD_Client_ID);
                            ainfo.SetAD_User_ID(AD_User_ID);
                            ainfo.SetIsTask(false);
                            ainfo.SetUTaskID(e.Items[i].Id);
                            ainfo.SetAppointmentCategory_ID(appointCategoryID);
                            ainfo.SetStatus(3);

                            if (e.Items[i].Summary != null)
                            {
                                ainfo.SetSubject(e.Items[i].Summary);
                            }
                            if (e.Items[i].Description != null)
                            {
                                ainfo.SetDescription(e.Items[i].Description);
                            }
                            if (e.Items[i].Location != null)
                            {
                                ainfo.SetLocation(e.Items[i].Location);
                            }


                            if (e.Items[i].Visibility != null)
                            {
                                if (e.Items[i].Visibility.ToString().Equals("Private", StringComparison.OrdinalIgnoreCase))
                                {
                                    ainfo.SetIsPrivate(true);
                                }
                                else
                                {
                                    ainfo.SetIsPrivate(false);
                                }
                            }
                            else
                            {
                                ainfo.SetIsPrivate(false);
                            }

                            if (e.Items[i].Reminders != null)
                            {
                                Event.RemindersData rem = e.Items[i].Reminders;
                                if (rem != null)
                                {
                                    if (rem.Overrides != null)
                                    {
                                        IList <EventReminder> resmim = rem.Overrides;

                                        foreach (EventReminder r in resmim)
                                        {
                                            ainfo.SetReminderInfo(r.Minutes.ToString());
                                        }
                                    }
                                }
                            }
                            if (e.Items[i].Recurrence == null || e.Items[i].Recurrence.Count < 1)
                            {
                                EventDateTime dateStart = e.Items[i].Start;
                                if (dateStart.Date == null)
                                {
                                    DateTime startDate = Convert.ToDateTime(dateStart.DateTime);
                                    ainfo.SetStartDate(startDate.ToUniversalTime());
                                    ainfo.SetAllDay(false);
                                }
                                else
                                {
                                    ainfo.SetStartDate(Convert.ToDateTime(dateStart.Date).ToUniversalTime());
                                    ainfo.SetAllDay(true);
                                }

                                EventDateTime dateend = e.Items[i].End;
                                if (dateend.Date == null)
                                {
                                    DateTime endDate = Convert.ToDateTime(dateend.DateTime);
                                    ainfo.SetEndDate(endDate.ToUniversalTime());
                                    ainfo.SetAllDay(false);
                                }
                                else
                                {
                                    ainfo.SetEndDate(Convert.ToDateTime(dateend.Date).ToUniversalTime());
                                    ainfo.SetAllDay(true);
                                }
                            }
                            else
                            {
                                if (e.Items[i].Recurrence != null && e.Items[i].Recurrence.Count > 0)
                                {
                                    EventDateTime dateStart = e.Items[i].Start;
                                    EventDateTime dateend   = e.Items[i].End;

                                    if (e.Items[i].Start.Date == null)
                                    {
                                        DateTime sdate = Convert.ToDateTime(dateStart.DateTime);
                                        ainfo.SetStartDate(sdate.ToUniversalTime());
                                        ainfo.SetAllDay(false);
                                    }
                                    else
                                    {
                                        DateTime sdate = Convert.ToDateTime(dateStart.Date);
                                        ainfo.SetStartDate(sdate.ToUniversalTime());
                                        ainfo.SetAllDay(true);
                                    }

                                    if (e.Items[i].End.Date == null)
                                    {
                                        ainfo.SetEndDate(Convert.ToDateTime(dateend.DateTime).ToUniversalTime());
                                        ainfo.SetAllDay(false);
                                    }
                                    else
                                    {
                                        ainfo.SetEndDate(Convert.ToDateTime(dateend.Date).ToUniversalTime());
                                        ainfo.SetAllDay(true);
                                    }
                                    string recurenceRule = e.Items[i].Recurrence[0].Replace("RRULE:", "");
                                    ainfo.SetRecurrenceRule(recurenceRule);  //Save Recurrence rule
                                }
                            }
                            if (ainfo.Save())
                            {
                                sql.Clear();
                                sql.Append("Update APPOINTMENTSINFO set LastLocalUpdated=" + SetTime(ainfo.GetUpdated()) +
                                           " , Updated=" + SetTime(ainfo.GetUpdated()) + ", CreatedBY= " + AD_User_ID + ", UpdatedBy=" + AD_User_ID +
                                           ",LastGmailUpdated=" + GlobalVariable.TO_DATE(Convert.ToDateTime(e.Items[i].Updated), false) + " where APPOINTMENTSINFO_ID=" + ainfo.GetAppointmentsInfo_ID());
                                int result = DB.ExecuteQuery(sql.ToString());
                            }
                        }
                    }
                    catch (Exception exq)
                    {
                        msg.Append(exq.Message + " At no. " + i);
                    }
                }
            }
            catch (Exception ex)
            {
                msg.Append(ex.Message);
            }
        }
Ejemplo n.º 9
0
 private static Event.RemindersData ConvertMinutesToGoogleEventReminder(int minutes)
 {
     Event.RemindersData reminder = new Event.RemindersData()
     {
         Overrides = new List<EventReminder> 
             { 
                 new EventReminder()
                 {
                     Method = "email",
                     Minutes = minutes
                 }
             },
         UseDefault = false
     };
     return reminder;
 }
Ejemplo n.º 10
0
        /// <summary>
        /// Inserts events.
        /// </summary>
        /// <param name="events">The events.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
        public bool InsertEvents(Event[] events)
        {
            try
            {
                if (!UseGoogleCalendar)
                    return false;

                if (!Authorized)
                {
                    Mail.SendEmail(EmailTo, MailResource.Calendar_InsertEvents_Subject,
                                        MailResource.Calendar_InsertEvents_TextBody, UseMail, true);
                    return false;
                }

                if (String.IsNullOrEmpty(GoogleCalendarId))
                {
                    GoogleCalendarId = DefaultGoogleCalendarId;
                }

                foreach (Event @event in events)
                {
                    if (String.IsNullOrEmpty(ReminderTime))
                    {
                        var remindersData = new Event.RemindersData { UseDefault = false };
                        @event.Reminders = remindersData;
                    }
                    else
                    {
                        TimeSpan reminderTimeSpan;
                        if (TimeSpan.TryParse(ReminderTime, out reminderTimeSpan))
                        {
                            var emailEventReminder = new EventReminder
                                                         {
                                                             Method = EmailMethod,
                                                             Minutes = 0
                                                         };
                            var popupEventReminder = new EventReminder
                                                         {
                                                             Method = PopupMethod,
                                                             Minutes = 0
                                                         };
                            var remindersData = new Event.RemindersData
                                                    {
                                                        Overrides = new List<EventReminder>
                                                                        {
                                                                            emailEventReminder,
                                                                            popupEventReminder
                                                                        },
                                                        UseDefault = false
                                                    };
                            @event.Reminders = remindersData;
                            @event.Start.DateTime = @event.Start.DateTime.GetValueOrDefault().Add(reminderTimeSpan);
                        }
                    }

                    @event.Visibility = IsEventsPrivate ? PrivateEventVisibility : DefaultEventVisibility;
                    _calendarService.Events.Insert(@event, GoogleCalendarId).Execute();
                }
            }
            catch (Exception e)
            {
                Mail.SendEmail(EmailTo, MailResource.Calendar_InsertEvents_Subject,
                                        MailResource.Calendar_InsertEvents_TextBody, UseMail, true);
                Logger.SetLog(e);
                return false;
            }

            return true;
        }
Ejemplo n.º 11
0
        public IHttpActionResult AddToGoogleCalendar()
        {
            String serviceAccountEmail = File.ReadAllText(HostingEnvironment.MapPath(@"~/App_Data/serviceAccountEmail"));

            // Read certificate
            // @ is for verbatim string literal as opposed to regular (prevent taking meaning from characters in key)
            var certificate = new X509Certificate2(HostingEnvironment.MapPath(@"~/App_Data/key.p12"), "notasecret", X509KeyStorageFlags.Exportable);

            // Create credential from certificate
            ServiceAccountCredential credential = new ServiceAccountCredential(
                new ServiceAccountCredential.Initializer(serviceAccountEmail)
            {
                Scopes = new[] { CalendarService.Scope.Calendar }
            }.FromCertificate(certificate));

            // Create the service using credential
            var service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = "RoccoWebService",
            });

            // Create the calendar event object
            Event calendarEvent = new Event();

            calendarEvent.Summary     = "Google I/O 2015";
            calendarEvent.Location    = "800 Howard St., San Francisco, CA 94103";
            calendarEvent.Description = "A chance to hear more about Google's developer products.";

            DateTime      startDateTime = new DateTime(2017, 3, 4, 14, 0, 0); //("2015-05-28T09:00:00-07:00");
            EventDateTime start         = new EventDateTime();

            start.DateTime      = startDateTime;
            start.TimeZone      = "America/Los_Angeles";
            calendarEvent.Start = start;

            DateTime      endDateTime = new DateTime(2017, 3, 4, 14, 0, 0);
            EventDateTime end         = new EventDateTime();

            end.DateTime      = endDateTime;
            end.TimeZone      = "America/Los_Angeles";
            calendarEvent.End = end;

            String[] recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" };
            calendarEvent.Recurrence = recurrence;

            var attendees = new List <EventAttendee>()
            {
                new EventAttendee()
                {
                    Email = "*****@*****.**"
                },
                new EventAttendee()
                {
                    Email = "*****@*****.**"
                }
            };

            calendarEvent.Attendees = attendees;

            var remindersList = new List <EventReminder>()
            {
                new EventReminder()
                {
                    Method = "email", Minutes = (24 * 60)
                },
                new EventReminder()
                {
                    Method = "popup", Minutes = 10
                }
            };
            var reminders = new Event.RemindersData {
                UseDefault = false, Overrides = remindersList
            };

            calendarEvent.Reminders = reminders;

            var calendarId  = File.ReadAllText(HostingEnvironment.MapPath(@"~/App_Data/calendarId"));
            var eventInsert = service.Events.Insert(calendarEvent, calendarId).Execute();

            return(Ok());
        }
Ejemplo n.º 12
0
        static void Main(string[] args)
        {
            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,
                    null).Result;
                // Console.WriteLine("Credential file saved to: " + credPath);
            }

            CalendarService calendarService = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = "Travel Reminder"
            });

            IList <CalendarListEntry> calList = calendarService.CalendarList.List().Execute().Items;
            IList <Event>             _lstCal = calendarService.Events.List("primary").Execute().Items;

            if (calList.Count > 0)
            {
                #region Create Event

                EventDateTime eveStTime = new EventDateTime()
                {
                    DateTime = System.DateTime.Now.AddMinutes(50)
                };
                EventDateTime eveEdTime = new EventDateTime()
                {
                    DateTime = System.DateTime.Now.AddMinutes(80)
                };

                Event eve = new Event()
                {
                    Summary     = "Event Ceated",
                    Location    = "Pune",
                    Description = "Alerted",
                    Start       = eveStTime,
                    End         = eveEdTime
                };


                EventAttendee ea1 = new EventAttendee();
                ea1.DisplayName = "Shefali";
                ea1.Email       = "*****@*****.**";
                ea1.Organizer   = false;
                ea1.Resource    = false;
                IList <EventAttendee> ealist = new List <EventAttendee>();
                ealist.Add(ea1);
                eve.Attendees = ealist;

                // This will create reminder a day prior to the event as email
                EventReminder er1 =
                    new EventReminder()
                {
                    Method  = "email",
                    Minutes = 24 * 60
                };

                // This will create a reminder 10 minutes before the event as popup
                EventReminder er2 = new EventReminder()
                {
                    Method  = "popup",
                    Minutes = 10
                };

                Event.RemindersData erdata = new Event.RemindersData
                {
                    UseDefault = false,
                    Overrides  = new[] {
                        er1, er2
                    }
                };

                eve.Reminders = erdata;
                eve           = calendarService.Events.Insert(eve, "primary").Execute();
            }

            calList = calendarService.CalendarList.List().Execute().Items;

            #endregion


            foreach (Event calenda in _lstCal)
            {
                if (calenda.Location != null)
                {
                    Console.WriteLine("Event Summary : " + calenda.Summary);
                    Console.WriteLine("Location : " + calenda.Location);
                    Console.WriteLine("Description : " + calenda.Description);
                }
            }
        }