Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 10.57 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Text.RegularExpressions;
  5. using System.Windows.Forms;
  6.  
  7. namespace Lab2_MTP
  8. {
  9.     public enum Categorie : int
  10.     {
  11.         Prieteni,
  12.         Colegi,
  13.         Rude,
  14.         Diversi,
  15.         None
  16.     };
  17.    
  18.     public partial class Form1 : Form
  19.     {
  20.         private int counterIndx = 0;
  21.         List<Persoana> personsList = new List<Persoana>();
  22.         List<TextBox> myTexboxes = new List<TextBox>();
  23.  
  24.         public Form1()
  25.         {
  26.             InitializeComponent();
  27.             InitializeDatas();
  28.         }
  29.  
  30.         private void ResetData()
  31.         {
  32.             if (myTexboxes.Count == 0)
  33.             {
  34.                 myTexboxes.Add(addressTxt);
  35.                 myTexboxes.Add(emailTxt);
  36.                 myTexboxes.Add(messAccTxt);
  37.                 myTexboxes.Add(nameTxt);
  38.                 myTexboxes.Add(phone1Txt);
  39.                 myTexboxes.Add(phone2Txt);
  40.                 myTexboxes.Add(webTxt);
  41.             }
  42.             categoryCmb.SelectedIndex = 0;
  43.             foreach(TextBox t in myTexboxes)
  44.             {
  45.                 t.Text = "";
  46.             }
  47.         }
  48.  
  49.         private void InitializeMainNodes()
  50.         {
  51.             string[] mainNodes = { "Prieteni", "Colegi", "Rude", "Diversi" };
  52.             for (int i = 0; i < mainNodes.Length; i++)
  53.             {
  54.                 int nodeIndex = i + 1;
  55.                 personsTree.Nodes.Add(mainNodes[i], mainNodes[i], nodeIndex);
  56.             }
  57.         }
  58.  
  59.         private void InitializeDatas()
  60.         {
  61.             string[] categories = { "Prieteni", "Colegi", "Rude", "Diversi" };
  62.             for (int i = 0; i < categories.Length; i++)
  63.             {
  64.                 categoryCmb.Items.Add(categories[i]);
  65.             }
  66.             categoryCmb.SelectedIndex = 0;
  67.             string[] criteries = { "Nume", "Data Nastere", "Telefon", "Adresa","Cont Messenger","Adresa Web","Adresa email" };
  68.             for (int i = 0; i < criteries.Length; i++)
  69.             {
  70.                 searchCriteriaCmb.Items.Add(criteries[i]);
  71.             }
  72.             searchCriteriaCmb.SelectedIndex = 0;
  73.             // Add the main nodes
  74.             InitializeMainNodes();
  75.         }
  76.  
  77.         private Categorie getCategory(int index)
  78.         {
  79.             switch(index)
  80.             {
  81.                 case 0:
  82.                     return Categorie.Prieteni;
  83.                 case 1:
  84.                     return Categorie.Colegi;
  85.                 case 2:
  86.                     return Categorie.Rude;
  87.                 case 3:
  88.                     return Categorie.Diversi;
  89.             }
  90.             return Categorie.None;      
  91.         }
  92.  
  93.         private string getCategoryString(Categorie currentCateg)
  94.         {
  95.             return Enum.GetName(typeof(Categorie),currentCateg);
  96.         }
  97.  
  98.         private void RefreshTree()
  99.         {
  100.             // Clear the tree  
  101.             personsTree.Nodes.Clear();
  102.             categoryCmb.SelectedIndex = 0;
  103.             personProperty.SelectedObject = null;
  104.  
  105.             // Initialize the main nodes
  106.             InitializeMainNodes();
  107.  
  108.             // Recreate the tree
  109.             foreach (Persoana newPers in personsList)
  110.             {
  111.                 string personCategory = getCategoryString(newPers.Category);
  112.                 TreeNode currentNode = personsTree.Nodes[personCategory];
  113.                 currentNode.Nodes.Add(newPers.Index.ToString(),newPers.Nume);
  114.             }
  115.         }
  116.  
  117.         private void addPersonBtn_Click(object sender, EventArgs e)
  118.         {
  119.             // Parse data
  120.             if (myTexboxes.Count == 0)
  121.             {
  122.                 myTexboxes.Add(addressTxt);
  123.                 myTexboxes.Add(emailTxt);
  124.                 myTexboxes.Add(messAccTxt);
  125.                 myTexboxes.Add(nameTxt);
  126.                 myTexboxes.Add(phone1Txt);
  127.                 myTexboxes.Add(phone2Txt);
  128.                 myTexboxes.Add(webTxt);
  129.             }
  130.             foreach (TextBox txt in myTexboxes)
  131.             {
  132.                 if (txt.Text == "")
  133.                 {
  134.                     MessageBox.Show("Eroare executata cu success.", "Success", MessageBoxButtons.OK,MessageBoxIcon.Error);
  135.                     return;
  136.                 }
  137.             }
  138.             Match isPhoneNumber = Regex.Match(phone1Txt.Text,"[0-9]+");
  139.             if(!isPhoneNumber.Success && phone1Txt.Text.Length < 10)
  140.             {
  141.                 MessageBox.Show("Se pare ca nu stii cum se scrie un numar de telefon.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Error);
  142.                 return;
  143.             }
  144.             isPhoneNumber = Regex.Match(phone2Txt.Text, "[0-9]+");
  145.             if (!isPhoneNumber.Success && phone2Txt.Text.Length < 10)
  146.             {
  147.                 MessageBox.Show("Se pare ca nu stii cum se scrie un numar de telefon.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Error);
  148.                 return;
  149.             }
  150.             if(FindPerson(nameTxt.Text) != null)
  151.             {
  152.                 MessageBox.Show("Persoana cu acel nume exista deja in lista.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Error);
  153.                 ResetData();
  154.                 return;
  155.             }
  156.             // Clear textboxes
  157.             Persoana pers = new Persoana(counterIndx++, nameTxt.Text, birthDateTime.Value, phone1Txt.Text, phone2Txt.Text, addressTxt.Text,
  158.                             getCategory(categoryCmb.SelectedIndex), messAccTxt.Text, webTxt.Text, emailTxt.Text);
  159.             ResetData();
  160.             personsList.Add(pers);
  161.             RefreshTree();
  162.         }
  163.  
  164.         private Persoana FindPerson(string personName)
  165.         {
  166.             foreach(Persoana pers in personsList)
  167.             {
  168.                 if (pers.Nume == personName)
  169.                     return pers;
  170.             }
  171.             return null;
  172.         }
  173.  
  174.         private Persoana FindAfterCriteria(string criteriaName,string keyword)
  175.         {
  176.             foreach (Persoana pers in personsList)
  177.             {
  178.                 switch (criteriaName)
  179.                 {
  180.                     case "Nume":
  181.                         if (pers.Nume == keyword)
  182.                         {
  183.                             return pers;
  184.                         }
  185.                         break;
  186.                     case "Data Nastere":
  187.                         if (pers.DateNastere == keyword)
  188.                         {
  189.                             return pers;
  190.                         }
  191.                         break;
  192.                     case "Telefon":
  193.                         if (pers.Telefon1 == keyword || pers.Telefon2 == keyword)
  194.                         {
  195.                             return pers;
  196.                         }
  197.                         break;
  198.                     case "Adresa":
  199.                         if (pers.Adresa == keyword)
  200.                         {
  201.                             return pers;
  202.                         }
  203.                         break;
  204.                     case "Cont Messenger":
  205.                         if (pers.ContMessenger == keyword)
  206.                         {
  207.                             return pers;
  208.                         }
  209.                         break;
  210.                     case "Adresa Web":
  211.                         if (pers.AdresaWeb == keyword)
  212.                         {
  213.                             return pers;
  214.                         }
  215.                         break;
  216.                     case "Adresa email":
  217.                         if (pers.Email == keyword)
  218.                         {
  219.                             return pers;
  220.                         }
  221.                         break;
  222.                     default:
  223.                         return null;
  224.                 }
  225.             }
  226.             return null;
  227.         }
  228.  
  229.         private void SearchBtn_Click(object sender, EventArgs e)
  230.         {
  231.             Persoana per = FindAfterCriteria(searchCriteriaCmb.Text,searchNameTxt.Text);
  232.             personProperty.SelectedObject = null;
  233.             if (per != null)
  234.             {
  235.                 personProperty.SelectedObject = per;
  236.             }
  237.             else
  238.             {
  239.                 MessageBox.Show("Se pare ca persoana "+searchNameTxt.Text+" nu exista , too bad.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Error);
  240.             }
  241.             searchNameTxt.Text = "";
  242.         }
  243.  
  244.         private void DeleteBtn_Click(object sender, EventArgs e)
  245.         {
  246.             string selectedPerson = personsTree.SelectedNode.Text;
  247.             personProperty.SelectedObject = null;
  248.             foreach(Persoana p in personsList)
  249.             {
  250.                 if(p.Nume == selectedPerson)
  251.                 {
  252.                     personsList.Remove(p);
  253.                     break;
  254.                 }
  255.             }
  256.             RefreshTree();
  257.         }
  258.  
  259.         private void SaveToFileBtn_Click(object sender, EventArgs e)
  260.         {
  261.             string dir = Application.StartupPath;
  262.             StreamWriter sw = new StreamWriter(dir + "\\persoane.txt", false);
  263.             sw.WriteLine("-----------------------------------------------");
  264.             foreach (Persoana p in personsList)
  265.             {
  266.                 sw.WriteLine("Nume: "+p.Nume);
  267.                 sw.WriteLine("Data nasterii: " + p.DateNastere);
  268.                 sw.WriteLine("Telefon 1: " + p.Telefon1);
  269.                 sw.WriteLine("Telefon 2: " + p.Telefon2);
  270.                 sw.WriteLine("Adresa: " + p.Adresa);
  271.                 sw.WriteLine("Category: " + getCategoryString(p.Category));
  272.                 sw.WriteLine("Cont messenger: " + p.ContMessenger);
  273.                 sw.WriteLine("Adresa web: " + p.AdresaWeb);
  274.                 sw.WriteLine("Email: " + p.Email);
  275.                 sw.WriteLine("-----------------------------------------------");
  276.             }
  277.             sw.Close();
  278.             System.Diagnostics.Process.Start("notepad.exe", dir + "\\persoane.txt");
  279.         }
  280.  
  281.         private void personsTree_AfterSelect(object sender, TreeViewEventArgs e)
  282.         {
  283.             Persoana pers;
  284.             int indx;
  285.             personProperty.SelectedObject = null;
  286.             if(int.TryParse(e.Node.Name,out indx))
  287.             {
  288.                 pers = GetByIndex(indx);
  289.                 if(pers != null)
  290.                 {
  291.                     personProperty.SelectedObject = pers;
  292.                 }
  293.             }
  294.         }
  295.  
  296.         private Persoana GetByIndex(int indx)
  297.         {
  298.             foreach(Persoana p in personsList)
  299.             {
  300.                 if(p.Index == indx)
  301.                 {
  302.                     return p;
  303.                 }
  304.             }
  305.             return null;
  306.         }
  307.     }
  308. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement