コード例 #1
0
        private static async Task <T> ShowAsync <T>(Func <Task <T> > show, IDispatcherWrapper dispatcher)
        {
            lock (DialogState)
            {
                while (DialogState.Showing)
                {
                    Monitor.Wait(DialogState);
                }
                DialogState.Showing = true;
            }

            // this next line creates a dependecy on the WindowService
            dispatcher = dispatcher ?? WindowWrapperHelper.Current().Dispatcher;

            dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher));

            var result = await dispatcher.DispatchAsync(async() => await show());

            lock (DialogState)
            {
                DialogState.Showing = false;
                Monitor.PulseAll(DialogState);
            }
            return(result);
        }
コード例 #2
0
        public MainWindowViewModel(
            IApplicationShutdownService applicationShutdownService,
            IDispatcherWrapper dispatcherWrapper,
            ICityViewModelFactory cityViewModelFactory,
            IBackendClient backendClient,
            ITemperatureViewModelFactory temperatureViewModelFactory,
            IWindSpeedViewModelFactory windSpeedViewModelFactory,
            IWeatherViewModelFactory weatherViewModelFactory)
        {
            _cityViewModelFactory    = cityViewModelFactory;
            _backendClient           = backendClient;
            _weatherViewModelFactory = weatherViewModelFactory;

            ShutdownApplicationCommand = new RelayCommand(applicationShutdownService.Shutdown);

            SelectedTemperature = temperatureViewModelFactory.Create(TemperatureUnit.Celsius);

            _temperatureViewModels.Add(SelectedTemperature);
            _temperatureViewModels.Add(temperatureViewModelFactory.Create(TemperatureUnit.Fahrenheit));

            SelectedWindSpeed = windSpeedViewModelFactory.Create(WindSpeedUnit.MetersPerSecond);

            _windSpeedViewModels.Add(SelectedWindSpeed);
            _windSpeedViewModels.Add(windSpeedViewModelFactory.Create(WindSpeedUnit.KilometersPerHour));
            _windSpeedViewModels.Add(windSpeedViewModelFactory.Create(WindSpeedUnit.MilesPerHour));

            dispatcherWrapper.BeginInvokeLowPriority(Initialize);
        }
コード例 #3
0
        public void Attach(DependencyObject associatedObject)
        {
            AssociatedObject = associatedObject;

            // process start
            if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
            {
                element.Visibility = Visibility.Visible;
            }
            else
            {
                _dispatcher = Common.DispatcherWrapper.Current();

                // throttled calculate event
                var observable = Observable.FromEventPattern(this, nameof(DoCalculate));
                var throttled = observable.Throttle(TimeSpan.FromMilliseconds(1000));
                throttled.Subscribe(x => Calculate());

                // handle click
                element.Click += new Common.WeakReference<NavButtonBehavior, object, RoutedEventArgs>(this)
                {
                    EventAction = (i, s, e) => Element_Click(s, e),
                    DetachAction = (i, w) => element.Click -= w.Handler,
                }.Handler;
                Calculate();
            }
        }
コード例 #4
0
        public void Attach(DependencyObject associatedObject)
        {
            AssociatedObject = associatedObject;

            // process start
            if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
            {
                element.Visibility = Visibility.Visible;
            }
            else
            {
                _dispatcher = Common.DispatcherWrapper.Current();

                // throttled calculate event
                _throttleHelper = new EventThrottleHelper();
                _throttleHelper.ThrottledEvent += delegate { Calculate(); };
                _throttleHelper.Throttle        = 1000;

                // handle click
                element.Click += new Common.WeakReference <NavButtonBehavior, object, RoutedEventArgs>(this)
                {
                    EventAction  = (i, s, e) => Element_Click(s, e),
                    DetachAction = (i, w) => element.Click -= w.Handler,
                }.Handler;
                CalculateThrottled();
                BootStrapper.Current.ShellBackButtonUpdated += Current_ShellBackButtonUpdated;
            }
        }
