Skip to content

Commit fbb3b57

Browse files
committed
Add new campaign tab and mocks services
1 parent 86e4051 commit fbb3b57

31 files changed

Lines changed: 549 additions & 238 deletions

src/Mobile/eShopOnContainers/eShopOnContainers.Core/GlobalSettings.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public string BaseEndpoint
4848

4949
public string LocationEndpoint { get; set; }
5050

51+
public string MarketingEndpoint { get; set; }
52+
5153
public string UserInfoEndpoint { get; set; }
5254

5355
public string TokenEndpoint { get; set; }
@@ -60,17 +62,18 @@ public string BaseEndpoint
6062

6163
private void UpdateEndpoint(string baseEndpoint)
6264
{
63-
RegisterWebsite = string.Format("{0}:5105/Account/Register", baseEndpoint);
64-
CatalogEndpoint = string.Format("{0}:5101", baseEndpoint);
65-
OrdersEndpoint = string.Format("{0}:5102", baseEndpoint);
66-
BasketEndpoint = string.Format("{0}:5103", baseEndpoint);
67-
IdentityEndpoint = string.Format("{0}:5105/connect/authorize", baseEndpoint);
68-
UserInfoEndpoint = string.Format("{0}:5105/connect/userinfo", baseEndpoint);
69-
TokenEndpoint = string.Format("{0}:5105/connect/token", baseEndpoint);
70-
LogoutEndpoint = string.Format("{0}:5105/connect/endsession", baseEndpoint);
71-
IdentityCallback = string.Format("{0}:5105/xamarincallback", baseEndpoint);
72-
LogoutCallback = string.Format("{0}:5105/Account/Redirecting", baseEndpoint);
73-
LocationEndpoint = string.Format("{0}:5109", baseEndpoint);
65+
RegisterWebsite = $"{baseEndpoint}:5105/Account/Register";
66+
CatalogEndpoint = $"{baseEndpoint}:5101";
67+
OrdersEndpoint = $"{baseEndpoint}:5102";
68+
BasketEndpoint = $"{baseEndpoint}:5103";
69+
IdentityEndpoint = $"{baseEndpoint}:5105/connect/authorize";
70+
UserInfoEndpoint = $"{baseEndpoint}:5105/connect/userinfo";
71+
TokenEndpoint = $"{baseEndpoint}:5105/connect/token";
72+
LogoutEndpoint = $"{baseEndpoint}:5105/connect/endsession";
73+
IdentityCallback = $"{baseEndpoint}:5105/xamarincallback";
74+
LogoutCallback = $"{baseEndpoint}:5105/Account/Redirecting";
75+
LocationEndpoint = $"{baseEndpoint}:5109";
76+
MarketingEndpoint = $"{baseEndpoint}:5110";
7477
}
7578
}
7679
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Helpers/Settings.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ private static ISettings AppSettings
2020

2121
#region Setting Constants
2222

23+
private const string IdUserId = "user_id";
2324
private const string AccessToken = "access_token";
2425
private const string IdToken = "id_token";
2526
private const string IdUseMocks = "use_mocks";
@@ -35,6 +36,12 @@ private static ISettings AppSettings
3536

3637
#endregion
3738

39+
public static string UserId
40+
{
41+
get { return AppSettings.GetValueOrDefault<string>(IdUserId); }
42+
set { AppSettings.AddOrUpdateValue<string>(IdUserId, value); }
43+
}
44+
3845
public static string AuthAccessToken
3946
{
4047
get

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/LocationRequest.cs renamed to src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/Location.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace eShopOnContainers.Core.Models.Location
22
{
3-
public class LocationRequest
3+
public class Location
44
{
55
public double Longitude { get; set; }
66
public double Latitude { get; set; }
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 Campaign
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+
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Basket/BasketMockService.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.Threading.Tasks;
44
using Xamarin.Forms;
5+
using System;
56

67
namespace eShopOnContainers.Core.Services.Basket
78
{
@@ -57,5 +58,10 @@ public async Task ClearBasketAsync(string guidUser, string token)
5758
MockCustomBasket.Items.Clear();
5859
}
5960
}
61+
62+
public Task CheckoutAsync(BasketCheckout basketCheckout, string token)
63+
{
64+
throw new NotImplementedException();
65+
}
6066
}
6167
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Common/Common.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,8 @@ public static class Common
77
public static string MockCatalogItemId03 = "3";
88
public static string MockCatalogItemId04 = "4";
99
public static string MockCatalogItemId05 = "5";
10+
11+
public static int MockCampaignd01 = 1;
12+
public static int MockCampaignd02 = 2;
1013
}
1114
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Location/ILocationService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55

