public void CreateConcept_Returns_Null_Data_When_RepoInsert_Throws_Exception() { A.CallTo(() => ConceptRepository.Insert(A <Concept> ._)).Throws <Exception>(); var mockConcept = Mock.MockCreateOrUpdateConcept(); var viewModel = Service.CreateConcept(mockConcept, _userInfo); Assert.Null(viewModel.Data); }
public Response CreateConcept(CreateConceptDto newConcept, UserInfo userInfo) { var viewModel = new Response(); var concept = Mapper.Map <Concept>(newConcept); var media = new List <ConceptMedia>(); if (userInfo == null || string.IsNullOrEmpty(userInfo.Email) || string.IsNullOrEmpty(userInfo.FullName)) { viewModel.Errors.TryAddModelError("errorMessage", "Could not get user information"); return(viewModel); } var language = GetLanguage(viewModel, newConcept.MetaIds); if (language == null) { return(viewModel); } // Readonly fields concept.LanguageId = language.Id; concept.AuthorEmail = userInfo.Email; concept.AuthorName = userInfo.FullName; concept.UrlToContent = string.Empty; // Create a language variation if (concept.GroupId != Guid.Empty) { if (!CanCreateLanguageVariation(viewModel, concept)) { return(viewModel); } } else { concept.GroupId = Guid.NewGuid(); } try { concept = _conceptRepository.Insert(concept); } catch (Exception e) { viewModel.Errors.TryAddModelError("errorMessage", "Could not create concept"); return(viewModel); } try { media = _conceptMediaRepository.InsertMediaForConcept(concept.Id, newConcept.Media); } catch (Exception e) { viewModel.Errors.TryAddModelError("errorMessage", "Could not insert media for concept"); return(viewModel); } concept.Media = media.Select(x => x.Media).ToList(); viewModel.Data = Mapper.Map <ConceptDto>(concept); return(viewModel); }