57 lines
2.7 KiB
C#
57 lines
2.7 KiB
C#
using System.IO;
|
|
using CSharpTest.Net.Serialization;
|
|
|
|
namespace Umbraco.Web.PublishedCache.NuCache.DataSource
|
|
{
|
|
internal class ContentNodeKitSerializer : ISerializer<ContentNodeKit>
|
|
{
|
|
static readonly ContentDataSerializer DataSerializer = new ContentDataSerializer();
|
|
//static readonly ListOfIntSerializer ChildContentIdsSerializer = new ListOfIntSerializer();
|
|
|
|
public ContentNodeKit ReadFrom(Stream stream)
|
|
{
|
|
var kit = new ContentNodeKit
|
|
{
|
|
Node = new ContentNode(
|
|
PrimitiveSerializer.Int32.ReadFrom(stream), // id
|
|
PrimitiveSerializer.Guid.ReadFrom(stream), // uid
|
|
PrimitiveSerializer.Int32.ReadFrom(stream), // level
|
|
PrimitiveSerializer.String.ReadFrom(stream), // path
|
|
PrimitiveSerializer.Int32.ReadFrom(stream), // sort order
|
|
PrimitiveSerializer.Int32.ReadFrom(stream), // parent id
|
|
PrimitiveSerializer.DateTime.ReadFrom(stream), // date created
|
|
PrimitiveSerializer.Int32.ReadFrom(stream) // creator id
|
|
),
|
|
ContentTypeId = PrimitiveSerializer.Int32.ReadFrom(stream)
|
|
};
|
|
var hasDraft = PrimitiveSerializer.Boolean.ReadFrom(stream);
|
|
if (hasDraft)
|
|
kit.DraftData = DataSerializer.ReadFrom(stream);
|
|
var hasPublished = PrimitiveSerializer.Boolean.ReadFrom(stream);
|
|
if (hasPublished)
|
|
kit.PublishedData = DataSerializer.ReadFrom(stream);
|
|
return kit;
|
|
}
|
|
|
|
public void WriteTo(ContentNodeKit value, Stream stream)
|
|
{
|
|
PrimitiveSerializer.Int32.WriteTo(value.Node.Id, stream);
|
|
PrimitiveSerializer.Guid.WriteTo(value.Node.Uid, stream);
|
|
PrimitiveSerializer.Int32.WriteTo(value.Node.Level, stream);
|
|
PrimitiveSerializer.String.WriteTo(value.Node.Path, stream);
|
|
PrimitiveSerializer.Int32.WriteTo(value.Node.SortOrder, stream);
|
|
PrimitiveSerializer.Int32.WriteTo(value.Node.ParentContentId, stream);
|
|
PrimitiveSerializer.DateTime.WriteTo(value.Node.CreateDate, stream);
|
|
PrimitiveSerializer.Int32.WriteTo(value.Node.CreatorId, stream);
|
|
PrimitiveSerializer.Int32.WriteTo(value.ContentTypeId, stream);
|
|
|
|
PrimitiveSerializer.Boolean.WriteTo(value.DraftData != null, stream);
|
|
if (value.DraftData != null)
|
|
DataSerializer.WriteTo(value.DraftData, stream);
|
|
|
|
PrimitiveSerializer.Boolean.WriteTo(value.PublishedData != null, stream);
|
|
if (value.PublishedData != null)
|
|
DataSerializer.WriteTo(value.PublishedData, stream);
|
|
}
|
|
}
|
|
} |