private static FaseCiclo CreaFaseCiclo(ArticoliDS.FASICICLORow riga)
        {
            if (riga == null)
            {
                return(null);
            }
            FaseCiclo faseCiclo = new FaseCiclo();

            faseCiclo.IdDiba            = riga.IDDIBA;
            faseCiclo.IdFaseCiclo       = riga.IDFASECICLO;
            faseCiclo.IdComponente      = riga.IDCOMPONENTE;
            faseCiclo.Descrizione       = riga.IsDESCRIZIONENull() ? string.Empty : riga.DESCRIZIONE;
            faseCiclo.Operazione        = riga.OPERAZIONE;
            faseCiclo.Anagrafica        = riga.IsANAGRAFICANull() ? string.Empty : riga.ANAGRAFICA;
            faseCiclo.CollegamentoDiBa  = riga.IsCOLLEGAMENTODIBANull() ? string.Empty : riga.COLLEGAMENTODIBA;
            faseCiclo.Quantita          = riga.IsQUANTITANull() ? 0 : riga.QUANTITA;
            faseCiclo.UMQuantita        = riga.IsUMQUANTITANull() ? string.Empty : riga.UMQUANTITA;
            faseCiclo.AreaProduzione    = riga.IsAREAPRODUZIONENull() ? string.Empty : riga.AREAPRODUZIONE;
            faseCiclo.Task              = riga.IsTASKNull() ? string.Empty : riga.TASK;
            faseCiclo.SchedaProcesso    = riga.IsSCHEDAPROCESSONull() ? string.Empty : riga.SCHEDAPROCESSO;
            faseCiclo.CollegamentoCiclo = riga.IsCOLLEGAMENTOCICLONull() ? string.Empty : riga.COLLEGAMENTOCICLO;
            faseCiclo.PezziPeriodo      = riga.IsPEZZIPERIODONull() ? 0 : riga.PEZZIPERIODO;
            faseCiclo.Periodo           = riga.IsPERIODONull() ? 0 : riga.PERIODO;
            faseCiclo.Setup             = riga.IsSETUPNull() ? 0 : riga.SETUP;
            faseCiclo.Attesa            = riga.IsATTESANull() ? 0 : riga.ATTESA;
            faseCiclo.Movimentazione    = riga.IsMOVIMENTAZIONENull() ? 0 : riga.MOVIMENTAZIONE;
            faseCiclo.Errore            = string.Empty;
            faseCiclo.Cancellato        = riga.CANCELLATO;
            faseCiclo.DataModifica      = riga.DATAMODIFICA;
            faseCiclo.UtenteModifica    = riga.UTENTEMODIFICA;
            faseCiclo.Nota              = riga.IsNOTANull() ? string.Empty : riga.NOTA;
            return(faseCiclo);
        }
        public static void SalvaListaFaseCiclo(List <FaseCiclo> fasiCiclo, string utente, int idDiba, int idComponente, ArticoliDS ds)
        {
            //           if (fasiCiclo.Count() == 0) return;
//            int idComponente = fasiCiclo[0].IdComponente;

            //           int idDiba = fasiCiclo[0].IdDiba;
            using (ArticoliBusiness bArticolo = new ArticoliBusiness())
            {
                List <int> idFasiCicloAttive       = fasiCiclo.Select(x => x.IdFaseCiclo).ToList();
                List <int> idFasiCicloDaCancellare = ds.FASICICLO.Where(x => !idFasiCicloAttive.Contains(x.IDFASECICLO) && x.IDCOMPONENTE == idComponente).Select(x => x.IDFASECICLO).ToList();
                foreach (int idFaseCicloDaCancellare in idFasiCicloDaCancellare)
                {
                    ArticoliDS.FASICICLORow faseCicloDaCancellare = ds.FASICICLO.Where(x => x.RowState != System.Data.DataRowState.Deleted && x.IDFASECICLO == idFaseCicloDaCancellare).FirstOrDefault();
                    faseCicloDaCancellare.CANCELLATO     = true;
                    faseCicloDaCancellare.UTENTEMODIFICA = utente;
                    faseCicloDaCancellare.DATAMODIFICA   = DateTime.Now;
                }

                foreach (FaseCiclo faseCiclo in fasiCiclo)
                {
                    SalvaFaseCiclo(faseCiclo, utente, ds);
                }
            }
        }
        private static void SalvaFaseCiclo(FaseCiclo faseCiclo, string utente, ArticoliDS ds)
        {
            ArticoliDS.FASICICLORow rigaFaseCiclo = ds.FASICICLO.Where(x => x.RowState != System.Data.DataRowState.Deleted && x.IDFASECICLO == faseCiclo.IdFaseCiclo).FirstOrDefault();
            if (faseCiclo.IdFaseCiclo < 0 && rigaFaseCiclo != null)
            {
                while (rigaFaseCiclo != null)
                {
                    faseCiclo.IdFaseCiclo--;
                    rigaFaseCiclo = ds.FASICICLO.Where(x => x.IDFASECICLO == faseCiclo.IdFaseCiclo).FirstOrDefault();
                }
            }
            if (rigaFaseCiclo == null)
            {
                if (faseCiclo.IdComponente == 0 && faseCiclo.IdFaseCiclo == 0)
                {
                    return;
                }
                rigaFaseCiclo              = ds.FASICICLO.NewFASICICLORow();
                rigaFaseCiclo.IDFASECICLO  = faseCiclo.IdFaseCiclo;
                rigaFaseCiclo.IDCOMPONENTE = faseCiclo.IdComponente;
                rigaFaseCiclo.IDDIBA       = faseCiclo.IdDiba;
                if (!string.IsNullOrEmpty(faseCiclo.Anagrafica))
                {
                    rigaFaseCiclo.ANAGRAFICA = string.IsNullOrEmpty(faseCiclo.Anagrafica) ? string.Empty : faseCiclo.Anagrafica.ToUpper();
                }
                rigaFaseCiclo.COLLEGAMENTODIBA  = string.IsNullOrEmpty(faseCiclo.CollegamentoDiBa) ? string.Empty : faseCiclo.CollegamentoDiBa.ToUpper();
                rigaFaseCiclo.QUANTITA          = faseCiclo.Quantita;
                rigaFaseCiclo.UMQUANTITA        = string.IsNullOrEmpty(faseCiclo.UMQuantita) ? string.Empty : faseCiclo.UMQuantita.ToUpper();
                rigaFaseCiclo.OPERAZIONE        = faseCiclo.Operazione;
                rigaFaseCiclo.DESCRIZIONE       = string.IsNullOrEmpty(faseCiclo.Descrizione) ? string.Empty : faseCiclo.Descrizione.ToUpper();
                rigaFaseCiclo.AREAPRODUZIONE    = string.IsNullOrEmpty(faseCiclo.AreaProduzione) ? string.Empty : faseCiclo.AreaProduzione.ToUpper();
                rigaFaseCiclo.TASK              = string.IsNullOrEmpty(faseCiclo.Task) ? string.Empty : faseCiclo.Task.ToUpper();
                rigaFaseCiclo.SCHEDAPROCESSO    = string.IsNullOrEmpty(faseCiclo.SchedaProcesso) ? string.Empty : faseCiclo.SchedaProcesso.ToUpper();
                rigaFaseCiclo.COLLEGAMENTOCICLO = string.IsNullOrEmpty(faseCiclo.CollegamentoCiclo) ? string.Empty : faseCiclo.CollegamentoCiclo.ToUpper();
                rigaFaseCiclo.PEZZIPERIODO      = faseCiclo.PezziPeriodo;
                rigaFaseCiclo.PERIODO           = faseCiclo.Periodo;
                rigaFaseCiclo.SETUP             = faseCiclo.Setup;
                rigaFaseCiclo.ATTESA            = faseCiclo.Attesa;
                rigaFaseCiclo.MOVIMENTAZIONE    = faseCiclo.Movimentazione;
                rigaFaseCiclo.CANCELLATO        = false;
                rigaFaseCiclo.DATAMODIFICA      = DateTime.Now;
                rigaFaseCiclo.UTENTEMODIFICA    = utente;
                rigaFaseCiclo.NOTA              = string.IsNullOrEmpty(faseCiclo.Nota) ? string.Empty : faseCiclo.Nota.ToUpper();

                ds.FASICICLO.AddFASICICLORow(rigaFaseCiclo);
            }
            else
            {
                rigaFaseCiclo.ANAGRAFICA        = string.IsNullOrEmpty(faseCiclo.Anagrafica) ? string.Empty : faseCiclo.Anagrafica.ToUpper();
                rigaFaseCiclo.COLLEGAMENTODIBA  = string.IsNullOrEmpty(faseCiclo.CollegamentoDiBa) ? string.Empty : faseCiclo.CollegamentoDiBa.ToUpper();
                rigaFaseCiclo.QUANTITA          = faseCiclo.Quantita;
                rigaFaseCiclo.UMQUANTITA        = string.IsNullOrEmpty(faseCiclo.UMQuantita) ? string.Empty : faseCiclo.UMQuantita.ToUpper();
                rigaFaseCiclo.OPERAZIONE        = faseCiclo.Operazione;
                rigaFaseCiclo.DESCRIZIONE       = string.IsNullOrEmpty(faseCiclo.Descrizione) ? string.Empty : faseCiclo.Descrizione.ToUpper();
                rigaFaseCiclo.AREAPRODUZIONE    = string.IsNullOrEmpty(faseCiclo.AreaProduzione) ? string.Empty : faseCiclo.AreaProduzione.ToUpper();
                rigaFaseCiclo.TASK              = string.IsNullOrEmpty(faseCiclo.Task) ? string.Empty : faseCiclo.Task.ToUpper();
                rigaFaseCiclo.SCHEDAPROCESSO    = string.IsNullOrEmpty(faseCiclo.SchedaProcesso) ? string.Empty : faseCiclo.SchedaProcesso.ToUpper();
                rigaFaseCiclo.COLLEGAMENTOCICLO = string.IsNullOrEmpty(faseCiclo.CollegamentoCiclo) ? string.Empty : faseCiclo.CollegamentoCiclo.ToUpper();
                rigaFaseCiclo.PEZZIPERIODO      = faseCiclo.PezziPeriodo;
                rigaFaseCiclo.PERIODO           = faseCiclo.Periodo;
                rigaFaseCiclo.SETUP             = faseCiclo.Setup;
                rigaFaseCiclo.ATTESA            = faseCiclo.Attesa;
                rigaFaseCiclo.MOVIMENTAZIONE    = faseCiclo.Movimentazione;
                rigaFaseCiclo.CANCELLATO        = false;
                rigaFaseCiclo.DATAMODIFICA      = DateTime.Now;
                rigaFaseCiclo.UTENTEMODIFICA    = utente;
                rigaFaseCiclo.NOTA              = string.IsNullOrEmpty(faseCiclo.Nota) ? string.Empty : faseCiclo.Nota.ToUpper();
            }
        }