Advertisement
Anonim_999

Main

May 23rd, 2022
770
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.19 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Windows.Forms;
  7. using System.Xml.Serialization;
  8.  
  9. namespace DatingAgency_Mareev_
  10. {
  11.     public partial class Main : Form
  12.     {
  13.         private DataBase _dataBase;
  14.         private User _user;
  15.         private User _selectedUser;
  16.         private Pasport _pasport;
  17.         private string _path = "UserDataBase.xml";
  18.         private List<User> _users = new List<User>();
  19.         private List<User> _suggestions = new List<User>();
  20.  
  21.         public Main(DataBase dataBase, User user)
  22.         {
  23.             InitializeComponent();
  24.             _user = user;
  25.             _pasport = _user.PasportData;
  26.             _dataBase = dataBase;
  27.             _users = _dataBase.UserList;
  28.             var result = _users.Union(_dataBase.UserList);
  29.  
  30.             foreach (var usr in result)
  31.             {
  32.                 _suggestions.Add(usr);
  33.             }
  34.         }
  35.  
  36.         private void LoadImageButton_Click(object sender, EventArgs e)
  37.         {
  38.             OpenFileDialog imageLoad = new OpenFileDialog();
  39.             imageLoad.Filter = ".png (*.png*)|*.png*|.jpg (*.jpg*)|*.jpg*";
  40.             imageLoad.ShowDialog();
  41.  
  42.             try
  43.             {
  44.                 Image image = Image.FromFile(imageLoad.FileName);
  45.                 pictureBox1.Image = image;
  46.                 _user.ImagePath = imageLoad.FileName;
  47.                 File.Delete(_path);
  48.                 SerializeXML(_dataBase,_path);
  49.             }
  50.             catch (Exception)
  51.             {
  52.                 MessageBox.Show("Выберете фотографию");
  53.             }
  54.         }
  55.  
  56.         private void Main_Load(object sender, EventArgs e)
  57.         {
  58.             LoadData();
  59.             SexCombo.DropDownStyle = ComboBoxStyle.DropDownList;
  60.             ShowNextPartner();
  61.             ShowUsers(_user.YouLiked,YouLikedListView);
  62.             ShowUsers(_user.YouLike,YouLikeListView);
  63.         }
  64.  
  65.         private void SaveUserData()
  66.         {
  67.             _user.FullName = FullNameBox.Text;
  68.             _user.Sex = SexCombo.Text;
  69.             _user.Address = AddressBox.Text;
  70.             _user.RequirementPartner = requirementPartnerBox.Text;
  71.             _user.AboutMe = AboutMeBox.Text;
  72.             File.Delete(_path);
  73.             SerializeXML(_dataBase,_path);
  74.         }
  75.  
  76.         private void LoadData()
  77.         {
  78.             if (File.Exists(_user.ImagePath))
  79.             {
  80.                 pictureBox1.Image = Image.FromFile(_user.ImagePath);
  81.             }
  82.             else
  83.             {
  84.                 pictureBox1.Image = Image.FromFile("accountIco.png");
  85.             }
  86.             FullNameBox.Text = _user.FullName;
  87.             SexCombo.Text = _user.Sex;
  88.             AddressBox.Text = _user.Address;
  89.             requirementPartnerBox.Text = _user.RequirementPartner;
  90.             AboutMeBox.Text = _user.AboutMe;
  91.             IssuedByMask.Text = _pasport.IssuedBy;
  92.             DateIssuedMask.Text = _pasport.DateIssued;
  93.             DateBirthMask.Text = _pasport.DateBirth;
  94.             SeriesMask.Text = _pasport.Series;
  95.             NumberMask.Text = _pasport.Number;
  96.         }
  97.  
  98.         private void SaveDataButton_Click(object sender, EventArgs e)
  99.         {
  100.             SaveUserData();
  101.         }
  102.  
  103.         private void SavePassportDetailsButton_Click(object sender, EventArgs e)
  104.         {
  105.             _pasport.SetData(IssuedByMask.Text,DateIssuedMask.Text,DateBirthMask.Text,SeriesMask.Text,NumberMask.Text);
  106.             File.Delete(_path);
  107.             SerializeXML(_dataBase,_path);
  108.         }
  109.  
  110.         private void ShowLoginButton_Click(object sender, EventArgs e)
  111.         {
  112.             LoginTextBox.Text = _user.Login;
  113.         }
  114.  
  115.         private void ShowPasswordButton_Click(object sender, EventArgs e)
  116.         {
  117.             PasswordTextBox.Text = _user.Password;
  118.         }
  119.  
  120.         private void ChangePasswordButton_Click(object sender, EventArgs e)
  121.         {
  122.             if (PasswordTextBox.Text.Length >= 8)
  123.             {
  124.                 if (PasswordTextBox.Text != _user.Password)
  125.                 {
  126.                     _user.Password = PasswordTextBox.Text;
  127.                     File.Delete(_path);
  128.                     SerializeXML(_dataBase,_path);
  129.                 }
  130.                 else
  131.                 {
  132.                     MessageBox.Show("Напишите другой пароль");
  133.                 }
  134.             }
  135.             else
  136.             {
  137.                 MessageBox.Show("Пароль слишком короткий");
  138.             }
  139.         }
  140.  
  141.         private void SerializeXML(DataBase database, string path)
  142.         {
  143.             XmlSerializer xmlSerializer = new XmlSerializer(typeof(DataBase));
  144.  
  145.             using (FileStream fileStream = new FileStream(path, FileMode.OpenOrCreate))
  146.             {
  147.                 xmlSerializer.Serialize(fileStream, database);
  148.             }
  149.         }
  150.  
  151.         private void SearchYouLiketextBox_KeyPress(object sender, KeyPressEventArgs e)
  152.         {
  153.             if (e.KeyChar == (char)Keys.Return)
  154.             {
  155.                 _dataBase.ShowDataByAttribute(_user.YouLike,SearchYouLiketextBox.Text,YouLikeListView);
  156.             }
  157.         }
  158.  
  159.         private void searchYouLikedTextBox_TextChanged(object sender, EventArgs e)
  160.         {
  161.            
  162.         }
  163.  
  164.         private void searchYouLikedTextBox_KeyPress(object sender, KeyPressEventArgs e)
  165.         {
  166.             if (e.KeyChar == (char)Keys.Return)
  167.             {
  168.                 _dataBase.ShowDataByAttribute(_user.YouLiked, searchYouLikedTextBox.Text, YouLikedListView);
  169.             }
  170.         }
  171.  
  172.         private void ShowNextPartner()
  173.         {
  174.             if (_user.Sex == "Женский")
  175.             {
  176.                 if (_users.Count > 1)
  177.                 {
  178.                     try
  179.                     {
  180.                         _selectedUser = _suggestions.First(u => u.Sex == "Мужской" && u != _user);
  181.                         ShowDataPartner(_selectedUser);
  182.                     }
  183.                     catch (Exception)
  184.                     {
  185.                         MessageBox.Show("Предложения с мужчинами закончились");
  186.                         _selectedUser = null;
  187.                     }
  188.                 }
  189.                 else
  190.                 {
  191.                     MessageBox.Show("Предложения закончились");
  192.                     _selectedUser = null;
  193.                 }
  194.             }
  195.  
  196.             if (_user.Sex == "Мужской")
  197.             {
  198.                 if (_users.Count > 1)
  199.                 {
  200.                     try
  201.                     {
  202.                         _selectedUser = _suggestions.First(u => u.Sex == "Женский" && u != _user);
  203.                         ShowDataPartner(_selectedUser);
  204.                     }
  205.                     catch (Exception)
  206.                     {
  207.                         MessageBox.Show("Предложения с девушками закончились");
  208.                         _selectedUser = null;
  209.                     }
  210.                 }
  211.                 else
  212.                 {
  213.                     MessageBox.Show("Предложения закончились");
  214.                     _selectedUser = null;
  215.                 }
  216.             }
  217.         }
  218.  
  219.         private void ShowDataPartner(User user)
  220.         {
  221.             pictureBox2.Image = Image.FromFile(user.ImagePath);
  222.             fullNameLabel.Text = $"ФИО: {user.FullName}";
  223.             SexLabel.Text = $"Пол: {user.Sex}";
  224.             addressLabel.Text = $"Адрес: {user.Address}";
  225.             reqPartnerLabel.Text = $"Требования: {user.RequirementPartner}";
  226.             richTextBox1.Text = $"О себе {user.AboutMe}";
  227.         }
  228.  
  229.         private void button1_Click(object sender, EventArgs e)
  230.         {
  231.             if (_selectedUser != null)
  232.             {
  233.                 _user.AddYouLike(_selectedUser);
  234.                 _selectedUser.AddYouLiked(_user);
  235.                 File.Delete(_path);
  236.                 SerializeXML(_dataBase, _path);
  237.                 _suggestions.Remove(_selectedUser);
  238.                 ShowNextPartner();
  239.                 YouLikeListView.Items.Clear();
  240.                 ShowUsers(_user.YouLike,YouLikeListView);
  241.             }
  242.             else
  243.             {
  244.                 MessageBox.Show("Предложения закончились");
  245.             }
  246.         }
  247.  
  248.         private void ShowUsers(List<string[]> users, ListView listView)
  249.         {
  250.             ListViewItem items = null;
  251.  
  252.             for (int i = 0; i < users.Count; i++)
  253.             {
  254.                 if (users[i] != null)
  255.                 {
  256.                     items = new ListViewItem(new string[] { (i+1).ToString(),
  257.                         users[i][0],
  258.                         users[i][1],
  259.                         users[i][2],
  260.                         users[i][3],
  261.                         users[i][4],
  262.                     });
  263.                     listView.Items.Add(items);
  264.                 }
  265.             }
  266.         }
  267.  
  268.         private void button2_Click(object sender, EventArgs e)
  269.         {
  270.             _suggestions.Remove(_selectedUser);
  271.             ShowNextPartner();
  272.         }
  273.  
  274.         private void YouLikeListView_ColumnClick(object sender, ColumnClickEventArgs e)
  275.         {
  276.             ListView lsw = (ListView)sender;
  277.  
  278.             if (e.Column == ListViewItemComparer.SortColumn)
  279.             {
  280.                 if (ListViewItemComparer.Order == SortOrder.Ascending)
  281.                 {
  282.                     ListViewItemComparer.Order = SortOrder.Descending;
  283.                 }
  284.                 else
  285.                 {
  286.                     ListViewItemComparer.Order = SortOrder.Ascending;
  287.                 }
  288.             }
  289.             else
  290.             {
  291.                 ListViewItemComparer.SortColumn = e.Column;
  292.                 ListViewItemComparer.Order = SortOrder.Ascending;
  293.             }
  294.             this.YouLikeListView.ListViewItemSorter = new ListViewItemComparer(e.Column);
  295.         }
  296.  
  297.         private void YouLikedListView_ColumnClick(object sender, ColumnClickEventArgs e)
  298.         {
  299.             ListView lsw = (ListView)sender;
  300.  
  301.             if (e.Column == ListViewItemComparer.SortColumn)
  302.             {
  303.                 if (ListViewItemComparer.Order == SortOrder.Ascending)
  304.                 {
  305.                     ListViewItemComparer.Order = SortOrder.Descending;
  306.                 }
  307.                 else
  308.                 {
  309.                     ListViewItemComparer.Order = SortOrder.Ascending;
  310.                 }
  311.             }
  312.             else
  313.             {
  314.                 ListViewItemComparer.SortColumn = e.Column;
  315.                 ListViewItemComparer.Order = SortOrder.Ascending;
  316.             }
  317.             this.YouLikedListView.ListViewItemSorter = new ListViewItemComparer(e.Column);
  318.         }
  319.  
  320.         private void button3_Click(object sender, EventArgs e)
  321.         {
  322.             YouLikeListView.Items.Clear();
  323.             ShowUsers(_user.YouLike,YouLikeListView);
  324.         }
  325.  
  326.         private void button4_Click(object sender, EventArgs e)
  327.         {
  328.             YouLikedListView.Items.Clear();
  329.             ShowUsers(_user.YouLiked,YouLikedListView);
  330.         }
  331.     }
  332. }
  333.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement