示例#1
0
        public List <FeedbackContract> GetFeedbacks(FeedbackCriteriaContract feedbackSearchCriteria)
        {
            m_authorizationManager.CheckUserCanManageFeedbacks();

            var sortCriteria       = feedbackSearchCriteria.SortCriteria;
            var categoriesContract = feedbackSearchCriteria.Categories;
            var categories         = categoriesContract != null && categoriesContract.Count > 0
                ? categoriesContract.Select(category => (FeedbackCategoryEnum)category).ToList()
                : null;

            var feedbacks = m_feedbackRepository.GetFeedbacks(categories, (FeedbackSortEnum)sortCriteria.SortByField, sortCriteria.SortAsc,
                                                              feedbackSearchCriteria.Start, feedbackSearchCriteria.Count);
            var resultFeedbacks = Mapper.Map <List <FeedbackContract> >(feedbacks);

            if (feedbacks.Any(x => x.FeedbackType == FeedbackType.Headword))
            {
                var headwordFeedbacks           = feedbacks.Where(x => x.FeedbackType == FeedbackType.Headword).Cast <HeadwordFeedback>();
                var headwordFeedbacksDetail     = m_feedbackRepository.GetHeadwordFeedbacksById(headwordFeedbacks.Select(x => x.Id));
                var headwordFeedbacksDetailDict = headwordFeedbacksDetail.ToDictionary(x => x.Id);

                foreach (var resultFeedback in resultFeedbacks.Where(x => x.FeedbackType == FeedbackTypeEnumContract.Headword))
                {
                    resultFeedback.HeadwordInfo = Mapper.Map <FeedbackHeadwordInfoContract>(headwordFeedbacksDetailDict[resultFeedback.Id].BookHeadword);
                }
            }

            return(resultFeedbacks);
        }
示例#2
0
        public int GetFeedbacksCount(FeedbackCriteriaContract feedbackSearchCriteria)
        {
            m_authorizationManager.CheckUserCanManageFeedbacks();

            var categoriesContract = feedbackSearchCriteria.Categories;
            var categories         = categoriesContract != null && categoriesContract.Count > 0
                ? categoriesContract.Select(category => (FeedbackCategoryEnum)category).ToList()
                : null;

            return(m_feedbackRepository.GetFeedbacksCount(categories));
        }
示例#3
0
        public ActionResult GetFeedbacksCount(IEnumerable <byte> categories)
        {
            var feedbackCriteria = new FeedbackCriteriaContract
            {
                Categories = categories?.Select(x => (FeedbackCategoryEnumContract)x).ToList()
            };

            using (var client = GetMainServiceClient())
            {
                var count = client.GetFeedbacksCount(feedbackCriteria);
                return(Json(count));
            }
        }
示例#4
0
        public ActionResult GetFeedbacks(IEnumerable <byte> categories, int?start, int?count, byte sortCriteria, bool sortAsc)
        {
            var feedbackCriteria = new FeedbackCriteriaContract
            {
                Start        = start,
                Count        = count,
                Categories   = categories?.Select(x => (FeedbackCategoryEnumContract)x).ToList(),
                SortCriteria = new FeedbackSortCriteriaContract
                {
                    SortAsc     = sortAsc,
                    SortByField = (FeedbackSortEnum)sortCriteria
                }
            };

            using (var client = GetMainServiceClient())
            {
                var results = client.GetFeedbacks(feedbackCriteria);
                return(Json(results));
            }
        }
示例#5
0
 public int GetFeedbacksCount(FeedbackCriteriaContract feedbackSearchCriteria)
 {
     return(m_feedbackManager.GetFeedbacksCount(feedbackSearchCriteria));
 }
示例#6
0
 public List <FeedbackContract> GetFeedbacks(FeedbackCriteriaContract feedbackSearchCriteria)
 {
     return(m_feedbackManager.GetFeedbacks(feedbackSearchCriteria));
 }