コード例 #5
0
        //public static void ProcessError(IDispatcherWrapper fragment, Error error, Type request, params object[] args)
        //{
        //    if (error.Code == 406 || error.Message == null)
        //    {
        //        return null;
        //    }

        //    if (request is TL_account_saveSecureValue || request is TL_account_getAuthorizationForm)
        //    {
        //        if (error.Message.Contains("PHONE_NUMBER_INVALID"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.InvalidPhoneNumber);
        //        }
        //        else if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.FloodWait);
        //        }
        //        else
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred + "\n" + error.Message);
        //        }
        //    }
        //    else if (request is TL_channels_joinChannel ||
        //     request is TL_channels_editAdmin ||
        //     request is TL_channels_inviteToChannel ||
        //     request is TL_messages_addChatUser ||
        //     request is TL_messages_startBot ||
        //     request is TL_channels_editBanned)
        //    {
        //        if (fragment != null)
        //        {
        //            ShowAddUserAlert(error.Message, fragment, (Boolean)args[0]);
        //        }
        //        else
        //        {
        //            if (error.Message.equals("PEER_FLOOD"))
        //            {
        //                NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.needShowAlert, 1);
        //            }
        //        }
        //    }
        //    else if (request is TL_messages_createChat)
        //    {
        //        if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowFloodWaitAlert(fragment, error.Message);
        //        }
        //        else
        //        {
        //            ShowAddUserAlert(fragment, error.Message, false);
        //        }
        //    }
        //    else if (request is TL_channels_createChannel)
        //    {
        //        if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowFloodWaitAlert(fragment, error.Message);
        //        }
        //        else
        //        {
        //            ShowAddUserAlert(fragment, error.Message, false);
        //        }
        //    }
        //    else if (request is TL_messages_editMessage)
        //    {
        //        if (!error.Message.Equals("MESSAGE_NOT_MODIFIED"))
        //        {
        //            if (fragment != null)
        //            {
        //                ShowSimpleAlert(fragment, Strings.Resources.EditMessageError);
        //            }
        //            else
        //            {
        //                ShowSimpleToast(fragment, Strings.Resources.EditMessageError);
        //            }
        //        }
        //    }
        //    else if (request is TL_messages_sendMessage ||
        //              request is TL_messages_sendMedia ||

        //              request is TL_messages_sendBroadcast ||
        //              request is TL_messages_sendInlineBotResult ||

        //              request is TL_messages_forwardMessages)
        //    {
        //        if (error.Message.Equals("PEER_FLOOD"))
        //        {
        //            NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.needShowAlert, 0);
        //        }
        //    }
        //    else if (request is TL_messages_importChatInvite)
        //    {
        //        if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.FloodWait);
        //        }
        //        else if (error.Message.Equals("USERS_TOO_MUCH"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.JoinToGroupErrorFull);
        //        }
        //        else
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.JoinToGroupErrorNotExist);
        //        }
        //    }
        //    else if (request is TL_messages_getAttachedStickers)
        //    {
        //        if (fragment != null && fragment.getParentActivity() != null)
        //        {
        //            Toast.makeText(fragment.getParentActivity(), Strings.Resources.ErrorOccurred + "\n" + error.text, Toast.LENGTH_SHORT).show();
        //        }
        //    }
        //    else if (request is TL_account_confirmPhone || request is TL_account_verifyPhone || request is TL_account_verifyEmail)
        //    {
        //        if (error.Message.Contains("PHONE_CODE_EMPTY") || error.Message.Contains("PHONE_CODE_INVALID") || error.Message.Contains("CODE_INVALID") || error.Message.Contains("CODE_EMPTY"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.InvalidCode);
        //        }
        //        else if (error.Message.Contains("PHONE_CODE_EXPIRED") || error.Message.Contains("EMAIL_VERIFY_EXPIRED"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.CodeExpired);
        //        }
        //        else if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.FloodWait);
        //        }
        //        else
        //        {
        //            ShowSimpleAlert(fragment, error.Message);
        //        }
        //    }
        //    else if (request is TL_auth_resendCode)
        //    {
        //        if (error.Message.Contains("PHONE_NUMBER_INVALID"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.InvalidPhoneNumber);
        //        }
        //        else if (error.Message.Contains("PHONE_CODE_EMPTY") || error.Message.Contains("PHONE_CODE_INVALID"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.InvalidCode);
        //        }
        //        else if (error.Message.Contains("PHONE_CODE_EXPIRED"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.CodeExpired);
        //        }
        //        else if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.FloodWait);
        //        }
        //        else if (error.Code != -1000)
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred + "\n" + error.Message);
        //        }
        //    }
        //    else if (request is TL_account_sendConfirmPhoneCode)
        //    {
        //        if (error.Code == 400)
        //        {
        //            return ShowSimpleAlert(fragment, Strings.Resources.CancelLinkExpired);
        //        }
        //        else if (error.Message != null)
        //        {
        //            if (error.Message.StartsWith("FLOOD_WAIT"))
        //            {
        //                return ShowSimpleAlert(fragment, Strings.Resources.FloodWait);
        //            }
        //            else
        //            {
        //                return ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred);
        //            }
        //        }
        //    }
        //    else if (request is TL_account_changePhone)
        //    {
        //        if (error.Message.Contains("PHONE_NUMBER_INVALID"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.InvalidPhoneNumber);
        //        }
        //        else if (error.Message.Contains("PHONE_CODE_EMPTY") || error.Message.Contains("PHONE_CODE_INVALID"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.InvalidCode);
        //        }
        //        else if (error.Message.Contains("PHONE_CODE_EXPIRED"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.CodeExpired);
        //        }
        //        else if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.FloodWait);
        //        }
        //        else
        //        {
        //            ShowSimpleAlert(fragment, error.Message);
        //        }
        //    }
        //    else if (request is TL_account_sendChangePhoneCode)
        //    {
        //        if (error.Message.Contains("PHONE_NUMBER_INVALID"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.InvalidPhoneNumber);
        //        }
        //        else if (error.Message.Contains("PHONE_CODE_EMPTY") || error.Message.Contains("PHONE_CODE_INVALID"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.InvalidCode);
        //        }
        //        else if (error.Message.Contains("PHONE_CODE_EXPIRED"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.CodeExpired);
        //        }
        //        else if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.FloodWait);
        //        }
        //        else if (error.Message.StartsWith("PHONE_NUMBER_OCCUPIED"))
        //        {
        //            ShowSimpleAlert(fragment, LocaleController.formatString("ChangePhoneNumberOccupied", R.string.ChangePhoneNumberOccupied, (String)args[0]));
        //        }
        //        else
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred);
        //        }
        //    }
        //    else if (request is TL_updateUserName)
        //    {
        //        switch (error.Message)
        //        {
        //            case "USERNAME_INVALID":
        //                ShowSimpleAlert(fragment, Strings.Resources.UsernameInvalid);
        //                break;
        //            case "USERNAME_OCCUPIED":
        //                ShowSimpleAlert(fragment, Strings.Resources.UsernameInUse);
        //                break;
        //            default:
        //                ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred);
        //                break;
        //        }
        //    }
        //    else if (request is TL_contacts_importContacts)
        //    {
        //        if (error == null || error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.FloodWait);
        //        }
        //        else
        //        {
        //            ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred + "\n" + error.Message);
        //        }
        //    }
        //    else if (request is TL_account_getPassword || request is TL_account_getTmpPassword)
        //    {
        //        if (error.Message.StartsWith("FLOOD_WAIT"))
        //        {
        //            ShowSimpleToast(fragment, getFloodWaitString(error.Message));
        //        }
        //        else
        //        {
        //            ShowSimpleToast(fragment, error.Message);
        //        }
        //    }
        //    else if (request is TL_payments_sendPaymentForm)
        //    {
        //        switch (error.Message)
        //        {
        //            case "BOT_PRECHECKOUT_FAILED":
        //                ShowSimpleToast(fragment, Strings.Resources.PaymentPrecheckoutFailed);
        //                break;
        //            case "PAYMENT_FAILED":
        //                ShowSimpleToast(fragment, Strings.Resources.PaymentFailed);
        //                break;
        //            default:
        //                ShowSimpleToast(fragment, error.Message);
        //                break;
        //        }
        //    }
        //    else if (request is TL_payments_validateRequestedInfo)
        //    {
        //        switch (error.Message)
        //        {
        //            case "SHIPPING_NOT_AVAILABLE":
        //                ShowSimpleToast(fragment, Strings.Resources.PaymentNoShippingMethod);
        //                break;
        //            default:
        //                ShowSimpleToast(fragment, error.Message);
        //                break;
        //        }
        //    }
        //}

        private static async void ShowPeerFloodAlert(IDispatcherWrapper fragment, int reason)
        {
            var dialog = new TLMessageDialog();

            dialog.Title             = Strings.Resources.AppName;
            dialog.PrimaryButtonText = Strings.Resources.OK;

            if (reason != 2)
            {
                dialog.SecondaryButtonText   = Strings.Resources.MoreInfo;
                dialog.SecondaryButtonClick += (s, args) =>
                {
                    MessageHelper.NavigateToUsername(null, null, "spambot", null, null, null);
                };
            }

            if (reason == 0)
            {
                dialog.Message = Strings.Resources.NobodyLikesSpam1;
            }
            else if (reason == 1)
            {
                dialog.Message = Strings.Resources.NobodyLikesSpam2;
            }
            else if (reason == 2)
            {
                //builder.setMessage((String)args[1]);
            }

            await dialog.ShowQueuedAsync();
        }
