From ed97efaf61675688827dcd4969d575807dfbf0f7 Mon Sep 17 00:00:00 2001 From: Christian Arenas Date: Mon, 19 Jun 2017 00:34:00 +0200 Subject: [PATCH] Check when the user doesn't have any location in database --- .../Controllers/CampaignsController.cs | 38 +++++++++---------- .../ViewModel/PaginatedItemsViewModel.cs | 5 +-- .../WebMVC/Controllers/CampaignsController.cs | 4 +- 3 files changed, 21 insertions(+), 26 deletions(-) diff --git a/src/Services/Marketing/Marketing.API/Controllers/CampaignsController.cs b/src/Services/Marketing/Marketing.API/Controllers/CampaignsController.cs index 94185a608..54c7a4209 100644 --- a/src/Services/Marketing/Marketing.API/Controllers/CampaignsController.cs +++ b/src/Services/Marketing/Marketing.API/Controllers/CampaignsController.cs @@ -7,12 +7,12 @@ using AspNetCore.Mvc; using Infrastructure; using System.Threading.Tasks; - using Catalog.API.ViewModel; using Model; using EntityFrameworkCore; using Dto; using AspNetCore.Authorization; using Extensions.Options; + using Microsoft.eShopOnContainers.Services.Marketing.API.ViewModel; [Route("api/v1/[controller]")] [Authorize] @@ -129,29 +129,27 @@ { var marketingData = await _marketingDataRepository.GetAsync(userId.ToString()); - if (marketingData is null) - { - return NotFound(); - } - var campaignDtoList = new List(); - //Get User Location Campaign - foreach (var userLocation in marketingData.Locations) + if (marketingData != null) { - var userCampaignList = await _context.Rules - .OfType() - .Include(c => c.Campaign) - .Where(c => c.Campaign.From <= DateTime.Now - && c.Campaign.To >= DateTime.Now - && c.LocationId == userLocation.LocationId) - .Select(c => c.Campaign) - .ToListAsync(); - - if (userCampaignList != null && userCampaignList.Any()) + //Get User Location Campaign + foreach (var userLocation in marketingData.Locations) { - var userCampaignDtoList = MapCampaignModelListToDtoList(userCampaignList); - campaignDtoList.AddRange(userCampaignDtoList); + var userCampaignList = await _context.Rules + .OfType() + .Include(c => c.Campaign) + .Where(c => c.Campaign.From <= DateTime.Now + && c.Campaign.To >= DateTime.Now + && c.LocationId == userLocation.LocationId) + .Select(c => c.Campaign) + .ToListAsync(); + + if (userCampaignList != null && userCampaignList.Any()) + { + var userCampaignDtoList = MapCampaignModelListToDtoList(userCampaignList); + campaignDtoList.AddRange(userCampaignDtoList); + } } } diff --git a/src/Services/Marketing/Marketing.API/ViewModel/PaginatedItemsViewModel.cs b/src/Services/Marketing/Marketing.API/ViewModel/PaginatedItemsViewModel.cs index 844f38e2b..73225b4cf 100644 --- a/src/Services/Marketing/Marketing.API/ViewModel/PaginatedItemsViewModel.cs +++ b/src/Services/Marketing/Marketing.API/ViewModel/PaginatedItemsViewModel.cs @@ -1,8 +1,7 @@ -namespace Microsoft.eShopOnContainers.Services.Catalog.API.ViewModel +namespace Microsoft.eShopOnContainers.Services.Marketing.API.ViewModel { using System.Collections.Generic; - public class PaginatedItemsViewModel where TEntity : class { public int PageIndex { get; private set; } @@ -21,4 +20,4 @@ this.Data = data; } } -} +} \ No newline at end of file diff --git a/src/Web/WebMVC/Controllers/CampaignsController.cs b/src/Web/WebMVC/Controllers/CampaignsController.cs index 5ecd24c6d..3030c99db 100644 --- a/src/Web/WebMVC/Controllers/CampaignsController.cs +++ b/src/Web/WebMVC/Controllers/CampaignsController.cs @@ -1,6 +1,3 @@ -using Microsoft.EntityFrameworkCore.Query.Internal; -using WebMVC.ViewModels; - namespace Microsoft.eShopOnContainers.WebMVC.Controllers { using AspNetCore.Authorization; @@ -10,6 +7,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers using System.Threading.Tasks; using System; using ViewModels.Pagination; + using global::WebMVC.ViewModels; [Authorize] public class CampaignsController : Controller