Пример #1
0
        public CalendarViewModel(
            IMvxNavigationService navigationService,
            ITimeProvider timeProvider,
            IMeasureService measureService
            )
        {
            _navigationService = navigationService ?? throw new ArgumentNullException(nameof(navigationService));
            _timeProvider      = timeProvider ?? throw new ArgumentNullException(nameof(timeProvider));
            _measureService    = measureService ?? throw new ArgumentNullException(nameof(measureService));
            AddCommand         = ReactiveCommand.CreateFromTask(Add);

            MonthShowed = ReactiveCommand.Create <MonthViewModel, MonthViewModel>(v => v);

            MonthShowed
            .Where(v => v != null)
            .ToProperty(this, v => v.Month, out _month);

            this.WhenAnyValue(v => v.Month)
            .Where(v => v != null)
            .Take(1)
            .Subscribe(v => v.SelectFirstDay());

            this.WhenAnyValue(v => v.Month)
            .Where(v => v != null)
            .Select(v => v.Month.Date)
            .ToProperty(this, v => v.MonthDate, out _monthDate, _timeProvider.UtcNow);
        }
Пример #2
0
        public CalendarViewModel(
            IMvxNavigationService navigationService,
            ITimeProvider timeProvider
            )
        {
            _navigationService = navigationService ?? throw new ArgumentNullException(nameof(navigationService));
            AddCommand         = ReactiveCommand.CreateFromTask(Add);

            MonthShowed = ReactiveCommand.Create <MonthViewModel, MonthViewModel>(v => v);

            MonthShowed
            .Where(v => v != null)
            .ToProperty(this, v => v.Month, out _month);

            this.WhenAnyValue(v => v.Month)
            .Where(v => v != null)
            .Take(1)
            .Subscribe(
                v =>
            {
                var day = v.Days.First(c => c.Day == timeProvider.UtcNow.Day);

                v.DaySelectedCommand.Execute(day);
            });

            this.WhenAnyValue(v => v.Month)
            .Where(v => v != null)
            .Select(v => v.Month.Date)
            .ToProperty(this, v => v.MonthDate, out _monthDate, timeProvider.UtcNow);
        }