Exemple #1
0
 public static Task WriteEscapedJavaScriptStringAsync(TextWriter writer, string s, char delimiter, bool appendDelimiters, bool[] charEscapeFlags, StringEscapeHandling stringEscapeHandling, JsonTextWriter client, char[] writeBuffer, CancellationToken cancellationToken = null)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(cancellationToken.FromCanceled());
     }
     if (appendDelimiters)
     {
         return(JavaScriptUtils.WriteEscapedJavaScriptStringWithDelimitersAsync(writer, s, delimiter, charEscapeFlags, stringEscapeHandling, client, writeBuffer, cancellationToken));
     }
     if (!string.IsNullOrEmpty(s))
     {
         return(JavaScriptUtils.WriteEscapedJavaScriptStringWithoutDelimitersAsync(writer, s, charEscapeFlags, stringEscapeHandling, client, writeBuffer, cancellationToken));
     }
     return(cancellationToken.CancelIfRequestedAsync() ?? AsyncUtils.CompletedTask);
 }
Exemple #2
0
        private static Task WriteEscapedJavaScriptStringWithDelimitersAsync(TextWriter writer, string s, char delimiter, bool[] charEscapeFlags, StringEscapeHandling stringEscapeHandling, JsonTextWriter client, char[] writeBuffer, CancellationToken cancellationToken)
        {
            Task task = writer.WriteAsync(delimiter, cancellationToken);

            if (!task.IsCompletedSucessfully())
            {
                return(JavaScriptUtils.WriteEscapedJavaScriptStringWithDelimitersAsync(task, writer, s, delimiter, charEscapeFlags, stringEscapeHandling, client, writeBuffer, cancellationToken));
            }
            if (!string.IsNullOrEmpty(s))
            {
                task = JavaScriptUtils.WriteEscapedJavaScriptStringWithoutDelimitersAsync(writer, s, charEscapeFlags, stringEscapeHandling, client, writeBuffer, cancellationToken);
                if (task.IsCompletedSucessfully())
                {
                    return(writer.WriteAsync(delimiter, cancellationToken));
                }
            }
            return(JavaScriptUtils.WriteCharAsync(task, writer, delimiter, cancellationToken));
        }