public static SPElemento EstraiElemento(int IdSPElemento, bool ElementoObbligatorioMaster)
        {
            SchedeProcessoDS ds = new SchedeProcessoDS();

            using (SchedeProcessoBusiness bScheda = new SchedeProcessoBusiness())
            {
                ds.SPELEMENTIOBBLIGATORI.Clear();

                if (ElementoObbligatorioMaster)
                {
                    bScheda.GetElementoObbligatorio(ds, IdSPElemento);
                    SchedeProcessoDS.SPELEMENTIOBBLIGATORIRow riga = ds.SPELEMENTIOBBLIGATORI.Where(x => x.IDSPELEMENTOOBBLIGATORIO == IdSPElemento).FirstOrDefault();
                    if (riga != null)
                    {
                        return(CreaElementoObbligatorio(riga));
                    }
                }
                else
                {
                    bScheda.GetElemento(ds, IdSPElemento);
                    SchedeProcessoDS.SPELEMENTIRow riga = ds.SPELEMENTI.Where(x => x.IDSPELEMENTO == IdSPElemento).FirstOrDefault();
                    if (riga != null)
                    {
                        return(CreaElemento(riga));
                    }
                }
                return(null);
            }
        }
        public static void SalvaElemento(int idElemento, int idControllo, int idSPMaster, string testo, string tipo, bool obbligatorio, int sequenza, string account, SchedeProcessoDS ds)
        {
            if (testo.Length > 25)
            {
                testo = testo.Substring(0, 25);
            }

            using (SchedeProcessoBusiness bScheda = new SchedeProcessoBusiness())
            {
                if (!ds.SPELEMENTI.Any(x => x.IDSPELEMENTO == idElemento))
                {
                    bScheda.GetElemento(ds, idElemento);
                }

                SchedeProcessoDS.SPELEMENTIRow riga = ds.SPELEMENTI.Where(x => x.IDSPELEMENTO == idElemento).FirstOrDefault();
                if (idElemento < 0 && riga != null)
                {
                    while (riga != null)
                    {
                        idElemento--;
                        riga = ds.SPELEMENTI.Where(x => x.IDSPELEMENTO == idElemento).FirstOrDefault();
                    }
                }
                if (riga != null)
                {
                    riga.OBBLIGATORIO = obbligatorio;
                    riga.TIPOELEMENTO = tipo;
                    if (tipo == TipoSPElemento.CONTROLLO)
                    {
                        riga.IDSPCONTROLLO = idControllo;
                    }
                    riga.TESTO          = testo;
                    riga.SEQUENZA       = sequenza;
                    riga.DATAMODIFICA   = DateTime.Now;
                    riga.UTENTEMODIFICA = account;
                }
                else
                {
                    riga              = ds.SPELEMENTI.NewSPELEMENTIRow();
                    riga.IDSPMASTER   = idSPMaster;
                    riga.IDSPELEMENTO = idElemento;
                    riga.OBBLIGATORIO = obbligatorio;
                    riga.TESTO        = testo;
                    riga.TIPOELEMENTO = tipo;
                    if (tipo == TipoSPElemento.CONTROLLO)
                    {
                        riga.IDSPCONTROLLO = idControllo;
                    }
                    riga.SEQUENZA       = sequenza;
                    riga.CANCELLATO     = false;
                    riga.DATAMODIFICA   = DateTime.Now;
                    riga.UTENTEMODIFICA = account.ToUpper();
                    ds.SPELEMENTI.AddSPELEMENTIRow(riga);
                }
            }
        }