예제 #1
0
        /// <summary>
        /// Aggiorna gli elementi nella DataGrid:
        /// - aggiunge tutti i progetti presenti e FILTRATI dopo aver svuotato la DataGrid
        /// - mentre scorre i progetti restituisce il primo visualizzato per permettere di selezionarlo durante la ricerca
        /// </summary>
        private Progetto UpdateList(string filter)
        {
            Progetto primo = new Progetto(0, null, null, null, null, null, null);

            if (progettiAll != null)
            {
                Console.WriteLine("Update list1");
                Globals.log.Info("Update list1");
                if (this.FindName("dataGrid") is DataGrid dataGrid)
                {
                    dataGrid.Items.Clear();
                    int i = 0;
                    foreach (Progetto p in progettiAll)
                    {
                        if (p.ToName().IndexOf(filter, 0, StringComparison.CurrentCultureIgnoreCase) != -1)
                        {
                            if (i == 0)
                            {
                                primo = p;
                            }
                            dataGrid.Items.Add(p);
                            i++;
                        }
                    }
                }
            }
            return(primo);
        }
예제 #2
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////                                BOTTONI                                     ///////////////////
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Bottone apertura cartella del filesystem.
        /// Imposta questo come ultimo progetto aperto.
        /// </summary>
        private void Open_Folder(object sender, RoutedEventArgs e)
        {
            DataGrid dataGrid = this.FindName("dataGrid") as DataGrid;
            Progetto p        = dataGrid.SelectedItem as Progetto;
            string   path     = Globals.PROGETTI + p.nomeCliente + @"\" + p.suffisso + p.numero;
            int      n        = Globals.CLIENTI.FindIndex(x => x.getNomeCliente().Equals(p.nomeCliente));

            Globals.CLIENTI[n].setLastId(p.numero);
            Globals.LAST_CLIENT = p.nomeCliente;
            if (Directory.Exists(path))
            {
                System.Diagnostics.Process.Start(path);
            }
        }
        /// <summary>
        /// Metodo che modifica il progetto passato come parametro.
        /// Aggiorna o crea il file docx.
        /// </summary>
        private void modifyProject(Progetto prog)
        {
            prog.sync = false;
            progetti[progetti.FindIndex(r => r.numero == prog.numero)] = prog;
            string msg = "Aggiornato il progetto con indice " + prog.numero;

            Console.WriteLine(msg);
            Globals.log.Info(msg);
            string fileName = Globals.PROGETTI + prog.nomeCliente + @"\" + prog.suffisso + prog.numero + @"\progetto.docx";

            try
            {
                if (!File.Exists(fileName))
                {
                    var doc = Xceed.Words.NET.DocX.Create(fileName);
                    doc.InsertParagraph(prog.nomeCliente + " " + prog.numero).Bold();
                    doc.InsertParagraph("\n TITOLO DEL PROGETTO: " + prog.nome);
                    doc.InsertParagraph("\n TIPO DI PLC: " + prog.tipoPLC);
                    doc.InsertParagraph("\n TIPO DI OP: " + prog.tipoOP);
                    doc.InsertParagraph("\n DATA INIZIO: " + prog.data);
                    doc.InsertParagraph("\n Note:");
                    doc.Save();
                }
                else
                {
                    var doc = Xceed.Words.NET.DocX.Load(fileName);
                    doc.InsertParagraph("Aggiornamento del " + prog.modifica).Bold();
                    doc.InsertParagraph(prog.nomeCliente + " " + prog.numero).Bold();
                    doc.InsertParagraph("\n TITOLO DEL PROGETTO: " + prog.nome);
                    doc.InsertParagraph("\n TIPO DI PLC: " + prog.tipoPLC);
                    doc.InsertParagraph("\n TIPO DI OP: " + prog.tipoOP);
                    doc.InsertParagraph("\n DATA INIZIO: " + prog.data);
                    doc.InsertParagraph("\n Note:");
                    doc.Save();
                }
            }
            catch (IOException)
            {
                string msg2 = "E54 - Il file " + fileName + " non è stato modificato per un problema";
                System.Windows.MessageBox.Show(msg2, "E54", System.Windows.MessageBoxButton.OK,
                                               System.Windows.MessageBoxImage.Error, System.Windows.MessageBoxResult.OK, System.Windows.MessageBoxOptions.RightAlign);
                Globals.log.Error(msg2);
            }
            Globals.log.Info("Modificato progetto" + prog.numero + ") " + prog.nome);
        }
예제 #4
0
        /// <summary>
        /// Richiamato ogni volta che viene modificato il testo nella TextBox di ricerca.
        /// Alla prima chiamata rende il bottone visibile e carica per la prima volta i file.
        /// Aggiorna e filtra la lista e poi seleziona la prima riga visualizzata.
        /// </summary>
        private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            DataGrid dataGrid = this.FindName("dataGrid") as DataGrid;
            Button   button   = this.FindName("BottApri2") as Button;

            if (progettiAll == null)
            {
                ReadProjects();
                button.Visibility        = Visibility.Visible;
                dataGrid.Visibility      = Visibility.Visible;
                Globals.importCsvEnabled = false;
                MenuItem menu      = this.FindName("Menu") as MenuItem;
                MenuItem importCsv = this.FindName("importCsv") as MenuItem;
                menu.Items.Remove(importCsv);
            }
            Progetto ultimo = UpdateList(((TextBox)sender).Text);

            dataGrid.SelectedIndex = 0;
            dataGrid.ScrollIntoView(ultimo);
        }
