コード例 #1
0
        public PagedResultList <FeedbackContract> GetFeedbackList(int start,
                                                                  int count,
                                                                  FeedbackSortEnumContract sort,
                                                                  SortDirectionEnumContract sortDirection,
                                                                  IList <FeedbackCategoryEnumContract> filterCategories,
                                                                  PortalTypeContract portalType)
        {
            try
            {
                var url = UrlQueryBuilder.Create("feedback")
                          .AddParameter("start", start)
                          .AddParameter("count", count)
                          .AddParameter("sort", sort)
                          .AddParameter("sortDirection", sortDirection)
                          .AddParameterList("filterCategories", filterCategories)
                          .AddParameter("portalType", portalType)
                          .ToResult();
                var result = m_client.GetPagedList <FeedbackContract>(url);
                return(result);
            }
            catch (HttpRequestException e)
            {
                if (m_logger.IsErrorEnabled())
                {
                    m_logger.LogError("{0} failed with {1}", m_client.GetCurrentMethod(), e);
                }

                throw;
            }
        }
コード例 #2
0
ファイル: FeedbackController.cs プロジェクト: RIDICS/ITJakub
        public List <FeedbackContract> GetFeedbackList([FromQuery] int?start,
                                                       [FromQuery] int?count,
                                                       [FromQuery] FeedbackSortEnumContract?sort,
                                                       [FromQuery] SortDirectionEnumContract?sortDirection,
                                                       [FromQuery] IList <FeedbackCategoryEnumContract> filterCategories,
                                                       [FromQuery] PortalTypeContract portalType)
        {
            var sortValue          = sort ?? FeedbackSortEnumContract.Date;
            var sortDirectionValue = sortDirection ?? SortDirectionEnumContract.Desc;

            var result = m_feedbackManager.GetFeedbackList(start, count, sortValue, sortDirectionValue, filterCategories, portalType);

            SetTotalCountHeader(result.TotalCount);

            return(result.List);
        }
コード例 #3
0
        public void CreateFeedback(FeedbackViewModel model, FeedbackCategoryEnumContract category, PortalTypeContract portalType, bool isAuthenticated)
        {
            var client = m_communicationProvider.GetMainServiceFeedbackClient();

            if (isAuthenticated)
            {
                client.CreateFeedback(new CreateFeedbackContract
                {
                    FeedbackCategory = category,
                    Text             = model.Text,
                    PortalType       = portalType,
                });
            }
            else
            {
                client.CreateAnonymousFeedback(new CreateAnonymousFeedbackContract
                {
                    FeedbackCategory = category,
                    Text             = model.Text,
                    PortalType       = portalType,
                    AuthorEmail      = model.Email,
                    AuthorName       = model.Name,
                });
            }
        }
コード例 #4
0
ファイル: NewsManager.cs プロジェクト: RIDICS/ITJakub
        public PagedResultList <NewsSyndicationItemContract> GetNewsSyndicationItems(int?start, int?count, NewsTypeEnumContract?itemType, PortalTypeContract portalTypeContract)
        {
            var startValue          = PagingHelper.GetStart(start);
            var countValue          = PagingHelper.GetCount(count);
            var syndicationItemType = m_mapper.Map <SyndicationItemType?>(itemType);
            var portalType          = m_mapper.Map <PortalTypeEnum>(portalTypeContract);

            var result = m_portalRepository.InvokeUnitOfWork(x =>
                                                             x.GetNewsSyndicationItems(startValue, countValue, syndicationItemType, portalType));

            return(new PagedResultList <NewsSyndicationItemContract>
            {
                List = m_userDetailManager.AddUserDetails(m_mapper.Map <List <NewsSyndicationItemContract> >(result.List)),
                TotalCount = result.Count
            });
        }
コード例 #5
0
 private CreateNewsSyndicationItemContract CreateSyndicationItem(NewsSyndicationItemViewModel model, PortalTypeContract portalType)
 {
     return(new CreateNewsSyndicationItemContract
     {
         Title = model.Title,
         ItemType = NewsTypeEnumContract.Combined,
         Text = model.Content,
         Url = model.Url,
         PortalType = portalType,
     });
 }
コード例 #6
0
        public PagedResultList <NewsSyndicationItemContract> GetNewsSyndicationItems(int start, int count, NewsTypeEnumContract?itemType, PortalTypeContract portalType)
        {
            try
            {
                var url = UrlQueryBuilder.Create("news")
                          .AddParameter("start", start)
                          .AddParameter("count", count)
                          .AddParameter("itemType", itemType)
                          .AddParameter("portalType", portalType)
                          .ToResult();
                var result = m_client.GetPagedList <NewsSyndicationItemContract>(url);
                return(result);
            }
            catch (HttpRequestException e)
            {
                if (m_logger.IsErrorEnabled())
                {
                    m_logger.LogError("{0} failed with {1}", m_client.GetCurrentMethod(), e);
                }

                throw;
            }
        }
コード例 #7
0
ファイル: FeedbackManager.cs プロジェクト: RIDICS/ITJakub
        public PagedResultList <FeedbackContract> GetFeedbackList(int?start, int?count, FeedbackSortEnumContract sort,
                                                                  SortDirectionEnumContract sortDirection, IList <FeedbackCategoryEnumContract> filterCategories, PortalTypeContract portalTypeContract)
        {
            var startValue           = PagingHelper.GetStart(start);
            var countValue           = PagingHelper.GetCount(count);
            var sortValue            = m_mapper.Map <FeedbackSortEnum>(sort);
            var filterCategoryValues = m_mapper.Map <List <FeedbackCategoryEnum> >(filterCategories);
            var portalType           = m_mapper.Map <PortalTypeEnum>(portalTypeContract);

            var result = m_portalRepository.InvokeUnitOfWork(repository =>
            {
                var dbFeedbacks = repository.GetFeedbackList(startValue, countValue, sortValue, sortDirection, filterCategoryValues, portalType);

                var headwordFeedbackIds = dbFeedbacks.List.Where(x => x.FeedbackType == FeedbackType.Headword)
                                          .Select(x => x.Id);
                repository.FetchHeadwordFeedbacks(headwordFeedbackIds);

                return(dbFeedbacks);
            });

            return(new PagedResultList <FeedbackContract>
            {
                List = m_userDetailManager.AddUserDetails(m_mapper.Map <List <FeedbackContract> >(result.List)),
                TotalCount = result.Count,
            });
        }
コード例 #8
0
        public List <NewsSyndicationItemContract> GetNewsSyndicationItems([FromQuery] int?start, [FromQuery] int?count, [FromQuery] NewsTypeEnumContract?itemType, [FromQuery] PortalTypeContract portalType)
        {
            var result = m_newsManager.GetNewsSyndicationItems(start, count, itemType, portalType);

            SetTotalCountHeader(result.TotalCount);

            return(result.List);
        }