using System; using Sleis.Models; using System.Collections.Generic; using Sleis.Validation.Spring; namespace Sleis.Service { public interface IProcessEmissionService { Sleis.ViewModels.EmissionCalculation CalculateEmissions(Sleis.ViewModels.EmissionCalculation emission); void CalculateSeasonalTotals(Sleis.Models.ProcessEmission processEmission); Sleis.Data.IEmissionData EmissionData { get; set; } Sleis.Data.IEmissionUnitData EmissionUnitData { get; set; } IUnitProcessService UnitProcessService { get; set; } byte[] GenerateProcessEmissionsCsv(System.Collections.Generic.List processes); void GenerateProcessEmissionsTemplatesZip(int reportId, System.IO.Stream outputStream); byte[] GenerateProcessesCsv(System.Collections.Generic.List processes); byte[] GenerateReferenceValuesCsv(int reportYear); Sleis.Models.ProcessEmission GetProcessEmission(int id); Sleis.Models.ProcessEmission GetProcessEmission(int id, int unitProcessId); ProcessEmission GetProcessEmission(int id, UnitProcess unitProcess); System.Collections.Generic.List GetProcessEmissionList(int reportId); System.Collections.Generic.List GetProcessEmissionList(int reportId, int emissionUnitId); System.Collections.Generic.List GetProcessEmissionList(int reportId, bool fullyLoad); List GetProcessEmissionListItemsByReport(int reportId, int reportYear); List GetProcessEmissionListItemsByReport(int reportId, int pageNum, int pageSize); List GetProcessEmissionListItems(int reportId, int emissionUnitId); List GetProcessEmissionListItemsByUnitProcess(int unitProcessId); List ImportEmissions(System.IO.Stream processEmissionsCsv, int reportId, List processes); List ImportProcessEmissionsFromCsv(System.IO.Stream csvStream, Sleis.Models.ErrorHandling.CsvParserError parserError, out long numOfLines); List ImportProcesses(System.IO.Stream processesCsv, int reportId, out Sleis.Models.ErrorHandling.CsvParserError error); List ImportProcessesFromCsv(System.IO.Stream csvStream, Sleis.Models.ErrorHandling.CsvParserError parserError, out long numOfLines); int CountProcessEmissions(int reportId); void Init(); Sleis.Data.IProcessEmissionData ProcessEmissionData { get; set; } Sleis.Models.ProcessEmission SaveProcessEmission(Sleis.Models.ProcessEmission processEmission, System.Collections.Generic.List customFields); System.Collections.Generic.List SaveProcessEmissions(System.Collections.Generic.List emissions); System.Collections.Generic.List SaveProcesses(System.Collections.Generic.List processes); Sleis.Data.IUnitProcessData UnitProcessData { get; set; } decimal CalculateControlEfficiency(int unitProcessId, string pollutantCode); int RecalculateEmissionsByControlDevice(int controlDeviceId); int RecalculatemMissionsByEmissionUnit(int emissionUnitId); int RecalculateEmissionsByUnitProcess(int unitProcessId); int RecalculateEmissionsAndSave(List processes); List RecalculateEmissions(List emissions); System.Collections.Generic.List GetEmissionFactors(string pollutantCode, string calculationMethodCode, string sccCode, string emissionFactorUomCode); void DeleteProcessEmission(int id); void DeleteProcessEmission(ProcessEmission processEmission); } }