private IPsdzStandardSvk BuildSvk(IStandardSvk svkInput) { PsdzStandardSvk psdzStandardSvk = new PsdzStandardSvk(); if (svkInput != null) { psdzStandardSvk.SvkVersion = svkInput.SvkVersion; psdzStandardSvk.ProgDepChecked = svkInput.ProgDepChecked; psdzStandardSvk.SgbmIds = ((svkInput.SgbmIds != null) ? svkInput.SgbmIds.Select(new Func <ISgbmId, IPsdzSgbmId>(PsdzObjectBuilder.BuildPsdzSgbmId)) : null); } return(psdzStandardSvk); }
public IPsdzStandardSvt BuildStandardSvtActualFromVehicleContext(IVehicle vehicleContext, IEnumerable <IPsdzEcuIdentifier> ecuListFromPsdz = null) { MethodBase currentMethod = MethodBase.GetCurrentMethod(); IPsdzStandardSvt result; try { PsdzStandardSvt psdzStandardSvt = null; if (vehicleContext != null && vehicleContext.ECU != null) { psdzStandardSvt = new PsdzStandardSvt(); IList <IPsdzEcu> list = new List <IPsdzEcu>(); using (IEnumerator <IEcu> enumerator = vehicleContext.ECU.GetEnumerator()) { while (enumerator.MoveNext()) { IEcu srcEcu = enumerator.Current; PsdzEcu psdzEcu = new PsdzEcu(); IPsdzEcuIdentifier psdzEcuIdentifier = (ecuListFromPsdz == null) ? null : ecuListFromPsdz.FirstOrDefault((IPsdzEcuIdentifier e) => e.DiagAddrAsInt == (int)srcEcu.ID_SG_ADR); if (psdzEcuIdentifier != null) { psdzEcu.PrimaryKey = this.BuildEcuIdentifier((int)srcEcu.ID_SG_ADR, psdzEcuIdentifier.BaseVariant); } else { psdzEcu.PrimaryKey = this.BuildEcuIdentifier((int)srcEcu.ID_SG_ADR, srcEcu.ECU_GROBNAME); } PsdzStandardSvk psdzStandardSvk = new PsdzStandardSvk(); PsdzClient.Utility.SgbmIdParser sgbmIdParser = new PsdzClient.Utility.SgbmIdParser(); IList <IPsdzSgbmId> list2 = new List <IPsdzSgbmId>(); foreach (string sgbmId in srcEcu.SVK.XWE_SGBMID) { if (sgbmIdParser.ParseDec(sgbmId)) { IPsdzSgbmId item = this.BuildPsdzSgbmId(sgbmIdParser.ProcessClass, sgbmIdParser.Id, sgbmIdParser.MainVersion, sgbmIdParser.SubVersion, sgbmIdParser.PatchVersion); list2.Add(item); } } psdzStandardSvk.SgbmIds = list2; psdzEcu.StandardSvk = psdzStandardSvk; list.Add(psdzEcu); } } psdzStandardSvt.Ecus = list; } result = psdzStandardSvt; } catch (Exception) { result = null; } return(result); }