コード例 #6
0
        public void Attach(DependencyObject associatedObject)
        {
            AssociatedObject = associatedObject;

            // process start
            if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
            {
                element.Visibility = Visibility.Visible;
            }
            else
            {
                _dispatcher = Common.DispatcherWrapper.Current();

                // throttled calculate event
                var observable = Observable.FromEventPattern(this, nameof(DoCalculate));
                var throttled  = observable.Throttle(TimeSpan.FromMilliseconds(1000));
                throttled.Subscribe(x => Calculate());

                // handle click
                element.Click += new Common.WeakReference <NavButtonBehavior, object, RoutedEventArgs>(this)
                {
                    EventAction  = (i, s, e) => Element_Click(s, e),
                    DetachAction = (i, w) => element.Click -= w.Handler,
                }.Handler;
                Calculate();
            }
        }
コード例 #7
0
ファイル: NavButtonBehavior.cs プロジェクト: yorek/Template10
 public NavButtonBehavior()
 {
     _dispatcher     = Common.DispatcherWrapper.Current();
     _throttleHelper = new EventThrottleHelper {
         Throttle = 1000
     };
 }
コード例 #8
0
ファイル: DialogsService.cs プロジェクト: RomanGL/VKSaver
 public DialogsService(IDispatcherWrapper dispatcherWrapper,
                       ILocService locService)
 {
     _dispatcherWrapper = dispatcherWrapper;
     _locService        = locService;
     _queue             = new TaskQueue();
 }
