Пример #1
0
        public void GetCatalogShots(ShotCatalog shotCatalog, int pageIndex = 0, int perPage = 0)
        {
            string            requestUrl    = base.MegerRequestCatalogUrl(shotCatalog, pageIndex, perPage);
            DataRequestHelper requestHelper = new DataRequestHelper();

            requestHelper.ExcuteAsyncRequest(requestUrl, Method.GET, base._postArgumentList);
            requestHelper.AsyncResponseComplated += (responseData, ex) =>
            {
                if (!string.IsNullOrEmpty(responseData.ToString()))
                {
                    if (!base.IsRateLimitedRequest(responseData.ToString()))
                    {
                        try
                        {
                            CatalogShots catalogShots = JsonConvert.DeserializeObject <CatalogShots>(responseData.ToString());
                            if (AsyncCatalogShotsComplated != null)
                            {
                                AsyncCatalogShotsComplated(catalogShots, null);
                            }
                        }
                        catch (Exception se)
                        {
                            if (AsyncCatalogShotsComplated != null)
                            {
                                AsyncCatalogShotsComplated("Json format error.try later", se);
                            }
                        }
                    }
                    else
                    {
                        if (AsyncCatalogShotsComplated != null)
                        {
                            AsyncCatalogShotsComplated("Rate limited for a minute.", new Exception());
                        }
                    }
                }
            };
        }
Пример #2
0
        public void GetCatalogShot(Common.ShotCatalog catalogType, int pageIndex, int prePage, bool isDynamicLoad = false)
        {
            //start process bar
            LoadProcessBarHelper processBarHelper = new LoadProcessBarHelper();

            processBarHelper.StartProcessBar();

            //pagination control
            ControlPivotPage(catalogType, pageIndex, prePage);

            CatalogShotHelper catalogShotHelper = new CatalogShotHelper();

            catalogShotHelper.GetCatalogShots(catalogType, pageIndex, prePage);
            catalogShotHelper.AsyncCatalogShotsComplated += (responseData, ex) =>
            {
                //end process bar
                processBarHelper.EndProcessBar();

                if (ex == null)
                {
                    #region format catalog shot
                    CatalogShots catalogShots = null;
                    if (responseData != null)
                    {
                        catalogShots = responseData as CatalogShots;
                    }

                    //update total page count
                    UpateTotalPage(catalogType, catalogShots.Pages);

                    if (catalogShots.Shots.Count > 0)
                    {
                        switch (catalogType)
                        {
                        case ShotCatalog.Popular:
                            if (!isDynamicLoad)
                            {
                                _popularShotCol.Clear();
                            }
                            catalogShots.Shots.ForEach(queryEntity => { _popularShotCol.Add(queryEntity); });
                            break;

                        case ShotCatalog.Everyone:
                            if (!isDynamicLoad)
                            {
                                _everyoneShotCol.Clear();
                            }
                            catalogShots.Shots.ForEach(queryEntity => { _everyoneShotCol.Add(queryEntity); });
                            break;

                        case ShotCatalog.Debuts:
                            if (!isDynamicLoad)
                            {
                                _debutsShotCol.Clear();
                            }
                            catalogShots.Shots.ForEach(queryEntity =>
                            {
                                #region get shot first author comment detail body
                                ShotRequestHelper shotHelper = new ShotRequestHelper();
                                shotHelper.GetShotCommentById(queryEntity.Id, 1, 1);
                                shotHelper.AsyncRequestComplated += (commentData, comEx) =>
                                {
                                    if (comEx == null)
                                    {
                                        #region get comment by id
                                        ShotComment firstComment = null;
                                        if (commentData != null)
                                        {
                                            firstComment = commentData as ShotComment;
                                        }

                                        if (firstComment.Comments.Count > 0)
                                        {
                                            string commentContent = firstComment.Comments[0].Body;
                                            commentContent        = commentContent.Replace('\r', ' ').Replace('\n', ' ');

                                            if (commentContent.Length > 150)
                                            {
                                                queryEntity.Comment = commentContent.Substring(0, 150) + "...";
                                            }
                                            else
                                            {
                                                queryEntity.Comment = commentContent;
                                            }
                                        }

                                        //format datetime
                                        BasicRequestHelper requestHelper = new BasicRequestHelper();
                                        queryEntity.FormatDate           = requestHelper.SpiltDateTimeStr(queryEntity.Created_at);
                                        #endregion
                                    }
                                    else
                                    {
                                        string errorMessage = commentData.ToString();
                                        if (!string.IsNullOrEmpty(errorMessage))
                                        {
                                            new ToastNotifyHelper().ShowCoding4FunToastNotify(errorMessage, "Tip");
                                        }
                                    }
                                };
                                #endregion
                                _debutsShotCol.Add(queryEntity);
                            });
                            break;
                        }
                    }

                    #endregion
                }
                else
                {
                    string errorMessage = responseData.ToString();
                    if (!string.IsNullOrEmpty(errorMessage))
                    {
                        new ToastNotifyHelper().ShowCoding4FunToastNotify(errorMessage, "Tip");
                    }
                }
            };
        }