/// <summary>
        /// Search ActivityFileTranslation by id.
        /// </summary>
        /// <param name="request">The ActivityFileTranslation Request Pivot to retrive.</param>
        /// <returns>ActivityFileTranslation Response Pivot response.</returns>
        public ActivityFileTranslationResponsePivot FindActivityFileTranslations(ActivityFileTranslationRequestPivot request)
        {
            if (request?.ActivityFileTranslationPivot == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            List <ActivityFileTranslationPivot> results = new List <ActivityFileTranslationPivot>();
            ActivityFileTranslationPivot        result  = new ActivityFileTranslationPivot();

            switch (request.FindActivityFileTranslationPivot)
            {
            case FindActivityFileTranslationPivot.ActivityFileTranslationId:
                result = _unitOfWork.ActivityFileTranslationRepository.Get(f => f.TranslationId == request.ActivityFileTranslationPivot.TranslationId, null, "Language,ActivityFile")?.FirstOrDefault().ToPivot();
                break;

            case FindActivityFileTranslationPivot.ActivityFileId:
                results = _unitOfWork.ActivityFileTranslationRepository.Get(f => f.ActivityFileId == request.ActivityFileTranslationPivot.ActivityFileId, null, "Language,ActivityFile")?.ToList().ToPivotList();
                break;
            }
            return(new ActivityFileTranslationResponsePivot
            {
                ActivityFileTranslationPivotList = results,
                ActivityFileTranslationPivot = result
            });
        }
        /// <summary>
        /// Remove ActivityFileTranslation.
        /// </summary>
        /// <param name="request">The ActivityFileTranslation Request Pivot to remove.</param>
        public void DeleteActivityFileTranslation(ActivityFileTranslationRequestPivot request)
        {
            if (request?.ActivityFileTranslationPivot == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            ActivityFileTranslation activityFileTranslation = _unitOfWork.ActivityFileTranslationRepository.GetById(request.ActivityFileTranslationPivot.TranslationId);

            _unitOfWork.ActivityFileTranslationRepository.Delete(activityFileTranslation);
            _unitOfWork.Save();
        }
        /// <summary>
        /// Create new ActivityFileTranslation.
        /// </summary>
        /// <param name="request">The ActivityFileTranslation Request Pivot to add.</param>
        /// <returns>ActivityFileTranslation Response Pivot created.</returns>
        public ActivityFileTranslationResponsePivot CreateActivityFileTranslation(ActivityFileTranslationRequestPivot request)
        {
            if (request?.ActivityFileTranslationPivot == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            ActivityFileTranslation activityFileTranslation = request.ActivityFileTranslationPivot.ToEntity();

            _unitOfWork.ActivityFileTranslationRepository.Insert(activityFileTranslation);
            _unitOfWork.Save();
            return(new ActivityFileTranslationResponsePivot
            {
                ActivityFileTranslationPivot = activityFileTranslation.ToPivot()
            });
        }
        /// <summary>
        /// Change ActivityFileTranslation values.
        /// </summary>
        /// <param name="request">The ActivityFileTranslation Request Pivot to change.</param>
        public void UpdateActivityFileTranslation(ActivityFileTranslationRequestPivot request)
        {
            if (request?.ActivityFileTranslationPivot == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            ActivityFileTranslation activityFileTranslation = _unitOfWork.ActivityFileTranslationRepository.GetById(request.ActivityFileTranslationPivot.TranslationId);

            if (request.ActivityFileTranslationPivot.ActivityFileSource != null)
            {
                activityFileTranslation.ActivityFileSource = request.ActivityFileTranslationPivot.ActivityFileSource;
            }
            activityFileTranslation.ActivityFileText = request.ActivityFileTranslationPivot.ActivityFileText;
            _unitOfWork.Save();
        }
        /// <summary>
        /// Change ActivityFileTranslation values.
        /// </summary>
        /// <param name="request">The ActivityFileTranslation Request Pivot to change.</param>
        public void UpdateActivityFileTranslationRange(ActivityFileTranslationRequestPivot request)
        {
            if (request?.ActivityFileTranslationPivotList == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            foreach (var translation in request.ActivityFileTranslationPivotList)
            {
                ActivityFileTranslation activityFileTranslation = _unitOfWork.ActivityFileTranslationRepository.GetById(translation.TranslationId);
                if (translation.ActivityFileSource != null)
                {
                    activityFileTranslation.ActivityFileSource = translation.ActivityFileSource;
                }
                activityFileTranslation.ActivityFileText = translation.ActivityFileText;
                _unitOfWork.Save();
            }
        }