private void CheckImportableRelations(SerializedDataImport dataImport)
{
//NOTE Should the checks include both TypedEntities and EntitySchemas for both lists of relations?
using (var uow = _context.Application.Hive.OpenReader<IContentStore>())
{
foreach (var entity in dataImport.EntityRelations)
{
var relation = entity.DeserializedObject as IRelationById;
if(relation == null) continue;
bool sourceExists = uow.Repositories.Exists<TypedEntity>(relation.SourceId);
bool packagedSourceExists = dataImport.Entities.Any(x => x.ObjectId == relation.SourceId);
bool destinationExists = uow.Repositories.Exists<TypedEntity>(relation.DestinationId);
bool packagedDestinationExists = dataImport.Entities.Any(x => x.ObjectId == relation.DestinationId);
if((sourceExists || packagedSourceExists) && (destinationExists || packagedDestinationExists))
{
entity.IsImportable = true;
}
}
foreach (var schema in dataImport.SchemaRelations)
{
var relation = schema.DeserializedObject as IRelationById;
if (relation == null) continue;
bool sourceExists = uow.Repositories.Schemas.Exists<EntitySchema>(relation.SourceId);
bool packagedSourceExists = dataImport.Schemas.Any(x => x.ObjectId == relation.SourceId);
bool destinationExists = uow.Repositories.Schemas.Exists<EntitySchema>(relation.DestinationId);
bool packagedDestinationExists = dataImport.Schemas.Any(x => x.ObjectId == relation.DestinationId);
if ((sourceExists || packagedSourceExists) && (destinationExists || packagedDestinationExists))
{
schema.IsImportable = true;
}
}
}
}
}