public async Task SetImage([FromBody] SmartVoucherCampaignSetImageRequest request)
        {
            var imageModel = _mapper.Map <CampaignImageFileRequest>(request);

            var error = await _smartVouchersClient.CampaignsApi.SetImage(imageModel);

            if (error != SaveImageErrorCodes.None)
            {
                throw LykkeApiErrorException.BadRequest(new LykkeApiErrorCode(error.ToString()));
            }
        }
        public async Task SetImage([FromQuery] SmartVoucherCampaignSetImageRequest model, [Required] IFormFile formFile)
        {
            #region Filter

            var permissionLevel = await _requestContext.GetPermissionLevelAsync(PermissionType.VoucherManager);

            if (permissionLevel.HasValue && permissionLevel.Value == PermissionLevel.PartnerEdit)
            {
                var existingCampaign = await _smartVouchersClient.CampaignsApi.GetByIdAsync(model.CampaignId);

                // filter data for current _requestContext.UserId
                if (existingCampaign != null &&
                    existingCampaign.CreatedBy != _requestContext.UserId)
                {
                    throw LykkeApiErrorException.Forbidden(new LykkeApiErrorCode(nameof(HttpStatusCode.Forbidden)));
                }
            }

            #endregion

            var imageContent = _imageService.HandleFile(formFile, model.ContentId);

            var imageModel = _mapper.Map <SmartVoucherCampaignSetImageRequest, CampaignImageFileRequest>(model,
                                                                                                         opt => opt.AfterMap((src, dest) =>
            {
                dest.Type    = formFile.ContentType;
                dest.Name    = formFile.FileName;
                dest.Content = imageContent;
            }));

            SaveImageErrorCodes error;

            try
            {
                error = await _smartVouchersClient.CampaignsApi.SetImage(imageModel);
            }
            catch (ClientApiException exception)
            {
                throw new ValidationApiException(exception.ErrorResponse);
            }

            if (error != SaveImageErrorCodes.None)
            {
                throw LykkeApiErrorException.BadRequest(new LykkeApiErrorCode(error.ToString()));
            }
            await _auditLogPublisher.PublishAuditLogAsync(_requestContext.UserId, model.ToJson(), ActionType.SetSmartVoucherCampaignImage);
        }