示例#1
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            var vm     = ViewModel as DroneConnectViewModel;
            var result = await vm.WiFiNetworkService.ConnectAsync(vm.MavicAirSSID);

            if (result.Successful)
            {
                var drone     = new Drones.DJIDrone(vm.ConnectedUasMgr, this.Dispatcher);
                var transport = new Drones.DJITransport(drone);
                vm.ConnectedUasMgr.SetActive(new ConnectedUas(drone, transport));
                vm.ConnectedUasMgr.Active.Transport.Initialize();

                var args = new ViewModelLaunchArgs()
                {
                    ParentViewModel = vm,
                    LaunchType      = LaunchTypes.View,
                    ViewModelType   = typeof(FlightViewModel),
                };

                await vm.ViewModelNavigation.NavigateAsync(args);
            }
            else
            {
                await vm.Popups.ShowAsync($"Could not connect to {vm.MavicAirSSID}");
            }
        }
示例#2
0
        public Task NavigateAsync <TViewModel>() where TViewModel : ViewModelBase
        {
            var args = new ViewModelLaunchArgs()
            {
                ViewModelType = typeof(TViewModel)
            };

            args.LaunchType = LaunchTypes.Other;
            return(NavigateAsync(args));
        }
示例#3
0
        public void AcceptInviteAndRegister()
        {
            var args = new ViewModelLaunchArgs()
            {
                ViewModelType = typeof(RegisterUserViewModel),
                LaunchType    = LaunchTypes.Other
            };

            args.Parameters.Add("inviteId", _inviteid);
            ViewModelNavigation.NavigateAsync(args);
        }
示例#4
0
        protected Task NavigateAndViewAsync <TViewModel>(string id)
        {
            var launchArgs = new ViewModelLaunchArgs()
            {
                ViewModelType   = typeof(TViewModel),
                ParentViewModel = this,
                ChildId         = id,
                LaunchType      = LaunchTypes.View
            };

            return(ViewModelNavigation.NavigateAsync(launchArgs));
        }
示例#5
0
        protected Task NavigateAndCreateAsync <TViewModel>(string parentId)
        {
            var launchArgs = new ViewModelLaunchArgs()
            {
                ViewModelType   = typeof(TViewModel),
                ParentViewModel = this,
                ParentId        = parentId,
                LaunchType      = LaunchTypes.Create
            };

            return(ViewModelNavigation.NavigateAsync(launchArgs));
        }
示例#6
0
        public void EditDevice()
        {
            var launchArgs = new ViewModelLaunchArgs()
            {
                ViewModelType = typeof(ManageDeviceViewModel),
                LaunchType    = LaunchTypes.Edit
            };

            launchArgs.Parameters.Add(MonitorDeviceViewModel.DeviceRepoId, _deviceRepoId);
            launchArgs.Parameters.Add(MonitorDeviceViewModel.DeviceId, _deviceId);

            ViewModelNavigation.NavigateAsync(launchArgs);
        }
        public async void ShowHostTelemetry()
        {
            var launchArgs = new ViewModelLaunchArgs()
            {
                ViewModelType = typeof(TelemetryViewModel),
                ChildId       = Instance.Id,
            };

            launchArgs.Parameters.Add(TelemetryViewModel.VIEW_TYPE, TelemetryViewModel.VIEW_TYPE_HOST);
            launchArgs.Parameters.Add(TelemetryViewModel.VIEW_NAME, Instance.Name);

            await ViewModelNavigation.NavigateAsync(launchArgs);
        }
        protected override void ItemSelected(DeviceSummary model)
        {
            base.ItemSelected(model);
            var launchArgs = new ViewModelLaunchArgs()
            {
                ViewModelType = typeof(MonitorDeviceViewModel),
                LaunchType    = LaunchTypes.View
            };

            launchArgs.Parameters.Add(MonitorDeviceViewModel.DeviceRepoId, LaunchArgs.ChildId);
            launchArgs.Parameters.Add(MonitorDeviceViewModel.DeviceId, model.Id);

            ViewModelNavigation.NavigateAsync(launchArgs);
        }
        public Task NavigateAsync <TViewModel>(ViewModelBase parentVM, params KeyValuePair <string, object>[] args) where TViewModel : ViewModelBase
        {
            var launchArgs = new ViewModelLaunchArgs();

            launchArgs.ParentViewModel = parentVM;
            launchArgs.LaunchType      = LaunchTypes.Other;
            launchArgs.ViewModelType   = typeof(TViewModel);

            foreach (var arg in args)
            {
                launchArgs.Parameters.Add(arg.Key, arg.Value);
            }

            return(ShowViewModelAsync(launchArgs));
        }
示例#10
0
        public Task NavigateAsync(ViewModelBase parentVM, Type viewModelType, params KeyValuePair <string, object>[] args)
        {
            var launchArgs = new ViewModelLaunchArgs();

            launchArgs.LaunchType      = LaunchTypes.View;
            launchArgs.ViewModelType   = viewModelType;
            launchArgs.ParentViewModel = parentVM;

            foreach (var arg in args)
            {
                launchArgs.Parameters.Add(arg.Key, arg.Value);
            }

            return(ShowViewModelAsync(launchArgs));
        }
