Exemplo n.º 1
0
        public async override Task LoadAsync(Guid id)
        {
            SelectedItem = await Repository.GetSelectedAsync(id) ?? new Series();

            Id = id;

            if (Id != default)
            {
                TabTitle = SelectedItem.Name;
                Name     = SelectedItem.Name;
            }
            else
            {
                this.SwitchEditableStateExecute();
            }

            await PopulateAllBooksCollection();

            SetDefaultSeriesPictureIfNoneSet();

            SelectedItem.PropertyChanged += (s, e) =>
            {
                SetChangeTracker();
            };

            void SetDefaultSeriesPictureIfNoneSet()
            {
                if (SelectedItem.PicturePath is null)
                {
                    SelectedItem.PicturePath = FileExplorerService.GetImagePath();
                }
            }

            async Task PopulateAllBooksCollection()
            {
                AllBooks.Clear();
                foreach (var item in await GetBookList())
                {
                    AllBooks.Add(item);
                }
            }
        }
Exemplo n.º 2
0
        public async override Task LoadAsync(Guid id)
        {
            try
            {
                var series = await domainService.Repository.GetSelectedAsync(id) ?? new Series();

                SelectedItem = CreateWrapper(series);

                SelectedItem.PropertyChanged += (s, e) =>
                {
                    if (!HasChanges)
                    {
                        HasChanges = domainService.Repository.HasChanges();
                    }
                    if (e.PropertyName == nameof(SelectedItem.HasErrors))
                    {
                        ((DelegateCommand)SaveItemCommand).RaiseCanExecuteChanged();
                    }
                    if (e.PropertyName == nameof(SelectedItem.Name))
                    {
                        TabTitle = SelectedItem.Name;
                    }
                };
                ((DelegateCommand)SaveItemCommand).RaiseCanExecuteChanged();

                Id = id;

                if (Id != default)
                {
                    TabTitle = SelectedItem.Name;
                }
                else
                {
                    this.SwitchEditableStateExecute();
                    SelectedItem.Name = "";
                }

                await PopulateAllBooksCollection();

                SetDefaultSeriesPictureIfNoneSet();

                void SetDefaultSeriesPictureIfNoneSet()
                {
                    if (SelectedItem.PicturePath is null)
                    {
                        SelectedItem.PicturePath = FileExplorerService.GetImagePath();
                    }
                }


                async Task PopulateAllBooksCollection()
                {
                    AllBooks.Clear();
                    foreach (var item in await GetBookList())
                    {
                        AllBooks.Add(item);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                logger.Error("Message: {Message}\n\n Stack trace: {StackTrace}\n\n", ex.Message, ex.StackTrace);
            }
        }