Example #1
0
        /// <summary>
        /// Update the prior row with the values from the unbound controls and load the values for the new row
        /// when the position changes.
        /// </summary>
        /// <param name="sender">The sender of the event</param>
        /// <param name="e">The event arguments</param>
        private void BindingSource_PositionChanged(object sender, EventArgs e)
        {
            VAlarm newItem = (VAlarm)this.BindingSource.Current;

            // If all deleted, ignore it
            if (newItem == null)
            {
                currentAlarm = null;
                return;
            }

            // Save changes to the unbound controls to the prior row
            this.StoreChanges();

            // Load the new values into the unbound controls
            currentAlarm = newItem;

            if (currentAlarm.Trigger.ValueLocation == ValLocValue.Duration)
            {
                if (currentAlarm.Trigger.DurationValue != Duration.Zero)
                {
                    txtTrigger.Text = currentAlarm.Trigger.DurationValue.ToString(Duration.MaxUnit.Weeks);
                }
                else
                {
                    txtTrigger.Text = String.Empty;
                }

                chkFromEnd.Checked = currentAlarm.Trigger.RelatedToEnd;
                dtpTrigger.Checked = false;
            }
            else
            {
                txtTrigger.Text    = String.Empty;
                chkFromEnd.Checked = false;

                if (currentAlarm.Trigger.TimeZoneDateTime == DateTime.MinValue)
                {
                    dtpTrigger.Checked = false;
                }
                else
                {
                    dtpTrigger.Value   = currentAlarm.Trigger.TimeZoneDateTime;
                    dtpTrigger.Checked = true;
                }
            }

            if (currentAlarm.Duration.DurationValue != Duration.Zero)
            {
                txtDuration.Text = currentAlarm.Duration.DurationValue.ToString(Duration.MaxUnit.Weeks);
            }
            else
            {
                txtDuration.Text = String.Empty;
            }

            // Set attendees and attachments
            ucAttendees.BindingSource.DataSource = new AttendeePropertyCollection().CloneRange(currentAlarm.Attendees);
            ucAttachments.SetValues(currentAlarm.Attachments);
        }
Example #2
0
        /// <summary>
        /// Processes VAlarm Trigger properties
        /// </summary>
        /// <param name="entry"></param>
        /// <param name="valarm"></param>
        private void ProcessTrigger(CalendarEntry entry, VAlarm valarm)
        {
            if (entry.Attributes.Count > 0)
            {
                foreach (AttributeData attr in entry.Attributes)
                {
                    ParameterToken tkn = (ParameterToken)GetToken(_parameters, attr.Id);

                    switch (tkn)
                    {
                        case ParameterToken.Related:
                            valarm.Rel = ProcessRelated(entry, attr.Value);
                            break;

                        case ParameterToken.Value:
                            switch ((ValueToken)GetToken(_values, attr.Value))
                            {
                                case ValueToken.Date:
                                    valarm.Rel = Related.Date;
                                    valarm.Date = ProcessDateValue(entry, entry.Value);
                                    break;

                                case ValueToken.DateTime:
                                    valarm.Rel = Related.Date;
                                    valarm.Date = ProcessDateTime(entry, entry.Value);
                                    break;

                                case ValueToken.Duration:
                                    valarm.Duration = ProcessDuration(entry, entry.Value);
                                    break;
                            }
                            break;
                    }
                }
            }
            else
            {
                valarm.Duration = ProcessDuration(entry, entry.Value);
            }
        }
Example #3
0
        /// <summary>
        /// Processes VAlarm component entries
        /// </summary>
        /// <param name="evData"></param>
        private void ProcessVAlarm(VEventData evData)
        {
            VAlarm valarm = new VAlarm();

            CalendarEntry entry = GetNextEntry();

            while (entry != null)
            {
                PropertyToken tkn = (PropertyToken)GetToken(_properties, entry.Id);

                switch (tkn)
                {
                    case PropertyToken.Description:
                        valarm.Description = entry.Value;
                        break;

                    case PropertyToken.End:
                        if ((ComponentToken)GetToken(_components, entry.Value) != ComponentToken.VAlarm)
                            ReportError(entry, "Expected \"END:VALARM\"");

                        if (evData.VAlarms == null)
                            evData.VAlarms = new List<VAlarm>();

                        evData.VAlarms.Add(valarm);
                        return;

                    case PropertyToken.Trigger:
                        ProcessTrigger(entry, valarm);
                        break;
                }

                entry = GetNextEntry();
            }

            ReportError(entry, "Expected \"END:VALARM\"");
        }