using JsonRPC4.Common; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace JsonRPC4.Router { public class ParsingResult { public List Requests { get; } public List<(RpcId Id, RpcError Error)> Errors { get; } public bool IsBulkRequest { get; } public int RequestCount => Requests.Count + Errors.Count; public ParsingResult(List requests, List<(RpcId, RpcError)> errors, bool isBulkRequest) { Requests = requests; Errors = errors; IsBulkRequest = isBulkRequest; } internal static ParsingResult FromResults(List results, bool isBulkRequest) { List list = new List(); List<(RpcId, RpcError)> list2 = new List<(RpcId, RpcError)>(); foreach (RpcRequestParseResult result in results) { if (result.Error != null) { list2.Add((result.Id, result.Error)); } else { list.Add(new RpcRequest(result.Id, result.Method, result.Parameters)); } } isBulkRequest = (isBulkRequest || list.Count + list2.Count > 1); return new ParsingResult(list, list2, isBulkRequest); } } }