/// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="youtubeService">YouTubeサービス</param>
        /// <param name="webClientService">Webクライエントサービス</param>
        public AddPlaylistItemDialogViewModel(IYouTubeService youtubeService, IWebClientService webClientService)
        {
            m_YouTubeService   = youtubeService;
            m_WebClientService = webClientService;

            SearchWord       = new ReactivePropertySlim <string>().AddTo(m_Disposables);
            SearchResultList = new ReactiveCollection <VideoViewModel>().AddTo(m_Disposables);
            SelectedItem     = new ReactivePropertySlim <VideoViewModel>().AddTo(m_Disposables);
        }
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="title">タイトル</param>
        /// <param name="description">動画の概要</param>
        /// <param name="url">URL</param>
        public SearchResultItemViewModel(string id, string title, string description, string url)
        {
            Id          = id;
            Title       = title;
            Description = description;
            Image       = new ReactivePropertySlim <Avalonia.Media.Imaging.Bitmap>().AddTo(m_Disposables);
            var client = new WebClientService();

            client.DownloadImage(url, Image);
        }
        public SearchResultCommunityPageViewModel(HohoemaApp app, PageManager pageManager)
            : base(app, pageManager, useDefaultPageTitle: false)
        {
            ChangeRequireServiceLevel(HohoemaAppServiceLevel.OnlineWithoutLoggedIn);

            SelectedSearchSort = new ReactivePropertySlim <CommunitySearchSortOptionListItem>();
            SelectedSearchMode = new ReactivePropertySlim <CommynitySearchModeOptionListItem>();

            SelectedSearchTarget = new ReactiveProperty <SearchTarget>();
        }
示例#4
0
 public GeometrySettingReactive(int id)
 {
     No       = new ReactivePropertySlim <int>(id);
     X        = new ReactivePropertySlim <double>();
     Y        = new ReactivePropertySlim <double>();
     Z        = new ReactivePropertySlim <double>();
     RotateZ1 = new ReactivePropertySlim <double>();
     RotateY  = new ReactivePropertySlim <double>();
     RotateZ2 = new ReactivePropertySlim <double>();
 }
示例#5
0
 public GeometrySettingReactive(GeometrySetting obj)
 {
     No       = new ReactivePropertySlim <int>(obj.No);
     X        = new ReactivePropertySlim <double>(obj.X);
     Y        = new ReactivePropertySlim <double>(obj.Y);
     Z        = new ReactivePropertySlim <double>(obj.Z);
     RotateZ1 = new ReactivePropertySlim <double>(obj.RotateZ1);
     RotateY  = new ReactivePropertySlim <double>(obj.RotateY);
     RotateZ2 = new ReactivePropertySlim <double>(obj.RotateZ2);
 }
示例#6
0
 public SearchResultMylistPageViewModel(
     SearchProvider searchProvider,
     Services.PageManager pageManager
     )
     : base(pageManager, useDefaultPageTitle: false)
 {
     SelectedSearchSort   = new ReactivePropertySlim <SearchSortOptionListItem>();
     SelectedSearchTarget = new ReactiveProperty <SearchTarget>();
     SearchProvider       = searchProvider;
 }
示例#7
0
        public ConvertFlowViewModel()
        {
            SelectedInputImageFormat  = new ReactivePropertySlim <ImageFileFormat>();
            SelectedConvertImageClass = new ReactivePropertySlim <ImageClass>();
            SelectedOutputImageFormat = new ReactivePropertySlim <ImageFileFormat>();


            SelectedInputImageFormat
            .Subscribe(x => Debug.WriteLine($"SelectedSourceImageFormat: {x}"));
        }
示例#8
0
        /// <summary>コンストラクタ。</summary>
        public MainWindowViewModel(IRegionManager regionMan, IDialogService dlgService)
        {
            this.regionManager = regionMan;
            this.dialogService = dlgService;

            this.Title = new ReactivePropertySlim <string>(".NET Core 3.0 Application")
                         .AddTo(this.disposables);
            this.CanClose = new ReactivePropertySlim <bool>(false)
                            .AddTo(this.disposables);
        }
