Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Text.RegularExpressions;
- using System.Windows.Forms;
- namespace Lab2_MTP
- {
- public enum Categorie : int
- {
- Prieteni,
- Colegi,
- Rude,
- Diversi,
- None
- };
- public partial class Form1 : Form
- {
- private int counterIndx = 0;
- List<Persoana> personsList = new List<Persoana>();
- List<TextBox> myTexboxes = new List<TextBox>();
- public Form1()
- {
- InitializeComponent();
- InitializeDatas();
- }
- private void ResetData()
- {
- if (myTexboxes.Count == 0)
- {
- myTexboxes.Add(addressTxt);
- myTexboxes.Add(emailTxt);
- myTexboxes.Add(messAccTxt);
- myTexboxes.Add(nameTxt);
- myTexboxes.Add(phone1Txt);
- myTexboxes.Add(phone2Txt);
- myTexboxes.Add(webTxt);
- }
- categoryCmb.SelectedIndex = 0;
- foreach(TextBox t in myTexboxes)
- {
- t.Text = "";
- }
- }
- private void InitializeMainNodes()
- {
- string[] mainNodes = { "Prieteni", "Colegi", "Rude", "Diversi" };
- for (int i = 0; i < mainNodes.Length; i++)
- {
- int nodeIndex = i + 1;
- personsTree.Nodes.Add(mainNodes[i], mainNodes[i], nodeIndex);
- }
- }
- private void InitializeDatas()
- {
- string[] categories = { "Prieteni", "Colegi", "Rude", "Diversi" };
- for (int i = 0; i < categories.Length; i++)
- {
- categoryCmb.Items.Add(categories[i]);
- }
- categoryCmb.SelectedIndex = 0;
- string[] criteries = { "Nume", "Data Nastere", "Telefon", "Adresa","Cont Messenger","Adresa Web","Adresa email" };
- for (int i = 0; i < criteries.Length; i++)
- {
- searchCriteriaCmb.Items.Add(criteries[i]);
- }
- searchCriteriaCmb.SelectedIndex = 0;
- // Add the main nodes
- InitializeMainNodes();
- }
- private Categorie getCategory(int index)
- {
- switch(index)
- {
- case 0:
- return Categorie.Prieteni;
- case 1:
- return Categorie.Colegi;
- case 2:
- return Categorie.Rude;
- case 3:
- return Categorie.Diversi;
- }
- return Categorie.None;
- }
- private string getCategoryString(Categorie currentCateg)
- {
- return Enum.GetName(typeof(Categorie),currentCateg);
- }
- private void RefreshTree()
- {
- // Clear the tree
- personsTree.Nodes.Clear();
- categoryCmb.SelectedIndex = 0;
- personProperty.SelectedObject = null;
- // Initialize the main nodes
- InitializeMainNodes();
- // Recreate the tree
- foreach (Persoana newPers in personsList)
- {
- string personCategory = getCategoryString(newPers.Category);
- TreeNode currentNode = personsTree.Nodes[personCategory];
- currentNode.Nodes.Add(newPers.Index.ToString(),newPers.Nume);
- }
- }
- private void addPersonBtn_Click(object sender, EventArgs e)
- {
- // Parse data
- if (myTexboxes.Count == 0)
- {
- myTexboxes.Add(addressTxt);
- myTexboxes.Add(emailTxt);
- myTexboxes.Add(messAccTxt);
- myTexboxes.Add(nameTxt);
- myTexboxes.Add(phone1Txt);
- myTexboxes.Add(phone2Txt);
- myTexboxes.Add(webTxt);
- }
- foreach (TextBox txt in myTexboxes)
- {
- if (txt.Text == "")
- {
- MessageBox.Show("Eroare executata cu success.", "Success", MessageBoxButtons.OK,MessageBoxIcon.Error);
- return;
- }
- }
- Match isPhoneNumber = Regex.Match(phone1Txt.Text,"[0-9]+");
- if(!isPhoneNumber.Success && phone1Txt.Text.Length < 10)
- {
- MessageBox.Show("Se pare ca nu stii cum se scrie un numar de telefon.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- isPhoneNumber = Regex.Match(phone2Txt.Text, "[0-9]+");
- if (!isPhoneNumber.Success && phone2Txt.Text.Length < 10)
- {
- MessageBox.Show("Se pare ca nu stii cum se scrie un numar de telefon.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- if(FindPerson(nameTxt.Text) != null)
- {
- MessageBox.Show("Persoana cu acel nume exista deja in lista.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Error);
- ResetData();
- return;
- }
- // Clear textboxes
- Persoana pers = new Persoana(counterIndx++, nameTxt.Text, birthDateTime.Value, phone1Txt.Text, phone2Txt.Text, addressTxt.Text,
- getCategory(categoryCmb.SelectedIndex), messAccTxt.Text, webTxt.Text, emailTxt.Text);
- ResetData();
- personsList.Add(pers);
- RefreshTree();
- }
- private Persoana FindPerson(string personName)
- {
- foreach(Persoana pers in personsList)
- {
- if (pers.Nume == personName)
- return pers;
- }
- return null;
- }
- private Persoana FindAfterCriteria(string criteriaName,string keyword)
- {
- foreach (Persoana pers in personsList)
- {
- switch (criteriaName)
- {
- case "Nume":
- if (pers.Nume == keyword)
- {
- return pers;
- }
- break;
- case "Data Nastere":
- if (pers.DateNastere == keyword)
- {
- return pers;
- }
- break;
- case "Telefon":
- if (pers.Telefon1 == keyword || pers.Telefon2 == keyword)
- {
- return pers;
- }
- break;
- case "Adresa":
- if (pers.Adresa == keyword)
- {
- return pers;
- }
- break;
- case "Cont Messenger":
- if (pers.ContMessenger == keyword)
- {
- return pers;
- }
- break;
- case "Adresa Web":
- if (pers.AdresaWeb == keyword)
- {
- return pers;
- }
- break;
- case "Adresa email":
- if (pers.Email == keyword)
- {
- return pers;
- }
- break;
- default:
- return null;
- }
- }
- return null;
- }
- private void SearchBtn_Click(object sender, EventArgs e)
- {
- Persoana per = FindAfterCriteria(searchCriteriaCmb.Text,searchNameTxt.Text);
- personProperty.SelectedObject = null;
- if (per != null)
- {
- personProperty.SelectedObject = per;
- }
- else
- {
- MessageBox.Show("Se pare ca persoana "+searchNameTxt.Text+" nu exista , too bad.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- searchNameTxt.Text = "";
- }
- private void DeleteBtn_Click(object sender, EventArgs e)
- {
- string selectedPerson = personsTree.SelectedNode.Text;
- personProperty.SelectedObject = null;
- foreach(Persoana p in personsList)
- {
- if(p.Nume == selectedPerson)
- {
- personsList.Remove(p);
- break;
- }
- }
- RefreshTree();
- }
- private void SaveToFileBtn_Click(object sender, EventArgs e)
- {
- string dir = Application.StartupPath;
- StreamWriter sw = new StreamWriter(dir + "\\persoane.txt", false);
- sw.WriteLine("-----------------------------------------------");
- foreach (Persoana p in personsList)
- {
- sw.WriteLine("Nume: "+p.Nume);
- sw.WriteLine("Data nasterii: " + p.DateNastere);
- sw.WriteLine("Telefon 1: " + p.Telefon1);
- sw.WriteLine("Telefon 2: " + p.Telefon2);
- sw.WriteLine("Adresa: " + p.Adresa);
- sw.WriteLine("Category: " + getCategoryString(p.Category));
- sw.WriteLine("Cont messenger: " + p.ContMessenger);
- sw.WriteLine("Adresa web: " + p.AdresaWeb);
- sw.WriteLine("Email: " + p.Email);
- sw.WriteLine("-----------------------------------------------");
- }
- sw.Close();
- System.Diagnostics.Process.Start("notepad.exe", dir + "\\persoane.txt");
- }
- private void personsTree_AfterSelect(object sender, TreeViewEventArgs e)
- {
- Persoana pers;
- int indx;
- personProperty.SelectedObject = null;
- if(int.TryParse(e.Node.Name,out indx))
- {
- pers = GetByIndex(indx);
- if(pers != null)
- {
- personProperty.SelectedObject = pers;
- }
- }
- }
- private Persoana GetByIndex(int indx)
- {
- foreach(Persoana p in personsList)
- {
- if(p.Index == indx)
- {
- return p;
- }
- }
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement