Пример #1
0
 public PostRequest Category(CNHCategory category)
 {
     if (category != CNHCategory.Latest)
     {
         AddParam("categories", (int)category); 
     }
     CurrentCategory = category;
     return this;
 }
Пример #2
0
        public async Task FetchNews(CNHCategory category)
        {
            // clear posts in case category is changed
            if (category != Category)
            {
                ClearItems();
            }

            IsLoading = true;
            OnLoading();

            WordPressManager.PostRequest postRequest = new WordPressManager.PostRequest();
            postRequest
            .Embeded()
            .Category(category)
            .Quantity(10)
            .Search(SearchKeyword)
            .Save(!IsSearchOn)
            .Update(IsSearchOn && ConnectionInfo.InternetConnected());
            var postsData = await WordpressExtension.GetPosts(postRequest);

            switch (postsData.Result)
            {
            case TaskResult.Error:
                OnError();
                break;

            case TaskResult.NoInternet:
                OnConnectionError();
                break;

            case TaskResult.NoData:
                OnNoData();
                break;

            case TaskResult.Success:
                ReplaceItems(postsData.Data);
                break;

            default:
                break;
            }

            Category = category;

            IsLoading = false;
            OnLoaded();

            CanLoadMore = true;
        }
Пример #3
0
        /// <summary>
        /// Create necessary directory and return file path
        /// </summary>
        /// <param name="category"></param>
        /// <returns></returns>
        static string GetPostFilePath(CNHCategory category)
        {
            // CNHSpotlightCache/posts/{category}
            string path = Path.Combine(
                Android.OS.Environment.ExternalStorageDirectory.Path,
                "CNHSpotlightCache",
                "posts");

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            string file = Path.Combine(path, category.ToString());

            return(file);
        }
Пример #4
0
        public static void SavePosts(List <Post> data, CNHCategory category, int index)
        {
            List <Post> finalPostList = new List <Post>();

            var posts = GetAllPostsOffline(new WordPressManager.PostRequest().Category(category));

            // try to get saved postList if it exists
            if (posts.Result == TaskResult.Success)
            {
                finalPostList = posts.Data;
            }

            finalPostList.ReplaceItemRange(index, data);

            using (StreamWriter streamWriter = new StreamWriter(GetPostFilePath(category)))
            {
                streamWriter.Write(JsonConvert.SerializeObject(finalPostList));
            }
        }
Пример #5
0
 public async Task FetchNews(CNHCategory category)
 {
     await currentAdapter.FetchNews(category);
 }
Пример #6
0
 /// <summary>
 /// Call fetch news from NewsFragment
 /// </summary>
 private async Task FetchNews(CNHCategory category)
 {
     await newsFragment.FetchNews(category);
 }