private void btnGenera_Click(object sender, RoutedEventArgs e) { if (datePickerFrom.SelectedDate > datePickerTo.SelectedDate) { MessageBox.Show("La data iniziale deve precedere quella finale", "Errore nella selezione del periodo", MessageBoxButton.OK, MessageBoxImage.Error); return; } //controlla se ci sono soggiorni senza schedine associate nel periodo selezionato var slist = dag.cercaSoggiorniNonCheckedInForIstat((DateTime)datePickerFrom.SelectedDate, (DateTime)datePickerTo.SelectedDate); if (slist.Count > 0) { var result = MessageBox.Show("Ci sono soggiorni senza schede di notifica nel periodo selezionato." + Environment.NewLine + "Li vuoi modificare prima di generare il file?", "Schede di notifica mancanti", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { soggiorniNonCheckedIn = new ObservableCollection<Soggiorno>(slist); dataGridSoggiorni.DataContext = soggiorniNonCheckedIn; return; } } //raccolgo i dati sulle provenienze dei clienti con scheda di notifica associata ad un soggiorno //dentro il range selezionato //(solo soggiorni con IsCheckedIn = true...non servirebbe ma per sicurezza lo faccio lo stesso) List<SchedaNotifica> schedeNotif = dag.cercaSchedeNotificaPerIstat((DateTime)datePickerFrom.SelectedDate, (DateTime)datePickerTo.SelectedDate); if (schedeNotif.Count == 0) { MessageBox.Show("Non ci sono schede di notifica registrate nel periodo selezionato", "Nessuna scheda di notifica presente", MessageBoxButton.OK, MessageBoxImage.Information); return; } //generazione file per ricestat ISTAT pfg = new PresenzeFileGenerator(schedeNotif); var savefiledlg = new SaveFileDialog(); savefiledlg.DefaultExt = "txt"; savefiledlg.FileName = "presenze_" + ((DateTime)datePickerFrom.SelectedDate).ToString("dd-MM-yyyy") + "_" + ((DateTime)datePickerTo.SelectedDate).ToString("dd-MM-yyyy"); savefiledlg.Filter = "File di testo (.txt)|*.txt"; Nullable<bool> dlgresult = savefiledlg.ShowDialog(); if (dlgresult == true) { //faccio i calcoli solo se spingo salva nella finestra di dialogo System.IO.File.WriteAllText(savefiledlg.FileName, pfg.getTxtFileText((DateTime)datePickerFrom.SelectedDate, (DateTime)datePickerTo.SelectedDate) ); this.DialogResult = true; } }
private void btnGenera_Click(object sender, RoutedEventArgs e) { int anno = 0; try { anno = int.Parse(txtboxAnno.Text); } catch (FormatException ex) { MessageBox.Show("L'anno dev'essere un numero intero", "Formato anno errato", MessageBoxButton.OK, MessageBoxImage.Error); return; } int mese = mesi[cbxMese.Text]; DateTime arrivoDa = new DateTime(anno, mese, 1); DateTime arrivoA = arrivoDa.AddMonths(1).AddDays(-1); //controlla se ci sono soggiorni senza schedine associate nel periodo selezionato var slist = dag.cercaSoggiorniNonCheckedInForIstat(arrivoDa, arrivoA); if (slist.Count > 0) { var result = MessageBox.Show("Ci sono soggiorni senza schede di notifica nel mese selezionato." + Environment.NewLine + "Li vuoi modificare prima di generare il file?", "Schede di notifica mancanti", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { soggiorniNonCheckedIn = new ObservableCollection<Soggiorno>(slist); dataGridSoggiorni.DataContext = soggiorniNonCheckedIn; return; } } //raccolgo i dati sulle provenienze dei clienti con scheda di notifica associata ad un soggiorno //dentro il range selezionato //(solo soggiorni con IsCheckedIn = true...non servirebbe ma per sicurezza lo faccio lo stesso) List<SchedaNotifica> schedeNotif = dag.cercaSchedeNotificaPerIstat(arrivoDa, arrivoA); if (schedeNotif.Count == 0) { MessageBox.Show("Non ci sono schede di notifica registrate nel periodo selezionato", "Nessuna scheda di notifica presente", MessageBoxButton.OK, MessageBoxImage.Information); return; } //generazione file per ricestat ISTAT pfg = new PresenzeFileGenerator(mese, anno, schedeNotif); var savefiledlg = new SaveFileDialog(); savefiledlg.DefaultExt = "xml"; savefiledlg.FileName = "presenze_" + cbxMese.Text + "_" + anno.ToString(); savefiledlg.Filter = "File XML (.xml)|*.xml"; Nullable<bool> dlgresult = savefiledlg.ShowDialog(); if (dlgresult == true) { //faccio i calcoli solo se spingo salva nella finestra di dialogo System.IO.File.WriteAllText(savefiledlg.FileName, pfg.getXmlFileText()); this.DialogResult = true; } }