Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        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();
            }
        }