public static List <TreeViewModel> SetTree(bool IsUpdate = false, Project pr = null) { List <TreeViewModel> treeView = new List <TreeViewModel>(); Configuration config = (App.Current as App).config; TcpClient eClient = new TcpClient(); List <int> stInProj = new List <int>(); try { eClient = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = eClient.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_GROUPS; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); bool fl = (bool)formatter.Deserialize(writerStream); if (fl) { var dic = (Dictionary <string, int>)formatter.Deserialize(writerStream); foreach (var i in dic) { TreeViewModel tv = new TreeViewModel(i.Key, i.Value); treeView.Add(tv); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { eClient.Close(); } if (IsUpdate) { TcpClient Client1 = new TcpClient(); try { Client1 = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = Client1.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_STUDENTS_ID_BY_PARENT; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); formatter.Serialize(writerStream, pr.ID); stInProj = (List <int>)formatter.Deserialize(writerStream); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Client1.Close(); } } foreach (var i in treeView) { List <TreeViewModel> tvmCollection = new List <TreeViewModel>(); TcpClient Client = new TcpClient(); if (!IsUpdate) { try { Client = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = Client.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_STUDENTS_NAME_BY_GROUP; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); formatter.Serialize(writerStream, i.Name); bool fl = (bool)formatter.Deserialize(writerStream); if (fl) { var dic = (List <StringToInt>)formatter.Deserialize(writerStream); foreach (var j in dic) { TreeViewModel tv = new TreeViewModel(j.Key, j.Value); tvmCollection.Add(tv); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Client.Close(); } } else { try { Client = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = Client.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_STUDENTS_NAME_BY_GROUP; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); formatter.Serialize(writerStream, i.Name); bool fl = (bool)formatter.Deserialize(writerStream); if (fl) { var dic = (List <StringToInt>)formatter.Deserialize(writerStream); foreach (var j in dic) { TreeViewModel tv = new TreeViewModel(j.Key, j.Value); // todo поправить ибо не все галочки доставятся ибо они перенты if (stInProj.Contains(j.Value)) { tv.SetIsChecked(true, false, false); } tvmCollection.Add(tv); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Client.Close(); } } i.Children = tvmCollection; } return(treeView); }
public static List<TreeViewModel> SetTree(bool IsUpdate = false, Project pr = null) { List<TreeViewModel> treeView = new List<TreeViewModel>(); Configuration config = (App.Current as App).config; TcpClient eClient = new TcpClient(); List<int> stInProj = new List<int>(); try { eClient = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = eClient.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_GROUPS; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); bool fl = (bool)formatter.Deserialize(writerStream); if (fl) { var dic = (Dictionary<string, int>)formatter.Deserialize(writerStream); foreach (var i in dic) { TreeViewModel tv = new TreeViewModel(i.Key, i.Value); treeView.Add(tv); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { eClient.Close(); } if (IsUpdate) { TcpClient Client1 = new TcpClient(); try { Client1 = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = Client1.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_STUDENTS_ID_BY_PARENT; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); formatter.Serialize(writerStream, pr.ID); stInProj = (List<int>) formatter.Deserialize(writerStream); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Client1.Close(); } } foreach (var i in treeView) { List<TreeViewModel> tvmCollection =new List<TreeViewModel>(); TcpClient Client = new TcpClient(); if (!IsUpdate) { try { Client = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = Client.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_STUDENTS_NAME_BY_GROUP; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); formatter.Serialize(writerStream, i.Name); bool fl = (bool)formatter.Deserialize(writerStream); if (fl) { var dic = (List<StringToInt>)formatter.Deserialize(writerStream); foreach (var j in dic) { TreeViewModel tv = new TreeViewModel(j.Key, j.Value); tvmCollection.Add(tv); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Client.Close(); } } else { try { Client = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = Client.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_STUDENTS_NAME_BY_GROUP; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); formatter.Serialize(writerStream, i.Name); bool fl = (bool)formatter.Deserialize(writerStream); if (fl) { var dic = (List<StringToInt>)formatter.Deserialize(writerStream); foreach (var j in dic) { TreeViewModel tv = new TreeViewModel(j.Key, j.Value); // todo поправить ибо не все галочки доставятся ибо они перенты if(stInProj.Contains(j.Value)) tv.SetIsChecked(true, false, false); tvmCollection.Add(tv); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Client.Close(); } } i.Children = tvmCollection; } return treeView; }
public AddProjectWindow(CurrentWindow cw, Project pr = null) { InitializeComponent(); _currentWindow = cw; proj = pr; // TODO добавить для курсовіх, діпломніх switch (_currentWindow) { case CurrentWindow.CreateLab: this.Title = "Створення лабораторних робіт"; GreyName.Text = "Назва лабораторної роботи"; break; case CurrentWindow.CreateRgr: this.Title = "Створення РГР"; GreyName.Text = "Назва розрахункової роботи"; break; case CurrentWindow.EditRgr: this.Title = "Редагування РГР"; break; case CurrentWindow.EditLab: this.Title = "Редагування лабораторних робіт"; break; } if (cw == CurrentWindow.CreateLab || cw == CurrentWindow.CreateRgr) { treeView1.ItemsSource = TreeViewModel.SetTree(); } else if (cw == CurrentWindow.EditLab || cw == CurrentWindow.EditRgr) { treeView1.ItemsSource = TreeViewModel.SetTree(true, pr); } Configuration config = (App.Current as App).config; TcpClient eClient = new TcpClient(); try { eClient = new TcpClient(config.IP.ToString(), config.Port); using (NetworkStream writerStream = eClient.GetStream()) { MSG message = new MSG(); message.stat = STATUS.GET_SUBJECTS; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(writerStream, message); bool fl = (bool)formatter.Deserialize(writerStream); if (fl) { _subjectsCollection = (Dictionary <string, int>)formatter.Deserialize(writerStream); foreach (var subject in _subjectsCollection) { Subject.Items.Add(subject.Key); } } else { // TODO возможен баг из-за закрытия в конструкторе MessageBox.Show("Помилка з'єднання з сервером"); this.Close(); } if (_currentWindow == CurrentWindow.EditLab || _currentWindow == CurrentWindow.EditRgr) { try { Subject.SelectedItem = proj.Subject; } catch (Exception) { if (Subject.Items.Count > 0) { Subject.SelectedIndex = 0; } } Name.Text = proj.Theme; FlowDocument document = new FlowDocument(); Paragraph paragraph = new Paragraph(); paragraph.Inlines.Add(new Bold(new Run(proj.Description))); document.Blocks.Add(paragraph); Description.Document = document; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { eClient.Close(); } }