12345678910111213141516171819202122232425262728293031323334353637 |
- using CliWrap;
- using CliWrap.Buffered;
- using Ips.Library.Basic;
- using Ips.Library.Entity;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ips.DetAlgorithm
- {
- public static class DetIbsUtil
- {
- static readonly string CliFile = Path.Combine(IpsPath.CliRootDir, "detibs", "detibs.exe");
- public static async Task<ExeResult<IbcResult>> Get(string filename, int start = 0, int timeout = 60, CancellationToken token = default)
- {
- var cli = Cli.Wrap(CliFile)
- .WithArguments(args =>
- {
- args.Add(filename);
- args.Add("-s").Add(start);
- });
- var res = await cli.ExecuteBufferedAsync(token.LinkTimeout(timeout));
- var result = new IbcResult(res.StandardOutput);
- return ExeResult.Create(result, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- public static async Task<ExeResult<IbsIdResult>> GetOne(string filename, int start = 0, int timeout = 60, CancellationToken token = default)
- {
- var res = await Get(filename, start, timeout, token);
- var item = res.Result.Items?.FirstOrDefault(m => m.IbsId != -1) ?? new IbsIdResult();
- return ExeResult.Create(item, res.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.ExitMsg);
- }
- }
- }
|