From 5392185ece56d081ab3cfdb2f065b7c8b50a354e Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Wed, 20 Apr 2022 17:38:43 +0200 Subject: [PATCH 1/5] Fixed get user from manage interface to visualize --- Borepin/Borepin/Model/MachineVisualize.cs | 60 ++++++++++++----------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/Borepin/Borepin/Model/MachineVisualize.cs b/Borepin/Borepin/Model/MachineVisualize.cs index c1011ab..17ccb06 100644 --- a/Borepin/Borepin/Model/MachineVisualize.cs +++ b/Borepin/Borepin/Model/MachineVisualize.cs @@ -30,41 +30,43 @@ namespace Borepin.Model Manager = new UserVisualize(_Machine.Manager); Manager.LoadData(); - MachineInfoExtended machineInfoExtended = await _Machine.Manage.GetMachineInfoExtended().ConfigureAwait(false); - if(machineInfoExtended != null) - { - if (machineInfoExtended.CurrentUser == null || machineInfoExtended.CurrentUser.Username == null) - { - CurrentUser = null; - } - else - { - CurrentUser = new UserVisualize(machineInfoExtended.CurrentUser); - CurrentUser.LoadData(); - } - - if (machineInfoExtended.LastUser == null || machineInfoExtended.LastUser.Username == null) - { - LastUser = null; - } - else - { - LastUser = new UserVisualize(machineInfoExtended.LastUser); - LastUser.LoadData(); - } - } - else - { - CurrentUser = null; - LastUser = null; - } - CanUse = !((UseInterface_Proxy)_Machine.Use).IsNull; CanInUse = !((InUseInterface_Proxy) _Machine.Inuse).IsNull; CanTakeOver = !((TakeoverInterface_Proxy) _Machine.Takeover).IsNull; CanCheck = !((CheckInterface_Proxy) _Machine.Check).IsNull; CanManage = !((ManageInterface_Proxy) _Machine.Manage).IsNull; CanAdmin = !((AdminInterface_Proxy) _Machine.Admin).IsNull; + + CurrentUser = null; + LastUser = null; + + if (CanManage) + { + MachineInfoExtended machineInfoExtended = await _Machine.Manage.GetMachineInfoExtended().ConfigureAwait(false); + if (machineInfoExtended != null) + { + + if (machineInfoExtended.CurrentUser == null || machineInfoExtended.CurrentUser.Username == null) + { + CurrentUser = null; + } + else + { + CurrentUser = new UserVisualize(machineInfoExtended.CurrentUser); + CurrentUser.LoadData(); + } + + if (machineInfoExtended.LastUser == null || machineInfoExtended.LastUser.Username == null) + { + LastUser = null; + } + else + { + LastUser = new UserVisualize(machineInfoExtended.LastUser); + LastUser.LoadData(); + } + } + } } #endregion From a4b6aa9da1ee6c57c77504d6e0832af34ae1d9f6 Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Wed, 20 Apr 2022 20:30:46 +0200 Subject: [PATCH 2/5] Added: QR Code in Page --- Borepin/Borepin/App.xaml.cs | 3 +- .../Borepin/PageModel/MachineListPageModel.cs | 76 +------------------ 2 files changed, 4 insertions(+), 75 deletions(-) diff --git a/Borepin/Borepin/App.xaml.cs b/Borepin/Borepin/App.xaml.cs index 28165b3..177c56b 100644 --- a/Borepin/Borepin/App.xaml.cs +++ b/Borepin/Borepin/App.xaml.cs @@ -47,7 +47,8 @@ namespace Borepin containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); - containerRegistry.RegisterForNavigation(); + containerRegistry.RegisterForNavigation("ScanPage"); + containerRegistry.RegisterForNavigation("ScanURNPage"); #endregion #region Register Sequence Navigation diff --git a/Borepin/Borepin/PageModel/MachineListPageModel.cs b/Borepin/Borepin/PageModel/MachineListPageModel.cs index 6422af9..79bdd5a 100644 --- a/Borepin/Borepin/PageModel/MachineListPageModel.cs +++ b/Borepin/Borepin/PageModel/MachineListPageModel.cs @@ -9,7 +9,6 @@ using Borepin.Base; using FabAccessAPI.Schema; using Prism.Services.Dialogs; using Prism.Services; -using Prism.AppModel; using static FabAccessAPI.Schema.Machine; using System; using NaturalSort.Extension; @@ -17,7 +16,7 @@ using System.Linq; namespace Borepin.PageModel { - public class MachineListPageModel : ConnectionModelBase, IPageLifecycleAware + public class MachineListPageModel : ConnectionModelBase { #region Private Fields private readonly IDialogService _DialogService; @@ -142,60 +141,7 @@ namespace Borepin.PageModel { IsBusy = true; - NavigationParameters parameters = new NavigationParameters() - { - {"intance", null }, - }; - - await _NavigationService.NavigateAsync("ScanPage", parameters).ConfigureAwait(false); - } - - public async void ScanCode_Result(string value) - { - if (! _BFFHService.IsConnected) - { - IsConnected = false; - IsBusy = false; - return; - } - - IMachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; - - - MachineSystem.IInfoInterface infoInterface = await machineInterface.Info().ConfigureAwait(false); - - Machine machine = await infoInterface.GetMachineURN(value).ConfigureAwait(false); - - if(machine == null) - { - IsBusy = false; - return; - } - - _NextMachine = machine; - IsBusy = false; - } - #endregion - - #region IPageLifecycleAware - public async void OnAppearing() - { - if(_NextMachine != null) - { - NavigationParameters parameters = new NavigationParameters - { - { "id", _NextMachine.Id}, - }; - - _NextMachine = null; - - await _NavigationService.NavigateAsync("MachinePage", parameters).ConfigureAwait(false); - } - } - - public void OnDisappearing() - { - + await _NavigationService.NavigateAsync("ScanURNPage").ConfigureAwait(false); } #endregion @@ -209,24 +155,6 @@ namespace Borepin.PageModel { IsBusy = true; - if (parameters["result"] != null) - { - if (parameters["result"].Equals("scanned")) - { - string urn = (string)parameters["value"]; - ScanCode_Result(urn); - - NavigationParameters parameters2 = new NavigationParameters - { - { "id", _NextMachine.Id}, - }; - - _NextMachine = null; - - await _NavigationService.NavigateAsync("MachinePage", parameters2).ConfigureAwait(false); - } - } - await LoadData().ConfigureAwait(false); } #endregion From ee71cd0c5af0338a7495ab388e1889904eaf6190 Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Wed, 20 Apr 2022 20:35:36 +0200 Subject: [PATCH 3/5] Added: QR Code in Page --- Borepin/Borepin/PageModel/ScanURNPageModel.cs | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 Borepin/Borepin/PageModel/ScanURNPageModel.cs diff --git a/Borepin/Borepin/PageModel/ScanURNPageModel.cs b/Borepin/Borepin/PageModel/ScanURNPageModel.cs new file mode 100644 index 0000000..a8a549d --- /dev/null +++ b/Borepin/Borepin/PageModel/ScanURNPageModel.cs @@ -0,0 +1,141 @@ +using Borepin.Base; +using Borepin.Service.BFFH; +using FabAccessAPI.Schema; +using Prism.Commands; +using Prism.Navigation; +using Prism.Services; +using System; +using System.Threading.Tasks; +using System.Windows.Input; +using Xamarin.Forms; +using ZXing; + +namespace Borepin.PageModel +{ + class ScanURNPageModel : ConnectionModelBase + { + #region Private Fields + private object _Instance; + #endregion + + #region Contructors + public ScanURNPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IBFFHService bffhService) : base(navigationService, pageDialogService, bffhService) + { + AbortCommand = new DelegateCommand(async () => await AbortCommandExecute().ConfigureAwait(true)); + ScannedCommand = new DelegateCommand(async () => await ScannedCommandExecuteAsync().ConfigureAwait(false)); + + IsVisible = true; + IsScanning = true; + } + #endregion + + #region Data + public override async Task LoadData() + { + + } + #endregion + + #region Fields + private Result _ScanResult; + public Result ScanResult + { + get => _ScanResult; + set => SetProperty(ref _ScanResult, value); + } + + private bool _IsScanning; + public bool IsScanning + { + get => _IsScanning; + set => SetProperty(ref _IsScanning, value); + } + + private bool _IsVisible; + public bool IsVisible + { + get => _IsVisible; + set => SetProperty(ref _IsVisible, value); + } + #endregion + + #region Commands + private ICommand _ScannedCommand; + + public ICommand ScannedCommand + { + get => _ScannedCommand; + set => SetProperty(ref _ScannedCommand, value); + } + + public async Task ScannedCommandExecuteAsync() + { + IsScanning = false; + + string id = await QRToID(ScanResult.Text).ConfigureAwait(false); + + if (id != null) + { + NavigationParameters parameters = new NavigationParameters + { + { "id", id }, + }; + + Device.BeginInvokeOnMainThread(async () => + { + INavigationResult result = await _NavigationService.NavigateAsync("../MachinePage", parameters).ConfigureAwait(false); + }); + } + + IsScanning = true; + } + + public async Task QRToID(string value) + { + if (!_BFFHService.IsConnected) + { + IsConnected = false; + return null; + } + + IMachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; + MachineSystem.IInfoInterface infoInterface = await machineInterface.Info().ConfigureAwait(false); + + Machine machine = await infoInterface.GetMachineURN(value).ConfigureAwait(false); + + if (machine == null) + { + return null; + } + + return machine.Id; + } + + private ICommand _AbortCommand; + public ICommand AbortCommand + { + get => _AbortCommand; + set => SetProperty(ref _AbortCommand, value); + } + public async Task AbortCommandExecute() + { + IsScanning = false; + IsVisible = false; + + await _NavigationService.GoBackAsync().ConfigureAwait(false); + } + #endregion + + #region INavigationService + public override void OnNavigatedFrom(INavigationParameters parameters) + { + + } + + public override void OnNavigatedTo(INavigationParameters parameters) + { + + } + #endregion + } +} From c8833aa6db80a4d153ef24ee5d005d53e23d7fec Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Wed, 20 Apr 2022 20:42:54 +0200 Subject: [PATCH 4/5] Added: QR Code in Page --- Borepin/Borepin/PageModel/ScanURNPageModel.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Borepin/Borepin/PageModel/ScanURNPageModel.cs b/Borepin/Borepin/PageModel/ScanURNPageModel.cs index a8a549d..a8785b2 100644 --- a/Borepin/Borepin/PageModel/ScanURNPageModel.cs +++ b/Borepin/Borepin/PageModel/ScanURNPageModel.cs @@ -5,6 +5,7 @@ using Prism.Commands; using Prism.Navigation; using Prism.Services; using System; +using System.Threading; using System.Threading.Tasks; using System.Windows.Input; using Xamarin.Forms; @@ -83,10 +84,12 @@ namespace Borepin.PageModel Device.BeginInvokeOnMainThread(async () => { - INavigationResult result = await _NavigationService.NavigateAsync("../MachinePage", parameters).ConfigureAwait(false); + INavigationResult result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/MachineListPage/MachinePage", parameters).ConfigureAwait(false); }); } + Thread.Sleep(500); + IsScanning = true; } From f28a2fc9f9188c4a0e663ff6468a5ee80e4fb6f8 Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Wed, 20 Apr 2022 20:47:07 +0200 Subject: [PATCH 5/5] Added: QR Code in Page --- Borepin/Borepin/Page/MachineListPage.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Borepin/Borepin/Page/MachineListPage.xaml b/Borepin/Borepin/Page/MachineListPage.xaml index 4465ae9..a7842a8 100644 --- a/Borepin/Borepin/Page/MachineListPage.xaml +++ b/Borepin/Borepin/Page/MachineListPage.xaml @@ -24,7 +24,7 @@