/// <summary>
        /// Search CountryTranslation by id.
        /// </summary>
        /// <param name="request">The CountryTranslation Request Pivot to retrive.</param>
        /// <returns>CountryTranslation Response Pivot response.</returns>
        public CountryTranslationResponsePivot FindCountryTranslations(CountryTranslationRequestPivot request)
        {
            if (request.CountryTranslationPivot == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            List <CountryTranslationPivot> results = new List <CountryTranslationPivot>();
            CountryTranslationPivot        result  = new CountryTranslationPivot();

            switch (request.FindCountryTranslationPivot)
            {
            case FindCountryTranslationPivot.CountryTranslationId:
                result = _unitOfWork.CountryTranslationRepository.Get(c => c.TranslationId == request.CountryTranslationPivot.TranslationId, null, "Country,Language")?.FirstOrDefault().ToPivot();
                break;

            case FindCountryTranslationPivot.CountryId:
                results = _unitOfWork.CountryTranslationRepository.Get(c => c.CountryId == request.CountryTranslationPivot.CountryId, null, "Country,Language")?.ToList().ToPivotList();
                break;
            }
            return(new CountryTranslationResponsePivot()
            {
                CountryTranslationPivotList = results,
                CountryTranslationPivot = result
            });
        }
        /// <summary>
        /// Remove CountryTranslation.
        /// </summary>
        /// <param name="request">The CountryTranslation Request Pivot to remove.</param>
        public void DeleteCountryTranslation(CountryTranslationRequestPivot request)
        {
            if (request.CountryTranslationPivot == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            CountryTranslation countryTranslation = _unitOfWork.CountryTranslationRepository.GetById(request.CountryTranslationPivot.TranslationId);

            _unitOfWork.CountryTranslationRepository.Delete(countryTranslation);
            _unitOfWork.Save();
        }
        /// <summary>
        /// Change CountryTranslation values.
        /// </summary>
        /// <param name="request">The CountryTranslation Request Pivot to change.</param>
        public void UpdateCountryTranslation(CountryTranslationRequestPivot request)
        {
            if (request.CountryTranslationPivot == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            CountryTranslation countryTranslation = _unitOfWork.CountryTranslationRepository.GetById(request.CountryTranslationPivot.TranslationId);

            countryTranslation.CountryName        = request.CountryTranslationPivot.CountryName;
            countryTranslation.CountryTitle       = request.CountryTranslationPivot.CountryTitle;
            countryTranslation.CountryDescription = request.CountryTranslationPivot.CountryDescription;
            countryTranslation.CountrySummary     = request.CountryTranslationPivot.CountrySummary;
            _unitOfWork.Save();
        }
        /// <summary>
        /// Create new CountryTranslation.
        /// </summary>
        /// <param name="request">The CountryTranslation Request Pivot to add.</param>
        /// <returns>CountryTranslation Response Pivot created.</returns>
        public CountryTranslationResponsePivot CreateCountryTranslation(CountryTranslationRequestPivot request)
        {
            if (request.CountryTranslationPivot == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            CountryTranslation countryTranslation = request.CountryTranslationPivot.ToEntity();

            _unitOfWork.CountryTranslationRepository.Insert(countryTranslation);
            _unitOfWork.Save();
            return(new CountryTranslationResponsePivot()
            {
                CountryTranslationPivot = countryTranslation.ToPivot()
            });
        }
 /// <summary>
 /// Change UpdateCountryTranslationRange values.
 /// </summary>
 /// <param name="request">The CountryTranslation Request Pivot to change.</param>
 public void UpdateCountryTranslationRange(CountryTranslationRequestPivot request)
 {
     if (request.CountryTranslationPivotList == null)
     {
         throw new ArgumentNullException(nameof(request));
     }
     foreach (var item in request.CountryTranslationPivotList)
     {
         CountryTranslation countryTranslation = _unitOfWork.CountryTranslationRepository.GetById(item.TranslationId);
         countryTranslation.CountryName        = item.CountryName;
         countryTranslation.CountryTitle       = item.CountryTitle;
         countryTranslation.CountryDescription = item.CountryDescription;
         countryTranslation.CountrySummary     = item.CountrySummary;
         _unitOfWork.Save();
     }
 }