示例#9
0
 public ListProvider(IEventAggregator eventAggregator)
 {
     id = new ReactivePropertySlim <long>();
     eventAggregator
     .GetEvent <ListEvent>()
     .Subscribe(x => {
         Id.Value = x.Id.Value;
         Id.ForceNotify();
     });
 }
示例#10
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="pokemonData"></param>
        public PokemonDetailVm(PokemonData pokemonData) : base(pokemonData)
        {
            DamageCalcVm = new ReactivePropertySlim <DamageCalcVm>();
            UpdateFormSource();
            ParameterCalculator.SetPokemon(pokemonData.Name, pokemonData.Form);
            Ev                 = new ParameterVm(new ParameterData <int>());
            Iv                 = new ParameterVm(new ParameterData <int>(31, 31, 31, 31, 31, 31));
            Param              = new ParameterVm(new ParameterData <int>());
            Personality        = new ReactivePropertySlim <string>(string.Empty);
            Level              = new ReactiveProperty <int>(50).AddTo(CompositeDisposable);
            ClipBoardParameter = new ReactiveProperty <string>(string.Empty);

            SetIvCommand         = new DelegateCommand <string>(x => Iv.Model.Set(x));
            SetEvCommand         = new DelegateCommand <string>(x => Ev.Model.Set(x));
            ChangePokemonCommand = new DelegateCommand <PokemonData>(x =>
            {
                ChangePokemon(x.Name, x.Form);
            });
            ShowDetailCommand = new DelegateCommand(() => Messenger.Raise(new TransitionMessage(new PokemonDetailVm(Model), "ShowDetail")));

            NameWithSearchBox = new ReactiveProperty <string>(string.Empty).AddTo(CompositeDisposable);
            NameWithSearchBox.Subscribe(_ => ChangePokemon(_, null)).AddTo(CompositeDisposable);

            Observable.Merge(
                Ev.Model.PropertyChangedAsObservable().ToUnit(),
                Iv.Model.PropertyChangedAsObservable().ToUnit(),
                Personality.ToUnit(),
                Level.ToUnit())
            .StartWith()
            .Throttle(TimeSpan.FromMilliseconds(50))
            .ObserveOnDispatcher()
            .Do(_ => UpdateCalculator())
            .Do(_ => UpdateFromParameter())
            .Do(_ => GenerateClipBoardText())
            .Subscribe()
            .AddTo(CompositeDisposable);

            Param.Model.PropertyChangedAsObservable()
            .StartWith()
            .Throttle(TimeSpan.FromMilliseconds(50))
            .ObserveOnDispatcher()
            .Do(_ => UpdateFromParameter())
            .Do(_ => GenerateClipBoardText())
            .Subscribe()
            .AddTo(CompositeDisposable);

            // 努力値合計と残努力値の適用
            TotalEv = Ev.Model
                      .PropertyChangedAsObservable()
                      .StartWith()
                      .Select(x => Ev.Model.ToArray().Sum())
                      .Select(x => $"計{x}残{510 - x}")
                      .ToReactiveProperty()
                      .AddTo(CompositeDisposable);
        }
        /// <summary>
        /// RxProperty POCO binding support method.
        /// </summary>
        /// <typeparam name="T">ReactiveProperty type parameter</typeparam>
        /// <typeparam name="TTarget">Binding target type</typeparam>
        /// <typeparam name="TProperty">Binding target property type</typeparam>
        /// <param name="self">Source ReactiveProperty</param>
        /// <param name="target">Binding target instance.</param>
        /// <param name="propertySelector">Binding target property selector.</param>
        /// <param name="mode">Binding mode</param>
        /// <param name="convert">source -&gt; target converter.</param>
        /// <param name="convertBack">target -&gt; source converter.</param>
        /// <param name="targetUpdateTrigger">targetUpdateTrigger. required TowWay and OneWayToSource</param>
        /// <param name="propertyFallbackValue">target error value.</param>
        /// <param name="sourceFallbackValue">source error value.</param>
        /// <returns>Release binding disposable.</returns>
        public static IDisposable BindTo <T, TTarget, TProperty>(
            this ReactivePropertySlim <T> self,
            TTarget target,
            Expression <Func <TTarget, TProperty> > propertySelector,
            BindingMode mode                       = BindingMode.OneWay,
            Func <T, TProperty> convert            = null,
            Func <TProperty, T> convertBack        = null,
            IObservable <Unit> targetUpdateTrigger = null,
            TProperty propertyFallbackValue        = default(TProperty),
            T sourceFallbackValue                  = default(T))
        {
            if (convert == null)
            {
                convert = value => (TProperty)Convert.ChangeType(value, typeof(TProperty));
            }

            if (convertBack == null)
            {
                convertBack = value => (T)Convert.ChangeType(value, typeof(T));
            }

            switch (mode)
            {
            case BindingMode.OneWay:
                return(CreateOneWayBinding(
                           self,
                           target,
                           propertySelector,
                           convert,
                           propertyFallbackValue));

            case BindingMode.TwoWay:
                return(CreateTowWayBinding(
                           self,
                           target,
                           propertySelector,
                           convert,
                           convertBack,
                           targetUpdateTrigger,
                           propertyFallbackValue,
                           sourceFallbackValue));

            case BindingMode.OneWayToSource:
                return(CreateOneWayToSourceBinding(
                           self,
                           target,
                           propertySelector,
                           convertBack,
                           targetUpdateTrigger,
                           sourceFallbackValue));

            default:
                throw new NotSupportedException();
            }
        }
        public void NoDistinctUntilChanged()
        {
            var rp   = new ReactivePropertySlim <string>(mode: ReactivePropertyMode.RaiseLatestValueOnSubscribe);
            var list = new List <string>();

            rp.Subscribe(list.Add);
            rp.Value = "Hello world";
            rp.Value = "Hello world";
            rp.Value = "Hello japan";
            list.Is(null, "Hello world", "Hello world", "Hello japan");
        }
        public UserPageViewModel(INavigationService navigationService, IPageDialogService pageDialogService, IAuthService authService) : base(navigationService)
        {
            _pageDialogService = pageDialogService;
            _authService       = authService;

            Title = "User";

            _user.Value = CrossFirebaseAuth.Current.Instance.CurrentUser;

            Name        = new ReactivePropertySlim <string>(_user.Value?.DisplayName);
            Email       = new ReactivePropertySlim <string>(_user.Value?.Email);
            PhoneNumber = new ReactivePropertySlim <string>(_user.Value?.PhoneNumber);

            IsLinkedWithGoogle = _user.Where(user => user != null)
                                 .Select(user => user.ProviderData.FirstOrDefault(data => data.ProviderId == CrossFirebaseAuth.Current.GoogleAuthProvider.ProviderId) != null)
                                 .ToReadOnlyReactivePropertySlim();

            IsLinkedWithTwitter = _user.Where(user => user != null)
                                  .Select(user => user.ProviderData.FirstOrDefault(data => data.ProviderId == CrossFirebaseAuth.Current.TwitterAuthProvider.ProviderId) != null)
                                  .ToReadOnlyReactivePropertySlim();

            IsLinkedWithFacebook = _user.Where(user => user != null)
                                   .Select(user => user.ProviderData.FirstOrDefault(data => data.ProviderId == CrossFirebaseAuth.Current.FacebookAuthProvider.ProviderId) != null)
                                   .ToReadOnlyReactivePropertySlim();

            IsLinkedWithGitHub = _user.Where(user => user != null)
                                 .Select(user => user.ProviderData.FirstOrDefault(data => data.ProviderId == CrossFirebaseAuth.Current.GitHubAuthProvider.ProviderId) != null)
                                 .ToReadOnlyReactivePropertySlim();

            _user.Where(user => user != null)
            .Select(user => user.DisplayName)
            .DistinctUntilChanged()
            .Subscribe(name => Name.Value = name);

            _user.Where(user => user != null)
            .Select(user => user.Email)
            .DistinctUntilChanged()
            .Subscribe(email => Email.Value = email);

            _user.Where(user => user != null)
            .Select(user => user.PhoneNumber)
            .DistinctUntilChanged()
            .Subscribe(phoneNumber => PhoneNumber.Value = phoneNumber);

            UpdateNameCommand.Subscribe(UpdateName);
            UpdateEmailCommand.Subscribe(UpdateEmail);
            UpdatePhoneNumberCommand.Subscribe(UpdatePhoneNumber);
            SignOutCommand.Subscribe(SignOut);
            LinkOrUnlinkWithGoogleCommand.Subscribe(() => IsLinkedWithGoogle.Value ? UnlinkWithGoogle() : LinkWithGoogle());
            LinkOrUnlinkWithTwitterCommand.Subscribe(() => IsLinkedWithTwitter.Value ? UnlinkWithTwitter() : LinkWithTwitter());
            LinkOrUnlinkWithFacebookCommand.Subscribe(() => IsLinkedWithFacebook.Value ? UnlinkWithFacebook() : LinkWithFacebook());
            LinkOrUnlinkWithGitHubCommand.Subscribe(() => IsLinkedWithGitHub.Value ? UnlinkWithGitHub() : LinkWithGitHub());
            DeleteCommand.Subscribe(Delete);
        }
        /// <summary>
        /// ビューにバインドされている項目を初期化します
        /// </summary>
        private void InitializeBindings()
        {
            var assembly = System.Reflection.Assembly.GetExecutingAssembly();

            this.WindowTitle       = new ReactivePropertySlim <string>().AddTo(this._disposables_);
            this.WindowTitle.Value = $"{ Path.GetFileNameWithoutExtension(Environment.GetCommandLineArgs()[0]) } (ver.{ System.Diagnostics.FileVersionInfo.GetVersionInfo(assembly.Location).FileVersion })";

            this.ListBoxSelectedItem = new ReactivePropertySlim <ScreenItem>().AddTo(this._disposables_);
            this.ListBoxSelectedItem.Subscribe(_ => this.ListBox_SelectedItemChanged());
            this.ListBoxItemsSource = new ReadOnlyCollection <ScreenItem>(CreateScreenItemList());
        }
