예제 #1
0
        private async Task RefreshItaList()
        {
            var client = new My2chClient();

            try
            {
                var categories = await client.GetItaList();

                var store   = new StoreToFiles();
                var changed = await store.AddOrUpdateCategories(categories);

                if (changed.Count > 0)
                {
                    string changedText = "";
                    foreach (var ita in changed)
                    {
                        changedText += (ita.Name + ", ");
                    }
                    var dialog = new MessageDialog(changedText, "以下の板のURLが変更されました。");
                    await dialog.ShowAsync();
                }
            }
            catch (Exception ex)
            {
                var dialog = new MessageDialog(ex.Message, "板一覧の取得中にエラーが発生しました。");
                await dialog.ShowAsync();
            }
        }
예제 #2
0
        public async Task ReloadPostList()
        {
            var store  = new StoreToFiles();
            var client = new My2chClient();

            try
            {
                var tmpThread = await store.AddOrUpdateThreadInformation(Thread);

                var posts = await client.GetFullPostList(tmpThread);

                posts = await store.AddPosts(posts, tmpThread);

                tmpThread.Posts = posts;
                Thread          = tmpThread;
                await Task.Delay(300);

                ScrollToCurrentOffset();
            }
            catch (Exception ex)
            {
                var dialog = new MessageDialog(ex.Message, "スレッドの取得中にエラーが発生しました。");
                await dialog.ShowAsync();
            }
        }
예제 #3
0
        public async void ReloadThreadList()
        {
            var client = new My2chClient();
            var store  = new StoreToFiles();

            try
            {
                await client.GetThreadList(Ita, ThreadList);
            }
            catch (Exception ex)
            {
                var dialog = new MessageDialog(ex.Message, "スレッド一覧の取得中にエラーが発生しました。");
                await dialog.ShowAsync();
            }
        }
예제 #4
0
        public async Task Refresh()
        {
            var client = new My2chClient();

            try
            {
                var newPosts = await client.GetFullPostList(thread);

                var store = new StoreToFiles();
                var posts = await store.AddPosts(newPosts, thread);
            }
            catch (Exception ex)
            {
                var dialog = new MessageDialog(ex.Message, "スレッドの取得中にエラーが発生しました。");
                await dialog.ShowAsync();
            }
        }
        private async void SendButtonClicked(object sender, RoutedEventArgs e)
        {
            var client = new My2chClient();

            try
            {
                var res = await client.PostUpdate(viewModel.Thread, viewModel.name, viewModel.mail, viewModel.message);

                if (res.IsSuccessStatusCode)
                {
                    if (Frame.CanGoBack)
                    {
                        Frame.GoBack();
                    }
                }
                else
                {
                    var dialog = new MessageDialog(res.ReasonPhrase, "書き込みに失敗しました。");
                    dialog.Commands.Add(new UICommand("リトライ"));
                    dialog.Commands.Add(new UICommand("Close"));
                    var command = await dialog.ShowAsync();

                    if (command.Label == "リトライ")
                    {
                        SendButtonClicked(sender, e);
                    }
                }
            }
            catch (Exception ex)
            {
                var dialog = new MessageDialog(ex.Message, "書き込みに失敗しました。");
                dialog.Commands.Add(new UICommand("リトライ"));
                dialog.Commands.Add(new UICommand("Close"));
                var command = await dialog.ShowAsync();

                if (command.Label == "リトライ")
                {
                    SendButtonClicked(sender, e);
                }
            }
        }
예제 #6
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            if (e.NavigationMode != NavigationMode.Back)
            {
                viewModel = new ItaListPageViewModel(MainFlip);
                var categoryFlip = new CategoryFlipModel(MainFlip);
                viewModel.FlipList.Add(categoryFlip);

                var store      = new StoreToFiles();
                var categories = await store.LoadCategories();

                var list = new ObservableCollection <Category>();
                if (categories == null || categories.Count == 0)
                {
                    var client = new My2chClient();
                    try
                    {
                        var getcategory = await client.GetItaList();

                        await store.AddCategories(getcategory);
                    }
                    catch (Exception ex)
                    {
                        var message = new MessageDialog("板一覧を取得するため、インターネットに接続できる状態で起動してください。", "初回起動ですか");
                        await message.ShowAsync();

                        return;
                    }
                }

                foreach (var category in categories)
                {
                    list.Add(category);
                }
                categoryFlip.CategoryList = list;

                MainGrid.DataContext = viewModel;
            }
        }
        public async Task Refresh()
        {
            var store  = new StoreToFiles();
            var client = new My2chClient();

            foreach (var thread in threadList)
            {
                try
                {
                    var posts = await client.GetFullPostList(thread);

                    await store.AddPostsWithMidokuCount(posts, thread);
                }
                catch (Exception ex)
                {
                    var dialog = new MessageDialog(thread.Name + ": " + ex.Message, "スレッドの更新に失敗しました。");
                    await dialog.ShowAsync();
                }
            }

            store.LoadThreads(threadList);
        }