public static List <double> GetEvaluationValue(this IElementM elementM, EnvironmentalProductDeclarationField field, List <LifeCycleAssessmentPhases> phases, QuantityType type, bool exactMatch = false) { if (elementM == null) { return(new List <double>()); } List <double> quantityTypeValue = elementM.GetQuantityTypeValue(type); List <double> epdVal = elementM.IMaterialComposition().Materials.Select(x => { var epd = x.Properties.Where(y => y is EnvironmentalProductDeclaration).FirstOrDefault() as EnvironmentalProductDeclaration; if (epd.QuantityType == type && (epd.EnvironmentalMetric.Where(z => z.Phases.Where(a => phases.Contains(a)).Count() != 0).FirstOrDefault() != null)) { return(GetEvaluationValue(epd, field, phases, exactMatch)); } else { return(double.NaN); } }).ToList(); //Division of GWP constant by QTV List <double> normalisedEpdVal = new List <double>(); for (int x = 0; x < epdVal.Count; x++) { if (double.IsNaN(epdVal[x])) { normalisedEpdVal.Add(double.NaN); } else { normalisedEpdVal.Add(epdVal[x] / quantityTypeValue[x]); } } return(normalisedEpdVal); }
public static List <double> GetEvaluationValue(this IElementM elementM, EnvironmentalProductDeclarationField field, QuantityType type) { if (elementM == null) { return(new List <double>()); } List <double> quantityTypeValue = elementM.GetQuantityTypeValue(type); List <double> epdVal = elementM.IMaterialComposition().Materials.Select(x => { var epd = x.Properties.Where(y => y is IEnvironmentalProductDeclarationData).FirstOrDefault() as IEnvironmentalProductDeclarationData; if (epd.QuantityType == type) { return(GetEvaluationValue(epd, field)); } else { return(double.NaN); } }).ToList(); //Division of GWP constant by QTV List <double> normalisedEpdVal = new List <double>(); for (int x = 0; x < epdVal.Count; x++) { if (double.IsNaN(epdVal[x])) { normalisedEpdVal.Add(double.NaN); } else { normalisedEpdVal.Add(epdVal[x] / quantityTypeValue[x]); } } return(normalisedEpdVal); }