示例#15
0
        public SelectLineModel()
        {
            var imageSourceSize = MyImage.ToRoixIntSize();

            Line = new ReactivePropertySlim <RoixBorderIntLine>(initialValue: RoixIntLine.Zero.ToRoixBorder(imageSourceSize));

            PointsOnLine = Line
                           .Where(borderLine => borderLine.Border == imageSourceSize)
                           .Select(borderLine => borderLine.ClipToBorder().Line.GetIntPointsOnLine().ToArray())
                           .ToReadOnlyReactiveProperty <IReadOnlyList <RoixIntPoint> >();
        }
        public void ForceNotify()
        {
            var rp        = new ReactivePropertySlim <int>(0);
            var collector = new List <int>();

            rp.Subscribe(collector.Add);

            collector.Is(0);
            rp.ForceNotify();
            collector.Is(0, 0);
        }
        /// <summary>コンストラクタ。</summary>
        /// <param name="winService"></param>
        public StartUpPanelViewModel(IMainWindowService winService)
        {
            this.mainWindowService = winService;

            this.HamburgerMenuDisplayMode = this.mainWindowService.HamburgerMenuDisplayMode
                                            .AddTo(this.disposable);
            this.IsHamburgerMenuPanelOpened = this.mainWindowService.IsHamburgerMenuPanelOpened
                                              .AddTo(this.disposable);
            this.ContentControlTransition = this.mainWindowService.ContentControlTransition
                                            .AddTo(this.disposable);
        }
