public Task <Guid> CreateAsync([FromBody] SmartVoucherCampaignCreateRequest request) { var campaign = _mapper.Map <VoucherCampaignCreateModel>(request); campaign.CreatedBy = _requestContext.UserId; return(_smartVouchersClient.CampaignsApi.CreateAsync(campaign)); }
public async Task <SmartVoucherCampaignCreatedResponse> CreateAsync([FromBody] SmartVoucherCampaignCreateRequest model) { var campaign = _mapper.Map <VoucherCampaignCreateModel>(model); campaign.CreatedBy = _requestContext.UserId; var mobileContents = new List <VoucherCampaignContentCreateModel>(); foreach (var mobileContent in model.MobileContents) { Enum.TryParse <SmartVouchers.Client.Models.Enums.Localization>(mobileContent.MobileLanguage.ToString(), out var mobileLanguage); if (!string.IsNullOrEmpty(mobileContent.Title)) { mobileContents.Add(new VoucherCampaignContentCreateModel { Localization = mobileLanguage, ContentType = VoucherCampaignContentType.Name, Value = mobileContent.Title }); } mobileContents.Add(new VoucherCampaignContentCreateModel { Localization = mobileLanguage, ContentType = VoucherCampaignContentType.Description, Value = string.IsNullOrEmpty(mobileContent.Description) ? null : mobileContent.Description }); // create content for adding image mobileContents.Add(new VoucherCampaignContentCreateModel { Localization = mobileLanguage, ContentType = VoucherCampaignContentType.ImageUrl, Value = "#" }); } campaign.LocalizedContents = mobileContents; Guid campaignId; try { campaignId = await _smartVouchersClient.CampaignsApi.CreateAsync(campaign); } catch (ClientApiException exception) { throw new ValidationApiException(exception.ErrorResponse); } var createdCampaign = await _smartVouchersClient.CampaignsApi.GetByIdAsync(campaignId); var createImageContents = new List <ImageContentCreatedResponse>(); foreach (var content in createdCampaign.LocalizedContents) { if (content.ContentType == VoucherCampaignContentType.ImageUrl) { Enum.TryParse <MobileLocalization>(content.Localization.ToString(), out var mobileLanguage); createImageContents.Add(new ImageContentCreatedResponse { MobileLanguage = mobileLanguage, RuleContentId = content.Id }); } } return(new SmartVoucherCampaignCreatedResponse { Id = campaignId, CreatedImageContents = createImageContents }); }