コード例 #1
0
        private void buttonConvalida_Click(object sender, EventArgs e)
        {
            #region controlliEventi
            bool controlPassed = true;
            errorProviderEvento.Clear();
            if (String.IsNullOrEmpty(txtNomeEvento.Text) || String.IsNullOrWhiteSpace(txtNomeEvento.Text))
            {
                errorProviderEvento.SetError(txtNomeEvento, "Inserire il nome evento");
                controlPassed = false;
            }
            if (dateTimePickerFineEvento.Value.CompareTo(dateTimePickerInizioEvento.Value) <= 0)
            {
                errorProviderEvento.SetError(dateTimePickerFineEvento, "La Data di fine evento deve essere futura a quella di inizio evento");
                controlPassed = false;
            }
            if (dateTimePickerInizioEvento.Value <= DateTime.Now)
            {
                errorProviderEvento.SetError(dateTimePickerInizioEvento, "La Data di inizio evento deve essere futura");
                controlPassed = false;
            }
            int result;
            if (!Int32.TryParse(txtGradoDiRischio.Text, out result) || result < 1 || result > 10)
            {
                errorProviderEvento.SetError(txtGradoDiRischio, "Inserire un numero da 1 a 10");
                controlPassed = false;
            }
            if (checkListSettoriAperti.CheckedIndices.Count == 0)
            {
                errorProviderEvento.SetError(checkListSettoriAperti, "Devi selezionare almeno un settore da includere");
                controlPassed = false;
            }
            #endregion

            if (controlPassed)
            {
                partita = new Evento(txtNomeEvento.Text, dateTimePickerInizioEvento.Value, dateTimePickerFineEvento.Value, result, disposizionePersonale.Keys.ToList());
                foreach (ISettore set in disposizionePersonale.Keys.ToList())
                {
                    partita.AddAssegnamentiSettore(set, DisposizionePersonale[set]);
                }
                try
                {
                    partita.Accept(new RegolaCoordinatore());
                    partita.Accept(new RegolaSteward());
                    partita.Accept(new RegolaCapoUnita());
                    partita.Accept(new GeneraPOS());

                    MessageBox.Show("Convalida Effettuata, POS generato!", "", MessageBoxButtons.OK);
                    _buttonSalva.Enabled = true;
                }
                catch (ViolatedRuleException ruleExc)
                {
                    MessageBox.Show(ruleExc.Message);
                }
                catch (NullReferenceException nullExc)
                {
                    MessageBox.Show("L'evento non è stato creato");
                }
            }
        }