protected override async Task OnInternalAppearingAsync()
        {
            try
            {
                await ViewModelStateItem.RunActionAsync(async() => { await RefreshData(); },
                                                        () => SetLabelsStateItem(openmediavault.UpdateManagement, openmediavault.Loading_PleaseWait___),
                                                        () => { SetLabelsStateItem(openmediavault.UpdateManagement, openmediavault.Done___); });
            }
            catch (AuthorizationException ex)
            {
                if (!retry)
                {
                    SetLabelsStateItem(openmediavault.Error, ex.Message);
                    _messagingCenter.Send("this", MessengerKeys.SessionExpired, "item");
                }
                else
                {
                    retry = false;
                    await Task.Delay(100);
                    await OnInternalAppearingAsync();
                }
            }
            catch (Exception e)
            {
                SetLabelsStateItem(openmediavault.Error, e.Message);
            }
            await base.OnInternalAppearingAsync();

            retry = true;
        }
예제 #2
0
        public void RunActions()
        {
            var viewModelMock = new Mock <IViewModel>();
            var MainThread    = new Mock <Xamarin.Essentials.Interfaces.IMainThread>();
            var obj           = new ViewModelStateItem(viewModelMock.Object, MainThread.Object);

            Assert.IsNotNull(obj);
            bool   myActionCalled = false;
            bool   BeforeCalled   = false;
            bool   AfterCalled    = false;
            Action myAction       = () =>
            {
                myActionCalled = true;
                Assert.IsTrue(obj.IsRunning);
            };
            Action before = () =>
            {
                BeforeCalled = true;
                Assert.IsFalse(obj.IsRunning);
            };
            Action after = () =>
            {
                AfterCalled = true;
                Assert.IsFalse(obj.IsRunning);
            };

            obj.RunActions(myAction, before, after);
            Assert.IsFalse(obj.IsRunning);
            Assert.IsTrue(myActionCalled);
            Assert.IsTrue(BeforeCalled);
            Assert.IsTrue(AfterCalled);
        }
예제 #3
0
        public void RunFunc2()
        {
            var viewModelMock = new Mock <IViewModel>();
            var MainThread    = new Mock <Xamarin.Essentials.Interfaces.IMainThread>();
            var obj           = new ViewModelStateItem(viewModelMock.Object, MainThread.Object);

            Assert.IsNotNull(obj);
            bool          myActionCalled = false;
            bool          BeforeCalled   = false;
            bool          AfterCalled    = false;
            Func <string> myAction       = () =>
            {
                myActionCalled = true;
                Assert.IsTrue(obj.IsRunning);
                return("ok_2");
            };
            Action before = () =>
            {
                BeforeCalled = true;
                Assert.IsFalse(obj.IsRunning);
            };
            Action after = () =>
            {
                AfterCalled = true;
                Assert.IsFalse(obj.IsRunning);
            };
            var result = obj.RunFunc <string>(myAction, before, after);

            Assert.IsFalse(obj.IsRunning);
            Assert.IsTrue(myActionCalled);
            Assert.IsTrue(BeforeCalled);
            Assert.IsTrue(AfterCalled);
            Assert.AreEqual("ok_2", result);
        }
예제 #4
0
        private async void DeleteFileSystem(object o)
        {
            if (!await _messageBoxService.ShowAction(openmediavault.DeleteFileSystem,
                                                     openmediavault.DoYouReallyWantToDeleteTheFileSystem_AllDataWillBeLost_))
            {
                return;
            }

            if (o is OmvFilesystems filesystem)
            {
                await ViewModelStateItem.RunActionAsync(async() =>
                {
                    await _omvService.DeleteFileSystem(filesystem);
                    var fileneame = await _omvService.ApplyChanges();
                    await _omvService.CheckRunningAsync(fileneame);
                    await RefreshData();
                },
                                                        () => SetLabelsStateItem("FileSystemMgmt",
                                                                                 openmediavault.ApplyConfigurationChanges),
                                                        () =>
                {
                    SetLabelsStateItem("FileSystemMgmt",
                                       openmediavault.Done___);
                });
            }
        }
예제 #5
0
        protected override async Task OnInternalAppearingAsync()
        {
            await ViewModelStateItem.RunActionAsync(async() => { await RefreshData(); },
                                                    () => SetLabelsStateItem("FileSystemMgmt", "Get file systems"),
                                                    () => { SetLabelsStateItem("FileSystemMgmt", openmediavault.Done___); });

            await base.OnInternalAppearingAsync();
        }
        protected override async Task OnInternalAppearingAsync()
        {
            await ViewModelStateItem.RunActionAsync(async() => { await RefreshData(); },
                                                    () => SetLabelsStateItem("OMV", openmediavault.CheckingForNewPlugins___),
                                                    () => { SetLabelsStateItem("OMV", openmediavault.Done___); });

            await base.OnInternalAppearingAsync();
        }
