/// <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); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// 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); }
/// <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); }
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; }
/// <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); }