コード例 #9
0
ファイル: TransferViewModel.cs プロジェクト: RomanGL/VKSaver
        public TransferViewModel(
            IDownloadsService downloadsService,
            IUploadsService uploadsService,
            IDialogsService dialogsService,
            IAppLoaderService appLoaderService,
            ILocService locService,
            IDispatcherWrapper dispatcherWrapper)
        {
            _downloadsService  = downloadsService;
            _uploadsService    = uploadsService;
            _dialogsService    = dialogsService;
            _appLoaderService  = appLoaderService;
            _locService        = locService;
            _dispatcherWrapper = dispatcherWrapper;

            Downloads = new ObservableCollection <TransferItemViewModel>();
            Uploads   = new ObservableCollection <TransferItemViewModel>();

            ShowInfoCommand           = new DelegateCommand <TransferItemViewModel>(OnShowInfoCommand);
            CancelDownloadCommand     = new DelegateCommand <TransferItemViewModel>(OnCancelDownloadCommand);
            CancelUploadCommand       = new DelegateCommand <TransferItemViewModel>(OnCancelUploadCommand);
            PauseDownloadCommand      = new DelegateCommand <TransferItemViewModel>(OnPauseResumeDownloadCommand);
            ResumeDownloadCommand     = new DelegateCommand <TransferItemViewModel>(OnPauseResumeDownloadCommand);
            CancelAllDownloadsCommand = new DelegateCommand(OnCancelAllDownloadsCommand, CanExecuteCancelAllDownloadsCommand);
            CancelAllUploadsCommand   = new DelegateCommand(OnCancelAllUploadsCommand, CanExecuteCancelAllUploadsCommand);
        }
