Exemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the MainViewModel class.
        /// </summary>
        public MainViewModel(IImageService dataService)
        {
            _dataService = dataService;


            ChangeCurrent = new RelayCommand <ImageViewModel>(image =>
            {
                Current = image;

                if (Current != null)
                {
                    _dataService.Comments(image.Model.Id, (items, error) =>
                    {
                        if (error != null)
                        {
                            throw error;
                        }

                        Current.Comments = new ObservableCollection <CommentViewModel>(
                            from i in items
                            select new CommentViewModel(i));
                    });
                }
            });


            Search = new RelayCommand(() =>
            {
                Images = null;
                _dataService.Search(new ImageSearchQuery()
                                    .FilterByTags(TagsFilter).ForUserOnly(OnlyUser),
                                    (items, error) =>
                {
                    if (error != null)
                    {
                        throw error;
                    }

                    Images = new ObservableCollection <ImageViewModel>(
                        (from i in items
                         select new ImageViewModel(i)).Skip(Page * PageSize).Take(PageSize)
                        );

                    IsReady = true;
                });

                IsReady = false;
            });

            if (IsInDesignMode)
            {
                Search.Execute(null);
            }
        }