/// <summary> /// return timeseries /// </summary> public static List <TimeSeriesClasses.WasteTransfer> GetTimeSeries(int facilityID, WasteTypeFilter.Type wasteType) { DataClassesWasteTransferDataContext db = getDataContext(); //table has only one row per facility per year with aggregated data. IEnumerable <TimeSeriesClasses.WasteTransfer> data = db.WASTETRANSFERs.Where(s => s.FacilityID == facilityID) .OrderBy(s => s.ReportingYear) .Select(s => new TimeSeriesClasses.WasteTransfer( s.ReportingYear, 1, wasteType, LinqFunctionsWaste.QuantityTotal(wasteType)(s), LinqFunctionsWaste.QuantityRecovery(wasteType)(s), LinqFunctionsWaste.QuantityDisposal(wasteType)(s), LinqFunctionsWaste.QuantityUnspec(wasteType)(s) )); return(data.ToList()); }
// --------------------------------------------------------------------------------------------------- // confidentiality // --------------------------------------------------------------------------------------------------- #region Confidentiality public static IEnumerable <TimeSeriesClasses.ConfidentialityWaste> GetConfidentiality(int facilityId, WasteTypeFilter.Type wasteType) { DataClassesWasteTransferDataContext db = getDataContext(); // apply filter Expression <Func <WASTETRANSFER, bool> > lambda = getLambdaExpression(wasteType); //table have only one record per facility, so no aggregation is needed. IEnumerable <TimeSeriesClasses.ConfidentialityWaste> data = db.WASTETRANSFERs.Where(lambda) .Where(v => v.FacilityID == facilityId) .OrderBy(v => v.ReportingYear) .Select(v => new TimeSeriesClasses.ConfidentialityWaste { Year = v.ReportingYear, CountTotal = 1, CountConfTotal = Convert.ToInt32(LinqFunctionsWaste.ConfidentialityIndicator(wasteType)(v)), CountConfQuantity = Convert.ToInt32(LinqFunctionsWaste.ConfidentialityIndicatorQuantity(wasteType)(v)) }); return(data); }