This commit is contained in:
2026-05-28 02:31:45 +03:30
parent af9d2fa00f
commit c977339613
45 changed files with 1503 additions and 1647 deletions
+149
View File
@@ -0,0 +1,149 @@
using System.Collections.Generic;
using System.Linq;
using xCommons.Extensions;
using xDataService.Extensions;
using xDataService.Models;
using xTagService.Models.Dtos;
using xTagService.Models.Entities;
namespace xTagService.Extensions
{
public static class XModelExtensions
{
/// <summary>
/// Extract References of a Model ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static IList<XReference<string>> GetReferences(
this XTag source
)
{
//
var result = new List<XReference<string>>();
//
if (
!source.IsNullOrDefault() &&
!source.References.IsNullOrEmpty()
)
{
//
result = source.References
.ParseXReferenceList<string>()
.ToList();
}
//
return result;
}
/// <summary>
/// Extract References of a Model ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static IList<XReference<string>> GetReferences(
this XTagDto source
)
{
//
var result = new List<XReference<string>>();
//
if (
!source.IsNullOrDefault() &&
!source.References.IsNullOrEmpty()
)
{
//
result = source.References
.ParseXReferenceList<string>()
.ToList();
}
//
return result;
}
/// <summary>
/// Update a Model's References by Providing References List ...
/// </summary>
/// <param name="source"></param>
/// <param name="references"></param>
/// <param name="forceClean"></param>
/// <returns></returns>
public static XTag UpdateReferences(
this XTag source,
IList<XReference<string>> references,
bool forceClean = true
)
{
//
XTag result = source;
//
if (!source.IsNullOrDefault())
{
//
result = source;
//
if (forceClean)
{
result.References = string.Empty;
}
//
if (!references.IsNull() &&
references.HasChild())
{
result.References = references.ToXReferenceString();
}
}
//
return result;
}
/// <summary>
/// Update a Model's References by Providing References List ...
/// </summary>
/// <param name="source"></param>
/// <param name="references"></param>
/// <param name="forceClean"></param>
/// <returns></returns>
public static XTagDto UpdateReferences(
this XTagDto source,
IList<XReference<string>> references,
bool forceClean = true
)
{
//
XTagDto result = source;
//
if (!source.IsNullOrDefault())
{
//
result = source;
//
if (forceClean)
{
result.References = string.Empty;
}
//
if (!references.IsNull() &&
references.HasChild())
{
result.References = references.ToXReferenceString();
}
}
//
return result;
}
}
}
-85
View File
@@ -1,85 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using xCommons.Extensions;
using xDataService.Extensions;
using xTagService.Models.Dtos;
using xTagService.Models.Entities;
namespace xTagService.Extensions
{
public static class xTagServiceExtension
{
/// <summary>
/// Map Global Properties From XFile to XFile Dto ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XTagDto ToDto(this XTag source)
{
//
XTagDto result = null;
//
if (!source.IsNullOrDefault())
{
//
result = new XTagDto();
result = result.UpdateData(
updateWith: source,
propertyBlackList: new List<string>
{
nameof(XTag.Deleted),
nameof(XTag.References),
}
);
//
// Preparing List ...
if (!source.References.IsNullOrEmpty())
{
//
result.References = source.References
.ParseXReferenceList<string>()
.ToList();
}
}
//
return result;
}
/// <summary>
/// Converts a Dto to Entity Representation ...
/// Ignore ID Property ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XTag FromDto(this XTagDto source)
{
//
var result = new XTag();
//
if (!source.IsNull())
{
//
result = result.UpdateData(
updateWith: source,
propertyBlackList: new List<string>
{
nameof(XTag.Deleted),
nameof(XTag.References),
}
);
//
if (!source.References.IsNull() && source.References.HasChild()) {
result.References = source.References.ToXReferenceString();
}
}
//
return result;
}
}
}