示例#11
0
        public Task NavigateAndCreateAsync <TViewModel>(params KeyValuePair <string, object>[] parms) where TViewModel : ViewModelBase
        {
            var args = new ViewModelLaunchArgs()
            {
                ViewModelType = typeof(TViewModel)
            };

            foreach (var param in parms)
            {
                args.Parameters.Add(param.Key, param.Value);
            }
            args.LaunchType = LaunchTypes.Create;

            return(NavigateAsync(args));
        }
示例#12
0
        private Task ShowViewModelAsync(ViewModelLaunchArgs args)
        {
            if (args.ParentViewModel == null)
            {
                args.ParentViewModel = ViewModelBackStack.FirstOrDefault();
            }

            var view      = Activator.CreateInstance(_viewModelLookup[args.ViewModelType]) as LagoVistaContentPage;
            var viewModel = SLWIOC.CreateForType(args.ViewModelType) as XPlatViewModel;

            ViewModelBackStack.Push(viewModel);

            viewModel.LaunchArgs = args;
            view.ViewModel       = viewModel;
            return(_navigation.PushAsync(view));
        }
示例#13
0
        public Task NavigateAndPickAsync <TViewModel>(ViewModelBase parentVM, Action <Object> selectedAction, Action cancelledAction = null, params KeyValuePair <string, object>[] args) where TViewModel : ViewModelBase
        {
            var launchArgs = new ViewModelLaunchArgs();

            launchArgs.LaunchType      = LaunchTypes.Picker;
            launchArgs.ViewModelType   = typeof(TViewModel);
            launchArgs.ParentViewModel = parentVM;
            launchArgs.SelectedAction  = selectedAction;
            launchArgs.CancelledAction = cancelledAction;

            foreach (var arg in args)
            {
                launchArgs.Parameters.Add(arg.Key, arg.Value);
            }

            return(ShowViewModelAsync(launchArgs));
        }
示例#14
0
        public Task NavigateAndPickAsync <TViewModel>(Action <object> selectedAction, Action cancelledAction = null, params KeyValuePair <string, object>[] parms) where TViewModel : ViewModelBase
        {
            var args = new ViewModelLaunchArgs()
            {
                ViewModelType = typeof(TViewModel)
            };

            foreach (var param in parms)
            {
                args.Parameters.Add(param.Key, param.Value);
            }

            args.SelectedAction  = selectedAction;
            args.CancelledAction = cancelledAction;
            args.LaunchType      = LaunchTypes.Picker;

            return(NavigateAsync(args));
        }
示例#15
0
        public void Navigate(ViewModelLaunchArgs args)
        {
            Type viewType = null;

            if (_navDictionary.Keys.Contains(args.ViewModelType))
            {
                viewType = _navDictionary[args.ViewModelType];
            }
            else
            {
                Type viewModelInterface = args.ViewModelType;
                var  key = _navDictionary.Keys.Where(cls => cls.GetInterfaces().Contains(args.ViewModelType)).FirstOrDefault();
                if (key == null)
                {
                    throw new Exception(String.Format("Could not find view for {0}", args.ViewModelType.FullName));
                }
                args.ViewModelType = key;
                viewType           = _navDictionary[key];
            }

            _rootFrame.Navigate(viewType, args);
        }
示例#16
0
        public virtual void HandleURIActivation(Uri uri, Dictionary <string, string> kvps)
        {
            Logger.AddCustomEvent(LagoVista.Core.PlatformSupport.LogLevel.Message, "HandleURIActivation", uri.Host, uri.Query.ToKVP("queryString"));

            if (uri.Host == "resetpassword")
            {
                if (!kvps.ContainsKey("code"))
                {
                    Logger.AddCustomEvent(LagoVista.Core.PlatformSupport.LogLevel.Error, "ResetPassword_HandleURIActivation", "Missing Code", uri.Query.ToKVP("queryString"), uri.Host.ToKVP("action"));
                }
                else
                {
                    var launchArgs = new ViewModelLaunchArgs
                    {
                        ViewModelType = typeof(ResetPasswordViewModel)
                    };
                    launchArgs.Parameters.Add("code", kvps["code"]);
                    ViewModelNavigation.NavigateAsync(launchArgs);
                }
            }
            else if (uri.Host == "acceptinvite")
            {
                if (!kvps.ContainsKey("inviteid"))
                {
                    Logger.AddCustomEvent(LagoVista.Core.PlatformSupport.LogLevel.Error, "AcceptInvite_HandleURIActivation", "Missing Inviteid", uri.Query.ToKVP("queryString"), uri.Host.ToKVP("action"));
                }
                else
                {
                    var launchArgs = new ViewModelLaunchArgs
                    {
                        ViewModelType = typeof(AcceptInviteViewModel)
                    };
                    launchArgs.Parameters.Add("inviteId", kvps["inviteid"]);
                    ViewModelNavigation.NavigateAsync(launchArgs);
                }
            }
        }
示例#17
0
 public Task NavigateAsync(ViewModelLaunchArgs args)
 {
     return(ShowViewModelAsync(args));
 }
示例#18
0
        public Task NavigateAsync(ViewModelLaunchArgs args)
        {
            Navigate(args);

            return(Task.FromResult(default(object)));
        }
示例#19
0
 private void Vm_NavigateToViewModel(object sender, ViewModelLaunchArgs e)
 {
     Navigation.Instance.Navigate(e);
 }