コード例 #10
0
        public void Attach(DependencyObject associatedObject)
        {
            AssociatedObject = associatedObject;

            // process start
            if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
            {
                element.Visibility = Visibility.Visible;
            }
            else
            {
                _dispatcher = Common.DispatcherWrapper.Current();

                // throttled calculate event
                _throttleHelper = new EventThrottleHelper();
                _throttleHelper.ThrottledEvent += delegate { Calculate(); };
                _throttleHelper.Throttle = 1000;

                // handle click
                element.Click += new Common.WeakReference<NavButtonBehavior, object, RoutedEventArgs>(this)
                {
                    EventAction = (i, s, e) => Element_Click(s, e),
                    DetachAction = (i, w) => element.Click -= w.Handler,
                }.Handler;
                CalculateThrottled();
            }
        }
コード例 #11
0
 public NavButtonBehavior()
 {
     if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled)
     {
         _dispatcher = Common.DispatcherWrapper.Current();
         _throttleHelper = new EventThrottleHelper { Throttle = 1000 };
     }
 }
コード例 #12
0
        public UnigramViewModelBase(IMTProtoService protoService, ICacheService cacheService, ITelegramEventAggregator aggregator, IDispatcherWrapper dispatcher)
        {
            _protoService = protoService;
            _cacheService = cacheService;
            _aggregator   = aggregator;

            _dispatcher = dispatcher;
        }
コード例 #13
0
        public static void ShowFloodWaitAlert(IDispatcherWrapper fragment, String error)
        {
            if (error == null || !error.StartsWith("FLOOD_WAIT"))
            {
                return;
            }

            ShowSimpleAlert(fragment, GetFloodWaitString(error));
        }
コード例 #14
0
ファイル: ProtocolHandler.cs プロジェクト: RomanGL/VKSaver
 public ProtocolHandler(
     ILogService logService,
     INavigationService navigationService,
     IDispatcherWrapper dispatcherWrapper)
 {
     _logService        = logService;
     _navigationService = navigationService;
     _dispatcherWrapper = dispatcherWrapper;
 }
コード例 #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WindowsVoiceBox"/> class.
 /// </summary>
 /// <param name="dispatcher">The dispatcher.</param>
 public WindowsVoiceBox(IDispatcherWrapper dispatcher)
 {
     mediaPlayer.MediaEnded += MediaPlayer_MediaEnded;
     this.dispatcher         = dispatcher;
     synth = new SpeechSynthesizer
     {
         Voice = SpeechSynthesizer.AllVoices.Where(v => v.Gender == VoiceGender.Female).First()
     };
 }
コード例 #16
0
 public FolderCopyViewModel(IDispatcherWrapper dispatcher, IFolderSearcher folderSearcher, IRandomFolderSelector folderSelector, IFolderCopier folderCopier, ISerializationHelper serializationHelper, IDialogService dialogService, IOpenerHelper openerHelper)
     : base(dispatcher ?? new DispatcherWrapper(), serializationHelper ?? new SerializationHelper(), dialogService ?? new DialogService(), openerHelper ?? new OpenerHelper())
 {
     _folderSearcher = folderSearcher ?? new FolderSearcher();
     _folderSelector = folderSelector ?? new RandomFolderSelector();
     _folderCopier   = folderCopier ?? new FolderCopier();
     SelectionModel  = new SelectionModel(0, 100, UnitSize.GB);
     Model           = new SourceDestinationModel <CopyRepresenter>();
 }
コード例 #17
0
        public AudioCopyViewModel(IFileSearcher fileSearcher, IDispatcherWrapper dispatcher, IRandomAudioFileSelector randomFileSelector, ISerializationHelper serializationHelper, IDialogService dialogService, IOpenerHelper openerHelper, IConfigurationHelper configurationHelper)
            : base(fileSearcher ?? new FileSearcher(), dispatcher ?? new DispatcherWrapper(), serializationHelper ?? new SerializationHelper(), dialogService ?? new DialogService(), openerHelper ?? new OpenerHelper(), configurationHelper ?? new ConfigurationHelper())
        {
            _randomAudioFileSelector = randomFileSelector ?? new RandomAudioFileSelector();
            SelectionModel           = new SelectionModel(0, 350, UnitSize.MB);
            var settings = ConfigurationHelper.GetExtensions(ExtensionsAppsettingKey.AudioExtensions);

            AudioExtensions = new ObservableCollection <string>(settings.Select(x => x.Extension));
            Model           = new AudioSourceDestinationModel(settings.Where(x => x.DefaultSelected).Select(x => x.Extension));
        }
