Example #1
0
        /// <summary>
        /// 更新回答选项统计()
        /// </summary>
        /// <param name="voteID"></param>
        /// <param name="voteEntryID"></param>
        /// <param name="voteEntryText"></param>
        /// <param name="sum">加几票</param>
        #region bool UpdateVoteAnswerStat(string voteID,string voteEntryID,string voteEntryText,int sum)
        protected bool UpdateVoteAnswerStat(string voteID, string voteEntryID, string voteEntryText, int sum)
        {
            try
            {
                Criteria criteria = new Criteria(CriteriaType.Equals, "VoteID", voteID);
                criteria.Add(CriteriaType.Equals, "VoteEntryID", voteEntryID);
                List <VoteAnswerStat> listAnswerStats = Assistant.List <VoteAnswerStat>(criteria, null);

                VoteEntry entry = GetVoteEntryByEntryID(voteEntryID);

                if (listAnswerStats != null && listAnswerStats.Count > 0)
                {
                    //进行更新
                    listAnswerStats[0].VoteEntrySum += sum;
                    Assistant.Update(listAnswerStats[0]);
                }
                else
                {
                    //新增一个
                    VoteAnswerStat voteAnswerStat = new VoteAnswerStat();
                    voteAnswerStat.ID            = We7Helper.CreateNewID();
                    voteAnswerStat.VoteEntryID   = voteEntryID;
                    voteAnswerStat.VoteID        = voteID;
                    voteAnswerStat.VoteEntrySum  = sum;
                    voteAnswerStat.VoteEntryText = voteEntryText;
                    voteAnswerStat.OrderID       = entry.OrderID;
                    Assistant.Insert(voteAnswerStat);
                }
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Example #2
0
        /// <summary>
        /// 获取某一期投票的选项统计
        /// </summary>
        /// <param name="voteID"></param>
        #region List<VoteAnswerStat> GetVoteAnswerStatsByID(string voteID)
        public List <VoteAnswerStat> GetVoteAnswerStatsByID(string voteID)
        {
            List <VoteEntry> listEntrys = GetVoteEntrysByID(voteID);

            if (listEntrys == null)
            {
                return(null);
            }

            List <Order> listOrder = new List <Order>();

            listOrder.Add(new Order("OrderID", OrderMode.Asc));

            Criteria criteria = new Criteria(CriteriaType.Equals, "VoteID", voteID);
            List <VoteAnswerStat> listAnswerStats = Assistant.List <VoteAnswerStat>(criteria, listOrder.ToArray());
            int total = 0;

            //查漏
            for (int i = 0; i < listEntrys.Count; i++)
            {
                VoteEntry      entry = listEntrys[i];
                VoteAnswerStat stat  = listAnswerStats.Find(p => p.VoteEntryID == entry.ID);
                if (stat == null)
                {
                    VoteAnswerStat statNew = new VoteAnswerStat();
                    statNew.VoteEntryID   = entry.ID;
                    statNew.VoteID        = entry.VoteID;
                    statNew.VoteEntrySum  = 0;
                    statNew.VoteEntryText = entry.EntryText;
                    listAnswerStats.Insert(i, statNew);
                }
            }
            //统计总值
            foreach (VoteAnswerStat stat in listAnswerStats)
            {
                total += stat.VoteEntrySum;
            }
            for (int i = 0; i < listAnswerStats.Count; i++)
            {
                if (total > 0)
                {
                    listAnswerStats[i].VoteEntrySumPercent =
                        (int)Math.Round((decimal)listAnswerStats[i].VoteEntrySum / (decimal)total * 170, 0); //百分比
                }
                else
                {
                    listAnswerStats[i].VoteEntrySumPercent = 0;
                }
            }
            return(listAnswerStats);
        }