From b9223b34c2da271c8246793cefcb698a6a89bf0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez=20Ruiz?= Date: Wed, 16 Nov 2016 08:34:36 +0100 Subject: [PATCH] Linked register website with mobile apps --- .../eShopOnContainers.Core/GlobalSettings.cs | 7 +++++++ .../Services/OpenUrl/IOpenUrlService.cs | 7 +++++++ .../Services/OpenUrl/OpenUrlService.cs | 13 +++++++++++++ .../ViewModels/Base/ViewModelLocator.cs | 2 ++ .../ViewModels/LoginViewModel.cs | 16 ++++++++++++++-- .../eShopOnContainers.Core/Views/LoginView.xaml | 5 +++++ .../eShopOnContainers.Core.csproj | 3 +++ 7 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Core/GlobalSettings.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/IOpenUrlService.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/OpenUrlService.cs diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/GlobalSettings.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/GlobalSettings.cs new file mode 100644 index 000000000..e791b80a7 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/GlobalSettings.cs @@ -0,0 +1,7 @@ +namespace eShopOnContainers.Core +{ + public static class GlobalSetting + { + public const string RegisterWebsite = "http://104.40.62.65/Account/Register"; + } +} \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/IOpenUrlService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/IOpenUrlService.cs new file mode 100644 index 000000000..16de6df3c --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/IOpenUrlService.cs @@ -0,0 +1,7 @@ +namespace eShopOnContainers.Core.Services.OpenUrl +{ + public interface IOpenUrlService + { + void OpenUrl(string url); + } +} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/OpenUrlService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/OpenUrlService.cs new file mode 100644 index 000000000..0664bf4a4 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/OpenUrlService.cs @@ -0,0 +1,13 @@ +using System; +using Xamarin.Forms; + +namespace eShopOnContainers.Core.Services.OpenUrl +{ + public class OpenUrlService : IOpenUrlService + { + public void OpenUrl(string url) + { + Device.OpenUri(new Uri(url)); + } + } +} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs index bf42cbc69..f8f351a0c 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs @@ -4,6 +4,7 @@ using eShopOnContainers.Core.ViewModels; using eShopOnContainers.Services; using System; using eShopOnContainers.Core.Services.Catalog; +using eShopOnContainers.Core.Services.OpenUrl; namespace eShopOnContainers.ViewModels.Base { @@ -28,6 +29,7 @@ namespace eShopOnContainers.ViewModels.Base // services _unityContainer.RegisterType(); RegisterSingleton(); + _unityContainer.RegisterType(); _unityContainer.RegisterType(); _unityContainer.RegisterType(); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs index 77886d52d..2381d0958 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs @@ -1,4 +1,5 @@ -using eShopOnContainers.Core.Validations; +using eShopOnContainers.Core.Services.OpenUrl; +using eShopOnContainers.Core.Validations; using eShopOnContainers.ViewModels.Base; using System; using System.Diagnostics; @@ -14,8 +15,12 @@ namespace eShopOnContainers.Core.ViewModels private ValidatableObject _password; private bool _isValid; - public LoginViewModel() + private IOpenUrlService _openUrlService; + + public LoginViewModel(IOpenUrlService openUrlService) { + _openUrlService = openUrlService; + _userName = new ValidatableObject(); _password = new ValidatableObject(); @@ -63,6 +68,8 @@ namespace eShopOnContainers.Core.ViewModels public ICommand SignInCommand => new Command(SignInAsync); + public ICommand RegisterCommand => new Command(Register); + private async void SignInAsync() { IsBusy = true; @@ -97,6 +104,11 @@ namespace eShopOnContainers.Core.ViewModels IsBusy = false; } + private void Register() + { + _openUrlService.OpenUrl(GlobalSetting.RegisterWebsite); + } + private bool Validate() { bool isValidUser = _userName.Validate(); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/LoginView.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/LoginView.xaml index 94f62412a..38a4df392 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/LoginView.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/LoginView.xaml @@ -104,6 +104,11 @@