コード例 #18
0
 /// <summary>
 /// Initializes a new instance of the MainViewModel class.
 /// </summary>
 protected CopyViewModel(IDispatcherWrapper dispatcher, ISerializationHelper serializationHelper, IDialogService dialogService, IOpenerHelper openerHelper)
 {
     _isSliderLoaded      = false;
     _dragStarted         = false;
     _serializationHelper = serializationHelper;
     _dialogService       = dialogService;
     _openerHelper        = openerHelper;
     Dispatcher           = dispatcher;
     SetCommands();
 }
コード例 #19
0
 public NavButtonBehavior()
 {
     if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled)
     {
         _dispatcher     = Common.DispatcherWrapper.Current();
         _throttleHelper = new EventThrottleHelper {
             Throttle = 1000
         };
     }
 }
コード例 #20
0
 public CanvasViewModel3d(
     IBitmapSource bitmapSource,
     IScene3D scene3D,
     ILogger logger,
     IDispatcherWrapper dispatcherWrapper)
 {
     _bitmapSource      = bitmapSource;
     _scene3D           = scene3D;
     _logger            = logger;
     _dispatcherWrapper = dispatcherWrapper;
 }
コード例 #21
0
        public StockDataViewModel(IBusinessLogic businessLogic, string fileName = null, IConfigReader confreader = null, IDispatcherWrapper dispatcherWrapper = null)
        {
            path = path + fileName;
            _dispatcherWrapper = dispatcherWrapper ?? new DispatcherWrapper(Application.Current.Dispatcher);
            bizLogic           = businessLogic;
            AllCompanies       = bizLogic.GetAllCompanies();
            confReader         = confreader;
            ShowDefinedStocks(confReader);

            InitTimer();
        }
コード例 #22
0
ファイル: FeedbackService.cs プロジェクト: RomanGL/VKSaver
 public FeedbackService(
     ISettingsService settingsService,
     IDialogsService dialogsService,
     IDispatcherWrapper dispatcherWrapper,
     ILocService locService)
 {
     _settingsService   = settingsService;
     _dialogsService    = dialogsService;
     _dispatcherWrapper = dispatcherWrapper;
     _locService        = locService;
 }
コード例 #23
0
 /// <summary>
 /// Removes a lock count from the notification counter and fires a reset if the count is at zero.
 /// </summary>
 /// <param name="notify">The dispatcher wrapper to used for thread access.</param>
 public void EndUpdate(IDispatcherWrapper notify = null)
 {
     try
     {
         _suppressNotification--;
     }
     finally
     {
         Reset(notify);
     }
 }
コード例 #24
0
 public VksmExtractionViewModel(
     INavigationService navigationService,
     IVksmExtractionService vksmExtractionService,
     ISettingsService settingsService,
     ILocService locService,
     IDispatcherWrapper dispatcherWrapper)
 {
     _navigationService     = navigationService;
     _vksmExtractionService = vksmExtractionService;
     _settingsService       = settingsService;
     _locService            = locService;
     _dispatcherWrapper     = dispatcherWrapper;
 }
コード例 #25
0
        public PeopleService()
        {
            _dispatcherWrapper = WindowWrapper.Current().Dispatcher;

            var handler = new HttpClientHandler();

            if (handler.SupportsAutomaticDecompression)
            {
                handler.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
            }

            _httpClient = new HttpClient(handler);
        }
コード例 #26
0
 public void Attach(DependencyObject associatedObject)
 {
     AssociatedObject = associatedObject;
     if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
     {
         element.Visibility = Visibility.Visible;
     }
     else
     {
         _Dispatcher = Common.DispatcherWrapper.Current();
         element.Click += Element_Click;
         Calculate(true);
     }
 }
