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)); }
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); }
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); }
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); } }