Skip to content

Commit 71f1a67

Browse files
committed
Merge branch 'feature/display-marketing-campaigns-on-xamarin' into dev
2 parents 1fcf069 + 33acdcf commit 71f1a67

47 files changed

Lines changed: 1026 additions & 250 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

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/ServicesHelper.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using eShopOnContainers.Core.Models.Basket;
22
using eShopOnContainers.Core.Models.Catalog;
3+
using eShopOnContainers.Core.Models.Marketing;
34
using eShopOnContainers.Core.ViewModels.Base;
45
using System;
56
using System.Collections.Generic;
@@ -76,5 +77,38 @@ public static void FixBasketItemPictureUri(IEnumerable<BasketItem> basketItems)
7677
Debug.WriteLine(ex.Message);
7778
}
7879
}
80+
81+
public static void FixCatalogItemPictureUri(IEnumerable<CampaignItem> campaignItems)
82+
{
83+
if (campaignItems == null)
84+
{
85+
return;
86+
}
87+
88+
try
89+
{
90+
if (!ViewModelLocator.UseMockService
91+
&& Settings.UrlBase != GlobalSetting.DefaultEndpoint)
92+
{
93+
foreach (var catalogItem in campaignItems)
94+
{
95+
MatchCollection serverResult = IpRegex.Matches(catalogItem.PictureUri);
96+
MatchCollection localResult = IpRegex.Matches(Settings.UrlBase);
97+
98+
if (serverResult.Count != -1 && localResult.Count != -1)
99+
{
100+
var serviceIp = serverResult[0].Value;
101+
var localIp = localResult[0].Value;
102+
103+
catalogItem.PictureUri = catalogItem.PictureUri.Replace(serviceIp, localIp);
104+
}
105+
}
106+
}
107+
}
108+
catch (Exception ex)
109+
{
110+
Debug.WriteLine(ex.Message);
111+
}
112+
}
79113
}
80114
}

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

Lines changed: 11 additions & 2 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";
@@ -31,10 +32,18 @@ private static ISettings AppSettings
3132
private static readonly string IdTokenDefault = string.Empty;
3233
private static readonly bool UseMocksDefault = true;
3334
private static readonly bool UseFakeLocationDefault = false;
35+
private static readonly double FakeLatitudeValue = 47.604610d;
36+
private static readonly double FakeLongitudeValue = -122.315752d;
3437
private static readonly string UrlBaseDefault = GlobalSetting.Instance.BaseEndpoint;
3538

3639
#endregion
3740

41+
public static string UserId
42+
{
43+
get { return AppSettings.GetValueOrDefault<string>(IdUserId); }
44+
set { AppSettings.AddOrUpdateValue<string>(IdUserId, value); }
45+
}
46+
3847
public static string AuthAccessToken
3948
{
4049
get
@@ -99,7 +108,7 @@ public static double FakeLatitude
99108
{
100109
get
101110
{
102-
return AppSettings.GetValueOrDefault<double>(IdFakeLatitude);
111+
return AppSettings.GetValueOrDefault<double>(IdFakeLatitude, FakeLatitudeValue);
103112
}
104113
set
105114
{
@@ -110,7 +119,7 @@ public static double FakeLongitude
110119
{
111120
get
112121
{
113-
return AppSettings.GetValueOrDefault<double>(IdFakeLongitude);
122+
return AppSettings.GetValueOrDefault<double>(IdFakeLongitude, FakeLongitudeValue);
114123
}
115124
set
116125
{

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+
}
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/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/Identity/IdentityService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public string CreateAuthorizationRequest()
2727
dic.Add("client_id", GlobalSetting.Instance.ClientId);
2828
dic.Add("client_secret", GlobalSetting.Instance.ClientSecret);
2929
dic.Add("response_type", "code id_token");
30-
dic.Add("scope", "openid profile basket orders locations offline_access");
30+
dic.Add("scope", "openid profile basket orders locations marketing offline_access");
3131
dic.Add("redirect_uri", GlobalSetting.Instance.IdentityCallback);
3232
dic.Add("nonce", Guid.NewGuid().ToString("N"));
3333

0 commit comments

Comments
 (0)