Rebel.Cms.Web.Packaging.PackageInstallation.CheckImportableRelations C# (CSharp) Method

CheckImportableRelations() private method

Check relations to verify source and destination exists
private CheckImportableRelations ( SerializedDataImport dataImport ) : void
dataImport SerializedDataImport
return void
        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;
                    }
                }
            }
        }
    }