Exemplo n.º 1
0
        public override async Task InitializeAsync(object navigationData)
        {
            MessagingCenter.Subscribe <CircuitDetailsPage, string>(this, MessengerCenterMessages.ChangeTitleOnCircuitTab, (circuit, s) =>
            {
                Title = s;
            });
            MessagingCenter.Subscribe <CircuitTestDetailsPage, string>(this, MessengerCenterMessages.ChangeTitleOnCircuitTab, (circuit, s) =>
            {
                Title = s;
            });

            var circuitId = navigationData as string;

            if (circuitId != null)
            {
                _circuitId = circuitId;
            }

            try
            {
                using (var dlg = this.Dialogs.Loading("Progress (No Cancel)"))
                {
                    var circuitResult = await _boardsService.GetTestedCircuit(_circuitId);

                    if (!circuitResult.Success)
                    {
                        Dialogs.Toast(circuitResult.Message);
                        return;
                    }

                    var circuit = circuitResult.ResultObject as CircuitTest;
                    if (circuit != null)
                    {
                        CircuitViewModel.Circuit     = circuit;
                        CircuitTestViewModel.Circuit = circuit;

                        await CircuitTestViewModel.InitializeAsync(null);

                        await CircuitViewModel.InitializeAsync(null);
                    }
                }
            }
            catch (ServiceAuthenticationException e)
            {
                var result = await TryToLogin();

                if (!result)
                {
                    await NavigationService.NavigateToAsync <LoginViewModel>();
                }
                else
                {
                    await InitializeAsync(_circuitId);
                }
            }
            catch (Exception e)
            {
                await ShowErrorAlert(e?.Message);
            }
        }