public static string SalvaScheda(int idScheda, int IdSPMaster, string anagrafica, string codice, string descrizione, string areaProduzione, string task, List <ElementoScheda> controlli, List <ElementoScheda> obbligatori, string account) { SchedeProcessoDS ds = new SchedeProcessoDS(); using (SchedeProcessoBusiness bScheda = new SchedeProcessoBusiness()) { bScheda.GetSPScheda(idScheda, ds); // bScheda.FillValoriSchede(ds, idScheda, true); codice = string.Empty; SchedeProcessoDS.SPSCHEDERow schedaPadre = ds.SPSCHEDE.Where(x => x.IDSPSCHEDA == idScheda).FirstOrDefault(); int versione = 1; if (schedaPadre != null) { versione = schedaPadre.VERSIONE + 1; schedaPadre.STATO = StatoSPScheda.STORICO; codice = schedaPadre.CODICE; } SchedeProcessoDS.SPSCHEDERow riga = ds.SPSCHEDE.NewSPSCHEDERow(); riga.CODICE = codice.ToUpper(); riga.DESCRIZIONE = descrizione.ToUpper(); riga.IDSPMASTER = IdSPMaster; riga.AREAPRODUZIONE = areaProduzione.ToUpper(); riga.TASK = task.ToUpper(); riga.ANAGRAFICA = anagrafica.ToUpper(); riga.VERSIONE = versione; riga.STATO = StatoSPScheda.ATTIVA; riga.CANCELLATO = false; riga.DATAMODIFICA = DateTime.Now; riga.UTENTEMODIFICA = account.ToUpper(); ds.SPSCHEDE.AddSPSCHEDERow(riga); // int sequenza = 0; foreach (ElementoScheda controllo in obbligatori) { if (!string.IsNullOrEmpty(controllo.Filename)) { controllo.Valore = (controllo.Filename.Length > 30) ? controllo.Filename.Substring(0, 30) : controllo.Filename; } SPValoreScheda.SalvaValoreScheda(controllo.IDValore, controllo.IDElemento, riga.IDSPSCHEDA, controllo.Valore, controllo.Filedata, account, true, ds); } foreach (ElementoScheda controllo in controlli) { if (!string.IsNullOrEmpty(controllo.Filename)) { controllo.Valore = (controllo.Filename.Length > 30) ? controllo.Filename.Substring(0, 30) : controllo.Filename; } SPValoreScheda.SalvaValoreScheda(controllo.IDValore, controllo.IDElemento, riga.IDSPSCHEDA, controllo.Valore, controllo.Filedata, account, false, ds); } bScheda.UpdateTableSPScheda(ds); bScheda.UpdateTable(ds.SPVALORISCHEDE.TableName, ds); ds.AcceptChanges(); if (string.IsNullOrEmpty(codice)) { riga.CODICE = string.Format("SP{0}", riga.IDSPSCHEDA.ToString().PadLeft(8, '0')); bScheda.UpdateTableSPScheda(ds); } string messaggio = string.Format("Scheda creata correttamente. CODICE: {0}", riga.CODICE); return(messaggio); } }