public async Task <BurnRulePaginatedResponseModel> GetSpendRulesAsync( Localization language, [FromQuery] BasePaginationRequestModel pagination) { var spendRules = await _burnRuleService.GetLocalizedPagedAsync( Enum.Parse <Domain.Enums.Localization>(language.ToString(), true), _mapper.Map <PaginationModel>(pagination)); return(_mapper.Map <BurnRulePaginatedResponseModel>(spendRules)); }
public async Task <EarnRulePaginatedResponseModel> GetEarnRulesAsync( Localization language, [FromQuery] CampaignStatus[] statuses, [FromQuery] BasePaginationRequestModel pagination) { var earnRules = await _campaignService .GetEarnRulesPagedAsync( Enum.Parse <Domain.Enums.Localization>(language.ToString(), true), _mapper.Map <List <Domain.Enums.CampaignStatus> >(statuses), _mapper.Map <PaginationModel>(pagination)); return(_mapper.Map <EarnRulePaginatedResponseModel>(earnRules)); }
public async Task <PaginatedVouchersListResponseModel> GetCustomerVouchersAsync(Guid customerId, [FromQuery] BasePaginationRequestModel pageData) { if (customerId == default) { throw new ArgumentNullException(nameof(customerId)); } var pageInfo = _mapper.Map <PageInfo>(pageData); var result = await _vouchersService.GetCustomerVouchersAsync(customerId, pageInfo); return(_mapper.Map <PaginatedVouchersListResponseModel>(result)); }
public async Task <SmartVouchersListResponse> GetSmartVouchersForCustomerAsync([FromQuery] BasePaginationRequestModel request) { var customerId = Guid.Parse(_requestContext.UserId); var vouchersResponse = await _smartVouchersClient.VouchersApi.GetCustomerVouchersAsync(customerId, new BasePaginationRequestModel { CurrentPage = request.CurrentPage, PageSize = request.PageSize }); var result = _mapper.Map <SmartVouchersListResponse>(vouchersResponse); if (!result.SmartVouchers.Any()) { return(result); } var campaignIds = vouchersResponse.Vouchers.Select(x => x.CampaignId).Distinct().ToArray(); var campaigns = await _smartVouchersClient.CampaignsApi.GetCampaignsByIds(campaignIds); var campaignsDict = campaigns.Campaigns.ToDictionary(k => k.Id, v => new SmartVoucherCampaignDto { Name = v.GetContentValue(Localization.En, VoucherCampaignContentType.Name), ImageUrl = v.GetContentValue(Localization.En, VoucherCampaignContentType.ImageUrl), Description = v.GetContentValue(Localization.En, VoucherCampaignContentType.Description), VoucherPrice = v.VoucherPrice, PartnerId = v.PartnerId, ToDate = v.ToDate, Currency = v.Currency, }); var partnerIds = campaigns.Campaigns.Select(c => c.PartnerId).Distinct().ToArray(); var partners = await _partnerManagementClient.Partners.GetByIdsAsync(partnerIds); var partnersDict = partners.ToDictionary(k => k.Id, v => v.Name); foreach (var voucher in result.SmartVouchers) { if (!campaignsDict.TryGetValue(voucher.CampaignId, out var campaignInfo)) { _log.Warning("Smart voucher campaign is missing for existing voucher", context: new { VoucherShortCode = voucher.ShortCode, voucher.CampaignId }); continue; } voucher.CampaignName = campaignInfo.Name; voucher.ImageUrl = campaignInfo.ImageUrl; voucher.ExpirationDate = campaignInfo.ToDate; voucher.PartnerId = campaignInfo.PartnerId; voucher.Description = campaignInfo.Description; voucher.Price = campaignInfo.VoucherPrice; voucher.Currency = campaignInfo.Currency; if (!partnersDict.TryGetValue(campaignInfo.PartnerId, out var partnerName)) { _log.Warning("Partner is missing for existing smart voucher campaign", context: new { campaignInfo.PartnerId, voucher.CampaignId }); continue; } voucher.PartnerName = partnerName; } return(result); }