Example #1
0
        public IHttpActionResult DeleteNews(int newsId)
        {
            NewsRequest request = new NewsRequest
            {
                NewsDto = new NewsDto {
                    NewsId = newsId
                }
            };
            List <string> errors  = ValidateDeleteNews(request);
            NewsMessage   message = new NewsMessage();

            if (errors != null && errors.Any())
            {
                message.ErrorMessage     = NewsMessageResource.ValidationErrors;
                message.ErrorType        = ErrorType.ValidationError;
                message.Errors           = new List <string>();
                message.OperationSuccess = false;
                message.Errors.AddRange(errors);
            }
            else
            {
                message = _serviceNewsClient.DeleteNews(request);
            }
            return(Json(message));
        }
Example #2
0
        public async Task <ActionResult> Delete(int id)
        {
            try
            {
                InitializeServiceClient();
                bool        result  = false;
                NewsRequest request = new NewsRequest();
                request.ClientInfo = req.ClientInfo;
                request.ID         = id;
                HttpResponseMessage deleteResponse = await client.PostAsJsonAsync("News/DeleteNews", request);

                result = await deleteResponse.Content.ReadAsAsync <bool>();

                if (result)
                {
                    TempData["DeleteNewsSuccess"] = "Yes";
                }
                else
                {
                    TempData["DeleteNewsFailed"] = "No";
                }
            }
            catch (Exception ex)
            {
                //       LogHelper.AddLog("NewsController", ex.Message, ex.StackTrace, "HCL.Academy.Web", user.EmailID);
                TelemetryClient telemetry = new TelemetryClient();
                telemetry.TrackException(ex);
            }
            return(RedirectToAction("Index"));
        }
Example #3
0
        public async Task <ActionResult> Create(News news)
        {
            InitializeServiceClient();
            try
            {
                NewsRequest request = new NewsRequest();
                request.ClientInfo = req.ClientInfo;
                request.body       = news.body.ToString();
                request.imageURL   = news.imageURL.ToString();
                request.header     = news.header.ToString();
                HttpResponseMessage response = await client.PostAsJsonAsync("News/AddNewsEvents", request);

                bool result = await response.Content.ReadAsAsync <bool>();

                if (result)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View(news));
                }
            }
            catch (Exception ex)
            {
                //UserManager user = (UserManager)Session["CurrentUser"];
                //LogHelper.AddLog("NewsController", ex.Message, ex.StackTrace, "HCL.Academy.Web", user.EmailID);
                TelemetryClient telemetry = new TelemetryClient();
                telemetry.TrackException(ex);
                return(View(news));
            }
        }
Example #4
0
        public NewsResponse UpcomingNews(NewsRequest newsRequest)
        {
            NewsResponse newsResponse     = new NewsResponse();
            string       requestParameter = string.Format("{0}q={1}&language={2}&sortby={3}&apikey={4}",
                                                          BaseURL,
                                                          newsRequest.queryString,
                                                          newsRequest.language,
                                                          newsRequest.sortby,

                                                          newsRequest.APiKey);
            string jsonString = new WebClient().DownloadString(requestParameter);

            newsResponse = JsonConvert.DeserializeObject <NewsResponse>(jsonString);
            var filteredArticles = newsResponse.Articles.Where(y => y.UrlToImage != null && y.UrlToImage.OriginalString.Contains("https:") && y.Title.Length <= 60).Select(x => new Article()
            {
                Author      = x.Author,
                Title       = x.Title,
                PublishedAt = x.PublishedAt,
                UrlToImage  = x.UrlToImage,
                //Description = x.Description,
                Url    = x.Url,
                Source = x.Source
            }).ToList().Take(4);

            NewsResponse updatedNewsResponse = new NewsResponse()
            {
                Status   = newsResponse.Status,
                Articles = filteredArticles
            };

            //persons.Where(x => !exclusionKeys.Contains(x.compositeKey));
            return(updatedNewsResponse);
        }
Example #5
0
 /// <summary>
 ///    From News Request to News Request pivot.
 /// </summary>
 /// <param name="request"></param>
 /// <returns>News Request pivot result.</returns>
 public static NewsRequestPivot ToPivot(this NewsRequest request)
 {
     return(new NewsRequestPivot()
     {
         NewsPivot = request.NewsDto?.ToPivot(),
         FindNewsPivot = Utility.EnumToEnum <FindNewsDto, FindNewsPivot>(request.FindNewsDto)
     });
 }
