/// <summary> /// Добавление в базу данных данные о новом пользователе /// </summary> public static void CreateNewPerson() { thisWindow.Dispatcher.Invoke(new ThreadStart(() => { OperationServer.SendMsgClient(512, 3, username.Text, passwords[0].Password, email.Text); })); }
/// <summary> /// Определяет состояние подписки /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void SubOrUnsub(object sender, RoutedEventArgs e) { Button but = (sender as Button); if (but.Content.Equals("Подписаться")) { OperationServer.SendMsgClient(256, 2003, Profile.profileUser.login, Person.thisUser.login, true); IsSubscribe(but, false); } else { OperationServer.SendMsgClient(256, 2003, Profile.profileUser.login, Person.thisUser.login, false); IsSubscribe(but, true); } DispatcherTimer timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(10) }; but.IsEnabled = false; timer.Tick += (s, es) => { but.IsEnabled = true; timer.Stop(); }; timer.Start(); }
/// <summary> /// Выход в окно входа /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void LogoutUser(object sender, RoutedEventArgs e) { OperationServer.SendMsgClient(128, -1, Person.thisUser.login); Person.thisUser.email = null; (new Authorization()).Show(); Close(); }
/// <summary> /// Загрузка окна /// </summary> /// <param name="sender">Окно</param> /// <param name="e">Загрузка</param> private void Start(object sender, RoutedEventArgs e) { signUpGrid.Margin = new Thickness(signUpGrid.ActualWidth, 0, 0, 0); signUpGrid.Visibility = Visibility.Visible; passwords = new PasswordBox[2] { signUpPass1TB, signUpPass2TB }; username = signUpUserTB; email = signUpMailTB; Application.Current.Exit += (s, es) => { if (OperationServer.thread != null) { OperationServer.thread.Abort(); } if (OperationServer.serverSocket != null) { if (Person.thisUser.login != null) { OperationServer.SendMsgClient(4, -1, Person.thisUser.login); } OperationServer.serverSocket.Close(); } }; }
/// <summary> /// Установка контента /// </summary> /// <param name="profile">Окно</param> /// <param name="person">Профиль пользователя</param> public static void SetPanels(Profile profile, Person person) { profile.Dispatcher.Invoke(new ThreadStart(async() => { OperationServer.SendMsgClient(256, 2004, person.login, Person.thisUser.login); try { profile.imageRec.Fill = new ImageBrush(new BitmapImage(new Uri(person.image, UriKind.Absolute))); } catch { profile.imageRec.Fill = new ImageBrush(new BitmapImage(new Uri("https://api.icons8.com/download/bc2e75add07ff32fbbe55b371c9f3a03ee46846a/windows8/PNG/512/Users/user_male-512.png", UriKind.Absolute))); } profile.loginUser.Content = person.login; profile.fioUser.Text = person.lastname + " " + person.name; profile.emailUser.Text = person.email; profile.levelUser.Content = $"Ур : {person.level}"; profile.noteUser.Text = person.note; profile.countProject.Content = $"Количество проектов : {person.countProject}"; profile.countLikeUser.Content = person.likes; profile.countSub.Content = $"Количество подписчиков : {person.countSub}"; await PersonalArea.SetStatisticPublicUser(profile.statisticPublic, person); SetProjectList(profile, person.listProject); })); }
/// <summary> /// Повторная отправка сообщения с кодом на почту пользователя /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void SendMessageMail(object sender, RoutedEventArgs e) { OperationServer.SendMsgClient(128, 102, mailU); codeText.Text = codeText.Text.Remove(codeText.Text.Length - 5, 5); SetTimer(); (sender as Button).IsEnabled = false; }
/// <summary> /// Отправка данных на сервер /// </summary> /// <param name="idProject">id проекта</param> /// <param name="nameProject">Имя проекта</param> private void SendInfo(int idProject, string nameProject) { int viewApp = comboBoxTypeProj.SelectedIndex; string hrefImage = hrefImageTb.Text; string note = new TextRange(noteTextBox.Document.ContentStart, noteTextBox.Document.ContentEnd).Text; OperationServer.SendMsgClient(520, 10, idProject, nameProject, viewApp + 1, note, hrefImage); SetHiddenSettingsPanel(); }
/// <summary> /// Регистрация нового пользователя /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void SignUp(object sender, RoutedEventArgs e) { OperationServer.Connected(); if (CheckValidVisitorAsync()) { //Если данные валидны, то сервер отошлет данные на клиент и регистрация будет успешно завершена; OperationServer.SendMsgClient(512, 2, username.Text, email.Text); } }
/// <summary> /// Отображение панели с настройками проекта /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void ShowSettingsPanel(object sender, RoutedEventArgs e) { if (comboBoxTypeProj.Items.Count <= 0) { OperationServer.SendMsgClient(32, 8); // Получение списка категорий проекта; } else { OperationServer.SendMsgClient(256, 9, Person.thisUser.login, (listViewProjects.SelectedValue as Project.MyItemProject).nameProject); } }
/// <summary> /// Переход в личный кабинет /// </summary> public static void GoToPersonalArea() { thisWindow.Dispatcher.Invoke(new ThreadStart(() => { Person.thisUser.login = thisWindow.userNameTB.Text; Person.thisUser.listProject = new System.Collections.Generic.List <Project>(); OperationServer.SendMsgClient(128, 1005, Person.thisUser.login, true); (new PersonalArea()).Show(); thisWindow.Close(); })); }
} // Список людей который возможно будут интересны; #region События на ui элементах /// <summary> /// Загрузка окна /// </summary> /// <param name="sender">Window</param> /// <param name="e">Loaded</param> private void Start(object sender, RoutedEventArgs e) { // Получение списока проектов с лучшим рейтингом OperationServer.SendMsgClient(32, 2001); levelUser.Content = $"Level : {Person.thisUser.level}"; nameUserLB.Text = Person.thisUser.login; try { imageUser.Fill = new ImageBrush(new BitmapImage(new Uri(Person.thisUser.image, UriKind.Absolute))); } catch { } }
/// <summary> /// Загрузка окна /// </summary> /// <param name="sender">Window</param> /// <param name="e">Loaded</param> private void Start(object sender, RoutedEventArgs e) { thisWindow = this; try { imageThisUser.Fill = new ImageBrush(new BitmapImage(new Uri(Person.thisUser.image, UriKind.Absolute))); } catch { imageThisUser.Fill = new ImageBrush(new BitmapImage(new Uri("https://api.icons8.com/download/bc2e75add07ff32fbbe55b371c9f3a03ee46846a/windows8/PNG/512/Users/user_male-512.png", UriKind.Absolute))); } profileUser.listProject = new List <Project>(); // Получение списков проектов; OperationServer.SendMsgClient(128, 1005, profileUser.login, false); // Получение информации о пользователеl OperationServer.SendMsgClient(128, 4, profileUser.login, false); }
/// <summary> /// Загрузка окна /// </summary> /// <param name="sender">Окно</param> /// <param name="e">Загрузка</param> private void Start(object sender, RoutedEventArgs e) { if (Person.thisUser.email == null) { OperationServer.SendMsgClient(64, 4, Person.thisUser.login, true); } else { SetPersonalInfo(); } loginUser.Content = Person.thisUser.login; }
/// <summary> /// Подтверждение ввода восстановительного кода /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void СonfirmRecovery(object sender, RoutedEventArgs e) { if (code.Text.Equals(codeU.ToString())) { MessageBox.Show("Пароль отправлен вам на почту"); OperationServer.SendMsgClient(128, 103, mailU); Close(); } else { MessageBox.Show("Неверно введен код!"); } }
///// <summary> ///// Обновляет таблицу с проектами ///// </summary> ///// <param name="myItems">Данные которые будут отображатся в ListView</param> //private static void RefreshListView(List<MyItemProject> myItems) //{ // listStatic.ItemsSource = myItems; // listStatic.Items.Refresh(); //} /// <summary> /// Загрузка выбранного файла /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void DownloadFile(object sender, RoutedEventArgs e) { listViewProjects.SelectedIndex = Int32.Parse((sender as Button).Tag.ToString()) - 1; foreach (var selectValue in myItems) { if (selectValue.Equals((MyItemProject)listViewProjects.SelectedValue)) { OperationServer.SendMsgClient(256, 1006, Person.thisUser.login, selectValue.nameProject); break; } } IsEnabledForm(false); }
/// <summary> /// Удаляет выбранный проект в listView /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void DeleteProject(object sender, RoutedEventArgs e) { if ((sender as Button).Tag != null) { listViewProjects.SelectedIndex = Int32.Parse((sender as Button).Tag.ToString()) - 1; } foreach (var selectValue in myItems) { if (selectValue.Equals((MyItemProject)listViewProjects.SelectedValue)) { OperationServer.SendMsgClient(128, 1004, selectValue.nameProject); break; } } int elementDelete = -1; // Элемент в массиве который будет удалён; int temp = -1; foreach (var item in Person.thisUser.listProject) { if (elementDelete != -1) { item.projectSettings.idProject--; } else { temp++; } if (item.projectSettings.Equals((MyItemProject)listViewProjects.SelectedValue)) { // Person.listProject.Remove(item); elementDelete = temp; } } Person.thisUser.countProject--; Person.thisUser.listProject.RemoveAt(elementDelete); myItems?.Remove((MyItemProject)listViewProjects.SelectedValue); // RefreshListView(myItems); MessageBox.Show("Проект успешно удален!"); }
/// <summary> /// Выбор проекта в списке /// </summary> /// <param name="sender">ListBox</param> /// <param name="e">SelectionChanged</param> private void SelectProject(object sender, SelectionChangedEventArgs e) { if (listViewProjects.SelectedValue != null) { settingButProject.IsEnabled = true; deleteButProject.IsEnabled = true; if (settingsPanel.Visibility == Visibility.Visible) { nameProjTB.IsEnabled = false; //Установка данных на настройки проекта OperationServer.SendMsgClient(256, 9, Person.thisUser.login, (listViewProjects.SelectedValue as Project.MyItemProject).nameProject); } } else { settingButProject.IsEnabled = false; deleteButProject.IsEnabled = false; } }
/// <summary> /// Отправка на сервер информацию о пользователе /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void ConfirmInfoUser(object sender, RoutedEventArgs e) { if (changeInfoUser) { if (StyleUIE.regex.IsMatch(emailUser.Text)) { if (nameUser.Text.Replace(" ", "").Length > 0) { if (lastnameUser.Text.Replace(" ", "").Length > 0) { /// Если пользователь впевые вводит данные string note = new TextRange(noteUser.Document.ContentStart, noteUser.Document.ContentEnd).Text; if (Person.thisUser.name == null) { OperationServer.SendMsgClient(1024, 6, Person.thisUser.login, nameUser.Text, lastnameUser.Text, CheckRefImage(refImage.Text), emailUser.Text, note); } else { OperationServer.SendMsgClient(1024, 7, Person.thisUser.login, nameUser.Text, lastnameUser.Text, CheckRefImage(refImage.Text), emailUser.Text, note); } IsEnabledObject(false); SetInfoAboutPerson(); } else { MessageBox.Show("Введите фамилию!"); } } else { MessageBox.Show("Введите имя!"); } } else { MessageBox.Show("Неверный формат введенной почты!"); } } }
/// <summary> /// Переход на следующие окно /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void MoveWindow(object sender, RoutedEventArgs e) { Button but = (sender as Button); if (but.Name.Equals("persArea")) { (new PersonalArea()).Show(); } else if (but.Name.Equals("persProj")) { (new YourProject()).Show(); } else { OperationServer.SendMsgClient(128, -1, Person.thisUser.login); Person.thisUser.email = null; (new Authorization()).Show(); } Close(); }
/// <summary> /// Поиск людей /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void SearchPeople(object sender, RoutedEventArgs e) { if (searchTB.Text.Trim().Length > 0) { searchListBox.ItemsSource = null; searchNull.Visibility = Visibility.Hidden; listSearchPeople = new List <Person>(); (sender as Button).IsEnabled = false; DispatcherTimer timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(10) }; timer.Tick += (s, es) => { (sender as Button).IsEnabled = true; timer.Stop(); }; timer.Start(); OperationServer.SendMsgClient(512, 2000, searchTB.Text); } }
/// <summary> /// Отображение панели с кодом потверждения /// </summary> /// <param name="isVisibility">Состояние отображения</param> public void ShowPanelCode(bool isVisibility) { thisWindow.Dispatcher.BeginInvoke(new ThreadStart(() => { if (isVisibility) { panelCode.Visibility = Visibility.Visible; butOk.Visibility = Visibility.Hidden; errorLb.Visibility = Visibility.Hidden; textMsg.Text = textMsg.Text.Replace("###", emailTB.Text.Trim()); SetTimer(); this.BeginAnimation(HeightProperty, StyleUIE.DoubleAnimation(this.ActualHeight, TimeSpan.FromMilliseconds(450), 450)); OperationServer.SendMsgClient(128, 102, mailU); } else { double opacity = 0; DispatcherTimer timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(30) }; errorLb.Visibility = Visibility.Visible; butOk.IsEnabled = false; timer.Tick += (s, e) => { errorLb.Opacity = opacity += 0.05; if (opacity >= 1) { butOk.IsEnabled = true; timer.Stop(); } }; timer.Start(); } })); }
/// <summary> /// Нажатие на OK /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void OkBut(object sender, RoutedEventArgs e) { mailU = emailTB.Text; OperationServer.SendMsgClient(128, 101, mailU); }
/// <summary> /// Открытие окна с восстановлением пароля /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void RecoveryPassword(object sender, RoutedEventArgs e) { OperationServer.Connected(); (new SendMailPass()).ShowDialog(); }
/// <summary> /// Вход в личный кабинет /// </summary> /// <param name="sender">Button</param> /// <param name="e">Click</param> private void SignIn(object sender, RoutedEventArgs e) { (sender as Button).IsEnabled = false; OperationServer.Connected(); OperationServer.SendMsgClient(256, 1, userNameTB.Text, passwordPB.Password); }