示例#18
0
        public PhysicalRecord() : base()
        {
            this.MeasurementDate = new ReactivePropertySlim <DateTime?>(null);
            this.Height          = new ReactivePropertySlim <decimal>(0);
            this.Weight          = new ReactivePropertySlim <decimal>(0);

            this.bmi = new ReactivePropertySlim <decimal>(0);

            this.Height.Subscribe(_ => this.setBmi());
            this.Weight.Subscribe(_ => this.setBmi());
        }
        public VoiceParameterChangeNotifier(GlobalVolume globalVolume)
        {
            _globalVolume = globalVolume;

            _voiceParameter         = new ReactivePropertySlim <VoiceParameter>(ConvertVoiceParameter());
            _globalVolumeDisposable = _globalVolume.Volume
                                      .Subscribe(_ =>
            {
                _voiceParameter.Value = ConvertVoiceParameter();
            });
        }
示例#20
0
        /// <summary>デフォルトコンストラクタ。</summary>
        public BleachCharacter()
        {
            this.Name = new ReactivePropertySlim <string>(string.Empty);
            this.Code = new ReactiveProperty <string>(string.Empty);
            //this.Code.Where(c => c.Length == 0 || c.Length == 3)
            //	.Subscribe(c => this.onChangeCode(c));

            this.Yomigana  = new ReactivePropertySlim <string>(string.Empty);
            this.Zanpakuto = new ReactivePropertySlim <string>(string.Empty);
            this.Bankai    = new ReactivePropertySlim <string>(string.Empty);
        }
        /// <summary>
        /// コンストラクタ
        /// </summary>
        internal PlaylistContentViewViewModel(
            IYouTubeService youTubeService,
            IWebClientService webClientService,
            IPlaylistListViewViewModel playlistListViewViewModel)
        {
            m_YouTubeService            = youTubeService;
            m_WebClientService          = webClientService;
            m_PlaylistListViewViewModel = playlistListViewViewModel;
            playlistListViewViewModel.SelectionChanged += PlaylistListViewViewModel_SelectionChanged;

            Title            = new ReactivePropertySlim <string>().AddTo(m_Disposables);
            Description      = new ReactivePropertySlim <string>().AddTo(m_Disposables);
            PlaylistItemList = new ReactiveCollection <PlaylistItemViewModel>().AddTo(m_Disposables);

            // コマンドの生成
            Playlist = new ReactivePropertySlim <Playlist?>().AddTo(m_Disposables);
            CanAddVideosToPlaylistItemAsync   = new ReactivePropertySlim <bool>().AddTo(m_Disposables);
            CanRemovePlaylistItemAsync        = new ReactivePropertySlim <bool>().AddTo(m_Disposables);
            CanMovePlaylistItemAsync          = new ReactivePropertySlim <bool>().AddTo(m_Disposables);
            CanClonePlaylistItemsFromPlaylist = new ReactivePropertySlim <bool>().AddTo(m_Disposables);
            CanAddOrClonePlaylistItems        = new ReactivePropertySlim <bool>().AddTo(m_Disposables);
            Playlist.Subscribe(v => {
                CanAddVideosToPlaylistItemAsync.Value   = (v != null);
                CanRemovePlaylistItemAsync.Value        = (v != null);
                CanMovePlaylistItemAsync.Value          = (v != null);
                CanClonePlaylistItemsFromPlaylist.Value = (v != null);
                CanAddOrClonePlaylistItems.Value        = (v != null);
            });
            AddVideosToPlaylistItemAsyncCommand = CanAddVideosToPlaylistItemAsync
                                                  .ToReactiveCommand()
                                                  .WithSubscribe(async() => await AddVideosToPlaylistItemAsync())
                                                  .AddTo(m_Disposables);
            RemovePlaylistItemAsyncCommand = CanRemovePlaylistItemAsync
                                             .ToReactiveCommand()
                                             .WithSubscribe(async() => await RemovePlaylistItemAsync())
                                             .AddTo(m_Disposables);
            MovePlaylistItemAsyncCommand = CanMovePlaylistItemAsync
                                           .ToReactiveCommand <IPlaylistListViewItemViewModel>()
                                           .WithSubscribe(async param => await MovePlaylistItemAsync(param))
                                           .AddTo(m_Disposables);
            ClonePlaylistItemsFromPlaylistCommand = CanClonePlaylistItemsFromPlaylist
                                                    .ToReactiveCommand()
                                                    .WithSubscribe(async() => await ClonePlaylistItemsFromPlaylist())
                                                    .AddTo(m_Disposables);
            AddOrClonePlaylistItemsCommand = CanAddOrClonePlaylistItems
                                             .ToReactiveCommand()
                                             .WithSubscribe(async() => await AddOrClonePlaylistItems())
                                             .AddTo(m_Disposables);

            // ダイアログを表示するインタラクションを保持
            ShowAddPlaylistItemDialog         = new Interaction <Unit, AddPlaylistItemDialogViewModel>();
            ShowClonePlaylistItemsDialog      = new Interaction <Unit, ClonePlaylistItemsDialogViewModel>();
            ShowAddOrClonePlaylistItemsDialog = new Interaction <Unit, AddOrClonePlaylistItemsDialogViewModel>();
        }
        public void CustomEqualityComparer()
        {
            var rp   = new ReactivePropertySlim <string>(equalityComparer: new IgnoreCaseComparer());
            var list = new List <string>();

            rp.Subscribe(list.Add);
            rp.Value = "Hello world";
            rp.Value = "HELLO WORLD";
            rp.Value = "Hello japan";
            list.Is(null, "Hello world", "Hello japan");
        }
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="video">動画</param>
        /// <param name="webClientService">Webクライエントサービス</param>
        public VideoViewModel(Video video, IWebClientService webClientService)
        {
            Image     = new ReactivePropertySlim <Avalonia.Media.Imaging.Bitmap>().AddTo(m_Disposables);
            IsChecked = new ReactivePropertySlim <bool>().AddTo(m_Disposables);

            m_Video            = video;
            m_WebClientService = webClientService;
            if (string.IsNullOrEmpty(video.ThumbnailUrl) == false)
            {
                m_WebClientService.DownloadImage(video.ThumbnailUrl, Image);
            }
        }
