Skip to content

Commit

Permalink
Merge pr #464 - Jsonserializer
Browse files Browse the repository at this point in the history
Jsonserializer - EntityToken and DataSourceId serialization now JSON style
  • Loading branch information
Marcus Wendt committed Jul 25, 2017
2 parents 99bc581 + 4cbc404 commit e23d333
Show file tree
Hide file tree
Showing 35 changed files with 1,089 additions and 620 deletions.
3 changes: 3 additions & 0 deletions Composite/AspNet/Security/FileBasedFunctionEntityToken.cs
@@ -1,5 +1,6 @@
using System;
using Composite.C1Console.Security;
using Newtonsoft.Json;

namespace Composite.AspNet.Security
{
Expand Down Expand Up @@ -36,6 +37,7 @@ public override string Type
/// <value>
/// The name of the function provider.
/// </value>
[JsonIgnore]
public string FunctionProviderName
{
get { return Source; }
Expand All @@ -47,6 +49,7 @@ public string FunctionProviderName
/// <value>
/// The name of the function.
/// </value>
[JsonIgnore]
public string FunctionName
{
get { return Id; }
Expand Down
@@ -1,4 +1,5 @@
using Composite.C1Console.Security;
using Newtonsoft.Json;


namespace Composite.C1Console.Actions.Workflows
Expand Down Expand Up @@ -28,13 +29,15 @@ public EntityTokenLockedEntityToken(string lockedByUsername, string serializedLo


/// <exclude />
[JsonIgnore]
public string LockedByUsername
{
get { return _lockedByUsername; }
}


/// <exclude />
[JsonIgnore]
public ActionToken LockedActionToken
{
get
Expand All @@ -50,6 +53,7 @@ public ActionToken LockedActionToken


/// <exclude />
[JsonIgnore]
public EntityToken LockedEntityToken
{
get
Expand Down
@@ -1,58 +1,48 @@
using System;
using System.Collections.Generic;
using System.Text;
using Composite.Data;
using Composite.C1Console.Security;
using Composite.Core;
using Composite.Core.Serialization;
using Composite.Core.Types;
using Newtonsoft.Json;


namespace Composite.C1Console.Elements.ElementProviderHelpers.AssociatedDataElementProviderHelper
{
/// <summary>
/// </summary>
/// <exclude />
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[SecurityAncestorProvider(typeof(AssociatedDataElementProviderHelperSecurityAncestorProvider))]
public sealed class AssociatedDataElementProviderHelperEntityToken : EntityToken
{
private string _type;
private string _providerName;
private string _id;
private readonly string _providerName;

private int _hashCode = 0;


/// <exclude />
[JsonConstructor]
public AssociatedDataElementProviderHelperEntityToken(string type, string providerName, string id, string payload)
{
_type = type;
Type = type;
_providerName = providerName;
_id = id;
Id = id;

this.Payload = payload;
}


/// <exclude />
public override string Type
{
get { return _type; }
}
public override string Type { get; }


/// <exclude />
public override string Source
{
get { return _providerName; }
}
[JsonProperty(PropertyName = "providerName")]
public override string Source => _providerName;


/// <exclude />
public override string Id
{
get { return _id; }
}
public override string Id { get; }


/// <exclude />
Expand Down Expand Up @@ -99,25 +89,36 @@ public IEnumerable<IData> GetDataList()
/// <exclude />
public override string Serialize()
{
StringBuilder sb = new StringBuilder();

DoSerialize(sb);

StringConversionServices.SerializeKeyValuePair(sb, "_Payload_", this.Payload);

return sb.ToString();
return CompositeJsonSerializer.Serialize(this);
}


/// <exclude />
public static EntityToken Deserialize(string serializedEntityToken)
{
EntityToken entityToken;
if (CompositeJsonSerializer.IsJsonSerialized(serializedEntityToken))
{
entityToken = CompositeJsonSerializer
.Deserialize<AssociatedDataElementProviderHelperEntityToken>(serializedEntityToken);
}
else
{
entityToken = DeserializeLegacy(serializedEntityToken);
Log.LogVerbose(nameof(AssociatedDataElementProviderHelperEntityToken), entityToken.GetType().FullName);
}
return entityToken;
}

/// <exclude />
public static EntityToken DeserializeLegacy(string serializedEntityToken)
{
string type, source, id;
Dictionary<string, string> dic;

DoDeserialize(serializedEntityToken, out type, out source, out id, out dic);

if (dic.ContainsKey("_Payload_") == false)
if (dic.ContainsKey("_Payload_") == false)
{
throw new ArgumentException("The serializedEntityToken is not a serialized entity token", "serializedEntityToken");
}
Expand All @@ -127,7 +128,6 @@ public static EntityToken Deserialize(string serializedEntityToken)
return new AssociatedDataElementProviderHelperEntityToken(type, source, id, payload);
}


/// <exclude />
public override bool Equals(object obj)
{
Expand Down
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using Composite.C1Console.Security;
using Newtonsoft.Json;

namespace Composite.C1Console.Elements.ElementProviderHelpers.DataGroupingProviderHelper
{
Expand All @@ -22,27 +23,19 @@ public ElipsisEntityToken(string serializedParentEntityToken)
}

/// <exclude />
public override string Type
{
get { return _serializedParentEntityToken; }
}
public override string Type => _serializedParentEntityToken;


/// <exclude />
public override string Source
{
get { return ""; }
}
public override string Source => "";


/// <exclude />
public override string Id
{
get { return ""; }
}
public override string Id => "";


/// <exclude />
[JsonIgnore]
public EntityToken ParentEntityToken
{
get
Expand Down
21 changes: 3 additions & 18 deletions Composite/C1Console/Elements/SearchToken.cs
@@ -1,4 +1,4 @@
using System;
using System;
using Composite.Core.Extensions;
using Composite.Core.Serialization;
using Composite.Core.Types;
Expand All @@ -22,12 +22,7 @@ public class SearchToken
/// <returns>String representation</returns>
public string Serialize()
{
string serializedSearchToken = SerializationFacade.Serialize(this);
string serializedClassName = TypeManager.SerializeType(this.GetType());

string serializedSearchTokenWithClass = string.Format("{0}|{1}", serializedClassName, serializedSearchToken);

return serializedSearchTokenWithClass;
return CompositeJsonSerializer.Serialize(this);
}


Expand All @@ -39,18 +34,8 @@ public string Serialize()
public static SearchToken Deserialize( string serializedSearchToken )
{
Verify.ArgumentNotNullOrEmpty("serializedSearchToken", serializedSearchToken);
Verify.ArgumentCondition(serializedSearchToken.IndexOf('|') > -1, "serializedSearchToken", "Malformed serializedSearchToken - must be formated like '<class name>|<serialized values>'");

string[] parts = serializedSearchToken.Split('|');

string className = parts[0];
string serializedSearchTokenWithoutClassName = parts[1];

Type searchTokenType = TypeManager.GetType(className);

SearchToken searchToken = (SearchToken)SerializationFacade.Deserialize(searchTokenType, serializedSearchTokenWithoutClassName);

return searchToken;
return CompositeJsonSerializer.Deserialize<SearchToken>(serializedSearchToken);
}
}

Expand Down

0 comments on commit e23d333

Please sign in to comment.