Exemple #1
0
        /// <summary>
        /// ������ۼ�¼
        /// </summary>
        /// <param name="json">json</param>
        /// <param name="ip">IP</param>
        public void Insert(LabMS.Model.VoteRecordJson json)
        {
            if (json == null)
            {
                throw new Exception("�����ύ�յļ�¼");
            }

            ValidateVote(json);

            LabMS.Model.VoteRecord voteRecordInfo = new LabMS.Model.VoteRecord();
            voteRecordInfo.IP = json.IP;
            voteRecordInfo.UserID = json.UserID;
            voteRecordInfo.VoteID = json.VoteID;
            voteRecordInfo.UserType = json.UserType;
            voteRecordInfo.VoteTime = DateTime.Now;

            voteRecordInfo.ID = base.Add(voteRecordInfo); // insert vote record

            foreach (LabMS.Model.VoteRecordDetailJson detail in json.Details)
            {
                LabMS.Model.VoteRecordDetail vrdInfo = new LabMS.Model.VoteRecordDetail();
                LabMS.BLL.VoteRecordDetail vrd = new LabMS.BLL.VoteRecordDetail();

                vrdInfo.VoteAnswerID = detail.VoteAnswerID;
                vrdInfo.VoteItemID = detail.VoteItemID;
                vrdInfo.VoteRecordID = voteRecordInfo.ID;

                vrd.Add(vrdInfo); // Insert detail
            }
        }
        protected string CreateCharts(LabMS.Model.Vote vi)
        {
            System.Text.StringBuilder result = new System.Text.StringBuilder();
            System.Text.StringBuilder sbXml = new System.Text.StringBuilder();

            LabMS.BLL.Vote vote = new LabMS.BLL.Vote();
            LabMS.BLL.VoteAnswer voteAnswer = new LabMS.BLL.VoteAnswer();
            LabMS.BLL.VoteItem voteItem = new LabMS.BLL.VoteItem();
            LabMS.BLL.VoteRecordDetail voteRecordDetail = new LabMS.BLL.VoteRecordDetail();

            List<LabMS.Model.VoteItem> voteItems;
            List<LabMS.Model.VoteAnswer> voteAnswers;
            List<LabMS.Model.VoteRecordDetail> voteRecordDetails;

            string[] colors = new string[] {
                "F6BD0F",
                "8BBA00",
                "A66EDD",
                "F984A1",
                "CCCC00",
                "999999",
                "0099CC",
                "FF0000",
                "006F00",
                "0099FF",
                "FF66CC",
                "669966",
                "7C7CB4",
                "FF9933",
                "9900FF",
                "99FFCC",
                "CCCCFF",
                "669900",
                "1941A5",
                "AFD8F8"
            };

            voteItems = voteItem.GetModelList(" VoteID = " + vi.key.ToString());

            Random random = new Random();

            foreach (LabMS.Model.VoteItem vii in voteItems)
            {
                sbXml = new System.Text.StringBuilder();
                sbXml.Append("<graph caption='");
                sbXml.Append(HandleString(vii.VoteItemContent));
                sbXml.Append("' xAxisName='评价项' yAxisName='票数' decimalPrecision='0' formatNumberScale='0'>");

                voteAnswers = voteAnswer.GetModelList(" VoteItemID = " + vii.key.ToString());

                int i = Math.Abs(random.Next());
                i = random.Next(i) / colors.Length;

                foreach (LabMS.Model.VoteAnswer vai in voteAnswers)
                {
                    voteRecordDetails = voteRecordDetail.GetModelList(
                        " VoteItemID = " +
                        vii.key.ToString() +
                        " and VoteAnswerID = " +
                        vai.key.ToString()
                    );

                    sbXml.Append(string.Format("<set name='{0}' value='{1}' color='{2}' />",
                       HandleString(vai.VoteAnswerContent), voteRecordDetails.Count, colors[i++ % colors.Length]));
                }
                sbXml.Append("</graph>");

                result.Append(
                        InfoSoftGlobal.FusionCharts.RenderChartHTML("../FusionCharts/FCF_Bar2D.swf",
                            "",
                            sbXml.ToString(), "item" + vii.key, "600", "200", false)
                    );
            }

            return result.ToString();
        }