public NuovoPreventivoCostoFrm(PreventivoModel preventivoModel, int versioni, string account)
 {
     _preventivoModel = preventivoModel;
     _versioni        = versioni + 1;
     _account         = account;
     InitializeComponent();
 }
        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtDescrizione.Text))
            {
                lblMessaggio.Text = "La descrizione è obbligaoria";
                return;
            }

            if (chkCopiaPrecedente.Checked && ddlVersionePrecedente.SelectedIndex == -1)
            {
                lblMessaggio.Text = "Selezionare la versione precedente da copiare";
                return;
            }
            lblMessaggio.Text = string.Empty;
            Articolo articolo = new Articolo(string.Empty);

            lblMessaggio.Text = articolo.CreaPreventivo(_versioni, txtDescrizione.Text, _prodottoFinito.IdProdottoFinito, txtNota.Text, _account);

            if (!chkCopiaPrecedente.Checked)
            {
                return;
            }

            Articolo a = new Articolo();
            List <PreventivoModel> lista            = a.CreaListaPreventivoModel(_prodottoFinito.IdProdottoFinito);
            PreventivoModel        preventivoCreato = lista.Where(x => x.ProdottoFinito.IdProdottoFinito == _prodottoFinito.IdProdottoFinito && x.Versione == _versioni).FirstOrDefault();

            PreventivoModel preventivoDaCopiare = (PreventivoModel)ddlVersionePrecedente.SelectedItem;

            a.ModificaPreventivo(preventivoCreato.IdPreventivo, preventivoCreato.Processo.IdProcesso, preventivoCreato.Nota, _account);

            List <ElementoPreventivoModel> elementiDaCopiare = a.CreaListaElementoPreventivoModel(preventivoDaCopiare.IdPreventivo);
            List <ElementoPreventivoModel> elementiNuovi     = new List <ElementoPreventivoModel>();

            foreach (ElementoPreventivoModel elemento in elementiDaCopiare.Where(x => x.IdPadre == -1))
            {
                copiaElemento(elementiNuovi, elemento, -1, preventivoCreato.IdPreventivo, elementiDaCopiare);
            }
            a.SalvaElementiPreventivo(elementiNuovi, preventivoCreato.IdPreventivo, _account);
        }