public IHttpActionResult DeleteSheetTranslation(int translationId)
        {
            SheetTranslationRequest request = new SheetTranslationRequest
            {
                SheetTranslationDto = new SheetTranslationDto {
                    TranslationId = translationId
                },
                FindSheetTranslationDto = FindSheetTranslationDto.SheetTranslationId
            };

            SheetTranslationMessage message = new SheetTranslationMessage();
            List <string>           errors  = ValidateDeleteSheetTranslation(request);

            if (errors != null && errors.Any())
            {
                message.ErrorMessage     = CountryMessageResource.ValidationErrors;
                message.ErrorType        = ErrorType.ValidationError;
                message.Errors           = new List <string>();
                message.OperationSuccess = false;
                message.Errors.AddRange(errors);
            }
            else
            {
                message = _serviceSheetTranslationClient.DeleteSheetTranslation(request);
            }
            return(Json(message));
        }
 /// <summary>
 ///    From SheetTranslation Request to SheetTranslation Request pivot.
 /// </summary>
 /// <param name="sheetTranslationRequest"></param>
 /// <returns>SheetTranslation Request pivot result.</returns>
 public static SheetTranslationRequestPivot ToPivot(this SheetTranslationRequest sheetTranslationRequest)
 {
     return new SheetTranslationRequestPivot()
     {
         SheetTranslationPivot = sheetTranslationRequest.SheetTranslationDto?.ToPivot(),
         SheetTranslationPivotList = sheetTranslationRequest.SheetTranslationDtoList?.ToPivotList(),
         FindSheetTranslationPivot = Utility.EnumToEnum<FindSheetTranslationDto, FindSheetTranslationPivot>(sheetTranslationRequest.FindSheetTranslationDto)
     };
 }
        /// <summary>
        /// Validate delete Country Sheet Translation.
        /// </summary>
        /// <param name="request">the request to validate.</param>
        /// <returns>errors validation</returns>
        private List <string> ValidateDeleteSheetTranslation(SheetTranslationRequest request)
        {
            List <string> errors = new List <string>();

            if (request?.SheetTranslationDto == null)
            {
                errors.Add(CountryMessageResource.NullRequest);
            }
            else
            {
                errors.AddRange(GenericValidationAttribute <SheetTranslationDto> .ValidateAttributes("TranslationId", request.SheetTranslationDto.TranslationId.ToString()));
            }
            return(errors);
        }
        /// <summary>
        /// Change SheetTranslation informations.
        /// </summary>
        /// <param name="request">sheetTranslation request.</param>
        /// <returns>SheetTranslation message.</returns>
        public SheetTranslationMessage UpdateSheetTranslation(SheetTranslationRequest request)
        {
            SheetTranslationMessage message = new SheetTranslationMessage();

            try
            {
                _serviceSheetTranslation.UpdateSheetTranslation(request.ToPivot());
                message.OperationSuccess = true;
            }
            catch (Exception e)
            {
                message.ErrorType    = ErrorType.TechnicalError;
                message.ErrorMessage = e.Message;
            }
            return(message);
        }
        public IHttpActionResult UpdateSheetTranslationRange(SheetTranslationRequest request)
        {
            SheetTranslationMessage message = new SheetTranslationMessage();
            List <string>           errors  = ValidateUpdateSheetTranslationRange(request);

            if (errors != null && errors.Any())
            {
                message.ErrorMessage     = CountryMessageResource.ValidationErrors;
                message.ErrorType        = ErrorType.ValidationError;
                message.Errors           = new List <string>();
                message.OperationSuccess = false;
                message.Errors.AddRange(errors);
            }
            else
            {
                message = _serviceSheetTranslationClient.UpdateSheetTranslationRange(request);
            }
            return(Json(message));
        }
        /// <summary>
        /// Validate Create Country Sheet Traslation.
        /// </summary>
        /// <param name="request">the request to validate.</param>
        /// <returns>errors validation</returns>
        private List <string> ValidateCreateSheetTranslationRange(SheetTranslationRequest request)
        {
            List <string> errors = new List <string>();

            if (request?.SheetTranslationDtoList == null)
            {
                errors.Add(CountryMessageResource.NullRequest);
            }
            else
            {
                foreach (var translation in request.SheetTranslationDtoList)
                {
                    errors.AddRange(GenericValidationAttribute <SheetTranslationDto> .ValidateAttributes("SheetValue", translation.SheetValue));
                    errors.AddRange(GenericValidationAttribute <SheetTranslationDto> .ValidateAttributes("SheetId", translation.SheetId.ToString()));
                    errors.AddRange(GenericValidationAttribute <SheetTranslationDto> .ValidateAttributes("LanguageId", translation.LanguageId.ToString()));
                    errors.AddRange(GenericValidationAttribute <SheetTranslationDto> .ValidateAttributes("SheetTitle", translation.SheetTitle));
                }
            }
            return(errors);
        }
        /// <summary>
        /// Validate Find Country Sheet Translation.
        /// </summary>
        /// <param name="request">the request to validate.</param>
        /// <returns>errors validation</returns>
        private List <string> ValidateFindSheetTranslation(SheetTranslationRequest request)
        {
            List <string> errors = new List <string>();

            if (request?.SheetTranslationDto == null)
            {
                errors.Add(CountryMessageResource.NullRequest);
            }
            else
            {
                switch (request.FindSheetTranslationDto)
                {
                case FindSheetTranslationDto.SheetTranslationId:
                    errors.AddRange(GenericValidationAttribute <SheetTranslationDto> .ValidateAttributes("TranslationId", request.SheetTranslationDto.TranslationId.ToString()));
                    break;

                case FindSheetTranslationDto.SheetId:
                    errors.AddRange(GenericValidationAttribute <SheetTranslationDto> .ValidateAttributes("SheetId", request.SheetTranslationDto.SheetId.ToString()));
                    break;
                }
            }
            return(errors);
        }