using System.Collections.Generic; using System.Configuration; using LeafWeb.Core.Entities; using LeafWeb.Core.Remote; namespace LeafWeb.Web.Services { public class PiscalService { private readonly IPiscalClient _piscalClient; public PiscalService(IPiscalClient piscalClient) { _piscalClient = piscalClient; } public PiscalService() : this(new PiscalSshClient(ConfigurationManager.ConnectionStrings["PiscalServer"].ConnectionString)) { } public void RunLeafInputFile(LeafInputFile leafInputFile) { var inputFile = new PiscalLeafInputFile(leafInputFile); _piscalClient.RunLeafInputFile(inputFile); } public PiscalStatus GetLeafInputFileStatus(LeafInputFile leafInputFile) { var inputFile = new PiscalLeafInputFile(leafInputFile); return _piscalClient.GetLeafInputFileStatus(inputFile); } public IEnumerable RetrieveLeafOutputFile(LeafInputFile leafInputFile) { var inputFile = new PiscalLeafInputFile(leafInputFile); var piscalLeafOutputFiles = _piscalClient.RetrieveLeafOutput(inputFile); foreach (var file in piscalLeafOutputFiles) { var leafOutputFile = file.GetLeafOutputFile(); leafOutputFile.LeafInputFile = leafInputFile; yield return leafOutputFile; } } } }