private void copiaDistintaRicorsiva(DistintaBase distintaDestinazione, Componente componenteOrigine, int idPadre, string utente, ref int idComponente) { idComponente--; Componente componenteNuovo = componenteOrigine.Copia(idComponente, idPadre, distintaDestinazione.IdDiba); distintaDestinazione.Componenti.Add(componenteNuovo); foreach (Componente figlioOrigine in Componenti.Where(x => x.IdPadre == componenteOrigine.IdComponente)) { copiaDistintaRicorsiva(distintaDestinazione, figlioOrigine, componenteNuovo.IdComponente, utente, ref idComponente); } }
public static List <DistintaBase> EstraiListaDistinteBase(int idArticolo) { ArticoliDS ds = new ArticoliDS(); using (ArticoliBusiness bArticolo = new ArticoliBusiness()) { bArticolo.FillDistintaBase(ds, idArticolo, true); } List <DistintaBase> distinte = new List <DistintaBase>(); foreach (ArticoliDS.DIBARow riga in ds.DIBA) { DistintaBase distinta = CreaDistintaBase(riga); distinte.Add(distinta); } return(distinte); }
private static DistintaBase CreaDistintaBase(ArticoliDS.DIBARow riga) { if (riga == null) { return(null); } DistintaBase distinta = new DistintaBase(); distinta.IdDiba = riga.IDDIBA; distinta.TipoDistinta = TipoDistinta.EstraiTipoDistinta(riga.IDTIPODIBA); distinta.Articolo = Articolo.EstraiArticolo(riga.IDARTICOLO); distinta.Descrizione = riga.DESCRIZIONE; distinta.Versione = riga.VERSIONE; distinta.Standard = riga.STANDARD; distinta.Componenti = new List <Componente>(); distinta.Cancellato = riga.CANCELLATO; distinta.DataModifica = riga.DATAMODIFICA; distinta.UtenteModifica = riga.UTENTEMODIFICA; distinta.Componenti = Componente.EstraiListaComponenti(riga.IDDIBA); return(distinta); }