Skip to content

Commit 9bdfddc

Browse files
committed
Modify the campaign response of the marketing api
1 parent 80c10a1 commit 9bdfddc

6 files changed

Lines changed: 94 additions & 17 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
namespace eShopOnContainers.Core.Models.Marketing
2+
{
3+
using System;
4+
5+
public class CampaignItem
6+
{
7+
public int Id { get; set; }
8+
9+
public string Name { get; set; }
10+
11+
public string Description { get; set; }
12+
13+
public DateTime From { get; set; }
14+
15+
public DateTime To { get; set; }
16+
17+
public string PictureUri { get; set; }
18+
}
19+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace eShopOnContainers.Core.Models.Marketing
2+
{
3+
using System.Collections.Generic;
4+
5+
public class CampaignRoot
6+
{
7+
public int PageIndex { get; set; }
8+
public int PageSize { get; set; }
9+
public int Count { get; set; }
10+
public List<CampaignItem> Data { get; set; }
11+
}
12+
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/CampaignMockService.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ namespace eShopOnContainers.Core.Services.Marketing
1111

1212
public class CampaignMockService : ICampaignService
1313
{
14-
private readonly ObservableCollection<Campaign> _mockCampaign = new ObservableCollection<Campaign>
14+
private readonly ObservableCollection<CampaignItem> _mockCampaign = new ObservableCollection<CampaignItem>
1515
{
16-
new Campaign
16+
new CampaignItem
1717
{
1818
Id = Common.Common.MockCampaignd01,
1919
PictureUri = Device.RuntimePlatform != Device.Windows
@@ -25,7 +25,7 @@ public class CampaignMockService : ICampaignService
2525
To = DateTime.Now.AddDays(7)
2626
},
2727

28-
new Campaign
28+
new CampaignItem
2929
{
3030
Id = Common.Common.MockCampaignd02,
3131
PictureUri = Device.RuntimePlatform != Device.Windows
@@ -38,18 +38,16 @@ public class CampaignMockService : ICampaignService
3838
}
3939
};
4040

41-
public async Task<ObservableCollection<Campaign>> GetAllCampaignsAsync(string userId, string token)
41+
public async Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string userId, string token)
4242
{
4343
await Task.Delay(500);
4444

4545
return _mockCampaign;
4646
}
4747

48-
public async Task<Campaign> GetCampaignByIdAsync(int camapignId, string token)
48+
public async Task<CampaignItem> GetCampaignByIdAsync(int campaignId, string token)
4949
{
50-
await Task.Delay(500);
51-
52-
return _mockCampaign.First();
50+
return _mockCampaign.SingleOrDefault(c => c.Id == campaignId);
5351
}
5452
}
5553
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/CampaignService.cs

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace eShopOnContainers.Core.Services.Marketing
1+
using eShopOnContainers.Core.Extensions;
2+
using eShopOnContainers.Core.Helpers;
3+
4+
namespace eShopOnContainers.Core.Services.Marketing
25
{
36
using System;
47
using System.Collections.ObjectModel;
@@ -15,20 +18,36 @@ public CampaignService(IRequestProvider requestProvider)
1518
_requestProvider = requestProvider;
1619
}
1720

18-
public async Task<ObservableCollection<Campaign>> GetAllCampaignsAsync(string userId, string token)
21+
public async Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string userId, string token)
1922
{
2023
UriBuilder builder = new UriBuilder(GlobalSetting.Instance.MarketingEndpoint);
2124

22-
builder.Path = $"api/v1/campaigns/{userId}";
25+
builder.Path = $"api/v1/campaigns/user/{userId}";
2326

2427
string uri = builder.ToString();
2528

26-
return await _requestProvider.GetAsync<ObservableCollection<Campaign>>(uri, token);
29+
CampaignRoot campaign =
30+
await _requestProvider.GetAsync<CampaignRoot>(uri, token);
31+
32+
if (campaign?.Data != null)
33+
{
34+
ServicesHelper.FixCatalogItemPictureUri(campaign?.Data);
35+
36+
return campaign?.Data.ToObservableCollection();
37+
}
38+
39+
return new ObservableCollection<CampaignItem>();
2740
}
2841

29-
public Task<Campaign> GetCampaignByIdAsync(int campaignId, string token)
42+
public async Task<CampaignItem> GetCampaignByIdAsync(int campaignId, string token)
3043
{
31-
throw new NotImplementedException();
44+
UriBuilder builder = new UriBuilder(GlobalSetting.Instance.MarketingEndpoint);
45+
46+
builder.Path = $"api/v1/campaigns/{campaignId}";
47+
48+
string uri = builder.ToString();
49+
50+
return await _requestProvider.GetAsync<CampaignItem>(uri, token);
3251
}
3352
}
3453
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/ICampaignService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ namespace eShopOnContainers.Core.Services.Marketing
77

