public async Task <ActionResult> CreateLocationAsync(int campaignId, [FromBody] UserLocationRuleDTO locationRuleDto) { if (campaignId < 1 || locationRuleDto is null) { return(BadRequest()); } var locationRule = MapUserLocationRuleDtoToModel(locationRuleDto); locationRule.CampaignId = campaignId; await _context.Rules.AddAsync(locationRule); await _context.SaveChangesAsync(); if (_settings.CachingEnabled) { var cache = _context.GetCache(); var options = new CachingOptions(); options.SetAbsoluteExpiration(DateTime.Now.AddMinutes(_settings.MarketingCacheExpirationTimeInMinutes)); await Task.Run(() => cache.Insert(locationRule, out string cacheKey, options)); } return(CreatedAtAction(nameof(GetLocationByCampaignAndLocationRuleId), new { campaignId = campaignId, userLocationRuleId = locationRule.Id }, null)); }
public async Task <ActionResult> CreateCampaignAsync([FromBody] CampaignDTO campaignDto) { if (campaignDto is null) { return(BadRequest()); } var campaign = MapCampaignDtoToModel(campaignDto); await _context.Campaigns.AddAsync(campaign); await _context.SaveChangesAsync(); if (_settings.CachingEnabled) { var cache = _context.GetCache(); var cachingOptions = new CachingOptions(); cachingOptions.SetAbsoluteExpiration(DateTime.Now.AddMinutes(_settings.MarketingCacheExpirationTimeInMinutes)); await Task.Run(() => cache.Insert(campaign, out string cacheKey, cachingOptions)); } return(CreatedAtAction(nameof(GetCampaignByIdAsync), new { id = campaign.Id }, null)); }