Example #6
0
        public async Task <bool> Create(NewsRequest model)
        {
            var json        = JsonConvert.SerializeObject(model);
            var httpContent = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await getClient().PostAsync($"/api/news", httpContent);

            return(response.IsSuccessStatusCode);
        }
Example #7
0
 public NewsRequestBuilder()
 {
     _instance = new CreateNewsRequest
     {
         Title   = "Breaking News",
         Content = "Any thing intresting",
         Author  = new AuthorRequestBuilder().Build()
     };
 }
Example #8
0
        public IList <News> Find(NewsRequest request)
        {
            var query = Where(t => t.NewsType == request.NewsType);

            if (string.IsNullOrEmpty(request.Keyword))
            {
                return(query.OrderByDescending(t => t.ID).Page(request).ToList());
            }
            return(query.Where(t => t.Title.Contains(request.Keyword)).OrderByDescending(t => t.ID).Page(request).ToList());
        }
Example #9
0
 public NewsRequestBuilder(Guid id)
 {
     _instance = new UpdateNewsRequest
     {
         Id      = id,
         Title   = "Breaking News",
         Content = "Any thing intresting",
         Author  = new AuthorRequestBuilder().Build()
     };
 }
Example #10
0
        public async Task <IActionResult> Update([FromBody] NewsRequest request)
        {
            var data = await _newsRepository.Update(request);

            if (data < 0)
            {
                return(BadRequest());
            }
            return(Ok());
        }
Example #11
0
        /// <summary>
        /// Validation delete news.
        /// </summary>
        /// <param name="request">the request to validate.</param>
        /// <returns>errors validation</returns>
        private List <string> ValidateDeleteNews(NewsRequest request)
        {
            var errors = new List <string>();

            if (request?.NewsDto == null)
            {
                errors.Add(NewsMessageResource.NullRequest);
            }
            else
            {
                errors.AddRange(GenericValidationAttribute <NewsDto> .ValidateAttributes("NewsId", request.NewsDto.NewsId.ToString()));
            }
            return(errors);
        }
Example #12
0
        public async Task <IActionResult> Create(NewsRequest model)
        {
            var userId = User.Claims.First(c => c.Type == SystemConstants.UserClaim.Id).Value;

            model.UserId = Guid.Parse(userId);

            var data = await _newsApiClient.Create(model);

            if (data == false)
            {
                return(BadRequest("cap nhat khong thanh cong"));
            }

            return(RedirectToAction("Index", "News"));
        }
Example #13
0
        /// <summary>
        /// Delete News
        /// </summary>
        /// <param name="request">news request.</param>
        /// <returns>News message.</returns>
        public NewsMessage DeleteNews(NewsRequest request)
        {
            NewsMessage message = new NewsMessage();

            try
            {
                _serviceNews.DeleteNews(request.ToPivot());
                message.OperationSuccess = true;
            }
            catch (Exception e)
            {
                message.ErrorType    = ErrorType.TechnicalError;
                message.ErrorMessage = e.Message;
            }
            return(message);
        }
Example #14
0
        //public override Task<NewsReply> FindNews(NewsRequest request, ServerCallContext context)
        //{
        //    //load settings drom db
        //    foreach(string site in db.GetUserSettings(request.Userid, "site")){

        //        RSSReader.ReadUserFeed(site, db.GetUserSettings(request.Userid, "tag"));
        //    }


        //    //streaming
        //    return Task.FromResult(ConvertToRssItem(RSSReader.ReadFeed2(request.Url)[0]));
        //}

        public override async Task FindNews(NewsRequest request, Grpc.Core.IServerStreamWriter <NewsReply> responseStream, ServerCallContext context)
        {
            //load settings drom db
            foreach (string site in db.GetUserSettings(request.Userid, "site"))
            {
                //streaming
                foreach (SyndicationItem item in RSSReader.ReadUserFeed(site, db.GetUserSettings(request.Userid, "tag")))
                {
                    await responseStream.WriteAsync(ConvertToRssItem(item));
                }
            }
            Console.WriteLine("\nNews sent to client. Userid: " + request.Userid);


            //return ;   <NewsReply>
        }
