using System.Collections.Generic;
using System.Linq;
using xCommons.Extensions;
using xDataService.Extensions;
using xDataService.Models;
using xFileService.Models.Dtos;
using xFileService.Models.Entities;
namespace xFileService.Extensions
{
public static class XModelExtensions
{
///
/// Extract References of a Model ...
///
///
///
public static IList> GetReferences(
this XFile source
)
{
//
var result = new List>();
//
if (
!source.IsNullOrDefault() &&
!source.References.IsNullOrEmpty()
)
{
//
result = source.References
.ParseXReferenceList()
.ToList();
}
//
return result;
}
///
/// Extract References of a Model ...
///
///
///
public static IList> GetReferences(
this XFileDto source
)
{
//
var result = new List>();
//
if (
!source.IsNullOrDefault() &&
!source.References.IsNullOrEmpty()
)
{
//
result = source.References
.ParseXReferenceList()
.ToList();
}
//
return result;
}
///
/// Update a Model's References by Providing References List ...
///
///
///
///
///
public static XFile UpdateReferences(
this XFile source,
IList> references,
bool forceClean = true
)
{
//
XFile result = source;
//
if (!source.IsNullOrDefault())
{
//
result = source;
//
if (forceClean)
{
result.References = string.Empty;
}
//
if (!references.IsNull() &&
references.HasChild())
{
result.References = references.ToXReferenceString();
}
}
//
return result;
}
///
/// Update a Model's References by Providing References List ...
///
///
///
///
///
public static XFileDto UpdateReferences(
this XFileDto source,
IList> references,
bool forceClean = true
)
{
//
XFileDto result = source;
//
if (!source.IsNullOrDefault())
{
//
result = source;
//
if (forceClean)
{
result.References = string.Empty;
}
//
if (!references.IsNull() &&
references.HasChild())
{
result.References = references.ToXReferenceString();
}
}
//
return result;
}
}
}