66
public interface ILocationService
77
{
8-
Task UpdateUserLocation(LocationRequest newLocReq, string token);
8+
Task UpdateUserLocation(Location newLocReq, string token);
99
}
1010
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Location/LocationService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public LocationService(IRequestProvider requestProvider)
1414
_requestProvider = requestProvider;
1515
}
1616

17-
public async Task UpdateUserLocation(LocationRequest newLocReq, string token)
17+
public async Task UpdateUserLocation(Location newLocReq, string token)
1818
{
1919
UriBuilder builder = new UriBuilder(GlobalSetting.Instance.LocationEndpoint);
2020

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using System.Collections.Generic;
2+
using System.Linq;
3+
4+
namespace eShopOnContainers.Core.Services.Marketing
5+
{
6+
using System;
7+
using System.Collections.ObjectModel;
8+
using System.Threading.Tasks;
9+
using Models.Marketing;
10+
using Xamarin.Forms;
11+
12+
public class CampaignMockService : ICampaignService
13+
{
14+
private readonly ObservableCollection<Campaign> _mockCampaign = new ObservableCollection<Campaign>
15+
{
16+
new Campaign
17+
{
18+
Id = Common.Common.MockCampaignd01,
19+
PictureUri = Device.RuntimePlatform != Device.Windows
20+
? "fake_campaign_01.png"
21+
: "Assets/fake_campaign_01.png",
22+
Name = ".NET Bot Black Hoodie 50% OFF",
23+
Description = "Campaign Description 1",
24+
From = DateTime.Now,
25+
To = DateTime.Now.AddDays(7)
26+
},
27+
28+
new Campaign
29+
{
30+
Id = Common.Common.MockCampaignd02,
31+
PictureUri = Device.RuntimePlatform != Device.Windows
32+
? "fake_campaign_02.png"
33+
: "Assets/fake_campaign_02.png",
34+
Name = "Roslyn Red T-Shirt 3x2",
35+
Description = "Campaign Description 2",
36+
From = DateTime.Now.AddDays(-7),
37+
To = DateTime.Now.AddDays(14)
38+
}
39+
};
40+
41+
public async Task<ObservableCollection<Campaign>> GetAllCampaignsAsync(string userId, string token)
42+
{
43+
await Task.Delay(500);
44+
45+
return _mockCampaign;
46+
}
47+
48+
public async Task<Campaign> GetCampaignByIdAsync(int camapignId, string token)
49+
{
50+
await Task.Delay(500);
51+
52+
return _mockCampaign.First();
53+
}
54+
}
55+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
namespace eShopOnContainers.Core.Services.Marketing
2+
{
3+
using System;
4+
using System.Collections.ObjectModel;
5+
using System.Threading.Tasks;
6+
using Models.Marketing;
7+
using RequestProvider;
8+
9+
public class CampaignService : ICampaignService
10+
{
11+
private readonly IRequestProvider _requestProvider;
12+
13+
public CampaignService(IRequestProvider requestProvider)
14+
{
15+
_requestProvider = requestProvider;
16+
}
17+
18+
public async Task<ObservableCollection<Campaign>> GetAllCampaignsAsync(string userId, string token)
19+
{
20+
UriBuilder builder = new UriBuilder(GlobalSetting.Instance.MarketingEndpoint);
21+
22+
builder.Path = $"api/v1/campaigns/{userId}";
23+
24+
string uri = builder.ToString();
25+
26+
return await _requestProvider.GetAsync<ObservableCollection<Campaign>>(uri, token);
27+
}
28+
29+
public Task<Campaign> GetCampaignByIdAsync(int campaignId, string token)
30+
{
31+
throw new NotImplementedException();
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)