Exemple #1
0
        public async Task <string> GetPage1(string url)
        {
            IHttpClientHelper client1 = new RestSharpHelper();
            var res = client1.GetHttp(url, true, user_agent);

            if (res.Success)
            {
                return(res.Content);
            }
            else
            {
                LogDTO log = new LogDTO()
                {
                    DateTime    = DateTime.Now,
                    Description = res.ExeptionErrorMessage,
                    ProjectId   = (int)ProjectNames.HttpHelper,
                    Url         = url,
                    MethodName  = "Digikala - GetPage",
                    Title       = "Get HTML Error"
                };
                Logger.AddLog(log);
                return(string.Empty);
            }
        }
        public async Task <T> GetProduct <T>(string url)
        {
            try
            {
                #region GetProduct
                SnappfoodDTO product = new SnappfoodDTO();
                string       id      = getSnappfoodIdByUrl(url);
                string       tmp_url = getSnappfoodCommentLink(id, 0);
                using (IHttpClientHelper clientHelper = new RestSharpHelper())
                {
                    var resultClient = clientHelper.GetHttp(tmp_url, true, user_agent);
                    product = JsonConvert.DeserializeObject <SnappfoodDTO>(resultClient.Content);
                    double pageCount = 0;
                    pageCount = Math.Round((double)(product.data.count / product.data.pageSize));
                    if (product.data.comments != null && product.data.comments.Any() && pageCount > 0)
                    {
                        for (int i = 1; i <= pageCount; i++)
                        {
                            try
                            {
                                System.Threading.Thread.Sleep(25);
                                string url1          = getSnappfoodCommentLink(id, i);
                                var    resultClient1 = clientHelper.GetHttp(url1, true, user_agent);
                                if (!resultClient1.Success)
                                {
                                    System.Threading.Thread.Sleep(500);
                                    resultClient1 = clientHelper.GetHttp(url1, true, user_agent);
                                }
                                var comments1 = JsonConvert.DeserializeObject <SnappfoodDTO>(resultClient1.Content);
                                comments1.data.comments.ForEach(x => x.replies = null);
                                comments1.data.comments.ForEach(x => x.foods   = new List <Food>());
                                if (comments1 != null && comments1.data.comments != null & comments1.data.comments.Any())
                                {
                                    product.data.comments.AddRange(comments1.data.comments);
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                    //var cm = product.data.comments.Select(x => x.commentText.Replace("\n", ", ")).ToArray();
                    //var cmss = string.Join("\n", cm);
                    product.Url            = url;
                    product.CreateDateTime = DateTime.Now;
                    product._id            = ObjectId.GenerateNewId(DateTime.Now).ToString();
                    product.Reserve        = false;
                    product.status         = true;
                    product.isTagged       = false;
                    product.Tagger         = "_";
                    product.TagDate        = DateTime.Now.AddYears(-10);
                }
                #endregion

                return((T)Convert.ChangeType(product, typeof(SnappfoodDTO)));
            }
            catch (Exception ex)
            {
                LogDTO log = new LogDTO()
                {
                    _id         = ObjectId.GenerateNewId().ToString(),
                    DateTime    = DateTime.Now,
                    Description = ex.Message.ToString(),
                    ProjectId   = (int)ProjectNames.Services,
                    Url         = url,
                    MethodName  = "Snappfood - Snappfood Helper - GetProduct",
                    Title       = "GetProduct"
                };
                Logger.AddLog(log);
                return((T)Convert.ChangeType(null, typeof(Snappfood)));
            }
        }