public void Can_Perform_Add_On_RelationTypeRepository()
        {
            // Arrange
            var provider = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();
            using (var repository = CreateRepository(unitOfWork))
            {

                // Act
                var relateMemberToContent = new RelationType(new Guid(Constants.ObjectTypes.Member),
                                                             new Guid(Constants.ObjectTypes.Document),
                                                             "relateMemberToContent") {IsBidirectional = true, Name = "Relate Member to Content"};

                repository.AddOrUpdate(relateMemberToContent);
                unitOfWork.Commit();

                // Assert
                Assert.That(relateMemberToContent.HasIdentity, Is.True);
                Assert.That(repository.Exists(relateMemberToContent.Id), Is.True);
            }
        }
        public void Can_Perform_Add_On_RelationTypeRepository()
        {
            // Arrange
            var provider = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();
            var repository = new RelationTypeRepository(unitOfWork);

            // Act
            var relateMemberToContent = new RelationType(new Guid("39eb0f98-b348-42a1-8662-e7eb18487560"),
                                                         new Guid("C66BA18E-EAF3-4CFF-8A22-41B16D66A972"),
                                                         "relateMemberToContent")
                                            {IsBidirectional = true, Name = "Relate Member to Content"};
            
            repository.AddOrUpdate(relateMemberToContent);
            unitOfWork.Commit();

            // Assert
            Assert.That(relateMemberToContent.HasIdentity, Is.True);
            Assert.That(repository.Exists(relateMemberToContent.Id), Is.True);

        }
        /// <summary>
        /// Creates the RelationType needed in Umbraco to store Media-Content relations
        /// </summary>
        private void CreateRelationType()
        {
            // RelationService
            IRelationService rs = ApplicationContext.Current.Services.RelationService;

            // Create new RelationType
            var relationType = new RelationType(Constants.RelationTypeDocument, Constants.RelationTypeMedia, Constants.RelationTypeAlias, Constants.RelationTypeName);
            relationType.IsBidirectional = true;
            rs.Save(relationType);

            LogHelper.Info<MediaContentUsage>(String.Format("Created RelationType '{0}' with alias '{1}'", Constants.RelationTypeName, Constants.RelationTypeAlias));
        }
Esempio n. 4
0
 public Relation(int parentId, int childId, RelationType relationType)
 {
     _parentId = parentId;
     _childId = childId;
     _relationType = relationType;
 }
