public ProcessoModel CreaProcessoModel(decimal idProcesso, List <TelaioModel> telai) { ArticoloDS.PROCESSIRow processo = _ds.PROCESSI.Where(x => x.IDPROCESSO == idProcesso).FirstOrDefault(); if (processo == null) { using (ArticoloBusiness bArticolo = new ArticoloBusiness()) { bArticolo.GetProcesso(_ds, idProcesso, false); bArticolo.GetFasiProcesso(_ds, idProcesso, false); } processo = _ds.PROCESSI.Where(x => x.IDPROCESSO == idProcesso).FirstOrDefault(); if (processo == null) { return(null); } } ProcessoModel processoModel = new ProcessoModel(); processoModel.Descrizione = processo.DESCRIZIONE; processoModel.IdArticolo = processo.IDARTICOLO; processoModel.IdProcesso = processo.IDPROCESSO; TelaioModel telaio = telai.Where(x => x.IdTelaio == ElementiVuoti.TelaioVuoto).FirstOrDefault(); if (!processo.IsIDTELAIONull()) { telaio = telai.Where(x => x.IdTelaio == processo.IDTELAIO).FirstOrDefault(); } processoModel.Telaio = telaio; processoModel.Standard = processo.IsSTANDARDNull() ? false : processo.STANDARD == SiNo.Si; if (!processo.IsIDCOLORENull()) { Anagrafica a = new Anagrafica(); processoModel.Colore = a.EstraiColoreModel(processo.IDCOLORE); } else { processoModel.Colore = new ColoreModel(); } List <ImpiantoModel> impianti = _galvanica.CreaListaImpiantoModel(); processoModel.Impianto = impianti.Where(x => x.IdImpianto == processo.IDIMPIANTO).FirstOrDefault(); List <VascaModel> vasche = _galvanica.CreaListaVascaModel(); processoModel.Fasi = new List <FaseProcessoModel>(); foreach (ArticoloDS.FASIPROCESSORow fase in _ds.FASIPROCESSO.Where(x => x.IDPROCESSO == idProcesso)) { FaseProcessoModel faseProcessoModel = new FaseProcessoModel() { Corrente = fase.CORRENTE, Durata = fase.DURATA, IdFaseProcesso = fase.IDFASEPROCESSO, IdProcesso = fase.IDPROCESSO, Sequenza = fase.SEQUENZA, Vasca = vasche.Where(x => x.IdVasca == fase.IDVASCA).FirstOrDefault(), SpessoreMassimo = fase.IsSPESSOREMASSIMONull() ? 0 : fase.SPESSOREMASSIMO, SpessoreMinimo = fase.IsSPESSOREMINIMONull() ? 0 : fase.SPESSOREMINIMO, SpessoreNominale = fase.IsSPESSORENOMINALENull() ? 0 : fase.SPESSORENOMINALE }; processoModel.Fasi.Add(faseProcessoModel); } return(processoModel); }