/// <summary>
        /// Adds a reminder to a calendar event.
        /// </summary>
        /// <param name="entry">The event to update.</param>
        /// <param name="numMinutes">Reminder time, in minutes.</param>
        /// <returns>The updated EventEntry object.</returns>
        static EventEntry AddReminder(EventEntry entry, int numMinutes)
        {
            Reminder reminder = new Reminder();
            reminder.Minutes = numMinutes;
            entry.Reminder = reminder;

            return (EventEntry)entry.Update();
        }
        /// <summary>
        /// Adds an extended property to a calendar event.
        /// </summary>
        /// <param name="entry">The event to update.</param>
        /// <returns>The updated EventEntry object.</returns>
        static EventEntry AddExtendedProperty(EventEntry entry)
        {
            ExtendedProperty property = new ExtendedProperty();
            property.Name = "http://www.example.com/schemas/2005#mycal.id";
            property.Value = "1234";

            entry.ExtensionElements.Add(property);

            return (EventEntry)entry.Update();
        }
 /// <summary>
 /// Updates the title of an existing calendar event.
 /// </summary>
 /// <param name="entry">The event to update.</param>
 /// <param name="newTitle">The new title for this event.</param>
 /// <returns>The updated EventEntry object.</returns>
 static EventEntry UpdateTitle(EventEntry entry, String newTitle)
 {
     entry.Title.Text = newTitle;
     return (EventEntry)entry.Update();
 }
Beispiel #4
0
		public bool SaveEventEntry (EventEntry KalenderEntry, String WPMediaEventID)
			{
			try
				{
				KalenderEntry.Update ();
				}
			catch (Exception Excp)
				{
				WMB.Basics.ReportErrorToEventViewer ("WPMediaGoogleCalendarUpdate.DoUpdate.SaveEventEntry",
					"Bei der GoogleEventID:\r\n\"" + KalenderEntry.EventId + "\"\r\nder WPMediaID \"" + WPMediaEventID + "\"\r\n" +
					"mit der Uri:\r\n\"" +
					KalenderEntry.SelfUri.ToString () + "\"\r\ntrat folgender Fehler auf :\r\n" + Excp.ToString());
				if (!MissingGoogleEventIDs.ContainsKey(WPMediaEventID))
					MissingGoogleEventIDs[WPMediaEventID] = KalenderEntry.EventId;
				return false;
				}
			return true;
			}
Beispiel #5
0
        /// <summary>
        /// Adds the specified appointment into the configured Google Calendar.
        /// This action is done into a thread and the action will be done when it's done
        /// </summary>
        /// <param name="appointment">The appointment to insert.</param>
        public void AddAppointment(Appointment appointment)
        {
            var context = TaskScheduler.FromCurrentSynchronizationContext();
            var token = new CancellationTokenSource().Token;
            var task = System.Threading.Tasks.Task.Factory.StartNew(() =>
               {
                   try
                   {
                       var service = this.GetService();

                       var entry = new EventEntry();
                       entry.Title.Text = appointment.Subject;
                       entry.Times.Add(new When()
                       {
                           StartTime = appointment.StartTime,
                           EndTime = appointment.EndTime,
                       });

                       var postUri = new Uri(this.CalendarUri);
                       entry = service.Insert(postUri, entry) as EventEntry;

                       entry.ExtensionElements.Add(new ExtendedProperty()
                       {
                           Name = SynchronisationProperty,
                           Value = appointment.GoogleSynchronisationId.ToString(),
                       });
                       entry.Update();
                       this.Logger.Info("Appointment correctly added into Google Calendar.");
                   }
                   catch (Exception ex) { throw new GoogleCalendarException(ex.Message, ex); }
               });
            task.ContinueWith(t => this.Logger.Warn(t.Exception.InnerException.InnerException), token, TaskContinuationOptions.OnlyOnFaulted, context);
        }
        public override void UpdateAppointment(int iIndex)
        {
            Exception googleProblem = null;
            int defaultMinutes = minutes;

            appointmentItem = (EventEntry)appointmentArray[iIndex];

            appointmentItem.Times[0].StartTime = startDate;
            appointmentItem.Times[0].EndTime = endDate;
            appointmentItem.Title.Text = subject;

            if (alternateReminder)
            {
                earlyReminder = new DateTime(startDate.Year, startDate.Month, startDate.Day, earlyReminder.Hour, earlyReminder.Minute, earlyReminder.Second);
                lateReminder = new DateTime(startDate.Year, startDate.Month, startDate.Day, lateReminder.Hour, lateReminder.Minute, lateReminder.Second);

                DateTime dtReminder = WorkOutAlternateReminders();
                // Subtract the reminder time from the appointment time.
                TimeSpan timeSpan = appointmentItem.Times[0].StartTime.Subtract(dtReminder);
                minutes = Math.Abs((timeSpan.Hours * 60) + timeSpan.Minutes);
            }

            if (reminder)
            {
                // They may not have had a reminder on the inital appointment.
                if (appointmentItem.Reminder == null)
                    appointmentItem.Reminder = new Reminder();
                try
                {
                    appointmentItem.Reminder.Minutes = GetGoogleMinutes(minutes, defaultMinutes);
                }
                catch (Exception ex)
                {
                    googleProblem = ex;
                    // We set the minutes.
                    appointmentItem.Reminder.Minutes = minutes;
                }
                appointmentItem.Reminder.Method = (Reminder.ReminderMethod)googleReminders[reminderMethod];
            }
            else
            {
                appointmentItem.Reminder = null;
            }
            appointmentItem.Update();
            // If there was a problem, throw the excpetion to let the calling app know.
            if (googleProblem != null)
                throw googleProblem;
        }
Beispiel #7
0
 /// <summary>
 /// Updates a given event.
 /// </summary>
 /// <param name='index'>
 /// The number of the entry in the list of entries.
 /// </param>
 /// <param name='entry'>
 /// The entry itself, with the modifications already done.
 /// </param>
 public void ModifyEvent(int index, EventEntry entry)
 {
     entry.Update();
 }