outlookform.cs

来自「清华大学出版社出版的 移动应用开发宝典 张大威(2008)的附书源代码」· CS 代码 · 共 996 行 · 第 1/3 页

CS
996
字号
            {
                dt.Rows.Add(new object[] { pi.Name, pi.GetValue(null,null) });
            }

            return dt;
        }

     
        private void rbStatus_CheckedChanged(object sender, EventArgs e)
        {
            if (rbStatus.Checked)
            {
                dataGrid1.DataSource = GetSystemState();
            }
        }

        private void btnSms_Click(object sender, EventArgs e)
        {
            SmsMessage sm = new SmsMessage(txtNumber.Text, txtBody.Text);
            sm.Send();
        }

        private void btnEmail_Click(object sender, EventArgs e)
        {
            
            EmailMessage em = new EmailMessage();
            em.To.Add(new Recipient(txtEmailAddr.Text));
            em.Subject = "Test Email";
            em.BodyText = txtBody.Text;
            if (!string.IsNullOrEmpty(openFileDialog1.FileName))
            {
                em.Attachments.Add(new Attachment(openFileDialog1.FileName));
            }
            em.Send(session.EmailAccounts[0]);

            // send/receive
            MessagingApplication.Synchronize();
        }

        private void btnAttach_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
        }

        private void tpRecurrence_Click(object sender, EventArgs e)
        {

        }

        private DaysOfWeek DayOfWeekToDaysOfWeek(DayOfWeek dow )
        {
            switch (dow)
            {
                case DayOfWeek.Monday:
                    return DaysOfWeek.Monday;
                case DayOfWeek.Tuesday:
                    return DaysOfWeek.Tuesday;
                case DayOfWeek.Wednesday:
                    return DaysOfWeek.Wednesday;
                case DayOfWeek.Thursday:
                    return DaysOfWeek.Thursday;
                case DayOfWeek.Friday:
                    return DaysOfWeek.Friday;
                case DayOfWeek.Saturday:
                    return DaysOfWeek.Saturday;
                case DayOfWeek.Sunday:
                    return DaysOfWeek.Sunday;
            }

            return 0;
        }

        private WeekOfMonth GetWeekOfMonth(DateTime dt)
        {
            int week = (dt.Day / 7) + 1;
            return (WeekOfMonth)week;
            //DayOfWeek w = dt.DayOfWeek;
            //DayOfWeek w1 = dt.AddDays(-1 * (dt.Day - 1)).DayOfWeek;
        }

        private void btnRecurring_Click(object sender, EventArgs e)
        {
            Appointment a = session.Appointments.Items.AddNew();
            a.Subject = "Test Recurrence";
            a.Start = DateTime.Now;
            AppointmentRecurrence ar = a.RecurrencePattern;

            if (rbDaily.Checked)
            {
                ar.RecurrenceType = RecurrenceType.Daily;
                ar.Interval = Convert.ToInt32(udInterval.Value);
            }
            else if(rbWeekly.Checked)
            {
                ar.RecurrenceType = RecurrenceType.Weekly;
                ar.DaysOfWeekMask = DayOfWeekToDaysOfWeek(dtpStart.Value.DayOfWeek);
                ar.Interval = Convert.ToInt32(udInterval.Value);
            }
            else if (rbMonthly.Checked)
            {
                ar.RecurrenceType = RecurrenceType.Monthly;
                ar.DayOfMonth = dtpStart.Value.Day;
                ar.Interval = Convert.ToInt32(udInterval.Value);
            }
            else if (rbMonthNum.Checked)
            {
                ar.RecurrenceType = RecurrenceType.MonthByNumber;
                ar.DaysOfWeekMask = DayOfWeekToDaysOfWeek(dtpStart.Value.DayOfWeek);
                ar.Interval = Convert.ToInt32(udInterval.Value);
                ar.Instance = GetWeekOfMonth(dtpStart.Value);
            }
            else if (rbYearly.Checked)
            {
                ar.RecurrenceType = RecurrenceType.Yearly;
                ar.MonthOfYear = (Month)dtpStart.Value.Month;
                ar.DayOfMonth = dtpStart.Value.Day;
            }
            else if (rbYearByNum.Checked)
            {
                ar.RecurrenceType = RecurrenceType.YearByNumber;
                ar.DaysOfWeekMask = DayOfWeekToDaysOfWeek(dtpStart.Value.DayOfWeek);
                ar.MonthOfYear = (Month)dtpStart.Value.Month;
                ar.Instance = GetWeekOfMonth(dtpStart.Value);
            }

            ar.PatternStartDate = dtpStart.Value;
            
            ar.Occurrences = Convert.ToInt32(udOccurences.Value);
            a.Update();

            //Populate the treeview
            treeView1.BeginUpdate();
            TreeNode tnRoot = treeView1.Nodes.Add(a.Subject + " " + a.Start.ToShortDateString());
            for (int i = 0; i < ar.Occurrences; i++)
            {
                DateTime dt = DateTime.Today;
                //Get date of next occurence
                switch (ar.RecurrenceType)
                {
                    case RecurrenceType.Daily:
                        dt = ar.PatternStartDate.AddDays(i * ar.Interval);
                        break;
                    case RecurrenceType.Weekly:
                        dt = ar.PatternStartDate.AddDays(7 * i * ar.Interval);
                        break;
                    case RecurrenceType.Monthly:
                        dt = ar.PatternStartDate.AddMonths(i * ar.Interval);
                        break;
                    case RecurrenceType.MonthByNumber:
                        dt = ar.PatternStartDate.AddMonths(i * ar.Interval);
                        break;
                    case RecurrenceType.Yearly:
                        dt = ar.PatternStartDate.AddYears(i);
                        break;
                    case RecurrenceType.YearByNumber:
                        dt = ar.PatternStartDate.AddYears(i);
                        break;
                }
                Appointment aOccurrence = ar.GetOccurrence(dt);
                if (aOccurrence != null)
                {
                    tnRoot.Nodes.Add(aOccurrence.Subject + " " + aOccurrence.Start.ToShortDateString());
                }
            }
            treeView1.EndUpdate();
        }

        private void btnLookupSms_Click(object sender, EventArgs e)
        {
            ChooseContactDialog ccd = new ChooseContactDialog();
            ccd.Owner = this;
            ccd.RequiredProperties = new ContactProperty[]{ContactProperty.Sms};
            ccd.Title = "Choose an SMS recipient";
            if (ccd.ShowDialog() == DialogResult.OK)
            {
                txtNumber.Text = ccd.SelectedPropertyValue;
            }
        }

        private void btnLookupEmail_Click(object sender, EventArgs e)
        {
            ChooseContactDialog ccd = new ChooseContactDialog();
            ccd.ChoosePropertyText = "Select an email address:";
            ccd.ChooseContactOnly = false;
            ccd.Owner = this;
            ccd.Title = "Choose an email recipient";
            ccd.RequiredProperties = new ContactProperty[] { ContactProperty.AllEmail };
            if (ccd.ShowDialog() == DialogResult.OK)
            {
                txtEmailAddr.Text = ccd.SelectedPropertyValue;
            }
        }

        //Add some sample data.
        private void AddExampleContacts()
        {
            session.Contacts.Items.Clear();

            Contact c = session.Contacts.Items.AddNew();
            c.FirstName = "Michael";
            c.LastName = "Allen";
            c.Email1Address = "michael@contoso.com";
            c.MobileTelephoneNumber = "555-0132";
            c.CompanyName = "Contoso Pharmaceuticals";
            c.Properties.Add("LastInvoice", typeof(int));
            c.Properties["LastInvoice"] = 3124;
            c.Update();

            c = session.Contacts.Items.AddNew();
            c.FirstName = "Kevin";
            c.LastName = "Liu";
            c.Email1Address = "kevin@tailspintoys.com";
            c.MobileTelephoneNumber = "555-0167";
            c.CompanyName = "Tailspin Toys";
            c.Properties["LastInvoice"] = 3668;
            c.Update();

            c = session.Contacts.Items.AddNew();
            c.FirstName = "Elisabetta";
            c.LastName = "Scotti";
            c.Email1Address = "elisabetta@fourthcoffee.com";
            c.MobileTelephoneNumber = "555-0122";
            c.CompanyName = "Fourth Coffee";
            c.Update();

            c = session.Contacts.Items.AddNew();
            c.FirstName = "Andrey";
            c.LastName = "Gavrilov";
            c.MobileTelephoneNumber = "555-0171";
            c.CompanyName = "Lucerne Publishing";
            c.Update();

            c = session.Contacts.Items.AddNew();
            c.FirstName = "Iris";
            c.LastName = "Rodgers";
            c.Email1Address = "iris@adventure-works.com";
            c.CompanyName = "Adventure Works";
            c.Update();
        }

        private void mnuAddSample_Click(object sender, EventArgs e)
        {
            AddExampleContacts();
        }

        private void btnSync_Click(object sender, EventArgs e)
        {
            // send/receive default account
            MessagingApplication.Synchronize(session.EmailAccounts[0]);
        }

        private void btnCompose_Click(object sender, EventArgs e)
        {
            string[] attachments = new string[] { };

            if (File.Exists(openFileDialog1.FileName))
            {
                attachments = new string[] { openFileDialog1.FileName };
            }
            MessagingApplication.DisplayComposeForm(session.EmailAccounts[0].Name, txtEmailAddr.Text, "Populated Compose Form", txtBody.Text, attachments); 
        }

        private void SendGenericEmail()
        { 
            EmailMessage m = new EmailMessage();
            
            Recipient r = new Recipient("Elisabetta Scotti", "elisabetta@fourthcoffee.com");
            m.To.Add(r);

            m.Subject = "Important customer update";
            m.BodyText = "This is an automatically generated email";
            m.Importance = Importance.High;

            Attachment a = new Attachment(openFileDialog1.FileName);
            m.Attachments.Add(a);

            m.Send(session.EmailAccounts[0]);
        }

        private void SendGenericSms()
        {
            SmsMessage s = new SmsMessage();

            Recipient r = new Recipient("Andrey Gladkikh", "555-0171");
            s.To.Add(r);

            s.Body = "This is an automatically generated SMS";
            s.RequestDeliveryReport = true;

            s.Send();
        }

        private void SaveTask(string customerid, int jobNumber, string description)
        {
            Task t = new Task();
            t.Subject = jobNumber.ToString() + ": " + description;
            t.StartDate = DateTime.Now;
            //set due in 7 days time
            t.DueDate = DateTime.Today.AddDays(7);
            //add custom properties
            t.Properties.Add("CustomerId", typeof(string));
            t.Properties.Add("JobNumber", typeof(int));
            t.Properties["CustomerID"] = customerid;
            t.Properties["JobNumber"] = jobNumber;
            //assign category
            t.Categories = "Maintenance";

            t.Update();
        }

        private void AppointmentWithReminder(DateTime start, TimeSpan duration, string subject)
        {
            Appointment a = new Appointment();
            a.Start = start;
            a.Duration = duration;
            a.Subject = subject;
            a.BusyStatus = BusyStatus.Busy;
            a.Categories = "Samples";

            //remind user one hour before start
            a.ReminderMinutesBeforeStart = 60;
            a.ReminderDialog = true;
            a.ReminderLed = true;
            a.ReminderSound = true;
            a.ReminderRepeat = true;
            a.ReminderSoundFile = "\\Windows\\Alarm3.wav";

            a.Update();
        }
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?