/// <summary> /// Remove PublicationTheme. /// </summary> /// <param name="request">The PublicationTheme Request Pivot to remove.</param> public void DeletePublicationTheme(PublicationThemeRequestPivot request) { if (request?.PublicationThemePivot == null) { throw new ArgumentNullException(nameof(request)); } PublicationTheme publicationTheme = _unitOfWork.PublicationThemeRepository.GetById(request.PublicationThemePivot.PublicationThemeId); _unitOfWork.PublicationThemeRepository.Delete(publicationTheme); _unitOfWork.Save(); }
/// <summary> /// Change PublicationTheme values Range. /// </summary> /// <param name="request">The PublicationTheme Request Pivot to change.</param> public void UpdatePublicationThemeRange(PublicationThemeRequestPivot request) { if (request?.PublicationThemePivotList == null) { throw new ArgumentNullException(nameof(request)); } foreach (PublicationThemePivot publicationThemePivot in request.PublicationThemePivotList) { PublicationTheme publicationTheme = _unitOfWork.PublicationThemeRepository.GetById(publicationThemePivot.PublicationThemeId); publicationTheme.PublicationId = publicationThemePivot.PublicationId; publicationTheme.ThemeId = publicationThemePivot.ThemeId; _unitOfWork.Save(); } }
/// <summary> /// Create new PublicationTheme. /// </summary> /// <param name="request">The PublicationTheme Request Pivot to add.</param> /// <returns>PublicationTheme Response Pivot created.</returns> public PublicationThemeResponsePivot CreatePublicationThemeRange(PublicationThemeRequestPivot request) { if (request?.PublicationThemePivotList == null) { throw new ArgumentNullException(nameof(request)); } List <PublicationTheme> publicationThemeList = request.PublicationThemePivotList.ToEntityList(); _unitOfWork.PublicationThemeRepository.Insert(publicationThemeList); _unitOfWork.Save(); return(new PublicationThemeResponsePivot { PublicationThemePivotList = publicationThemeList.ToPivotList() }); }
/// <summary> /// Search PublicationTheme. /// </summary> /// <param name="request">The PublicationTheme Request Pivot to retrive.</param> /// <returns>PublicationTheme Response Pivot response.</returns> public PublicationThemeResponsePivot FindPublicationThemes(PublicationThemeRequestPivot request) { if (request?.PublicationThemePivot == null) { throw new ArgumentNullException(nameof(request)); } List <PublicationThemePivot> results = new List <PublicationThemePivot>(); PublicationThemePivot result = new PublicationThemePivot(); List <PublicationTranslationPivot> publicationTranslationPivotList = new List <PublicationTranslationPivot>(); PublicationTranslationPivot publicationTranslationPivot = new PublicationTranslationPivot(); List <ThemeTranslationPivot> themeTranslationPivotList = new List <ThemeTranslationPivot>(); ThemeTranslationPivot themeTranslationPivot = new ThemeTranslationPivot(); switch (request.FindPublicationThemePivot) { case FindPublicationThemePivot.PublicationThemeId: result = _unitOfWork.PublicationThemeRepository .Get(p => p.PublicationThemeId == request.PublicationThemePivot.PublicationThemeId) ?.FirstOrDefault().ToPivot(); themeTranslationPivot = _unitOfWork.ThemeTranslationRepository .Get(t => t.ThemeId == request.PublicationThemePivot.ThemeId).FirstOrDefault().ToPivot(); publicationTranslationPivot = _unitOfWork.PublicationTranslationRepository .Get(p => p.PublicationId == request.PublicationThemePivot.PublicationId).FirstOrDefault() .ToPivot(); break; case FindPublicationThemePivot.PublicationId: results = _unitOfWork.PublicationThemeRepository .Get(p => p.PublicationId == request.PublicationThemePivot.PublicationId)?.ToList() .ToPivotList(); if (results != null) { foreach (PublicationThemePivot publicationThemePivot in results) { publicationTranslationPivotList.AddRange(_unitOfWork.PublicationTranslationRepository .Get(p => p.PublicationId == publicationThemePivot.PublicationId).ToList() .ToPivotList()); themeTranslationPivotList.AddRange(_unitOfWork.ThemeTranslationRepository .Get(t => t.ThemeId == publicationThemePivot.ThemeId).ToList() .ToPivotList()); } } break; case FindPublicationThemePivot.ThemeId: results = _unitOfWork.PublicationThemeRepository .Get(p => p.ThemeId == request.PublicationThemePivot.ThemeId)?.ToList().ToPivotList(); if (results != null) { foreach (PublicationThemePivot publicationThemePivot in results) { publicationTranslationPivotList.AddRange(_unitOfWork.PublicationTranslationRepository .Get(p => p.PublicationId == publicationThemePivot.PublicationId).ToList() .ToPivotList()); themeTranslationPivotList.AddRange(_unitOfWork.ThemeTranslationRepository .Get(t => t.ThemeId == publicationThemePivot.ThemeId).ToList() .ToPivotList()); } } break; case FindPublicationThemePivot.PublicationIdAndThemeId: result = _unitOfWork.PublicationThemeRepository .Get( p => p.ThemeId == request.PublicationThemePivot.ThemeId && p.PublicationId == request.PublicationThemePivot.PublicationId )?.FirstOrDefault().ToPivot(); themeTranslationPivot = _unitOfWork.ThemeTranslationRepository .Get(t => t.ThemeId == request.PublicationThemePivot.ThemeId).FirstOrDefault().ToPivot(); publicationTranslationPivot = _unitOfWork.PublicationTranslationRepository .Get(p => p.PublicationId == request.PublicationThemePivot.PublicationId).FirstOrDefault() .ToPivot(); break; } return(new PublicationThemeResponsePivot { PublicationTranslationPivotList = publicationTranslationPivotList, PublicationTranslationPivot = publicationTranslationPivot, ThemeTranslationPivotList = themeTranslationPivotList, ThemeTranslationPivot = themeTranslationPivot, PublicationThemePivotList = results, PublicationThemePivot = result }); }