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);
            }
        }
        private static SPElemento CreaElementoObbligatorio(SchedeProcessoDS.SPELEMENTIOBBLIGATORIRow riga)
        {
            if (riga == null)
            {
                return(null);
            }
            SPElemento elemento = new SPElemento();

            elemento.IdSPElemento  = riga.IDSPELEMENTOOBBLIGATORIO;
            elemento.IdSPControllo = riga.IsIDSPCONTROLLONull() ? -1 : riga.IDSPCONTROLLO;
            elemento.IdSPMaster    = -1;
            elemento.Testo         = riga.IsTESTONull() ? string.Empty : riga.TESTO;
            elemento.Tipo          = riga.TIPOELEMENTO;
            elemento.Sequenza      = riga.SEQUENZA;
            elemento.Obbligatorio  = riga.IsOBBLIGATORIONull() ? false : riga.OBBLIGATORIO;
            elemento.ElementoObbligatorioMaster = true;
            elemento.Cancellato     = riga.CANCELLATO;
            elemento.DataModifica   = riga.DATAMODIFICA;
            elemento.UtenteModifica = riga.UTENTEMODIFICA;

            if (elemento.Tipo == TipoSPElemento.CONTROLLO)
            {
                elemento.Controllo = SPControllo.EstraiSPControllo(elemento.IdSPControllo);
            }

            return(elemento);
        }