Esempio n. 5
0
 public Relation(int parentId, int childId, RelationType relationType)
 {
     _parentId     = parentId;
     _childId      = childId;
     _relationType = relationType;
 }
        public void CreateTestData()
        {
            var relateContent = new RelationType(new Guid("C66BA18E-EAF3-4CFF-8A22-41B16D66A972"), new Guid("C66BA18E-EAF3-4CFF-8A22-41B16D66A972"), "relateContentOnCopy"){IsBidirectional = true, Name = "Relate Content on Copy"};
            var relateContentType = new RelationType(new Guid("A2CB7800-F571-4787-9638-BC48539A0EFB"), new Guid("A2CB7800-F571-4787-9638-BC48539A0EFB"), "relateContentTypeOnCopy") { IsBidirectional = true, Name = "Relate ContentType on Copy" };

            var provider = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();
            var repository = new RelationTypeRepository(unitOfWork);

            repository.AddOrUpdate(relateContent);//Id 2
            repository.AddOrUpdate(relateContentType);//Id 3
            unitOfWork.Commit();
        }
        public void CreateTestData()
        {
            var relateContent = new RelationType(new Guid(Constants.ObjectTypes.Document), new Guid("C66BA18E-EAF3-4CFF-8A22-41B16D66A972"), "relateContentOnCopy") { IsBidirectional = true, Name = "Relate Content on Copy" };
            var relateContentType = new RelationType(new Guid(Constants.ObjectTypes.DocumentType), new Guid("A2CB7800-F571-4787-9638-BC48539A0EFB"), "relateContentTypeOnCopy") { IsBidirectional = true, Name = "Relate ContentType on Copy" };

            var provider = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();
            var relationTypeRepository = new RelationTypeRepository(unitOfWork);
            var relationRepository = new RelationRepository(unitOfWork, NullCacheProvider.Current, relationTypeRepository);

            relationTypeRepository.AddOrUpdate(relateContent);
            relationTypeRepository.AddOrUpdate(relateContentType);
            unitOfWork.Commit();

            //Create and Save ContentType "umbTextpage" -> 1045
            ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
            ServiceContext.ContentTypeService.Save(contentType);

            //Create and Save Content "Homepage" based on "umbTextpage" -> 1046
            Content textpage = MockedContent.CreateSimpleContent(contentType);
            ServiceContext.ContentService.Save(textpage, 0);

            //Create and Save Content "Text Page 1" based on "umbTextpage" -> 1047
            Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
            ServiceContext.ContentService.Save(subpage, 0);

            //Create and Save Content "Text Page 1" based on "umbTextpage" -> 1048
            Content subpage2 = MockedContent.CreateSimpleContent(contentType, "Text Page 2", textpage.Id);
            ServiceContext.ContentService.Save(subpage2, 0);

            var relation = new Relation(textpage.Id, subpage.Id, relateContent) { Comment = string.Empty };
            var relation2 = new Relation(textpage.Id, subpage2.Id, relateContent) { Comment = string.Empty };
            relationRepository.AddOrUpdate(relation);
            relationRepository.AddOrUpdate(relation2);
            unitOfWork.Commit();
        }
 /// <summary>
 /// Gets all <see cref="Relation"/> objects by their <see cref="RelationType"/>
 /// </summary>
 /// <param name="relationType"><see cref="RelationType"/> to retrieve Relations for</param>
 /// <returns>An enumerable list of <see cref="Relation"/> objects</returns>
 public IEnumerable<Relation> GetAllRelationsByRelationType(RelationType relationType)
 {
     return GetAllRelationsByRelationType(relationType.Id);
 }
        /// <summary>
        /// Deletes all <see cref="Relation"/> objects based on the passed in <see cref="RelationType"/>
        /// </summary>
        /// <param name="relationType"><see cref="RelationType"/> to Delete Relations for</param>
        public void DeleteRelationsOfType(RelationType relationType)
        {
            var uow = _uowProvider.GetUnitOfWork();
            using (var repository = _repositoryFactory.CreateRelationRepository(uow))
            {
                var query = new Query<Relation>().Where(x => x.RelationTypeId == relationType.Id);
                var list = repository.GetByQuery(query).ToList();

                foreach (var relation in list)
                {
                    repository.Delete(relation);
                }
                uow.Commit();
            }
        }
Esempio n. 10
0
 /// <summary>
 /// Deletes a <see cref="RelationType"/>
 /// </summary>
 /// <param name="relationType">RelationType to Delete</param>
 public void Delete(RelationType relationType)
 {
     var uow = _uowProvider.GetUnitOfWork();
     using (var repository = _repositoryFactory.CreateRelationTypeRepository(uow))
     {
         repository.Delete(relationType);
         uow.Commit();
     }
 }
Esempio n. 11
0
 /// <summary>
 /// Checks whether any relations exists for the passed in <see cref="RelationType"/>.
 /// </summary>
 /// <param name="relationType"><see cref="RelationType"/> to check for relations</param>
 /// <returns>Returns <c>True</c> if any relations exists for the given <see cref="RelationType"/>, otherwise <c>False</c></returns>
 public bool HasRelations(RelationType relationType)
 {
     using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
     {
         var query = new Query<Relation>().Where(x => x.RelationTypeId == relationType.Id);
         return repository.GetByQuery(query).Any();
     }
 }
Esempio n. 12
0
        /// <summary>
        /// Relates two objects that are based on the <see cref="IUmbracoEntity"/> interface.
        /// </summary>
        /// <param name="parent">Parent entity</param>
        /// <param name="child">Child entity</param>
        /// <param name="relationType">The type of relation to create</param>
        /// <returns>The created <see cref="Relation"/></returns>
        public Relation Relate(IUmbracoEntity parent, IUmbracoEntity child, RelationType relationType)
        {
            //Ensure that the RelationType has an indentity before using it to relate two entities
            if(relationType.HasIdentity == false)
                Save(relationType);

            var relation = new Relation(parent.Id, child.Id, relationType);
            var uow = _uowProvider.GetUnitOfWork();
            using (var repository = _repositoryFactory.CreateRelationRepository(uow))
            {
                repository.AddOrUpdate(relation);
                uow.Commit();

                return relation;
            }
        }