Пример #1
0
        public Article GetArticle(int articleId, ISystemResponse error)
        {
            Article article = new Article();

            try
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add("articleId", articleId.ToString());
                parameters.Add("bit", "false");

                string request = WebAPIClient.GetRequest("Articles", "Get", parameters, error);

                if (!string.IsNullOrEmpty(request) && !error.Error)
                {
                    JavaScriptSerializer serializer = new JavaScriptSerializer();
                    ArticleResponseModel response   = serializer.Deserialize <ArticleResponseModel>(request);

                    if (response != null && !error.Error && response.article != null)
                    {
                        article = response.article;
                    }
                }
            }
            catch (Exception ex)
            {
                error.Error     = true;
                error.Message   = "No se pudo obtener la informacion del articulo solicitado";
                error.Exception = ex;
            }

            return(article);
        }
Пример #2
0
 /// <summary>
 /// javascript异步请求完成后的回调
 /// </summary>
 /// <param name="result"></param>
 /// <param name="origin"></param>
 public void OnHttpGetHandler(string result, string origin)
 {
     Task.Run(async() =>
     {
         BaseModel baseModel = JsonConvert.DeserializeObject <BaseModel>(result);
         if (baseModel.base_resp.err_msg == "ok")
         {
             if (origin == "queryList")
             {
                 SearchModel searchModel = JsonConvert.DeserializeObject <SearchModel>(result);
                 OnSearchHandler?.Invoke(searchModel);
             }
             else if (origin == "article")
             {
                 ArticleResponseModel articleResponseModel = JsonConvert.DeserializeObject <ArticleResponseModel>(result);
                 OnArticleResponseHandler?.Invoke(articleResponseModel);
             }
         }
         else
         {
             LogService.Error($"请求{origin}出错:{result}");
             await ChromeWebBrowser.spiderManager.OnRequestError();
         }
     });
 }
        public IHttpActionResult GetById(int id)
        {
            var article =
                this.articlesService
                .GetById(id);

            var articleToReturn = new ArticleResponseModel(article);

            return this.Ok(articleToReturn);
        }
Пример #4
0
        public IHttpActionResult Get(int articleId, bool bit)
        {
            ISystemResponse error    = new SystemResponse();
            var             article  = _repository.GetArticleById(articleId, error);
            var             response = new ArticleResponseModel {
                article = article
            };

            return(Ok(response));
        }
        public IHttpActionResult GetById(int id)
        {
            var article =
                this.articlesService
                .GetById(id);

            var articleToReturn = new ArticleResponseModel(article);

            return(this.Ok(articleToReturn));
        }
Пример #6
0
        public async Task <IActionResult> Post([FromBody] ArticleEntry value)
        {
            try
            {
                var result = await _articleProvider.Insert(value);

                var response = new ArticleResponseModel(result);
                return(Ok(response));
            }
            catch (Exception)
            {
                var result = new FailureModel(success: false, code: (int)HttpStatusCode.BadRequest, response: "Bad Request");
                return(BadRequest(result));
            }
        }
Пример #7
0
        public async Task <IActionResult> Get(long id)
        {
            try
            {
                var article = await _articleProvider.GetOne(id);

                var result = new ArticleResponseModel(article);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                var result = new FailureModel(success: false, code: (int)HttpStatusCode.BadRequest, response: "Bad Request");
                return(BadRequest(result));
            }
        }
Пример #8
0
        public async Task <IActionResult> Delete(long id)
        {
            try
            {
                await _articleProvider.Delete(id);

                var emptyModel = new Article();
                var response   = new ArticleResponseModel(emptyModel);
                return(Ok(response));
            }
            catch (Exception)
            {
                var result = new FailureModel(success: false, code: (int)HttpStatusCode.BadRequest, response: "Bad Request");
                return(BadRequest(result));
            }
        }
Пример #9
0
        /// <summary>
        /// 获取历史文章列表回调
        /// </summary>
        /// <param name="articleResponseModel"></param>
        private async void ArticleResponseHandlerCallback(ArticleResponseModel articleResponseModel)
        {
            LogService.Info($"当前条数:{articleResponseModel.app_msg_list.Count},准备写入到数据库");
            int oldArticleCount = articleResponseModel.app_msg_list.Count(a => a.create_time < LastStartTimeSpan);

            if (oldArticleCount < articleResponseModel.app_msg_list.Count)
            {
                List <WeChatArticle> saveList = new List <WeChatArticle>();
                articleResponseModel.app_msg_list.ForEach(async item =>
                {
                    var article = await spiderHandler.QueryArticleByAid(item.aid);
                    if (article.Count >= 1 || item.create_time < LastStartTimeSpan)
                    {
                        LogService.Info($"文章({item.aid})已经存在,跳过保存");
                        return;
                    }
                    WeChatArticle model = item.ConvertModel();
                    model.Id            = IdWorkContext.ID_WORKER.NextId();
                    model.CreateDate    = DateTime.Now;
                    saveList.Add(model);
                });
                if (saveList.Count == 0)
                {
                    await NextTask();
                }
                else
                {
                    try
                    {
                        await spiderHandler.InsertArticleByList(saveList, CurrentTask.SpiderId);
                    }
                    catch (Exception e)
                    {
                        LogService.Error($"将文章写入到数据库出错{e.Message}", e);
                    }

                    LogService.Info("准备翻页,休眠30秒");
                    Thread.Sleep(1000 * 30);
                    CurrentTask.ToQueryArticleList(++CurrentTask.CurrentPage);
                }
            }
            else
            {
                await NextTask();
            }
        }
        public IHttpActionResult CreateArticle(ArticlesRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            var articleToCreate = new Article
            {
                Title       = model.Title,
                Content     = model.Content,
                Category    = this.categories.GetByName(model.Category),
                Tags        = this.tags.GetTagCollection(model.Tags),
                DateCreated = DateTime.Now
            };

            Article createdArticle = this.articles.Add(articleToCreate);

            return(this.Ok(ArticleResponseModel.GetFromModel(createdArticle)));
        }