public async Task Write(ProfileTree tree, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var errors = tree .GetAllChildren() .Select(tuple => tuple.tree) .OfType <ProfileTreeError>() .OrderBy(pair => pair.SourceMark) .ToList(); if (errors.Count > 0) { foreach (var error in errors) { logger.Error(new { message = "Error reading input", error = error.Error, fileName = error.SourceMark.FileName, line = error.SourceMark.LineNumber }); } throw new ApplicationException(); } using (var stream = outputStreamFactory()) await DoWrite(tree, stream, cancellationToken); }
public static IEnumerable <IProfileEntry> WithImplicitHiddenKeys(this SchemeNode node, ProfileTree tree) { var originalPayload = node.GetOriginalPayload().ToList(); var implicitHiddenKeys = (from pair in tree.GetAllChildren() where IsArray(pair.tree) select new Payload( new QualifiedName(pair.prefix.Parts.Append(new NamePart(new[] { new TextNameToken("type") }))), new[] { new TextValueToken("hiddenKey") }, pair.tree.GetFirstSourceMark())).ToList(); return(originalPayload.Concat(implicitHiddenKeys)); }