Example #1
0
        private static Reminder convertAppointmentItem(TaskItem appointmentItem)
        {
            Reminder r = new Reminder();

            if (appointmentItem.UserProperties.Find(ASPEC_REMINDER_UUID) != null)
            {
                r.uuid = appointmentItem.UserProperties.Find(ASPEC_REMINDER_UUID).Value;
            }

            if (appointmentItem.UserProperties.Find(ASPEC_REMINDER_EMAIL_NOTIFICATION_VALUE) != null)
            {
                r.email_notification_value = appointmentItem.UserProperties.Find(ASPEC_REMINDER_EMAIL_NOTIFICATION_VALUE).Value;
            }

            if (appointmentItem.UserProperties.Find(ASPEC_REMINDER_EMAIL_NOTIFICATION_UNIT) != null)
            {
                r.email_notification_unit = appointmentItem.UserProperties.Find(ASPEC_REMINDER_EMAIL_NOTIFICATION_UNIT).Value;
            }

            r.reminder_type = "task";
            r.subject       = appointmentItem.Subject;

            if (appointmentItem.StartDate != null)
            {
                r.start_date = appointmentItem.StartDate.ToString("yyyy-MM-dd");
            }

            if (appointmentItem.DueDate != null)
            {
                r.end_date = appointmentItem.DueDate.ToString("yyyy-MM-dd");
            }
            ;

            r.priority_id = getPriorityID(appointmentItem.Importance);

            if (appointmentItem.Status == OlTaskStatus.olTaskNotStarted)
            {
                r.status_id = 0;
            }
            else if (appointmentItem.Status == OlTaskStatus.olTaskInProgress)
            {
                r.status_id = 1;
            }
            else if (appointmentItem.Status == OlTaskStatus.olTaskComplete)
            {
                r.status_id = 2;
            }
            else if (appointmentItem.Status == OlTaskStatus.olTaskWaiting)
            {
                r.status_id = 3;
            }
            else if (appointmentItem.Status == OlTaskStatus.olTaskDeferred)
            {
                r.status_id = 4;
            }

            r.notes = appointmentItem.Body;

            if (appointmentItem.CreationTime != null)
            {
                r.created_at = convertDateToASPECDate(appointmentItem.CreationTime.ToUniversalTime());
            }

            if (appointmentItem.LastModificationTime != null)
            {
                r.updated_at = convertDateToASPECDate(appointmentItem.LastModificationTime.ToUniversalTime());
            }

            return(r);
        }
Example #2
0
        private static TaskItem createOrUpdateReminder(TaskItem item, Reminder reminder)
        {
            if (reminder.is_deleted != null && reminder.is_deleted.CompareTo("0") != 0 && reminder.is_deleted.ToLower().CompareTo("false") != 0)
            {
                item.Delete();
                return(null);
            }

            if (item.UserProperties.Find(ASPEC_REMINDER_UUID) == null)
            {
                item.UserProperties.Add(ASPEC_REMINDER_UUID, OlUserPropertyType.olText, true, true);
            }
            item.UserProperties[ASPEC_REMINDER_UUID].Value = reminder.uuid;

            if (item.UserProperties.Find(ASPEC_REMINDER_FLAG) == null)
            {
                item.UserProperties.Add(ASPEC_REMINDER_FLAG, OlUserPropertyType.olYesNo, true, true);
            }
            item.UserProperties[ASPEC_REMINDER_FLAG].Value = true;

            item.Subject = reminder.subject;

            if (reminder.start_date != null)
            {
                item.StartDate = DateTime.ParseExact(reminder.start_date, "yyyy-MM-dd", null);
            }

            if (reminder.end_date != null)
            {
                item.DueDate = DateTime.ParseExact(reminder.end_date, "yyyy-MM-dd", null);
            }

            if (reminder.priority_id != null)
            {
                item.Importance = getPriority(reminder.priority_id.Value).Value;
            }

            if (reminder.status_id == 0)
            {
                item.Status = OlTaskStatus.olTaskNotStarted;
            }
            else if (reminder.status_id == 1)
            {
                item.Status = OlTaskStatus.olTaskInProgress;
            }
            else if (reminder.status_id == 2)
            {
                item.Status = OlTaskStatus.olTaskComplete;
            }
            else if (reminder.status_id == 3)
            {
                item.Status = OlTaskStatus.olTaskWaiting;
            }
            else if (reminder.status_id == 4)
            {
                item.Status = OlTaskStatus.olTaskDeferred;
            }

            item.Body = reminder.notes;

            if (item.UserProperties.Find(ASPEC_REMINDER_EMAIL_NOTIFICATION_VALUE) == null)
            {
                item.UserProperties.Add(ASPEC_REMINDER_EMAIL_NOTIFICATION_VALUE, OlUserPropertyType.olText, true, true);
            }
            item.UserProperties[ASPEC_REMINDER_EMAIL_NOTIFICATION_VALUE].Value = reminder.email_notification_value;

            if (item.UserProperties.Find(ASPEC_REMINDER_EMAIL_NOTIFICATION_UNIT) == null)
            {
                item.UserProperties.Add(ASPEC_REMINDER_EMAIL_NOTIFICATION_UNIT, OlUserPropertyType.olText, true, true);
            }
            item.UserProperties[ASPEC_REMINDER_EMAIL_NOTIFICATION_UNIT].Value = reminder.email_notification_unit;

            item.Save();

            return(item);
        }
