Пример #1
0
 private Media MediaWithExternalIdOfTypeExists(MediaWithMediaType mediaType)
 {
     return(_context.Media
            .Include(x => x.MediaType)
            .FirstOrDefault(x =>
                            x.ExternalId == mediaType.ExternalId &&
                            x.MediaTypeId == mediaType.MediaTypeId &&
                            x.Source == mediaType.Source));
 }
Пример #2
0
        private Media CreateMedia(MediaWithMediaType mediaType)
        {
            var media = new Media
            {
                ExternalId  = mediaType.ExternalId,
                MediaTypeId = mediaType.MediaTypeId,
                Source      = mediaType.Source,
                MediaType   = _context.MediaTypes.Find(mediaType.MediaTypeId),
                Created     = DateTime.Now,
                Updated     = DateTime.Now
            };

            _context.Media.Add(media);
            return(media);
        }
Пример #3
0
        public ConceptMedia Insert(int conceptId, MediaWithMediaType mediaType)
        {
            var media = MediaWithExternalIdOfTypeExists(mediaType);

            if (media == null)
            {
                media = CreateMedia(mediaType);
            }

            var relation = new ConceptMedia
            {
                ConceptId = conceptId,
                MediaId   = media.Id,
                Media     = media,
                Created   = DateTime.Now,
                Updated   = DateTime.Now
            };

            _context.ConceptMedia.Add(relation);
            _context.SaveChanges();
            return(relation);
        }
Пример #4
0
        public void CreateConcept_Returns_Inserted_Media_On_Success()
        {
            var oneMedia = new MediaWithMediaType
            {
                ExternalId  = "1",
                MediaTypeId = 1
            };
            var twoMedia = new MediaWithMediaType
            {
                ExternalId  = "2",
                MediaTypeId = 2
            };
            var mockConcept      = Mock.MockConcept(_status);
            var mockMediaConcept = Mock.MockCreateOrUpdateConcept();

            mockMediaConcept.Media = new List <MediaWithMediaType>
            {
                oneMedia,
                twoMedia
            };

            var conceptMediaList = new List <ConceptMedia>
            {
                new ConceptMedia
                {
                    Media = new Media
                    {
                        ExternalId = oneMedia.ExternalId,
                        MediaType  = new MediaType
                        {
                            Id = oneMedia.MediaTypeId
                        }
                    }
                },
                new ConceptMedia
                {
                    Media = new Media
                    {
                        ExternalId = twoMedia.ExternalId,
                        MediaType  = new MediaType
                        {
                            Id = twoMedia.MediaTypeId
                        }
                    }
                }
            };

            A.CallTo(() => StatusRepository.GetById(A <int> ._)).Returns(_status);
            A.CallTo(() => ConceptRepository.Insert(A <Concept> ._)).Returns(mockConcept);
            A.CallTo(() => ConceptMediaRepository.InsertMediaForConcept(A <int> ._, A <List <MediaWithMediaType> > ._)).Returns(conceptMediaList);
            var viewModel = Service.CreateConcept(mockMediaConcept, _userInfo);

            var concept = viewModel.Data as ConceptDto;

            Assert.Equal(concept.Media.Count, mockMediaConcept.Media.Count);

            for (var i = 0; i < concept.Media.Count; i++)
            {
                Assert.Equal(concept.Media[i].ExternalId, mockMediaConcept.Media[i].ExternalId);
                Assert.Equal(concept.Media[i].MediaType.Id, mockMediaConcept.Media[i].MediaTypeId);
            }
        }