88
public interface ICampaignService
99
{
10-
Task<ObservableCollection<Campaign>> GetAllCampaignsAsync(string userId, string token);
10+
Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string userId, string token);
1111

12-
Task<Campaign> GetCampaignByIdAsync(int id, string token);
12+
Task<CampaignItem> GetCampaignByIdAsync(int id, string token);
1313
}
1414
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
</Compile>
4545
<Compile Include="Behaviors\Base\BindableBehavior.cs" />
4646
<Compile Include="Behaviors\EventToCommandBehavior.cs" />
47+
<Compile Include="Controls\MoreDetailsCampaignButton.xaml.cs">
48+
<DependentUpon>MoreDetailsCampaignButton.xaml</DependentUpon>
49+
</Compile>
4750
<Compile Include="Controls\AddBasketButton.xaml.cs">
4851
<DependentUpon>AddBasketButton.xaml</DependentUpon>
4952
</Compile>
@@ -72,7 +75,8 @@
7275
<Compile Include="Models\Catalog\CatalogRoot.cs" />
7376
<Compile Include="Models\Catalog\CatalogType.cs" />
7477
<Compile Include="Models\Location\Location.cs" />
75-
<Compile Include="Models\Marketing\Campaign.cs" />
78+
<Compile Include="Models\Marketing\CampaignItem.cs" />
79+
<Compile Include="Models\Marketing\CampaignRoot.cs" />
7680
<Compile Include="Models\Navigation\TabParameter.cs" />
7781
<Compile Include="Models\Orders\CardType.CS" />
7882
<Compile Include="Models\Orders\Order.cs" />
@@ -121,6 +125,7 @@
121125
<Compile Include="ViewModels\Base\ViewModelBase.cs" />
122126
<Compile Include="ViewModels\Base\ViewModelLocator.cs" />
123127
<Compile Include="ViewModels\BasketViewModel.cs" />
128+
<Compile Include="ViewModels\CampaignDetailsViewModel.cs" />
124129
<Compile Include="ViewModels\CampaignViewModel.cs" />
125130
<Compile Include="ViewModels\CatalogViewModel.cs" />
126131
<Compile Include="ViewModels\CheckoutViewModel.cs" />
@@ -138,6 +143,9 @@
138143
<Compile Include="Views\CatalogView.xaml.cs">
139144
<DependentUpon>CatalogView.xaml</DependentUpon>
140145
</Compile>
146+
<Compile Include="Views\CampaignDetailsView.xaml.cs">
147+
<DependentUpon>CampaignDetailsView.xaml</DependentUpon>
148+
</Compile>
141149
<Compile Include="Views\CheckoutView.xaml.cs">
142150
<DependentUpon>CheckoutView.xaml</DependentUpon>
143151
</Compile>
@@ -171,6 +179,9 @@
171179
<Compile Include="Views\Templates\OrderTemplate.xaml.cs">
172180
<DependentUpon>OrderTemplate.xaml</DependentUpon>
173181
</Compile>
182+
<Compile Include="Views\Templates\CampaignTemplate.xaml.cs">
183+
<DependentUpon>CampaignTemplate.xaml</DependentUpon>
184+
</Compile>
174185
<Compile Include="Views\Templates\ProductTemplate.xaml.cs">
175186
<DependentUpon>ProductTemplate.xaml</DependentUpon>
176187
</Compile>
@@ -283,6 +294,24 @@
283294
<HintPath>..\..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.6\Profile\Profile44\System.ComponentModel.Annotations.dll</HintPath>
284295
</Reference>
285296
</ItemGroup>
297+
<ItemGroup>
298+
<EmbeddedResource Include="Views\CampaignDetailsView.xaml">
299+
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
300+
<SubType>Designer</SubType>
301+
</EmbeddedResource>
302+
</ItemGroup>
303+
<ItemGroup>
304+
<EmbeddedResource Include="Views\Templates\CampaignTemplate.xaml">
305+
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
306+
<SubType>Designer</SubType>
307+
</EmbeddedResource>
308+
</ItemGroup>
309+
<ItemGroup>
310+
<EmbeddedResource Include="Controls\MoreDetailsCampaignButton.xaml">
311+
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
312+
<SubType>Designer</SubType>
313+
</EmbeddedResource>
314+
</ItemGroup>
286315
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
287316
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
288317
<PropertyGroup>

0 commit comments

Comments
 (0)