/// <summary> /// From PublicationThemePivot to PublicationTheme. /// </summary> /// <param name="publicationThemePivot">publicationThemePivot to assemble.</param> /// <returns>PublicationTheme result.</returns> public static PublicationTheme ToEntity(this PublicationThemePivot publicationThemePivot) { if (publicationThemePivot == null) { return(null); } return(new PublicationTheme { PublicationThemeId = publicationThemePivot.PublicationThemeId, Publication = publicationThemePivot.Publication.ToEntity(), PublicationId = publicationThemePivot.PublicationId, Theme = publicationThemePivot.Theme.ToEntity(), ThemeId = publicationThemePivot.ThemeId }); }
/// <summary> /// From PublicationTheme Pivot To PublicationTheme Dto. /// </summary> /// <param name="publicationThemePivot">publicationTheme pivot to assemble.</param> /// <returns>PublicationThemeDto result.</returns> public static PublicationThemeDto ToDto(this PublicationThemePivot publicationThemePivot) { if (publicationThemePivot == null) { return(null); } return(new PublicationThemeDto { PublicationThemeId = publicationThemePivot.PublicationThemeId, Publication = publicationThemePivot.Publication.ToDto(), PublicationId = publicationThemePivot.PublicationId, Theme = publicationThemePivot.Theme.ToDto(), ThemeId = publicationThemePivot.ThemeId }); }
/// <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 }); }