示例#1
0
      /// <summary>
      /// send Email method
      /// </summary>
      /// <param name="sender"></param>
      /// <param name="e"></param>
      private void button2_Click(object sender, EventArgs e) {
         try {
            using(var objProvider = new MailProvider()) {
               //create Email
               if(textBox8.Text == String.Empty || richTextBox2.Text == String.Empty) {
                  throw new ArgumentNullException("Fill all fields!");
               }
               //if selected node is Group
               Group objGroup = objProvider.GetGroup((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);
               Receiver objReceiver = objProvider.GetReceiver((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);

               if(objGroup != null) {
                  foreach(var receiver in objGroup.Receivers) {
                     var objEmail = new Email() {
                        Receiver = receiver,
                        Text = richTextBox2.Text,
                        Header = textBox8.Text,
                        SendingTime = DateTime.Now
                     };
                     objProvider.AddEmail(objEmail);
                     SendEmail(objEmail);
                  }
               }

               //if receiver
               if(objReceiver != null) {
                  var objEmail = new Email() {
                     Receiver = objReceiver,
                     Text = richTextBox2.Text,
                     Header = textBox8.Text,
                     SendingTime = DateTime.Now
                  };
                  objProvider.AddEmail(objEmail);
                  SendEmail(objEmail);
               }
            }
         }
         catch(Exception ex) {
            MessageBox.Show(ex.Message);
         }
      }
示例#2
0
      private void UpdateListBox1() {
         using(var objProvider = new MailProvider()) {
            listBox1.Items.Clear();
            Receiver objReceiver = objProvider.GetReceiver((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);
            List<Email> objEmails = objProvider.GetEmailsByReceiverId(objReceiver.Id);

            if(objEmails.Count != 0) {
               listBox1.Items.AddRange(objEmails.ToArray());
               listBox1.SelectedIndex = 0;
            }
         }
      }
示例#3
0
      /// <summary>
      /// Sort Emails by sended flag
      /// </summary>
      /// <param name="sender"></param>
      /// <param name="e"></param>
      private void comboBox3_SelectedIndexChanged(object sender, EventArgs e) {
         try {
            using(var objProvider = new MailProvider()) {
               Receiver objReceiver = objProvider.GetReceiver((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);
               if(objReceiver == null) {
                  return;
               }

               List<Email> objEmails = objProvider.GetEmailsByReceiverId(objReceiver.Id);
               listBox1.Items.Clear();
               if(objEmails.Count != 0) {
                  listBox1.Items.AddRange(objEmails.ToArray());
               }
            }
         }
         catch(Exception ex) {
            MessageBox.Show(ex.Message);
         }
      }
示例#4
0
      /// <summary>
      /// get info about node
      /// </summary>
      /// <param name="sender"></param>
      /// <param name="e"></param>
      private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
         try {
            treeView1.SelectedNode = e.Node;

            if(e.Button == MouseButtons.Right) {
               contextMenuStrip1.Show();
            }
            using(var objProvider = new MailProvider()) {
               Receiver objReceiver = objProvider.GetReceiver((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);
               Group objGroup = objProvider.GetGroup((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);

               comboBox2.Items.Clear();
               comboBox2.Items.AddRange(objProvider.GetAllGroups().ToArray());
               listBox1.Items.Clear();
               richTextBox1.Clear();

               //clear MailList fields
               textBox10.Clear();
               textBox9.Clear();
               richTextBox3.Clear();
               label18.Text = String.Empty;

               //if node is receiver
               if(objReceiver != null) {
                 comboBox2.SelectedItem = objReceiver.Group;

                  textBox1.Text = objReceiver.Name;
                  textBox2.Text = objReceiver.Email;
                  richTextBox1.Text = String.Format("{0}: {1}\n", objReceiver.Name, objReceiver.Email);

                  UpdateListBox1();

                  textBox1.Enabled = true;
                  textBox2.Enabled = true;
                  textBox3.Enabled = false;
                  textBox3.Clear();
                  button4.Enabled = false;
               }
               //if group
               if(objGroup != null) {
                  comboBox2.SelectedItem = objGroup;
                  textBox3.Text = objGroup.Name;
                  List<Receiver> objrReceivers = objProvider.GetReceiversByGroupId(objGroup.Id);
                  foreach (var receiver in objrReceivers)
                  {
                     richTextBox1.Text += String.Format("{0}: {1}\n", receiver.Name, receiver.Email);
                  }

                  textBox3.Enabled = true;
                  textBox1.Clear();
                  textBox1.Enabled = false;
                  textBox2.Clear();
                  textBox2.Enabled = false;
                  button4.Enabled = true;
               }
            }
         }
         catch(Exception ex) {
            MessageBox.Show(ex.Message);
         }
      }
示例#5
0
      /// <summary>
      /// delete group and all child nodes
      /// </summary>
      /// <param name="sender"></param>
      /// <param name="e"></param>
      private void ToolStripMenuItem3_Click(object sender, EventArgs e) {
         try {
            using(var objProvider = new MailProvider()) {
               //get parent  group node
               Group objParentGroup = objProvider.GetGroup((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);
               //get receiver node
               Receiver objReceiver = objProvider.GetReceiver((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);

               //if selected is receiver node
               if(objReceiver != null) {
                  objProvider.RemoveReceiver(objReceiver);
               }

               //if selected is group parent node
               if(objParentGroup != null) {
                  //get all childs Recievers
                  List<Group> objChildsToDeleteList = objProvider.Base.Groups.
                     Where(gr => gr.LeftKey >= objParentGroup.LeftKey && gr.RightKey <= objParentGroup.RightKey).ToList();
                  //delete all childs
                  foreach(var node in objChildsToDeleteList) {
                     List<Receiver> objReceiversList = objProvider.Base.Receivers.Where(r => r.Group.Id == node.Id).ToList();
                     for(int iJ = 0; iJ < objReceiversList.Count; ++iJ) {
                        objProvider.RemoveReceiver(objReceiversList[iJ]);
                     }
                     objProvider.RemoveGroup(node);
                  }

                  //update parent branch
                  List<Group> objParentsList = objProvider.Base.Groups.Where(gr => gr.RightKey > objParentGroup.RightKey && gr.LeftKey < objParentGroup.LeftKey).ToList();
                  foreach(var node in objParentsList) {
                     node.RightKey = node.RightKey - (objParentGroup.RightKey - objParentGroup.LeftKey + 1);
                  }

                  //update other childs
                  List<Group> objChildList = objProvider.Base.Groups.Where(gr => gr.LeftKey > objParentGroup.RightKey).ToList();
                  foreach(var node in objChildList) {
                     node.LeftKey = node.LeftKey - (objParentGroup.RightKey - objParentGroup.LeftKey + 1);
                     node.RightKey = node.RightKey - (objParentGroup.RightKey - objParentGroup.LeftKey + 1);
                  }
               }
            }
            UpdateTree();
         }
         catch(Exception ex) {
            MessageBox.Show(ex.Message);
         }
      }
示例#6
0
      /// <summary>
      /// add email to schedule
      /// </summary>
      /// <param name="sender"></param>
      /// <param name="e"></param>
      private void button5_Click(object sender, EventArgs e) {
         try {
            if(textBox8.Text == String.Empty || richTextBox2.Text == String.Empty) {
               throw new ArgumentNullException("Fill all fileds");
            }
            using(var objProvider = new MailProvider()) {
               var objEmail = new Email() {
                  Header = textBox8.Text,
                  Text = richTextBox2.Text,
                  SendingTime = GetTime(),
                  Sended = false,
                  Receiver = objProvider.GetReceiver((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name)
               };

               objProvider.AddEmail(objEmail);
            }
         }
         catch(Exception ex) {
            MessageBox.Show(ex.Message);
         }
      }
示例#7
0
      /// <summary>
      /// change receiver info
      /// </summary>
      /// <param name="sender"></param>
      /// <param name="e"></param>
      private void button3_Click(object sender, EventArgs e) {
         try {
            using(var objProvider = new MailProvider()) {
               Receiver objReceiver = objProvider.GetReceiver((int)treeView1.SelectedNode.Tag, treeView1.SelectedNode.Name);
               if(objReceiver != null) {
                  if(textBox1.Text == String.Empty || textBox2.Text == String.Empty) {
                     throw new ArgumentNullException("Receiver.Name or Receiver.Email");
                  }

                  objReceiver.Name = textBox1.Text;
                  objReceiver.Email = textBox2.Text;
                  objReceiver.Group = objProvider.GetGroupByName(comboBox2.SelectedItem.ToString());
                  //clear fileds
                  textBox1.Clear();
                  textBox2.Clear();
               }
            }
            UpdateTree();
         }
         catch(Exception ex) {
            MessageBox.Show(ex.Message);
         }
      }