This commit is contained in:
2021-06-22 10:05:59 +01:00
parent 558be9063f
commit e40ff8a7f2
50 changed files with 899 additions and 184 deletions
+43 -2
View File
@@ -53,6 +53,8 @@ namespace Saxonite.Net.Standard.Base.Bus
public ItemId ItemId { get; set; }
public Sax.ImageType ImageType { get; set; }
public byte ImageSeq { get; set; }
public long SessionUid { get; set; }
public int ImageUid { get; set; }
public String Filename { get; set; }
public String Mime { get; set; }
public String ContentType { get; set; }
@@ -88,6 +90,16 @@ namespace Saxonite.Net.Standard.Base.Bus
get { return data.ImageSeq; }
set { CheckChanged(data.ImageSeq, value); data.ImageSeq = value; }
}
public long SessionUid
{
get { return data.SessionUid; }
set { CheckChanged(data.SessionUid, value); data.SessionUid = value; }
}
public int ImageUid
{
get { return data.ImageUid; }
set { CheckChanged(data.ImageUid, value); data.ImageUid = value; }
}
public String Filename
{
get { return data.Filename; }
@@ -124,6 +136,8 @@ namespace Saxonite.Net.Standard.Base.Bus
ItemId = data.ItemId;
ImageType = data.ImageType;
ImageSeq = data.ImageSeq;
SessionUid = data.SessionUid;
ImageUid = data.ImageUid;
Filename = data.Filename;
Mime = data.Mime;
ContentType = data.ContentType;
@@ -148,6 +162,8 @@ namespace Saxonite.Net.Standard.Base.Bus
public ValidValue ItemId { get; set; } = ValidValue.Valid;
public ValidValue ImageType { get; set; } = ValidValue.Valid;
public ValidValue ImageSeq { get; set; } = ValidValue.Valid;
public ValidValue SessionUid { get; set; } = ValidValue.Valid;
public ValidValue ImageUid { get; set; } = ValidValue.Valid;
public ValidValue Filename { get; set; } = ValidValue.Valid;
public ValidValue Mime { get; set; } = ValidValue.Valid;
public ValidValue ContentType { get; set; } = ValidValue.Valid;
@@ -213,18 +229,28 @@ namespace Saxonite.Net.Standard.Base.Bus
public ItemId ItemId
{
get { return data.ItemId; }
protected set { data.ItemId = value; }
set { data.ItemId = value; }
}
public Sax.ImageType ImageType
{
get { return data.ImageType; }
protected set { data.ImageType = value; }
set { data.ImageType = value; }
}
public byte ImageSeq
{
get { return data.ImageSeq; }
set { data.ImageSeq = value; }
}
public long SessionUid
{
get { return data.SessionUid; }
set { data.SessionUid = value; }
}
public int ImageUid
{
get { return data.ImageUid; }
set { data.ImageUid = value; }
}
public String Filename
{
get { return data.Filename; }
@@ -273,6 +299,7 @@ namespace Saxonite.Net.Standard.Base.Bus
NotDeleted,
ActiveOnly,
InctiveOnly,
Deleted,
}
/// <summary>
/// Item list parameters.
@@ -294,6 +321,20 @@ namespace Saxonite.Net.Standard.Base.Bus
// Item list extension methods.
public static class SaxItemImageList
{
//-------------------------------------------------------------------
public static SaxItemImage GetItemImageById(this List<SaxItemImage> values, SysId itemImageId)
{
if (!SysId.IsValid(itemImageId)) return null;
return values.Find(item => item.Id.Equals(itemImageId));
}
public static SaxItemImage GetItemImageBySessionImage(this List<SaxItemImage> values, long sessionUid, int imageUid)
{
if (sessionUid < 1 || imageUid < 1) return null;
return values.Find(item => item.SessionUid == sessionUid && item.ImageUid == imageUid);
}
//-------------------------------------------------------------------
}
//=======================================================================
@@ -21,23 +21,46 @@ namespace Saxonite.Net.Standard.Base.Bus
private static readonly String ElementName_Segments = "segments";
private static readonly String ElementName_Segment = "segment";
private static readonly String ElementName_Body = "body";
private static readonly String ElementName_Html= "html";
private static readonly String ElementName_Html = "html";
private static readonly String ElementName_Image = "image";
private static readonly String ElementName_ImageId = "imageId";
//-------------------------------------------------------------------
/// <summary>Article content.</summary>
public class ContentData
{
/// <summary>
/// Article Content Segment - either body content or image.
/// </summary>
public class SegmentData
{
// Segment body.
public class BodyData
{
public bool IsValid()
{
if (!StringUtil.IsEmpty(Html)) return true;
return false;
}
public String Html { get; set; } = String.Empty;
}
public BodyData Body { get; } = new BodyData();
// Segment image.
public class ImageData
{
public bool IsValid()
{
if (SysId.IsValid(ItemImageId)) return true;
return false;
}
public SysId ItemImageId { get; set; }
}
public ImageData Image { get; } = new ImageData();
// Validate.
public bool IsValid()
{
if (!StringUtil.IsEmpty(Body.Html)) return true;
if (Body.IsValid()) return true;
if (Image.IsValid()) return true;
return false;
}
}
@@ -59,6 +82,7 @@ namespace Saxonite.Net.Standard.Base.Bus
{
String fn = typeof(ContentData).FullName + ".ExtractContent";
ContentData content = new ContentData();
if (StringUtil.IsEmpty(contentData)) return content;
try
{
@@ -99,6 +123,22 @@ namespace Saxonite.Net.Standard.Base.Bus
else SaLogger.Warn(fn + " Unexpected 'Segment' child element: " + segmentChildElementName);
}
}
else if (segmentChildElementName.EqualsCI(ElementName_Image))
{
// Content segment image.
XElement imageElement = segmentChildElement;
foreach (XElement imageChildElement in imageElement.GetChildElements())
{
String imageChildElementName = imageChildElement.GetLocalName();
if (imageChildElementName.EqualsCI(ElementName_ImageId))
{
// Content segment image Id.
XElement imageIdElement = imageChildElement;
segment.Image.ItemImageId = imageIdElement.Value.ToSysId();
}
else SaLogger.Warn(fn + " Unexpected 'Segment' child element: " + segmentChildElementName);
}
}
else SaLogger.Warn(fn + " Unexpected 'Segment' child element: " + segmentChildElementName);
}
// Add this segment to the list.
@@ -136,9 +176,20 @@ namespace Saxonite.Net.Standard.Base.Bus
{
if (!segment.IsValid()) continue;
XElement segmentElement = segmentsElement.AppendElement(ElementName_Segment);
XElement bodyElement = segmentElement.AppendElement(ElementName_Body);
if (!StringUtil.IsEmpty(segment.Body.Html))
bodyElement.AppendElement(ElementName_Html, segment.Body.Html);
if (segment.Body.IsValid())
{
// Segment Body.
XElement bodyElement = segmentElement.AppendElement(ElementName_Body);
if (!StringUtil.IsEmpty(segment.Body.Html))
bodyElement.AppendElement(ElementName_Html, segment.Body.Html);
}
else if (segment.Image.IsValid())
{
// Segment Image.
XElement imageElement = segmentElement.AppendElement(ElementName_Image);
if (SysId.IsValid(segment.Image.ItemImageId))
imageElement.AppendElement(ElementName_ImageId, SysId.ToString(segment.Image.ItemImageId));
}
}
return doc.GetXml();
}