Browse Source

Strict json

pull/65/head
Sebastian Stehle 10 years ago
parent
commit
a11c63efe1
  1. 2
      src/Squidex.Core/Contents/ContentData.cs
  2. 12
      src/Squidex.Read.MongoDb/Contents/MongoContentEntity.cs
  3. 8
      tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs

2
src/Squidex.Core/Contents/ContentData.cs

@ -145,7 +145,7 @@ namespace Squidex.Core.Contents
if (decodeJsonField && field is JsonField)
{
var encodedValue = new ContentFieldData();
foreach (var languageValue in fieldValue.Value)
{
if (languageValue.Value == null || languageValue.Value.Type == JTokenType.Null)

12
src/Squidex.Read.MongoDb/Contents/MongoContentEntity.cs

@ -10,14 +10,15 @@ using System;
using System.Linq;
using System.Text;
using MongoDB.Bson;
using MongoDB.Bson.IO;
using MongoDB.Bson.Serialization.Attributes;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Squidex.Core.Contents;
using Squidex.Core.Schemas;
using Squidex.Infrastructure;
using Squidex.Infrastructure.MongoDb;
using Squidex.Read.Contents;
using JsonConvert = Newtonsoft.Json.JsonConvert;
// ReSharper disable ConvertIfStatementToConditionalTernaryExpression
// ReSharper disable InvertIf
@ -26,6 +27,7 @@ namespace Squidex.Read.MongoDb.Contents
{
public sealed class MongoContentEntity : MongoEntity, IContentEntity
{
private static readonly JsonWriterSettings Settings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict };
private const int MaxLength = 1024 * 1024;
private ContentData contentData;
@ -69,7 +71,9 @@ namespace Squidex.Read.MongoDb.Contents
{
if (Data != null)
{
contentData = JsonConvert.DeserializeObject<ContentData>(Data.ToJson()).ToNameModel(schema, true);
var jsonString = Data.ToJson(Settings);
contentData = JsonConvert.DeserializeObject<ContentData>(jsonString).ToNameModel(schema, true);
}
else
{
@ -81,7 +85,9 @@ namespace Squidex.Read.MongoDb.Contents
{
if (newContentData != null)
{
Data = BsonDocument.Parse(JsonConvert.SerializeObject(newContentData.ToIdModel(schema, true)));
var jsonString = JsonConvert.SerializeObject(newContentData.ToIdModel(schema, true));
Data = BsonDocument.Parse(jsonString);
}
else
{

8
tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs

@ -41,14 +41,6 @@ namespace Squidex.Infrastructure.Assets
Assert.True(Directory.Exists(testFolder));
}
[Fact]
public void Should_throw_if_path_is_not_valid()
{
var invalidSut = new FolderAssetStore("Z:\\Foo", new Mock<ISemanticLog>().Object);
Assert.Throws<ConfigurationException>(() => invalidSut.Connect());
}
[Fact]
public Task Should_throw_exception_if_asset_not_found()
{

Loading…
Cancel
Save