Пример #1
0
        private async Task <SettingsWindowVM> SetupViewModels()
        {
            var albumArt        = new AlbumArtVM(_albumArtModel, _trackModel);
            var albumArtPopup   = new AlbumArtPopupVM(_albumArtPopupModel, _trackModel);
            var audioBand       = new AudioBandVM(_audioBandModel);
            var customLabels    = new CustomLabelsVM(_customLabelsModel, this);
            var nextButton      = new NextButtonVM(_nextButtonModel);
            var playPauseButton = new PlayPauseButtonVM(_playPauseButtonModel, _trackModel);
            var prevButton      = new PreviousButtonVM(_previousButtonModel);
            var progressBar     = new ProgressBarVM(_progressBarModel, _trackModel);

            await _uiDispatcher.InvokeAsync(() => InitializeBindingSources(albumArtPopup, albumArt, audioBand, nextButton, playPauseButton, prevButton, progressBar));

            return(new SettingsWindowVM
            {
                AlbumArtPopupVM = albumArtPopup,
                ProgressBarVM = progressBar,
                PreviousButtonVM = prevButton,
                PlayPauseButtonVM = playPauseButton,
                NextButtonVM = nextButton,
                AudioBandVM = audioBand,
                AboutVm = new AboutVM(),
                AlbumArtVM = albumArt,
                CustomLabelsVM = customLabels,
                AudioSourceSettingsVM = new ObservableCollection <AudioSourceSettingsVM>()
            });
        }
Пример #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SettingsWindow"/> class
        /// with the settings viewmodel.
        /// </summary>
        /// <param name="vm">The settings window viewmodel.</param>
        /// <param name="audioBandVM">The audioband view model</param>
        /// <param name="albumArtPopupVM">The album art popup view model</param>
        /// <param name="albumArtVM">The album art view model</param>
        /// <param name="customLabelsVM">The custom labels view model</param>
        /// <param name="aboutVm">The about dialog view model</param>
        /// <param name="nextButtonVM">The next button view model</param>
        /// <param name="playPauseButtonVM">The play/pause button view model</param>
        /// <param name="previousButtonVM">The previous button view model</param>
        /// <param name="progressBarVM">The progress bar view model</param>
        public SettingsWindow(
            SettingsWindowVM vm,
            AudioBandVM audioBandVM,
            AlbumArtPopupVM albumArtPopupVM,
            AlbumArtVM albumArtVM,
            CustomLabelsVM customLabelsVM,
            AboutVM aboutVm,
            NextButtonVM nextButtonVM,
            PlayPauseButtonVM playPauseButtonVM,
            PreviousButtonVM previousButtonVM,
            ProgressBarVM progressBarVM)
        {
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
            ElementHost.EnableModelessKeyboardInterop(this);

            CancelCloseCommand = new RelayCommand(CancelCloseCommandOnExecute);
            SaveCloseCommand   = new RelayCommand(SaveCloseCommandOnExecute);

            AudioBandVM       = audioBandVM;
            AlbumArtPopupVM   = albumArtPopupVM;
            AlbumArtVM        = albumArtVM;
            CustomLabelsVM    = customLabelsVM;
            AboutVM           = aboutVm;
            NextButtonVM      = nextButtonVM;
            PlayPauseButtonVM = playPauseButtonVM;
            PreviousButtonVM  = previousButtonVM;
            ProgressBarVM     = progressBarVM;

            InitializeComponent();
            DataContext = vm;
            _vm         = vm;

            Activated += OnActivated;
        }
Пример #3
0
 private void Application_Startup(object sender, StartupEventArgs e)
 {
     Graph_VM        = new GraphVM(new GraphModel());
     Clock_VM        = new ClockVM(new ClockModel());
     MediaPlayer_VM  = new MediaPlayerVM(new MediaPlayerModel(new Client()));
     ProgressBar_VM  = new ProgressBarVM(new ProgressBarModel());
     JoystickBars_VM = new JoystickBarsVM(new JoystickBarsModel());
     // load names
     Load_Names();
     // event - observer pattern
     Load_Communication();
 }
Пример #4
0
 private void InitializeBindingSources(
     AlbumArtPopupVM albumArtPopupVm,
     AlbumArtVM albumartVm,
     AudioBandVM audioBandVm,
     NextButtonVM nextButtonVm,
     PlayPauseButtonVM playPauseButtonVm,
     PreviousButtonVM previousButtonVm,
     ProgressBarVM progressBarVm)
 {
     AlbumArtPopupVMBindingSource.DataSource   = albumArtPopupVm;
     AlbumArtVMBindingSource.DataSource        = albumartVm;
     AudioBandVMBindingSource.DataSource       = audioBandVm;
     NextButtonVMBindingSource.DataSource      = nextButtonVm;
     PlayPauseButtonVMBindingSource.DataSource = playPauseButtonVm;
     PreviousButtonVMBindingSource.DataSource  = previousButtonVm;
     ProgressBarVMBindingSource.DataSource     = progressBarVm;
 }
