Files
xFileService/Extensions/xFileServiceExtensions.cs
T

85 lines
2.3 KiB
C#

using System.Collections.Generic;
using xCommons.Extensions;
using xDataService.Extensions;
using xFileService.Models.Dtos;
using xFileService.Models.Entities;
namespace xFileService.Extensions
{
public static class xFileServiceExtensions
{
/// <summary>
/// Map Global Properties From XFile to XFile Dto ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XFileDto ToDto(this XFile source)
{
//
XFileDto result = null;
//
if (!source.IsNullOrDefault())
{
//
result = new XFileDto();
result = result.UpdateData(
updateWith: source,
propertyBlackList: new List<string>
{
nameof(XFileDto.Owner),
nameof(XFile.Deleted),
nameof(XFile.References),
}
);
//
// Preparing List ...
if (!source.References.IsNullOrEmpty())
{
result.References = source.References.ParseXReferenceList<string>();
}
}
//
return result;
}
/// <summary>
/// Converts a Dto to Entity Representation ...
/// Ignore ID Property ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XFile FromDto(this XFileDto source)
{
//
var result = new XFile();
//
if (!source.IsNull())
{
//
result = result.UpdateData(
updateWith: source,
propertyBlackList: new List<string>
{
nameof(XFile.Deleted),
nameof(XFile.References),
}
);
//
if (!source.References.IsNull() && source.References.HasChild())
{
result.References = source.References.ToXReferenceString();
}
}
//
return result;
}
}
}