Example #3
0
        private static AppointmentItem createOrUpdateReminder(AppointmentItem item, Reminder reminder)
        {
            if (reminder.is_deleted != null && reminder.is_deleted.CompareTo("0") != 0 && reminder.is_deleted.ToLower().CompareTo("false") != 0)
            {
                item.Delete();
                return(null);
            }

            if (item.UserProperties.Find(ASPEC_REMINDER_UUID) == null)
            {
                item.UserProperties.Add(ASPEC_REMINDER_UUID, OlUserPropertyType.olText, true, true);
            }
            item.UserProperties[ASPEC_REMINDER_UUID].Value = reminder.uuid;

            if (item.UserProperties.Find(ASPEC_REMINDER_FLAG) == null)
            {
                item.UserProperties.Add(ASPEC_REMINDER_FLAG, OlUserPropertyType.olYesNo, true, true);
            }
            item.UserProperties[ASPEC_REMINDER_FLAG].Value = true;

            item.Subject = reminder.subject;

            if ((reminder.start_time == null && reminder.end_time == null) ||
                (reminder.start_time != null && reminder.end_time != null &&
                 reminder.start_time.CompareTo("00:00") == 0 && reminder.end_time.CompareTo("00:00") == 0))
            {
                item.AllDayEvent = true;

                DateTime start = DateTime.ParseExact(reminder.reminder_date + " 00:00", "yyyy-MM-dd HH:mm", null);
                DateTime end   = start.AddDays(1);

                item.Start = start;
                item.End   = end;
            }
            else if (reminder.start_time != null && reminder.end_time != null)
            {
                DateTime start = DateTime.ParseExact(reminder.reminder_date + " " + reminder.start_time + " UTC", "yyyy-MM-dd HH:mm UTC", CultureInfo.InvariantCulture);
                DateTime end   = DateTime.ParseExact(reminder.reminder_date + " " + reminder.end_time + " UTC", "yyyy-MM-dd HH:mm UTC", CultureInfo.InvariantCulture);//"Z", "yyyy-MM-dd HH:mmK", null);

                item.StartUTC = (start < end) ? start : end;
                item.EndUTC   = (start < end) ? end : start;
            }

            if (reminder.priority_id != null)
            {
                item.Importance = getPriority(reminder.priority_id.Value).Value;
            }

            item.Body = reminder.notes;

            if (item.UserProperties.Find(ASPEC_REMINDER_EMAIL_NOTIFICATION_VALUE) == null)
            {
                item.UserProperties.Add(ASPEC_REMINDER_EMAIL_NOTIFICATION_VALUE, OlUserPropertyType.olText, true, true);
            }
            item.UserProperties[ASPEC_REMINDER_EMAIL_NOTIFICATION_VALUE].Value = reminder.email_notification_value;

            if (item.UserProperties.Find(ASPEC_REMINDER_EMAIL_NOTIFICATION_UNIT) == null)
            {
                item.UserProperties.Add(ASPEC_REMINDER_EMAIL_NOTIFICATION_UNIT, OlUserPropertyType.olText, true, true);
            }
            item.UserProperties[ASPEC_REMINDER_EMAIL_NOTIFICATION_UNIT].Value = reminder.email_notification_unit;

            item.Save();

            return(item);
        }
Example #4
0
        private static DateTime createOrUpdateReminder(Reminder reminder)
        {
            DateTime lastModified = DateTime.Now;

            Folder folder = getCalendarFolder(
                reminder.reminder_type != null && reminder.reminder_type.CompareTo("appointment") == 0 ? OlDefaultFolders.olFolderCalendar : OlDefaultFolders.olFolderTasks);

            String filter = "[" + ASPEC_REMINDER_FLAG + "] = True and [" + ASPEC_REMINDER_UUID + "] = '" + reminder.uuid + "'";

            //MessageBox.Show(filter);

            Items   events  = getAppointments(folder, filter);
            Boolean updated = false;

            if (events != null)
            {
                for (int i = 1; i < events.Count + 1; i++)
                {
                    if (events[i] is AppointmentItem)
                    {
                        AppointmentItem newItem = createOrUpdateReminder(events[i] as AppointmentItem, reminder);
                        if (newItem != null)
                        {
                            lastModified = newItem.LastModificationTime;
                        }

                        updated = true;
                    }
                    else if (events[i] is TaskItem)
                    {
                        TaskItem newItem = createOrUpdateReminder(events[i] as TaskItem, reminder);
                        if (newItem != null)
                        {
                            lastModified = newItem.LastModificationTime;
                        }

                        updated = true;
                    }
                }
            }

            if (!updated)
            {
                if (reminder.reminder_type != null && reminder.reminder_type.CompareTo("appointment") == 0)
                {
                    AppointmentItem newItem = createOrUpdateReminder(Globals.ThisAddIn.Application.CreateItem(OlItemType.olAppointmentItem) as AppointmentItem, reminder);
                    if (newItem != null)
                    {
                        lastModified = newItem.LastModificationTime;
                    }

                    updated = true;
                }
                else if (reminder.reminder_type != null && reminder.reminder_type.CompareTo("task") == 0)
                {
                    TaskItem newItem = createOrUpdateReminder(Globals.ThisAddIn.Application.CreateItem(OlItemType.olTaskItem) as TaskItem, reminder);
                    if (newItem != null)
                    {
                        lastModified = newItem.LastModificationTime;
                    }

                    updated = true;
                }
            }
            return(lastModified);
        }