示例#24
0
        public void 削除()
        {
            var fileEntity1 = new FileEntity(
                "test",
                new PhysicalFileName(new Guid("2DA0C0DC-8EB9-4DF2-B224-DF57CC5671DA")),
                new FileSize(1230),
                new Comment("This is a pen.\n")
                );
            var fileEntitySlim1
                = new ReactivePropertySlim <FileEntity>(fileEntity1).ToReadOnlyReactivePropertySlim();
            var fileEntity2 = new FileEntity(
                "test2",
                new PhysicalFileName(new Guid("2DA0C0DC-8EB9-4DF2-B224-DF57CC5671DB")),
                new FileSize(1300234),
                new Comment("This is a \r\npen.")
                );
            var fileEntitySlim2
                = new ReactivePropertySlim <FileEntity>(fileEntity2).ToReadOnlyReactivePropertySlim();

            var fileDatabaseMock = new Mock <IFileDatabaseRepository>();
            var entities         = new List <FileEntity>();

            entities.Add(fileEntity1);
            entities.Add(fileEntity2);
            fileDatabaseMock.Setup(x => x.GetData()).Returns(entities);

            fileDatabaseMock.Setup(x => x.Delete(It.IsAny <FileEntity>()))
            .Callback <FileEntity>(value =>
            {
                entities.RemoveAll(entity => entity.Equals(value));
                fileDatabaseMock
                .Setup(x => x.GetData())
                .Returns(() => entities);
            });

            var viewModel = new FileListViewModel(
                fileDatabaseMock.Object,
                null,
                null
                );

            viewModel.FileList.Count.Is(2);

            viewModel.Delete(fileEntitySlim1);
            viewModel.FileList.Count.Is(1);
            viewModel.FileList[0].LogicalFileName.Value.Is("test2");
            viewModel.FileList[0].PhysicalFileName.Value.Is("2DA0C0DC-8EB9-4DF2-B224-DF57CC5671DB");
            viewModel.FileList[0].FileSize.Value.Is("1.24 MB");
            viewModel.FileList[0].Comment.Value.Is("This is a  pen.");

            viewModel.Delete(fileEntitySlim2);
            viewModel.FileList.Count.Is(0);
        }
        public DeployToOpenShiftViewModel()
        {
            Masters        = model.Masters.ToReadOnlyReactiveCollection(m => new OpenShiftMasterViewModel(m));
            SelectedMaster = new ReactivePropertySlim <OpenShiftMasterViewModel>();
            SelectedMaster
            .Where(x => x != null)
            .Subscribe(x => model.SelectedMaster.Value = x.Model)
            .AddTo(Disposable);

            Projects          = model.Projects.ToReadOnlyReactiveCollection();
            SelectedNameSpace = model.SelectedProject.ToReactivePropertyAsSynchronized(x => x.Value);

            Name = model.Name
                   .ToReactiveProperty()
                   .SetValidateAttribute(() => Name)
                   .AddTo(Disposable);

            Host = model.Host
                   .ToReactiveProperty()
                   .SetValidateAttribute(() => Host)
                   .AddTo(Disposable);

            MemoryLimit = model.MemoryLimit
                          .ToReactiveProperty()
                          .SetValidateAttribute(() => MemoryLimit)
                          .AddTo(Disposable);

            GitSource = model.GitSource
                        .ToReactiveProperty()
                        .SetValidateAttribute(() => GitSource)
                        .AddTo(Disposable);

            GitRef = model.GitRef
                     .ToReactiveProperty()
                     .SetValidateAttribute(() => GitRef)
                     .AddTo(Disposable);

            StartupProject = model.StartupProject
                             .ToReactiveProperty()
                             .SetValidateAttribute(() => StartupProject)
                             .AddTo(Disposable);

            IsDeploying = model.IsDeploying.ToReadOnlyReactivePropertySlim();

            Message = model.Message.ToReadOnlyReactivePropertySlim();

            DeployCommand = SelectedMaster.Select(s => s != null)
                            .ToReactiveCommand()
                            .WithSubscribe(() =>
            {
                model.StartDeploy();
            });
        }
