Exemplo n.º 1
0
        public static async Task WriteToStream(Stream StreamToWrite, DataSet DS, CancellationToken cancellationToken, JsonWriterOptions JsonWriterOptions)
        {
            using (System.Text.Json.Utf8JsonWriter writter = new System.Text.Json.Utf8JsonWriter(StreamToWrite, JsonWriterOptions))
            {
                writter.WriteStartObject();

                writter.WriteStartArray("Tables");

                if (DS.Tables.Count > 0)
                {
                    foreach (DataTable table in DS.Tables)
                    {
                        writter.WriteStartObject();

                        writter.WriteString("TableName", table.TableName);

                        writter.WriteStartArray("Columns");
                        foreach (DataColumn column in table.Columns)
                        {
                            writter.WriteStartArray();
                            JsonSerializer.Serialize(writter, column.ColumnName);
                            JsonSerializer.Serialize(writter, ColumnType(column));
                            writter.WriteEndArray();
                        }
                        writter.WriteEndArray();

                        writter.WriteStartArray("Rows");

                        await writter.FlushAsync(cancellationToken);

                        if (table.Rows.Count > 0)
                        {
                            foreach (DataRow row in table.Rows)
                            {
                                writter.WriteStartArray();
                                foreach (var item in row.ItemArray)
                                {
                                    JsonSerializer.Serialize(writter, item);
                                }
                                writter.WriteEndArray();;
                            }
                        }

                        writter.WriteEndArray();

                        writter.WriteEndObject();
                    }
                }

                writter.WriteEndArray();
                writter.WriteEndObject();
            }

            await StreamToWrite.FlushAsync();
        }
Exemplo n.º 2
0
 public void ToJson(System.Text.Json.Utf8JsonWriter w)
 {
     w.WriteStartObject();
     w.WriteString("id", Hid);
     w.WriteString("description", Description);
     w.WriteString("tag", Tag);
     w.WriteString("avatar_url", AvatarUrl);
     w.WriteString("created", Formats.TimestampExportFormat.Format(Created));
     w.WriteString("tz", UiTz);
     w.WriteEndObject();
 }
Exemplo n.º 3
0
        public static void WriteErrorDetailsResponseJson(this HttpContext Context, ErrorDetails errorDetails)
        {
            Context.Response.ContentType = "application/json";
            using Utf8JsonWriter writer  = new System.Text.Json.Utf8JsonWriter(Context.Response.BodyWriter);
            writer.WriteStartObject();
            foreach (var item in errorDetails.GetType().GetProperties())
            {
                writer.WritePropertyName(item.Name);
                if (item.PropertyType == typeof(int))
                {
                    writer.WriteNumberValue((int)item.GetValue(errorDetails));
                }
                else if (item.PropertyType == typeof(string))
                {
                    writer.WriteStringValue(item.GetValue(errorDetails).ToString());
                }
            }

            writer.WriteEndObject();
            writer.Flush();
        }
Exemplo n.º 4
0
        public string Serialize(MeetingModelRegular value)
        {
            var options = new JsonWriterOptions
            {
                Indented = true
            };

            using (var stream = new System.IO.MemoryStream())
            {
                using (var writer = new System.Text.Json.Utf8JsonWriter(stream, options))
                {
                    writer.WriteStartObject();
                    writer.WriteString("MeetingType", MeetingType);
                    writer.WriteString("ID", ID);
                    writer.WriteString("DayOfMeeting", DayOfMeeting);
                    writer.WriteString("Toastmaster", Toastmaster);
                    writer.WriteString("Speaker1", Speaker1);
                    writer.WriteString("Speaker2", Speaker2);
                    writer.WriteString("GeneralEvaluator", GeneralEvaluator);
                    writer.WriteString("Evaluator1", Evaluator1);
                    writer.WriteString("Evaluator2", Evaluator2);
                    writer.WriteString("TableTopics", TableTopics);
                    writer.WriteString("AhCounter", AhCounter);
                    writer.WriteString("Grammarian", Grammarian);
                    writer.WriteString("Timer", Timer);
                    writer.WriteString("QuizMaster", QuizMaster);
                    writer.WriteString("Video", Video);
                    writer.WriteString("HotSeat", HotSeat);
                    writer.WriteString("Attendees", Attendees?.ToString());
                    writer.WriteString("Resolved", Resolved);
                    writer.WriteEndObject();
                }
                return(Encoding.UTF8.GetString(stream.ToArray()));
            }

            // return JsonSerializer.ToString<MeetingModelRegular>(value, options);
        }
Exemplo n.º 5
0
        private static async Task Execute(string sql, HttpContext context)
        {
            context.Response.Headers.Add("Content-Type", "application/json");

            var koraliumService = context.RequestServices.GetService <IKoraliumTransportService>();
            var logger          = context.RequestServices.GetService <ILogger <IKoraliumTransportService> >();


            QueryResult result = null;

            try
            {
                result = await koraliumService.Execute(sql, new Shared.SqlParameters(), context);
            }
            catch (SqlErrorException error)
            {
                logger.LogWarning(error.Message);
                await WriteError(context, 400, error.Message);

                return;
            }
            catch (AuthorizationFailedException authFailed)
            {
                logger.LogWarning(authFailed.Message, authFailed);
                await WriteError(context, 401, authFailed.Message);

                return;
            }
            catch (Exception e)
            {
                logger.LogError(e, "Unexpected exception thrown");
                await WriteError(context, 500, "Internal error");

                return;
            }

            var responseStream = new System.Text.Json.Utf8JsonWriter(context.Response.Body);

            IJsonEncoder[]    encoders = new IJsonEncoder[result.Columns.Count];
            JsonEncodedText[] names    = new JsonEncodedText[result.Columns.Count];

            for (int i = 0; i < encoders.Length; i++)
            {
                encoders[i] = EncoderHelper.GetEncoder(result.Columns[i]);
                names[i]    = JsonEncodedText.Encode(result.Columns[i].Name);
            }

            System.Diagnostics.Stopwatch encodingWatch = new System.Diagnostics.Stopwatch();
            encodingWatch.Start();
            responseStream.WriteStartObject();

            responseStream.WriteStartArray(_valuesText);
            foreach (var row in result.Result)
            {
                responseStream.WriteStartObject();
                for (int i = 0; i < encoders.Length; i++)
                {
                    responseStream.WritePropertyName(names[i]);
                    encoders[i].Encode(in responseStream, in row);
                }
                responseStream.WriteEndObject();
            }
            responseStream.WriteEndArray();
            responseStream.WriteEndObject();

            encodingWatch.Stop();

            await responseStream.FlushAsync();
        }