diff --git a/Borepin/Borepin.Android/Borepin.Android.csproj b/Borepin/Borepin.Android/Borepin.Android.csproj index 6f628be..06f1b43 100644 --- a/Borepin/Borepin.Android/Borepin.Android.csproj +++ b/Borepin/Borepin.Android/Borepin.Android.csproj @@ -81,6 +81,7 @@ + diff --git a/Borepin/Borepin.Android/PlatformInitializer.cs b/Borepin/Borepin.Android/PlatformInitializer.cs index ac5fbc0..540b18b 100644 --- a/Borepin/Borepin.Android/PlatformInitializer.cs +++ b/Borepin/Borepin.Android/PlatformInitializer.cs @@ -1,5 +1,6 @@ using Borepin.Droid.Services; using Borepin.Service; +using Borepin.Service.Browser; using Borepin.Service.Storage; using Borepin.Service.Versioning; using Prism; @@ -14,6 +15,7 @@ namespace Borepin.Droid containerRegistry.Register(); containerRegistry.Register(); containerRegistry.Register(); + containerRegistry.Register(); containerRegistry.RegisterSingleton(); } diff --git a/Borepin/Borepin.Android/Services/BrowserService.cs b/Borepin/Borepin.Android/Services/BrowserService.cs new file mode 100644 index 0000000..c2e836a --- /dev/null +++ b/Borepin/Borepin.Android/Services/BrowserService.cs @@ -0,0 +1,51 @@ +using Borepin.Service.Browser; +using System; +using System.Threading.Tasks; +using Xamarin.Essentials; + +namespace Borepin.Droid.Services +{ + public class BrowserService : IBrowserService + { + private Xamarin.Essentials.BrowserLaunchOptions _ConvertBrowserLaunchOptions(Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + return new Xamarin.Essentials.BrowserLaunchOptions() + { + Flags = (Xamarin.Essentials.BrowserLaunchFlags)browserLaunchOptions.Flags, + LaunchMode = (Xamarin.Essentials.BrowserLaunchMode)browserLaunchOptions.LaunchMode, + PreferredControlColor = browserLaunchOptions.PreferredControlColor, + PreferredToolbarColor = browserLaunchOptions.PreferredToolbarColor, + TitleMode = (Xamarin.Essentials.BrowserTitleMode)browserLaunchOptions.TitleMode + }; + } + public async Task OpenAsync(string uri) + { + await Browser.OpenAsync(uri).ConfigureAwait(false); + } + + public async Task OpenAsync(string uri, Service.Browser.BrowserLaunchMode browserLaunchMode) + { + await Browser.OpenAsync(uri, (Xamarin.Essentials.BrowserLaunchMode)browserLaunchMode).ConfigureAwait(false); + } + + public async Task OpenAsync(string uri, Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + await Browser.OpenAsync(uri, _ConvertBrowserLaunchOptions(browserLaunchOptions)); + } + + public async Task OpenAsync(Uri uri) + { + await Browser.OpenAsync(uri).ConfigureAwait(false); + } + + public async Task OpenAsync(Uri uri, Service.Browser.BrowserLaunchMode browserLaunchMode) + { + await Browser.OpenAsync(uri, (Xamarin.Essentials.BrowserLaunchMode)browserLaunchMode).ConfigureAwait(false); + } + + public async Task OpenAsync(Uri uri, Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + await Browser.OpenAsync(uri, _ConvertBrowserLaunchOptions(browserLaunchOptions)); + } + } +} \ No newline at end of file diff --git a/Borepin/Borepin.UWP/Borepin.UWP.csproj b/Borepin/Borepin.UWP/Borepin.UWP.csproj index 620bb6d..c3ae35d 100644 --- a/Borepin/Borepin.UWP/Borepin.UWP.csproj +++ b/Borepin/Borepin.UWP/Borepin.UWP.csproj @@ -99,6 +99,7 @@ + diff --git a/Borepin/Borepin.UWP/PlatformInitializer.cs b/Borepin/Borepin.UWP/PlatformInitializer.cs index 9eacb3c..0818906 100644 --- a/Borepin/Borepin.UWP/PlatformInitializer.cs +++ b/Borepin/Borepin.UWP/PlatformInitializer.cs @@ -4,6 +4,7 @@ using Prism.Ioc; using Borepin.Service.Storage; using Borepin.Service.Versioning; using Borepin.Service; +using Borepin.Service.Browser; namespace Borepin.UWP { @@ -14,6 +15,7 @@ namespace Borepin.UWP containerRegistry.Register(); containerRegistry.Register(); containerRegistry.Register(); + containerRegistry.Register(); containerRegistry.RegisterSingleton(); } diff --git a/Borepin/Borepin.UWP/Services/BrowserService.cs b/Borepin/Borepin.UWP/Services/BrowserService.cs new file mode 100644 index 0000000..ddffa27 --- /dev/null +++ b/Borepin/Borepin.UWP/Services/BrowserService.cs @@ -0,0 +1,51 @@ +using Borepin.Service.Browser; +using System; +using System.Threading.Tasks; +using Xamarin.Essentials; + +namespace Borepin.UWP.Services +{ + public class BrowserService : IBrowserService + { + private Xamarin.Essentials.BrowserLaunchOptions _ConvertBrowserLaunchOptions(Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + return new Xamarin.Essentials.BrowserLaunchOptions() + { + Flags = (Xamarin.Essentials.BrowserLaunchFlags)browserLaunchOptions.Flags, + LaunchMode = (Xamarin.Essentials.BrowserLaunchMode)browserLaunchOptions.LaunchMode, + PreferredControlColor = browserLaunchOptions.PreferredControlColor, + PreferredToolbarColor = browserLaunchOptions.PreferredToolbarColor, + TitleMode = (Xamarin.Essentials.BrowserTitleMode)browserLaunchOptions.TitleMode + }; + } + public async Task OpenAsync(string uri) + { + await Browser.OpenAsync(uri).ConfigureAwait(false); + } + + public async Task OpenAsync(string uri, Service.Browser.BrowserLaunchMode browserLaunchMode) + { + await Browser.OpenAsync(uri, (Xamarin.Essentials.BrowserLaunchMode)browserLaunchMode).ConfigureAwait(false); + } + + public async Task OpenAsync(string uri, Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + await Browser.OpenAsync(uri, _ConvertBrowserLaunchOptions(browserLaunchOptions)); + } + + public async Task OpenAsync(Uri uri) + { + await Browser.OpenAsync(uri).ConfigureAwait(false); + } + + public async Task OpenAsync(Uri uri, Service.Browser.BrowserLaunchMode browserLaunchMode) + { + await Browser.OpenAsync(uri, (Xamarin.Essentials.BrowserLaunchMode)browserLaunchMode).ConfigureAwait(false); + } + + public async Task OpenAsync(Uri uri, Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + await Browser.OpenAsync(uri, _ConvertBrowserLaunchOptions(browserLaunchOptions)); + } + } +} diff --git a/Borepin/Borepin.iOS/Borepin.iOS.csproj b/Borepin/Borepin.iOS/Borepin.iOS.csproj index 5a52689..d1110a9 100644 --- a/Borepin/Borepin.iOS/Borepin.iOS.csproj +++ b/Borepin/Borepin.iOS/Borepin.iOS.csproj @@ -82,6 +82,7 @@ + diff --git a/Borepin/Borepin.iOS/PlatformInitializer.cs b/Borepin/Borepin.iOS/PlatformInitializer.cs index 26a09b8..ade1f95 100644 --- a/Borepin/Borepin.iOS/PlatformInitializer.cs +++ b/Borepin/Borepin.iOS/PlatformInitializer.cs @@ -1,5 +1,6 @@ using Borepin.iOS.Services; using Borepin.Service; +using Borepin.Service.Browser; using Borepin.Service.Storage; using Borepin.Service.Versioning; using Prism; @@ -14,6 +15,7 @@ namespace Borepin.iOS containerRegistry.Register(); containerRegistry.Register(); containerRegistry.Register(); + containerRegistry.Register(); containerRegistry.RegisterSingleton(); } diff --git a/Borepin/Borepin.iOS/Services/BrowserService.cs b/Borepin/Borepin.iOS/Services/BrowserService.cs new file mode 100644 index 0000000..67f2cb4 --- /dev/null +++ b/Borepin/Borepin.iOS/Services/BrowserService.cs @@ -0,0 +1,51 @@ +using Borepin.Service.Browser; +using System; +using System.Threading.Tasks; +using Xamarin.Essentials; + +namespace Borepin.iOS.Services +{ + public class BrowserService : IBrowserService + { + private Xamarin.Essentials.BrowserLaunchOptions _ConvertBrowserLaunchOptions(Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + return new Xamarin.Essentials.BrowserLaunchOptions() + { + Flags = (Xamarin.Essentials.BrowserLaunchFlags)browserLaunchOptions.Flags, + LaunchMode = (Xamarin.Essentials.BrowserLaunchMode)browserLaunchOptions.LaunchMode, + PreferredControlColor = browserLaunchOptions.PreferredControlColor, + PreferredToolbarColor = browserLaunchOptions.PreferredToolbarColor, + TitleMode = (Xamarin.Essentials.BrowserTitleMode)browserLaunchOptions.TitleMode + }; + } + public async Task OpenAsync(string uri) + { + await Browser.OpenAsync(uri).ConfigureAwait(false); + } + + public async Task OpenAsync(string uri, Service.Browser.BrowserLaunchMode browserLaunchMode) + { + await Browser.OpenAsync(uri, (Xamarin.Essentials.BrowserLaunchMode)browserLaunchMode).ConfigureAwait(false); + } + + public async Task OpenAsync(string uri, Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + await Browser.OpenAsync(uri, _ConvertBrowserLaunchOptions(browserLaunchOptions)); + } + + public async Task OpenAsync(Uri uri) + { + await Browser.OpenAsync(uri).ConfigureAwait(false); + } + + public async Task OpenAsync(Uri uri, Service.Browser.BrowserLaunchMode browserLaunchMode) + { + await Browser.OpenAsync(uri, (Xamarin.Essentials.BrowserLaunchMode)browserLaunchMode).ConfigureAwait(false); + } + + public async Task OpenAsync(Uri uri, Service.Browser.BrowserLaunchOptions browserLaunchOptions) + { + await Browser.OpenAsync(uri, _ConvertBrowserLaunchOptions(browserLaunchOptions)); + } + } +} \ No newline at end of file diff --git a/Borepin/Borepin/Base/ConnectionModelBase.cs b/Borepin/Borepin/Base/ConnectionModelBase.cs index fc69cff..a07360e 100644 --- a/Borepin/Borepin/Base/ConnectionModelBase.cs +++ b/Borepin/Borepin/Base/ConnectionModelBase.cs @@ -2,6 +2,7 @@ using FabAccessAPI; using Prism.Navigation; using Prism.Services; +using System; using System.Threading.Tasks; namespace Borepin.Base @@ -109,7 +110,7 @@ namespace Borepin.Base { await LoadAPIData().ConfigureAwait(false); } - catch + catch(Exception ex) { IsConnected = false; await _API.Disconnect().ConfigureAwait(false); diff --git a/Borepin/Borepin/DialogModel/ConfirmDialogModel.cs b/Borepin/Borepin/DialogModel/ConfirmDialogModel.cs index 902f751..dbe3bf5 100644 --- a/Borepin/Borepin/DialogModel/ConfirmDialogModel.cs +++ b/Borepin/Borepin/DialogModel/ConfirmDialogModel.cs @@ -59,7 +59,7 @@ namespace Borepin.DialogModel IDialogParameters parameters = new DialogParameters() { { "result", "confirm" }, - { "instance", _Instance } + { "instance", _Instance }, }; RequestClose(parameters); } @@ -75,7 +75,7 @@ namespace Borepin.DialogModel IDialogParameters parameters = new DialogParameters() { { "result", "abort" }, - { "instance", _Instance } + { "instance", _Instance }, }; RequestClose(parameters); } diff --git a/Borepin/Borepin/DialogModel/ScanDialogModel.cs b/Borepin/Borepin/DialogModel/ScanDialogModel.cs index 5ebd646..0543b8e 100644 --- a/Borepin/Borepin/DialogModel/ScanDialogModel.cs +++ b/Borepin/Borepin/DialogModel/ScanDialogModel.cs @@ -71,7 +71,7 @@ namespace Borepin.DialogModel { { "result", "scanned" }, { "value", ScanResult.Text }, - { "instance", _Instance } + { "instance", _Instance }, }; RequestClose(parameters); } @@ -90,7 +90,7 @@ namespace Borepin.DialogModel IDialogParameters parameters = new DialogParameters() { { "result", "abort" }, - { "instance", _Instance } + { "instance", _Instance }, }; RequestClose(parameters); } diff --git a/Borepin/Borepin/Model/ConnectionDataVisualize.cs b/Borepin/Borepin/Model/ConnectionDataVisualize.cs index 2654090..01bd41a 100644 --- a/Borepin/Borepin/Model/ConnectionDataVisualize.cs +++ b/Borepin/Borepin/Model/ConnectionDataVisualize.cs @@ -13,8 +13,6 @@ namespace Borepin.Model public ConnectionDataVisualize(ConnectionData connectionData) { _ConnectionData = connectionData; - - LoadData(); } #endregion diff --git a/Borepin/Borepin/Model/MachineViewModelListGroup.cs b/Borepin/Borepin/Model/MachineViewModelListGroup.cs new file mode 100644 index 0000000..058e47f --- /dev/null +++ b/Borepin/Borepin/Model/MachineViewModelListGroup.cs @@ -0,0 +1,19 @@ +using Borepin.ViewModel; +using NaturalSort.Extension; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Borepin.Model +{ + public class MachineViewModelListGroup : List + { + public string Category { get; set; } + public void Sort_Machines() + { + List ordered = new List(this.OrderBy(x => x.Machine.Name, StringComparison.OrdinalIgnoreCase.WithNaturalSort())); + Clear(); + AddRange(ordered); + } + } +} diff --git a/Borepin/Borepin/Model/MachineVisualize.cs b/Borepin/Borepin/Model/MachineVisualize.cs index 2c51d6d..709c7c5 100644 --- a/Borepin/Borepin/Model/MachineVisualize.cs +++ b/Borepin/Borepin/Model/MachineVisualize.cs @@ -1,5 +1,6 @@ using FabAccessAPI.Schema; using Prism.Mvvm; +using System.Threading.Tasks; using static FabAccessAPI.Schema.Machine; namespace Borepin.Model @@ -14,24 +15,24 @@ namespace Borepin.Model public MachineVisualize(Machine machine) { _Machine = machine; - - LoadData(); } #endregion #region Methods - public async void LoadData() + public async Task LoadData() { //ID = _Machine.Id; //Space = new SpaceVisualize(_Machine.Space); Name = _Machine.Name; Description = _Machine.Description; + Wiki = _Machine.Wiki; State = _Machine.State; + Category = _Machine.Category; if(_Machine.Manager.Just != null) { Manager = new UserVisualize(_Machine.Manager.Just); - Manager.LoadData(); + await Manager.LoadData().ConfigureAwait(false); } else { @@ -48,17 +49,17 @@ namespace Borepin.Model else { CurrentUser = new UserVisualize(machineInfoExtended.CurrentUser.Just); - CurrentUser.LoadData(); + await CurrentUser.LoadData().ConfigureAwait(false); } - if (machineInfoExtended.LastUser .Just== null) + if (machineInfoExtended.LastUser.Just == null) { LastUser = null; } else { LastUser = new UserVisualize(machineInfoExtended.LastUser.Just); - LastUser.LoadData(); + await LastUser.LoadData().ConfigureAwait(false); } } else @@ -73,7 +74,7 @@ namespace Borepin.Model CanCheck = !((CheckInterface_Proxy)_Machine.Check).IsNull; CanManage = !((ManageInterface_Proxy)_Machine.Manage).IsNull; CanAdmin = !((AdminInterface_Proxy)_Machine.Admin).IsNull; - CanNotUseByPermission = State == MachineState.free && CanUse == false; + CanNotUseByPermission = State == MachineState.free && !CanUse; } #endregion @@ -99,6 +100,13 @@ namespace Borepin.Model set => SetProperty(ref _Name, value); } + private string _Category; + public string Category + { + get => _Category; + set => SetProperty(ref _Category, value); + } + private string _Description; public string Description { @@ -106,6 +114,13 @@ namespace Borepin.Model set => SetProperty(ref _Description, value); } + private string _Wiki; + public string Wiki + { + get => _Wiki; + set => SetProperty(ref _Wiki, value); + } + private MachineState _State; public MachineState State { diff --git a/Borepin/Borepin/Model/SpaceVisualize.cs b/Borepin/Borepin/Model/SpaceVisualize.cs index e264dfc..addd06f 100644 --- a/Borepin/Borepin/Model/SpaceVisualize.cs +++ b/Borepin/Borepin/Model/SpaceVisualize.cs @@ -13,7 +13,6 @@ namespace Borepin.Model public SpaceVisualize(Space space) { _Space = space; - LoadData(); } #endregion diff --git a/Borepin/Borepin/Model/UserVisualize.cs b/Borepin/Borepin/Model/UserVisualize.cs index 399dc64..8f3d3b5 100644 --- a/Borepin/Borepin/Model/UserVisualize.cs +++ b/Borepin/Borepin/Model/UserVisualize.cs @@ -1,5 +1,6 @@  using FabAccessAPI.Schema; using Prism.Mvvm; +using System.Threading.Tasks; namespace Borepin.Model { @@ -13,16 +14,17 @@ namespace Borepin.Model public UserVisualize(User user) { _User = user; - LoadData(); } #endregion #region LoadData - public void LoadData() + public Task LoadData() { //ID = _User.Id; Username = _User.Username; //Space = new SpaceVisualize(_User.Space); + + return Task.CompletedTask; } #endregion diff --git a/Borepin/Borepin/Page/MachineListPage.xaml b/Borepin/Borepin/Page/MachineListPage.xaml index 679a5df..5b47d51 100644 --- a/Borepin/Borepin/Page/MachineListPage.xaml +++ b/Borepin/Borepin/Page/MachineListPage.xaml @@ -29,7 +29,16 @@ Android="True"/> - + + + + + + + + + diff --git a/Borepin/Borepin/Page/MachinePage.xaml b/Borepin/Borepin/Page/MachinePage.xaml index fabbc80..5e7d2d9 100644 --- a/Borepin/Borepin/Page/MachinePage.xaml +++ b/Borepin/Borepin/Page/MachinePage.xaml @@ -22,31 +22,38 @@ - -