예제 #5
0
        public Confronto(Progetto prog1, Progetto prog2)
        {
            this.prog1 = prog1;
            this.prog2 = prog2;
            if (prog1 == null)
            {
                prog1 = new Progetto(0, "-", "-", "-", "-", "-", "-");
            }
            if (prog2 == null)
            {
                prog2 = new Progetto(0, "-", "-", "-", "-", "-", "-");
            }

            this.id1            = prog1.numero;
            this.nome1          = prog1.nome ?? throw new ArgumentNullException(nameof(nome1));
            this.dataCreazione1 = prog1.data ?? throw new ArgumentNullException(nameof(dataCreazione1));
            this.scelto1        = false;
            this.id2            = prog2.numero;
            this.nome2          = prog2.nome ?? throw new ArgumentNullException(nameof(nome2));
            this.dataCreazione2 = prog2.data ?? throw new ArgumentNullException(nameof(dataCreazione2));
            this.scelto2        = false;
        }
예제 #6
0
        /// <summary>
        /// Costruttore a cui viene passato  il progetto da modificare
        /// Legge il file tipiPLC.csv
        /// Visualizza i dati relativi a quel progetto
        /// </summary>
        public Form_Modifica(List <Progetto> progetti, Progetto prog)
        {
            this.prog     = prog;
            this.progetti = progetti;
            InitializeComponent();
            label4.Text = "Id" + prog.numero;

            textBox1.Text = prog.nome;
            textBox3.Text = prog.tipoOP;

            foreach (Cliente c in Globals.CLIENTI)
            {
                this.comboBox1.Items.Add(c.getNomeCliente());
            }
            List <string> tipi = readCSV_tipiPLC(Globals.LOG + "tipiPLC.csv");

            foreach (string s in tipi)
            {
                this.comboBox2.Items.Add(s);
            }
            this.comboBox1.SelectedItem = prog.nomeCliente;
            this.comboBox2.SelectedItem = prog.tipoPLC;
        }
        /// <summary>
        /// Metodo che aggiunge il progetto passato come parametro alla lista di progetti
        /// Se il progetto ha indice minore dell'ultimo nella lista viene inserito nella corretta posizione
        /// Altrimenti aggiunto alla fine della lista
        /// Se manca crea cartella di progetto e aggiorna o crea il file docx
        /// </summary>
        private void addProject(Progetto prog)
        {
            prog.sync = false;
            int numCliente = 0;
            int i          = 0;

            foreach (Cliente c in Globals.CLIENTI)
            {
                if (c.getNomeCliente().Equals(prog.nomeCliente))
                {
                    numCliente = i;
                }
                i++;
            }
            if (prog.numero <= progetti.Last().numero)
            {
                int index = -1;
                for (int j = prog.numero; j > 0 && index == -1; j--)
                {
                    index = progetti.FindIndex(r => r.numero == j);
                }
                progetti.Insert(index + 1, prog);
            }
            else
            {
                progetti.Add(prog);
            }
            Globals.CLIENTI[numCliente].setMaxId(progetti.Count);
            Globals.CLIENTI[numCliente].setLastId(prog.numero);
            string msg = "Nuovo progetto con indice: " + prog.numero;

            Console.WriteLine(msg);
            Globals.log.Info(msg);
            try
            {
                Directory.CreateDirectory(Globals.PROGETTI + prog.nomeCliente + @"\" + prog.nomeCliente + prog.numero);
            }
            catch (IOException)
            {
                string msg2 = "E55 - La cartella " + Globals.PROGETTI + prog.nomeCliente + @"\" + prog.nomeCliente + prog.numero + " non è stata creata per un problema";
                System.Windows.MessageBox.Show(msg2, "E55", System.Windows.MessageBoxButton.OK,
                                               System.Windows.MessageBoxImage.Error, System.Windows.MessageBoxResult.OK, System.Windows.MessageBoxOptions.RightAlign);
                Globals.log.Error(msg2);
            }
            string fileName = Globals.PROGETTI + prog.nomeCliente + @"\" + prog.nomeCliente + prog.numero + @"\progetto.docx";

            try
            {
                if (!File.Exists(fileName))
                {
                    var doc = Xceed.Words.NET.DocX.Create(fileName);
                    doc.InsertParagraph(prog.nomeCliente + " " + prog.numero).Bold();
                    doc.InsertParagraph("\n TITOLO DEL PROGETTO: " + prog.nome);
                    doc.InsertParagraph("\n TIPO DI PLC: " + prog.tipoPLC);
                    doc.InsertParagraph("\n TIPO DI OP: " + prog.tipoOP);
                    doc.InsertParagraph("\n DATA INIZIO: " + prog.data);
                    doc.InsertParagraph("\n Note:");
                    doc.Save();
                }
                else
                {
                    var doc = Xceed.Words.NET.DocX.Load(fileName);
                    doc.InsertParagraph("Aggiornamento del " + prog.modifica).Bold();
                    doc.InsertParagraph(prog.nomeCliente + " " + prog.numero).Bold();
                    doc.InsertParagraph("\n TITOLO DEL PROGETTO: " + prog.nome);
                    doc.InsertParagraph("\n TIPO DI PLC: " + prog.tipoPLC);
                    doc.InsertParagraph("\n TIPO DI OP: " + prog.tipoOP);
                    doc.InsertParagraph("\n DATA INIZIO: " + prog.data);
                    doc.InsertParagraph("\n Note:");
                    doc.Save();
                }
            }
            catch (IOException)
            {
                string msg2 = "E56 - Il file " + fileName + " non è stato creato per un problema";
                System.Windows.MessageBox.Show(msg2, "E56", System.Windows.MessageBoxButton.OK,
                                               System.Windows.MessageBoxImage.Error, System.Windows.MessageBoxResult.OK, System.Windows.MessageBoxOptions.RightAlign);
                Globals.log.Error(msg2);
            }
            Globals.log.Info("Aggiunto progetto" + prog.numero + ") " + prog.nome);
        }