85 lines
2.3 KiB
C#
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;
|
|
|
|
}
|
|
}
|
|
} |