Пример #5
0
        private async Task <SettingsWindowVM> SetupViewModels()
        {
            var albumArt               = new AlbumArtVM(_albumArtModel, _trackModel);
            var albumArtPopup          = new AlbumArtPopupVM(_albumArtPopupModel, _trackModel);
            var audioBand              = new AudioBandVM(_audioBandModel);
            var customLabels           = new CustomLabelsVM(_customLabelsModel, this);
            var nextButton             = new NextButtonVM(_nextButtonModel);
            var playPauseButton        = new PlayPauseButtonVM(_playPauseButtonModel, _trackModel);
            var prevButton             = new PreviousButtonVM(_previousButtonModel);
            var progressBar            = new ProgressBarVM(_progressBarModel, _trackModel);
            var allAudioSourceSettings = new List <AudioSourceSettingsVM>();

            foreach (var audioSource in _audioSourceLoader.AudioSources)
            {
                var matchingSetting = _audioSourceSettingsModel.FirstOrDefault(s => s.AudioSourceName == audioSource.Name);
                if (matchingSetting != null)
                {
                    allAudioSourceSettings.Add(new AudioSourceSettingsVM(matchingSetting, audioSource));
                }
                else
                {
                    var newSettings = new AudioSourceSettings {
                        AudioSourceName = audioSource.Name
                    };
                    _audioSourceSettingsModel.Add(newSettings);
                    allAudioSourceSettings.Add(new AudioSourceSettingsVM(newSettings, audioSource));
                }
            }

            await _uiDispatcher.InvokeAsync(() => InitializeBindingSources(albumArtPopup, albumArt, audioBand, nextButton, playPauseButton, prevButton, progressBar));

            return(new SettingsWindowVM
            {
                AlbumArtPopupVM = albumArtPopup,
                ProgressBarVM = progressBar,
                PreviousButtonVM = prevButton,
                PlayPauseButtonVM = playPauseButton,
                NextButtonVM = nextButton,
                AudioBandVM = audioBand,
                AboutVm = new AboutVM(),
                AlbumArtVM = albumArt,
                CustomLabelsVM = customLabels,
                AudioSourceSettingsVM = allAudioSourceSettings
            });
        }
Пример #6
0
        /// <summary>
        /// Will navigate to Dashboard page after this LoggedInProcess
        /// </summary>
        /// <param name="loginResponse"></param>
        /// <returns></returns>
        public async Task LoggedInProcess(Framework.WebApi.AuthenticationResponse loginResponse)
        {
            ProgressBarVM.Initialization(Color.Orange, 4);

            Elmah.MVVMLightViewModels.WebServiceConfig.Token = loginResponse.Token;

            // 1.1. Theme
            var theme = Framework.Xaml.ApplicationPropertiesHelper.GetTheme();

            if (theme != Framework.Themes.Theme.Light)
            {
                ThemeSelectorVM.SwitchTheme(theme);
            }

            ProgressBarVM.Forward();

            await AppVM.GetCurrentLocation();

            ProgressBarVM.Forward();

            // 1.2. Token:
            Elmah.MVVMLightViewModels.WebServiceConfig.Token = loginResponse.Token;

            // 2.1. CacheLists
            {
                var allCacheDataKey = Caching.ListsHelper.BuildCacheDataKey(Elmah.EntityContracts.Enums.CacheLists.__ALL__.ToString());
                if (!Framework.Xaml.ApplicationPropertiesHelper.HasTableCachingData(allCacheDataKey))
                {
                    await Caching.ListsHelper.GetAndCacheLists();
                }
                else
                {
                    var cacheDataSetting = Framework.Xaml.ApplicationPropertiesHelper.GetTableCachingData(allCacheDataKey);
                    if (cacheDataSetting.ShouldRefresh)
                    {
                        await Caching.ListsHelper.GetAndCacheLists();
                    }
                }
            }

            ProgressBarVM.Forward();

            //// 2.2.GetAndCacheYourData
            //await NTierOnTime.MVVMLightViewModels.YourDataHelper.GetAndCacheYourData();

            ProgressBarVM.Forward();

            //await BusinessNavigationVM.InitializeActionItems();

            if (loginResponse.LoggedInSource == Framework.WebApi.LoggedInSource.LogInPage ||
                loginResponse.LoggedInSource == Framework.WebApi.LoggedInSource.AutoLogIn)
            {
                MessagingCenter.Send <Elmah.XamarinForms.ViewModels.DashboardVM, long>(DashboardVM, Elmah.XamarinForms.ViewModels.DashboardVM.MessageTitle_LoadData, loginResponse.EntityID.Value);
                App.Current.MainPage = new Elmah.XamarinForms.AppShell();
            }
            else if (loginResponse.LoggedInSource == Framework.WebApi.LoggedInSource.RegisterPage)
            {
                // TODO: you can goto Wizard page here, after registed a new account.
                //NavigationVM.Person.SendMessage_Init_TabDashboard(new NTierOnTime.DataSourceEntities.PersonIdentifier { EntityID = loginResponse.EntityID.Value });
                //App.Current.MainPage = new NavigationPage(new NTierOnTime.XamarinForms.Pages.Settings.PersonWizardPage { PersonID = loginResponse.EntityID?.ToString() });
            }

            // 3.1. CheckAllPermissions
            //await PermissionHelper.I.CheckAllPermissions();
        }