示例#1
0
        public async Task <IActionResult> Index(NewsroomViewModel model, [FromQuery] int page, [FromQuery] int pageSize)
        {
            if (model.DateFrom == null && model.DateTo == null && string.IsNullOrEmpty(model.DateRange))
            {
                if (ModelState["DateTo"] != null && ModelState["DateTo"].Errors.Count > 0)
                {
                    ModelState["DateTo"].Errors.Clear();
                }
                if (ModelState["DateFrom"] != null && ModelState["DateFrom"].Errors.Count > 0)
                {
                    ModelState["DateFrom"].Errors.Clear();
                }
            }

            var queries = new List <Query>();

            if (!string.IsNullOrEmpty(model.Tag))
            {
                queries.Add(new Query("tag", model.Tag));
            }
            if (!string.IsNullOrEmpty(model.Category))
            {
                queries.Add(new Query("Category", model.Category));
            }
            if (model.DateFrom.HasValue)
            {
                queries.Add(new Query("DateFrom", model.DateFrom.Value.ToString("yyyy-MM-dd")));
            }
            if (model.DateTo.HasValue)
            {
                queries.Add(new Query("DateTo", model.DateTo.Value.ToString("yyyy-MM-dd")));
            }

            var httpResponse = await _repository.Get <Newsroom>(queries : queries);

            if (!httpResponse.IsSuccessful())
            {
                return(httpResponse);
            }

            var newsRoom = httpResponse.Content as Newsroom;

            var urlSetting = _config.GetEmailAlertsNewSubscriberUrl(_businessId.ToString());

            model.AddQueryUrl(new QueryUrl(Url?.ActionContext.RouteData.Values, Request?.Query));
            _filteredUrl.SetQueryUrl(model.CurrentUrl);
            model.AddFilteredUrl(_filteredUrl);

            DoPagination(newsRoom, model, page, pageSize);

            model.AddNews(newsRoom);
            model.AddUrlSetting(urlSetting);

            return(View(model));
        }
        public async Task <IActionResult> Index(string topicSlug)
        {
            var topicHttpResponse = await _repository.Get <Topic>(topicSlug);

            if (!topicHttpResponse.IsSuccessful())
            {
                return(topicHttpResponse);
            }

            var topic = topicHttpResponse.Content as Topic;

            var urlSetting = _config.GetEmailAlertsNewSubscriberUrl(_businessId.ToString());

            return(View(new TopicViewModel(topic, urlSetting.ToString())));
        }