diff --git a/products/ASC.Files/Server/Model/FolderContentWrapper.cs b/products/ASC.Files/Server/Model/FolderContentWrapper.cs index ec24b85d37..0de1627849 100644 --- a/products/ASC.Files/Server/Model/FolderContentWrapper.cs +++ b/products/ASC.Files/Server/Model/FolderContentWrapper.cs @@ -24,9 +24,12 @@ */ +using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; +using System.Text.Json; +using System.Text.Json.Serialization; using ASC.Common; using ASC.Files.Core; @@ -162,4 +165,30 @@ namespace ASC.Api.Documents .AddFolderWrapperHelperService(); } } + + + public class FileEntryWrapperConverter : JsonConverter + { + public override FileEntryWrapper Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + return null; + } + + public override void Write(Utf8JsonWriter writer, FileEntryWrapper value, JsonSerializerOptions options) + { + if (value is FolderWrapper f1) + { + JsonSerializer.Serialize(writer, f1, typeof(FolderWrapper), options); + return; + } + + if (value is FolderWrapper f2) + { + JsonSerializer.Serialize(writer, f2, typeof(FolderWrapper), options); + return; + } + + JsonSerializer.Serialize(writer, value, options); + } + } } \ No newline at end of file diff --git a/products/ASC.Files/Server/Startup.cs b/products/ASC.Files/Server/Startup.cs index 384d5bc80a..360363b076 100644 --- a/products/ASC.Files/Server/Startup.cs +++ b/products/ASC.Files/Server/Startup.cs @@ -50,6 +50,7 @@ namespace ASC.Files options.JsonSerializerOptions.WriteIndented = false; options.JsonSerializerOptions.IgnoreNullValues = true; options.JsonSerializerOptions.Converters.Add(new ApiDateTimeConverter()); + options.JsonSerializerOptions.Converters.Add(new FileEntryWrapperConverter()); }); services.AddMemoryCache();