public void File(FormDataSetEntry entry, String fileName, String contentType, IFile file) { var context = (JsonElement)_context; var stream = file != null && file.Body != null && file.Type != null ? file.Body : Stream.Null; var content = new MemoryStream(); stream.CopyTo(content); var data = content.ToArray(); var steps = JsonStep.Parse(entry.Name); var value = new JsonObject(); value["type"] = new JsonValue(contentType); value["name"] = new JsonValue(fileName); value["body"] = new JsonValue(Convert.ToBase64String(data)); foreach (var step in steps) { context = step.Run(context, value, file: true); } }
protected override JsonElement ConvertArray(JsonArray values) { var obj = new JsonObject(); for (var i = 0; i < values.Length; i++) { var item = values[i]; if (item != null) { obj[i.ToString()] = item; } } return obj; }
JsonElement JsonEncodeValue(JsonElement context, JsonElement value, Boolean file) { var currentValue = GetValue(context); if (currentValue == null) { var newValue = Next.CreateElement(); return SetValue(context, newValue); } else if (currentValue is JsonObject) { return currentValue; } else if (currentValue is JsonArray) { return SetValue(context, Next.ConvertArray((JsonArray)currentValue)); } else { var obj = new JsonObject { [String.Empty] = currentValue }; return SetValue(context, obj); } }
public JsonFormDataSetVisitor() { _context = new JsonObject(); }