예제 #7
0
        public void RunAction()
        {
            var viewModelMock = new Mock <IViewModel>();
            var MainThread    = new Mock <Xamarin.Essentials.Interfaces.IMainThread>();
            var obj           = new ViewModelStateItem(viewModelMock.Object, MainThread.Object);

            Assert.IsNotNull(obj);
            Action act = () =>
            {
                Assert.IsTrue(obj.IsRunning);
            };

            obj.RunAction(act);
            Assert.IsFalse(obj.IsRunning);
        }
        public void Create()
        {
            //var loggertMock = new Mock<ILogger>();
            //var telemetryServiceMock = new Mock<ITelemetryService>();
            var viewModelMock = new Mock <IViewModel>();
            var MainThread    = new Mock <Xamarin.Essentials.Interfaces.IMainThread>();
            var obj           = new ViewModelStateItem(viewModelMock.Object, MainThread.Object) as BaseItem;

            Assert.IsNotNull(obj);


            Assert.IsNull(obj.Icon);
            Assert.IsNull(obj.Title);
            Assert.IsNull(obj.Subtitle);
            Assert.IsNull(obj.Description);
            Assert.IsNull(obj.ToString());
        }
예제 #9
0
 private async void UmountFileSystem(object o)
 {
     if (o is OmvFilesystems filesystem)
     {
         await ViewModelStateItem.RunActionAsync(async() =>
         {
             await _omvService.UmountFileSystem(filesystem);
             var fileneame = await _omvService.ApplyChanges();
             await _omvService.CheckRunningAsync(fileneame);
             await RefreshData();
         },
                                                 () => SetLabelsStateItem("FileSystemMgmt",
                                                                          openmediavault.ApplyConfigurationChanges),
                                                 () =>
         {
             SetLabelsStateItem("FileSystemMgmt",
                                openmediavault.Done___);
         });
     }
 }
예제 #10
0
        public void Create()
        {
            //var loggertMock = new Mock<ILogger>();
            //var telemetryServiceMock = new Mock<ITelemetryService>();
            var viewModelMock = new Mock <IViewModel>();
            var MainThread    = new Mock <Xamarin.Essentials.Interfaces.IMainThread>();
            var obj           = new ViewModelStateItem(viewModelMock.Object, MainThread.Object);

            Assert.IsNotNull(obj);

            Assert.AreEqual(viewModelMock.Object, obj.ViewModel);
            Assert.AreEqual(SvgIconTarget.Info, obj.Icon);
            Assert.AreEqual(obj.ViewModel.CmdState, obj.ShowCurrentCmd);

            Assert.IsNull(obj.Color);
            Assert.IsNull(obj.Title);
            Assert.IsNull(obj.Subtitle);
            Assert.IsNull(obj.Description);

            Assert.IsFalse(obj.IsRunning);
        }
        public void SetSubtitle()
        {
            //var loggertMock = new Mock<ILogger>();
            //var telemetryServiceMock = new Mock<ITelemetryService>();
            var viewModelMock = new Mock <IViewModel>();
            var MainThread    = new Mock <Xamarin.Essentials.Interfaces.IMainThread>();
            var obj           = new ViewModelStateItem(viewModelMock.Object, MainThread.Object) as BaseItem;

            Assert.IsNotNull(obj);
            var propertyName = "";

            obj.PropertyChanged += (sender, args) =>
            {
                propertyName = args.PropertyName;
            };
            obj.Subtitle = "toto";
            Assert.IsNull(obj.Icon);
            Assert.IsNull(obj.Title);
            Assert.IsNotNull(obj.Subtitle);
            Assert.IsNull(obj.Description);
            Assert.IsNull(obj.ToString());

            Assert.AreEqual(nameof(BaseItem.Subtitle), propertyName);
        }
 protected override async Task OnInternalAppearingAsync()
 {
     ViewModelStateItem.RunAction(async() => { await RefreshData(); });
     await base.OnInternalAppearingAsync();
 }
 public ViewModelWhithState()
 {
     _viewModelStateItem = new ViewModelStateItem(this, App.Container.Resolve <Xamarin.Essentials.Interfaces.IMainThread>());
 }