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)); }
private UserLocationRule MapUserLocationRuleDtoToModel(UserLocationRuleDTO userLocationRuleDto) { return(new UserLocationRule { Id = userLocationRuleDto.Id, Description = userLocationRuleDto.Description, LocationId = userLocationRuleDto.LocationId }); }
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(); return(CreatedAtAction(nameof(GetLocationByCampaignAndLocationRuleId), new { campaignId = campaignId, userLocationRuleId = locationRule.Id }, null)); }