コード例 #27
0
        public static void ShowSimpleToast(IDispatcherWrapper fragment, String text)
        {
            if (text == null)
            {
                return;
            }

            // TODO:
            //Toast toast = Toast.makeText(baseFragment.getParentActivity(), text, Toast.LENGTH_LONG);
            //toast.show();
            //return toast;

            ShowSimpleAlert(text);
        }
コード例 #28
0
 public void Attach(DependencyObject associatedObject)
 {
     AssociatedObject = associatedObject;
     if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
     {
         element.Visibility = Visibility.Visible;
     }
     else
     {
         _dispatcher    = Common.DispatcherWrapper.Current();
         element.Click += Element_Click;
         Calculate(true);
     }
 }
コード例 #29
0
        public static async void ShowSimpleAlert(IDispatcherWrapper fragment, String text)
        {
            if (text == null)
            {
                return;
            }

            var dialog = new TLMessageDialog();

            dialog.Title             = Strings.Resources.AppName;
            dialog.Message           = text;
            dialog.PrimaryButtonText = Strings.Resources.OK;

            await dialog.ShowQueuedAsync();
        }
コード例 #30
0
 public CanvasViewModel(
     ILogger logger,
     IScenePersistenceService scenePersistenceService,
     IPerformanceProfiler performanceProfiler,
     IScene2D scene,
     IBitmapSource bitmapSource,
     IDispatcherWrapper dispatcherWrapper)
 {
     _logger = logger;
     _scenePersistenceService = scenePersistenceService;
     _performanceProfiler     = performanceProfiler;
     _scene             = scene;
     _bitmapSource      = bitmapSource;
     _dispatcherWrapper = dispatcherWrapper;
 }
コード例 #31
0
        /// <summary>
        /// Fires a notification that the collection has been reset and should be queried for the changes.
        /// </summary>
        /// <param name="notify">The dispatcher wrapper to used for thread access.</param>
        public async void Reset(IDispatcherWrapper notify = null)
        {
            if (_suppressNotification > 0)
            {
                return;
            }

            if (notify == null)
            {
                OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
                return;
            }

            await notify.DispatchAsync(() =>
            {
                OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
            });
        }
コード例 #32
0
        public VKSaverNavigationService(
            INavigationService prismNavigationService,
            IVKLoginService vkLoginService,
            IMetricaService metricaService,
            IDispatcherWrapper dispatcherWrapper,
            IServiceResolver serviceResolver)
        {
            _prismNavigationService = prismNavigationService;
            _metricaService         = metricaService;
            _dispatcherWrapper      = dispatcherWrapper;
            _serviceResolver        = serviceResolver;

            vkLoginService.UserLogin  += vkLoginService_UserLogin;
            vkLoginService.UserLogout += vkLoginService_UserLogout;

#if WINDOWS_PHONE_APP
            HardwareButtons.BackPressed += HardwareButtons_BackPressed;
#endif
        }
コード例 #33
0
        private static async Task <T> ShowAsync <T>(Func <Task <T> > show, IDispatcherWrapper dispatcher)
        {
            lock (DialogState)
            {
                while (DialogState.Showing)
                {
                    Monitor.Wait(DialogState);
                }
                DialogState.Showing = true;
            }
            dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher));
            var result = await dispatcher.DispatchAsync(async() => await show());

            lock (DialogState)
            {
                DialogState.Showing = false;
                Monitor.PulseAll(DialogState);
            }
            return(result);
        }
コード例 #34
0
        private static async Task <T> ShowAsync <T>(Func <Task <T> > show, IDispatcherWrapper dispatcher)
        {
            lock (DialogState)
            {
                while (DialogState.Showing)
                {
                    Monitor.Wait(DialogState);
                }
                DialogState.Showing = true;
            }
            dispatcher = dispatcher ?? Locator.WindowWrapper.Current().Dispatcher;
            var result = await dispatcher.DispatchAsync(async() => await show());

            lock (DialogState)
            {
                DialogState.Showing = false;
                Monitor.PulseAll(DialogState);
            }
            return(result);
        }
コード例 #35
0
 public NavButtonBehavior()
 {
     _dispatcher = Common.DispatcherWrapper.Current();
     _throttleHelper = new EventThrottleHelper { Throttle = 1000 };
 }