示例#26
0
 public SearchResultMylistPageViewModel(
     ApplicationLayoutManager applicationLayoutManager,
     SearchProvider searchProvider,
     Services.PageManager pageManager
     )
 {
     SelectedSearchSort       = new ReactivePropertySlim <SearchSortOptionListItem>();
     SelectedSearchTarget     = new ReactiveProperty <SearchTarget>();
     ApplicationLayoutManager = applicationLayoutManager;
     SearchProvider           = searchProvider;
     PageManager = pageManager;
 }
示例#27
0
        public void BindToOneWayTestForRPSlim()
        {
            var target = new ReactivePropertySlim <string>();
            var obj    = new Poco();

            target.BindTo(obj, o => o.Name);

            obj.Name.IsNull();

            target.Value = "Hello world";
            obj.Name.Is("Hello world");
        }
 public EventToReactiveViewModel()
 {
     MousePosition = new ReactivePropertySlim <string>()
                     .AddTo(Disposables);
     CanExecute = new ReactivePropertySlim <bool>(true)
                  .AddTo(Disposables);
     OpenFileCommand = CanExecute.ToReactiveCommand <string>()
                       .AddTo(Disposables);
     OpenedFile = OpenFileCommand.Select(x => $"You selected {x}")
                  .ToReadOnlyReactivePropertySlim()
                  .AddTo(Disposables);
 }
        public OpenShiftMasterModel(OpenShiftMaster m)
        {
            Name      = new ReactivePropertySlim <string>(m.Name);
            MasterUrl = new ReactivePropertySlim <string>(m.MasterUrl);
            Token     = new ReactivePropertySlim <string>(m.Token);
            Projects  = new ReactiveCollection <ProjectModel>();

            ServicePointManager.ServerCertificateValidationCallback = (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) =>
            {
                return(true);
            };
        }
示例#30
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="video">動画</param>
        /// <param name="webClientService">Webクライエントサービス</param>
        public PlaylistViewModel(Playlist playlist, IWebClientService webClientService)
        {
            Image     = new ReactivePropertySlim <Avalonia.Media.Imaging.Bitmap>().AddTo(m_Disposables);
            IsChecked = new ReactivePropertySlim <bool>().AddTo(m_Disposables);

            m_Playlist         = playlist;
            m_WebClientService = webClientService;
            if (string.IsNullOrEmpty(playlist.ThumbnailUrl) == false)
            {
                m_WebClientService.DownloadImage(playlist.ThumbnailUrl, Image);
            }
        }