public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture,
                                  object value, Type destinationType)
 {
     if (destinationType == typeof(string))
     {
         Program.Task task = value as Program.Task;
         return(string.Format("{0},{1},{2},{3}", task.name, task.details, task.time.ToString(), task.alarm.ToString()));
     }
     return(base.ConvertTo(context, culture, value, destinationType));
 }
 public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
 {
     if (value is string)
     {
         string[]     parts = ((string)value).Split(new char[] { ',' });
         Program.Task task  = new Program.Task();
         task.name    = parts[0];
         task.details = parts.Length > 1 ? parts[1] : null;
         task.time    = parts.Length > 2 ? Convert.ToDateTime(parts[2]) : System.DateTime.Now;
         task.alarm   = parts.Length > 3 ? Convert.ToDateTime(parts[3]) : System.DateTime.Now;
         return(task);
     }
     return(base.ConvertFrom(context, culture, value));
 }
        private void changeToTask()
        {
            this.periodContents.Width = 266;
            this.TaskAdd.Visible      = true;
            this.TaskTake.Visible     = true;
            this.TaskEdit.Visible     = true;

            if (Program.getProgram().getTasks(System.DateTime.Now).Count <= 0)
            {
                this.title.Text          = "None";
                this.periodContents.Text = "";
                return;
            }

            Program.Task currentTask = Program.getProgram().getCurrentTask(System.DateTime.Now);
            string       texts       = "";

            foreach (Program.Task task in tasks)
            {
                texts += task.details + System.Environment.NewLine;
            }

            this.toolTip2.SetToolTip(this.periodContents, texts);

            string timeTo = " - " + (currentTask.time - System.DateTime.Now).ToString().Substring(0, 5);

            if (currentTask.time.Date == System.DateTime.Now.Date)
            {
                if (currentTask.time <= System.DateTime.Now)
                {
                    timeTo = " - Now";
                }
            }
            else
            {
                timeTo = "";
            }

            if (Properties.Settings.Default.TimeTo)
            {
                title.Text = currentTask.name + timeTo;
            }
            else
            {
                title.Text = currentTask.name;
            }

            periodContents.Text = "";
            for (int i = 0; i < tasks.Count; i++)
            {
                periodContents.Text += tasks[i].name;
                if (Properties.Settings.Default.Times)
                {
                    if (Properties.Settings.Default.AMPM)
                    {
                        periodContents.Text += " - " + tasks[i].time.ToString().Replace(":00 ", " ");
                    }
                    else
                    {
                        periodContents.Text += " - " + tasks[i].time.ToString().Replace(":00 ", " ").Replace("AM", "").Replace("PM", "");
                    }
                }
                periodContents.Text += System.Environment.NewLine;
            }
        }