Example #15
0
        public async Task <ActionResult> Edit(int id)
        {
            InitializeServiceClient();
            NewsRequest request = new NewsRequest();

            request.ClientInfo = req.ClientInfo;
            HttpResponseMessage response = await client.PostAsJsonAsync("News/GetNewsEventByID?id=" + id, request);

            List <News> news = await response.Content.ReadAsAsync <List <News> >();

            News item = new News();

            item = news[0];
            Session["NewsID"] = id;
            return(View(item));
        }
Example #16
0
        public async Task <bool> OpenNewsRequestAsync(NewsRequest newsRequest)
        {
            try
            {
                newsRequest.IsClosed = false;

                Context.Set <NewsRequest>().Update(newsRequest);
                await Context.SaveChangesAsync();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Example #17
0
        public async Task <PagedResponse <List <NewsByTypeIdResponse> > > GetNews(NewsRequest request)
        {
            var response = new List <NewsByTypeIdResponse>();
            var news     = await _unitOfWork.NewsRepository.GetPagedReponseAsync(request.PageNumber, request.PageSize,
                                                                                 filter : x => (request.TypeId == null || x.TypeId == request.TypeId.Value) &&
                                                                                 (request.SearchValue == null || x.Title.Contains(request.SearchValue)) &&
                                                                                 x.DelFlag == false,
                                                                                 orderBy : x => x.OrderByDescending(o => o.CreatedTime), includeProperties : "Type");

            response = _mapper.Map <List <NewsByTypeIdResponse> >(news);
            var totalCount = await _unitOfWork.NewsRepository.CountAsync(x => (request.TypeId == null || x.TypeId == request.TypeId.Value) &&
                                                                         (request.SearchValue == null || x.Title.Contains(request.SearchValue)) &&
                                                                         x.DelFlag == false);

            return(new PagedResponse <List <NewsByTypeIdResponse> >(response, request.PageNumber, request.PageSize, totalCount));
        }
Example #18
0
        public bool UpdateNewsEvent(NewsRequest request)
        {
            bool result = false;

            try
            {
                SqlSvrDAL dal = new SqlSvrDAL(request.ClientInfo);
                result = dal.UpdateNewsEvent(request.ID, request.imageURL, request.header, request.body, request.trimmedBody);
            }
            catch (Exception ex)
            {
                //   LogHelper.AddLog("NewsController,UpdateNewsEvent", ex.Message, ex.StackTrace, "HCL.Academy.Service", request.ClientInfo.emailId);
                TelemetryClient telemetry = new TelemetryClient();
                telemetry.TrackException(ex);
            }
            return(result);
        }
Example #19
0
        public bool DeleteNews(NewsRequest request)
        {
            bool result = false;

            try
            {
                SqlSvrDAL dal = new SqlSvrDAL(request.ClientInfo);
                result = dal.DeleteNews(request.ID);
            }
            catch (Exception ex)
            {
                //LogHelper.AddLog("NewsController,DeleteNews", ex.Message, ex.StackTrace, "HCL.Academy.Service", request.ClientInfo.emailId);
                TelemetryClient telemetry = new TelemetryClient();
                telemetry.TrackException(ex);
            }
            return(result);
        }
Example #20
0
        public async Task <bool> ChangeNewsRequestCategoryAsync(NewsRequest newsRequest, Category category)
        {
            try
            {
                newsRequest.Category = category;

                Context.Set <NewsRequest>().Update(newsRequest);

                await Context.SaveChangesAsync();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Example #21
0
        public ActionResult Create(NewsRequest model)
        {
            var ketqua = _newsDa.Create(model);

            if (ketqua > 0)
            {
                return(Json(new
                {
                    Status = true,
                    Message = "Tạo tin mới thành công"
                }));
            }
            return(Json(new
            {
                Status = false,
                Message = "Tạo tin mới thất bại"
            }));
        }
Example #22
0
        public async Task <int> Create(NewsRequest request)
        {
            using (var conn = new SqlConnection(_connectStrings))
            {
                if (conn.State == System.Data.ConnectionState.Closed)
                {
                    conn.Open();
                }
                var paramaters = new DynamicParameters();
                paramaters.Add("@Title", request.Title);
                paramaters.Add("@Theme", request.Theme);
                paramaters.Add("@Content", request.Content);
                paramaters.Add("@UserId", request.UserId);

                var result = await conn.ExecuteAsync("Create_News", paramaters, null, null, CommandType.StoredProcedure);

                return(result);
            }
        }
Example #23
0
        public IHttpActionResult FindNews(NewsRequest request)
        {
            List <string> errors  = ValidateFindNews(request);
            NewsMessage   message = new NewsMessage();

            if (errors != null && errors.Any())
            {
                message.ErrorMessage     = NewsMessageResource.ValidationErrors;
                message.ErrorType        = ErrorType.ValidationError;
                message.Errors           = new List <string>();
                message.OperationSuccess = false;
                message.Errors.AddRange(errors);
            }
            else
            {
                message = _serviceNewsClient.FindNews(request);
            }
            return(Json(message));
        }
Example #24
0
        public IActionResult Index()
        {
            IndexViewModel indexViewModel = new IndexViewModel();
            NewsRequest    newsRequest    = new NewsRequest();
            var            newsResponse   = new NewsResponse();

            // Session Check for the user to consume the News API. If already retrieved, Get from session else call the API
            if (!string.IsNullOrEmpty(HttpContext.Session.GetString("News")))
            {
                newsResponse = JsonConvert.DeserializeObject <NewsResponse>(_session.GetString("News"));
            }
            else
            {
                newsRequest.queryString = HttpUtility.UrlEncode("greenhouse-gas+climate-change");
                newsRequest.language    = "en";
                newsRequest.sortby      = "publishedAt";
                try
                {
                    newsResponse = _newsApi.UpcomingNews(newsRequest);
                    string output = JsonConvert.SerializeObject(newsResponse);
                    _session.SetString("News", output);
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex.StackTrace);
                }
            }
            // If the newsAPI is retrieves, status will be ok
            if (newsResponse != null && newsResponse.Status.ToLower() == "ok" && newsResponse.Articles != null && newsResponse.Articles.Count() > 0)
            {
                indexViewModel.ArticleList = newsResponse.Articles.Select(x => new Models.Article()
                {
                    Title         = x.Title,
                    ImageUrl      = x.UrlToImage != null ? x.UrlToImage.OriginalString : string.Empty,
                    PublishedDate = TimeCalculator(DateTime.Now, x.PublishedAt.DateTime),
                    Source        = x.Source.Name,
                    Url           = x.Url.AbsoluteUri
                }).ToList();
            }

            return(View(indexViewModel.ArticleList));
        }
        public async Task <ServiceResponse <NewsResponseCollection> > GetNewsAsync(
            NewsType newsType, NewsPriority newsPriority,
            NewsContentOrigin newsContentOrigin, int count,
            Name name = Name.Undefined)
        {
            var newsRequest = new NewsRequest()
            {
                Count  = count,
                Filter = new NewsRequestFilter()
            };

            newsRequest.Filter.Type = newsType switch
            {
                NewsType.HomePage => "homepage",
                NewsType.SectionName => "section-name",
                _ => throw new Exception($"Unknown {nameof(newsType)}: {newsType}")
            };
            newsRequest.Filter.Name = name switch
            {
                Name.Undefined => null,
                Name.Football => "football",
                Name.Hockey => "hockey",
                Name.Basketball => "basketball",
                _ => throw new Exception($"Unknown {nameof(name)}: {name}"),
            };
            switch (newsPriority)
            {
            case NewsPriority.Main:
                newsRequest.Filter.NewsPriority = "main";
                break;
            }
            switch (newsContentOrigin)
            {
            case NewsContentOrigin.Mixed:
                newsRequest.Filter.ContentOrigin = "mixed";
                break;
            }
            string args = HttpHelper.UrlEncodeJson(newsRequest);
            var    uri  = new Uri($"core/news/list?args={args}", UriKind.Relative);

            return(await GetResponseFromSportsAsync <NewsResponseCollection>(uri).ConfigureAwait(false));
        }
Example #26
0
 public async Task InsertNews(NewsRequest request)
 {
     try
     {
         var new_response = new News
         {
             Id          = Guid.NewGuid(),
             Context     = request.Context,
             Title       = request.Title,
             PublishTime = DateTime.Now
         };
         _saUow.GetRepository <News>().Insert(new_response);
         await _saUow.SaveChangesAsync();
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         throw;
     }
 }
Example #27
0
        private static async void GetNews()
        {
            using (var db = DbFactory.GetDbSource())
            {
                var tickers = db.GetTickers();

                foreach (var ticker in tickers)
                {
                    var x = new NewsRequest(new List <string> {
                        ticker
                    });
                    var articles = await x.Execute();

                    Console.WriteLine(new string('-', ticker.Length));
                    Console.WriteLine(ticker);
                    Console.WriteLine(new string('-', ticker.Length));
                    Console.WriteLine(string.Join("\n\n", articles.Select(a => a.Headline)));
                }
            }
        }
Example #28
0
        public async Task <ActionResult> Edit(News news)
        {
            try
            {
                InitializeServiceClient();
                NewsRequest request = new NewsRequest();
                request.ClientInfo = req.ClientInfo;
                request.ID         = Convert.ToInt32(Session["NewsID"]);
                request.imageURL   = news.imageURL;
                request.body       = news.body;
                request.header     = news.header;
                HttpResponseMessage response = await client.PostAsJsonAsync("News/UpdateNewsEvent", request);

                bool result = await response.Content.ReadAsAsync <bool>();

                if (result)
                {
                    TempData["EditNews"] = "Yes";
                    return(RedirectToAction("Index"));
                }
                else
                {
                    TempData["EditNewsFailed"] = "No";
                    return(View(news));
                }
            }
            catch (Exception ex)
            {
                // UserManager user = (UserManager)Session["CurrentUser"];
                //LogHelper.AddLog("NewsController", ex.Message, ex.StackTrace, "HCL.Academy.Web", user.EmailID);
                TelemetryClient telemetry = new TelemetryClient();
                telemetry.TrackException(ex);
                TempData["EditNewsFailed"] = "No";
                return(View(news));
            }
        }
Example #29
0
 public void GivenNewsRequest_SetUp()
 {
     this.Request = new NewsRequest();
 }
Example #30
0
        public decimal Create(NewsRequest request)
        {
            try
            {
                var spParameter = new SqlParameter[10];

                #region Set param

                var parameter = new SqlParameter("@P_Title", SqlDbType.NVarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = request.Title
                };
                spParameter[0] = parameter;

                parameter = new SqlParameter("@P_Content", SqlDbType.NVarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = request.Content
                };
                spParameter[1] = parameter;

                parameter = new SqlParameter("@P_Description", SqlDbType.NVarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = request.Description
                };
                spParameter[2] = parameter;

                parameter = new SqlParameter("@P_FeatureImage", SqlDbType.NVarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = request.FeatureImage
                };
                spParameter[3] = parameter;

                parameter = new SqlParameter("@P_Tag", SqlDbType.NVarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = request.Tag
                };
                spParameter[4] = parameter;

                parameter = new SqlParameter("@P_CategoryType", SqlDbType.VarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = 0
                };
                spParameter[5] = parameter;

                parameter = new SqlParameter("@P_CreateDate", SqlDbType.VarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")
                };
                spParameter[6] = parameter;

                parameter = new SqlParameter("@P_CreateBy", SqlDbType.NVarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = request.CreateBy
                };
                spParameter[7] = parameter;

                parameter = new SqlParameter("@P_Special", SqlDbType.VarChar)
                {
                    Direction = ParameterDirection.Input,
                    Value     = request.Special
                };
                spParameter[8] = parameter;

                parameter = new SqlParameter("@P_Return", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output,
                    Value     = -1
                };
                spParameter[9] = parameter;

                #endregion

                SqlHelper.ExecuteNonQuery(ConfigInfo.ConnectString, CommandType.StoredProcedure, "PROC_PAGE_INSERT",
                                          spParameter);

                return(Convert.ToDecimal(spParameter[9].Value));
            }
            catch (Exception ex)
            {
                Logger.Log.Error(ex.ToString());
                return(-1);
            }
        }
 public async Task <IActionResult> GetNews([FromQuery] NewsRequest request)
 {
     return(Ok(await _newsService.GetNews(request)));
 }