Exemple #1
0
    internal static void smethod_0(Class581 A_0, ParagraphFormat A_1, CharacterFormat A_2, Class584 A_3)
    {
        object obj2 = A_1.method_31(0x465);

        A_1.method_71(0x465);
        object obj3 = A_1.method_31(0x62c);

        A_1.method_71(0x62c);
        ParagraphFormat format = (ParagraphFormat)A_1.method_23();

        A_1.ClearFormatting();
        Class924.smethod_0(A_0, A_1, A_2);
        bool flag  = A_1.method_31(0x3e8) != null;
        bool flag2 = format.method_31(0x3e8) != null;

        if (flag && !flag2)
        {
            format.SetAttr(0x3e8, format.method_31(0x3e8));
        }
        if (obj2 != null)
        {
            A_1.SetAttr(0x465, obj2);
        }
        if (obj3 != null)
        {
            A_1.SetAttr(0x62c, obj3);
        }
    }
Exemple #2
0
        protected void btnGenerateReport_Click(object sender, EventArgs e)
        {
            DateTime startDate     = DateTime.Now;
            DateTime endDate       = DateTime.Now;
            ListItem customerItem  = this.ddlCustomerID.SelectedItem;
            ListItem reportItem    = this.ddlReportType.SelectedItem;
            int      customerId    = int.Parse(customerItem.Value);
            int      currentNumber = 0;
            int      totalNumber   = 0;
            string   reportType    = this.ddlReportType.SelectedValue;
            string   news_ids      = this.hideSelectedIDs.Value;

            using (var context = new ReportContext())
            {
                int reportTypeId = int.Parse(reportType);
                var entity       = context.ReportNumbers.FirstOrDefault(a => a.CustomerID == customerId && a.ReportTypeId == reportTypeId);
                if (entity != null)
                {
                    currentNumber = entity.CurrentNumber.Value;
                    totalNumber   = entity.TotalNumber.Value;
                }
            }
            switch (reportItem.Value)
            {
            case "1":     //日报
                startDate = DateTime.Now;
                break;

            case "2":     //周报
                startDate = DateTime.Now.AddDays(-7);
                break;

            case "3":     //旬报
                startDate = DateTime.Now.AddDays(-10);
                break;

            case "4":     //半月报
                startDate = DateTime.Now.AddDays(-15);
                break;

            case "5":     //月报
                startDate = DateTime.Now.AddDays(-30);
                break;

            case "6":     //季度报
                startDate = DateTime.Now.AddDays(-90);
                break;

            case "7":     //年报
                startDate = DateTime.Now.AddYears(-1);
                break;
            }
            string reportType1 = string.Empty;

            switch (reportItem.Text)
            {
            case "日报":
                reportType1 = "一日";
                break;

            case "周报":
                reportType1 = "一周";
                break;

            case "旬报":
                reportType1 = "旬度";
                break;

            case "半月报":
                reportType1 = "半月";
                break;

            case "月报":
                reportType1 = "月度";
                break;
            }
            string Subsidiary = string.Empty;

            using (var context = new ReportContext())
            {
                var yesExists = context.Subsidiaries.Any(s => s.CustomerID == customerId);
                if (yesExists == true)
                {
                    Subsidiary = "及其权属企业";
                }
            }
            StringBuilder areaBuilder = new StringBuilder();

            using (var context = new ChartContext())
            {
                string pngPath = this.txtPath0.Text.Trim();
                if (!string.IsNullOrEmpty(pngPath))
                {
                    var gather = context.Gathers.FirstOrDefault(a => a.PngFilePath == pngPath);
                    if (gather != null)
                    {
                        var entities   = gather.GatherQuantities;
                        var sensitives = entities.Where(a => a.SensitiveNumber > 0).Select(a => a.ChannelName);
                        int i          = 0;
                        foreach (var entity in sensitives)
                        {
                            i++;
                            if (i == sensitives.Count())
                            {
                                areaBuilder.AppendFormat("和{0}", entity);
                            }
                            else
                            {
                                areaBuilder.AppendFormat("、{0}", entity);
                            }
                        }
                    }
                }
            }
            string          area       = areaBuilder.ToString().TrimStart('、');
            Document        document   = new Document(Server.MapPath("~/template_files/week_report.doc"));
            DocumentBuilder docBuilder = new DocumentBuilder(document);

            document.Range.Replace("{Company}", customerItem.Text, false, false);
            document.Range.Replace("{Subsidiary}", Subsidiary, false, false);
            document.Range.Replace("{ReportType}", reportItem.Text, false, false);
            document.Range.Replace("{area}", area, false, false);
            document.Range.Replace("{year}", DateTime.Now.ToString("yyyy"), false, false);
            document.Range.Replace("{month}", DateTime.Now.ToString("MM"), false, false);
            document.Range.Replace("{day}", DateTime.Now.ToString("dd"), false, false);
            document.Range.Replace("{number1}", currentNumber.ToString(), false, false);
            document.Range.Replace("{number2}", totalNumber.ToString(), false, false);
            document.Range.Replace("{ReportType1}", reportType1, false, false);
            document.Range.Replace("{TypeString}", CommonUtility.ReplaceReportType(reportItem.Text), false, false);
            document.Range.Replace("{aTypeString}", CommonUtility.ReplaceReportType(reportItem.Text).Replace("本", ""), false, false);
            int?   totalNewsQuanity = 0;
            int?   sensitiveNumber  = 0;
            int?   totalHudongCount = 0;
            int?   totalMinganCount = 0;
            string strText          = "均为正面或中性报道";

            using (var context = new ChartContext())
            {
                var entity = context.Gathers.FirstOrDefault(a => a.PngFilePath == this.txtPath0.Text);
                if (entity != null)
                {
                    var entities = entity.GatherQuantities;
                    totalNewsQuanity = entities.FirstOrDefault(a => a.ChannelName == "新闻").TotalNumber;
                    document.Range.Replace("{news_number}", totalNewsQuanity.ToString(), false, false);
                    sensitiveNumber = entities.FirstOrDefault(a => a.ChannelName == "新闻").SensitiveNumber;

                    if (sensitiveNumber > 0)
                    {
                        strText = String.Format("其中有{0}篇敏感报道。", sensitiveNumber);
                    }
                    document.Range.Replace("{strText}", strText, false, false);
                    totalHudongCount = entities.Where(a => a.ChannelName != "新闻").Select(a => a.TotalNumber).Sum();
                    document.Range.Replace("{hudong_number}", totalHudongCount.ToString(), false, false);
                    totalMinganCount = entities.Where(a => a.ChannelName != "新闻").Select(a => a.SensitiveNumber).Sum();
                    document.Range.Replace("{mingan_number}", totalMinganCount.ToString(), false, false);
                }
            }

            //-------------------
            document.Range.Replace(new Regex("{info_total_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath0.Text)), false);
            //本周重点敏感舆情、风险分析研判与处置建议
            using (var context = new ReportContext())
            {
                if (!string.IsNullOrEmpty(news_ids))
                {
                    var articleIds = news_ids.Split(',').Select(a => int.Parse(a));
                    var entities   = context.Articles.Where(a => a.CustomerID == customerId && articleIds.Contains(a.ID)).OrderByDescending(a => a.Rating).Select(a => a);
                    int i          = 0;
                    docBuilder.MoveToMergeField("Content");
                    foreach (var entity in entities)
                    {
                        i++;
                        if (i == 1)
                        {
                            //插入标题
                            docBuilder.Writeln();
                            docBuilder.Font.Name = "楷体_GB2312";
                            docBuilder.Font.Size = 16;
                            docBuilder.Font.Bold = true;
                            docBuilder.Writeln(String.Format("{0}.{1}", i, entity.Title));
                            docBuilder.Font.ClearFormatting();

                            //插入内容
                            docBuilder.Font.Size = 16;
                            docBuilder.Font.Name = "仿宋_GB2312";
                            docBuilder.Writeln(entity.Content);
                            docBuilder.Font.ClearFormatting();


                            //插入链接
                            docBuilder.Font.Size = 16;
                            docBuilder.Font.Name = "仿宋_GB2312";
                            docBuilder.Write("    网址链接:");
                            docBuilder.Font.ClearFormatting();

                            docBuilder.Font.Color     = Color.Blue;
                            docBuilder.Font.Size      = 10;
                            docBuilder.Font.Name      = "仿宋";
                            docBuilder.Font.Underline = Underline.Single;
                            ParagraphFormat paragraphFormat = docBuilder.ParagraphFormat;
                            paragraphFormat.Alignment = ParagraphAlignment.Center;

                            docBuilder.InsertHyperlink(entity.Url, entity.Url, false);
                            paragraphFormat.ClearFormatting();
                            docBuilder.Font.ClearFormatting();

                            docBuilder.Font.Name = "仿宋_GB2312";
                            docBuilder.Font.Size = 16;
                            docBuilder.Writeln();
                            docBuilder.Writeln(String.Format("    风险分析研判:{0}", entity.JudgeContent));
                            docBuilder.Write("    舆情星级:");
                            docBuilder.Font.ClearFormatting();

                            //插入舆情星级
                            docBuilder.Font.Name  = "仿宋_GB2312";
                            docBuilder.Font.Size  = 16;
                            docBuilder.Font.Color = Color.Red;
                            docBuilder.Writeln("★".Repeat(entity.Rating.Value));
                            docBuilder.Font.ClearFormatting();

                            //插入处置建议
                            docBuilder.Font.Name = "仿宋_GB2312";
                            docBuilder.Font.Size = 16;
                            docBuilder.Write(String.Format("    处置建议:{0}", entity.SuggestContent));;
                            docBuilder.Font.ClearFormatting();
                        }
                        else
                        {
                            //插入标题
                            docBuilder.Writeln();
                            docBuilder.Font.Name = "楷体_GB2312";
                            docBuilder.Font.Size = 16;
                            docBuilder.Font.Bold = true;
                            docBuilder.Writeln("    " + String.Format("{0}.{1}", i, entity.Title));
                            docBuilder.Font.ClearFormatting();

                            //插入内容
                            docBuilder.Font.Size = 16;
                            docBuilder.Font.Name = "仿宋_GB2312";
                            docBuilder.Writeln("    " + entity.Content);
                            docBuilder.Font.ClearFormatting();

                            //插入图片
                            if (!string.IsNullOrEmpty(entity.ScreenshotsPath))
                            {
                                FileInfo fileInfo = new FileInfo(Server.MapPath(entity.ScreenshotsPath));
                                if (fileInfo.Exists)
                                {
                                    docBuilder.InsertImage(Server.MapPath(entity.ScreenshotsPath), RelativeHorizontalPosition.Margin, 1, RelativeVerticalPosition.Default, 10, 430, 220, WrapType.Square);
                                }
                            }

                            //插入链接
                            docBuilder.Font.Size = 16;
                            docBuilder.Font.Name = "仿宋_GB2312";
                            docBuilder.Write("    网址链接:");
                            docBuilder.Font.ClearFormatting();

                            docBuilder.Font.Color     = Color.Blue;
                            docBuilder.Font.Size      = 10;
                            docBuilder.Font.Name      = "仿宋";
                            docBuilder.Font.Underline = Underline.Single;
                            ParagraphFormat paragraphFormat = docBuilder.ParagraphFormat;
                            paragraphFormat.Alignment = ParagraphAlignment.Center;

                            docBuilder.InsertHyperlink(entity.Url, entity.Url, false);
                            paragraphFormat.ClearFormatting();
                            docBuilder.Font.ClearFormatting();

                            docBuilder.Font.Name = "仿宋_GB2312";
                            docBuilder.Font.Size = 16;
                            docBuilder.Writeln();
                            docBuilder.Writeln(String.Format("    风险分析研判:{0}", entity.JudgeContent));
                            docBuilder.Write("    舆情星级:");
                            docBuilder.Font.ClearFormatting();

                            //插入舆情星级
                            docBuilder.Font.Name  = "仿宋_GB2312";
                            docBuilder.Font.Size  = 16;
                            docBuilder.Font.Color = Color.Red;
                            docBuilder.Writeln("★".Repeat(entity.Rating.Value));
                            docBuilder.Font.ClearFormatting();

                            //插入处置建议
                            docBuilder.Font.Name = "仿宋_GB2312";
                            docBuilder.Font.Size = 16;
                            docBuilder.Write(String.Format("    处置建议:{0}", entity.SuggestContent));;
                            docBuilder.Font.ClearFormatting();
                        }
                    }
                }
            }

            docBuilder.MoveToMergeField("DistributeContent");
            docBuilder.Write(this.txtDistributeSummary.Text.Trim().Replace("#", ""));
            if (!string.IsNullOrEmpty(this.txtPath10.Text.Trim()))
            {
                docBuilder.InsertImage(Server.MapPath(txtPath10.Text.Trim()), RelativeHorizontalPosition.Default, 1, RelativeVerticalPosition.Default, 10, 430, 220, WrapType.Square);
            }

            document.Range.Replace(new Regex("{NextWeekWarning_Pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath11.Text)), false);
            document.Range.Replace("{NextWeekMinganValue}", this.ddlNextWeekMinganValue.SelectedValue, false, false);
            document.Range.Replace("{NextWeekSustainNumber}", this.txtNextWeekSustainNumber.Text, false, false);
            docBuilder.MoveToMergeField("Questions");
            int b = 0;

            docBuilder.Font.Size = 16;
            docBuilder.Font.Name = "仿宋_GB2312";
            docBuilder.Writeln();
            foreach (ListItem item in this.lstWarningList.Items)
            {
                b++;
                if (item.Value != item.Text)
                {
                    string str = String.Format("{0}.{1}", b, item.Value);
                    docBuilder.Font.Size = 16;
                    docBuilder.Font.Name = "仿宋_GB2312";
                    docBuilder.Font.Bold = true;
                    docBuilder.Writeln(str);
                    docBuilder.Font.ClearFormatting();
                    if (b == this.lstWarningList.Items.Count)
                    {
                        docBuilder.Font.Size = 16;
                        docBuilder.Font.Name = "仿宋_GB2312";
                        docBuilder.Write(item.Text.Trim());
                        docBuilder.Font.ClearFormatting();
                    }
                    else
                    {
                        docBuilder.Font.Size = 16;
                        docBuilder.Font.Name = "仿宋_GB2312";
                        docBuilder.Writeln(item.Text.Trim());
                        docBuilder.Font.ClearFormatting();
                    }
                }
                else
                {
                    if (b == this.lstWarningList.Items.Count)
                    {
                        docBuilder.Font.Size = 16;
                        docBuilder.Font.Name = "仿宋_GB2312";
                        docBuilder.Write(String.Format("{0}.{1}", b, item.Value));
                        docBuilder.Font.ClearFormatting();
                    }
                    else
                    {
                        docBuilder.Font.Size = 16;
                        docBuilder.Font.Name = "仿宋_GB2312";
                        docBuilder.Writeln(String.Format("{0}.{1}", b, item.Value));
                        docBuilder.Font.ClearFormatting();
                    }
                }
            }

            document.Range.Replace(new Regex("{week_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath1.Text)), false);
            document.Range.Replace("{lowExponent}", this.txtLowExponent.Value, false, false);
            document.Range.Replace("{heightExponent}", this.txtHeightExponent.Value, false, false);
            document.Range.Replace("{avgExponent}", this.txtAvgExponent.Value, false, false);
            document.Range.Replace("{startMonth}", this.txtStartMonth.Value, false, false);
            document.Range.Replace("{startDay}", this.txtStartdDay.Value, false, false);
            document.Range.Replace("{lowNumber}", this.txtLowNumber.Value, false, false);
            document.Range.Replace("{endMonth}", this.txtEndMonth.Value, false, false);
            document.Range.Replace("{endDay}", this.txtEndDay.Value, false, false);
            document.Range.Replace("{heightNumber}", this.txtHeightNumber.Value, false, false);
            document.Range.Replace("{trend}", this.ddlTrend.Value, false, false);

            document.Range.Replace(new Regex("{attention_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath2.Text), 410, 307), false);
            document.Range.Replace("{total_AttentionNumber}", this.txtTotal_AttentionNumber.Value, false, false);
            document.Range.Replace("{mobile_AttentNumber}", this.txtMobile_AttentionNumber.Value, false, false);
            document.Range.Replace("{total_FloatingType}", this.ddlTotal_FloatingType.Value, false, false);
            document.Range.Replace("{total_AttentionPercent}", this.txtTotal_AttentionPercent.Value, false, false);
            document.Range.Replace("{mobile_FloatingType}", this.ddlMobile_FloatingType.Value, false, false);
            document.Range.Replace("{mobile_AttentionPercent}", this.txtMobile_AttentionPercent.Value, false, false);
            StringBuilder cityBuilder = new StringBuilder();

            foreach (ListItem item in this.lstAttentionCities.Items)
            {
                cityBuilder.AppendFormat("{0}、", item.Value);
            }
            string cities = cityBuilder.ToString().TrimEnd('、');

            document.Range.Replace("{cities}", cities, false, false);


            string fileName = String.Format("{0}网络舆情{1}第{2}期.doc", customerItem.Text, reportItem.Text, currentNumber.ToString());

            StringBuilder questionsBuilder = new StringBuilder();

            foreach (ListItem item in this.lstWarningList.Items)
            {
                questionsBuilder.AppendFormat("{0},{1}|", item.Value, item.Text);
            }
            string questions = questionsBuilder.ToString().TrimEnd('|');

            using (var context = new ReportContext())
            {
                var report = new Report
                {
                    ReportName              = fileName,
                    CustomerID              = int.Parse(customerItem.Value),
                    Company                 = customerItem.Text,
                    ReportType              = reportType,
                    Year                    = DateTime.Now.ToString("yyyy"),
                    Month                   = DateTime.Now.ToString("MM"),
                    Day                     = DateTime.Now.ToString("dd"),
                    CurrentNumber           = currentNumber.ToString(),
                    TotalNumber             = totalNumber.ToString(),
                    StrText                 = strText,
                    News_number             = totalNewsQuanity,
                    Hudong_number           = totalHudongCount,
                    Mingan_number           = totalMinganCount,
                    Info_total_pic          = this.txtPath0.Text,
                    PriorityArticles        = this.hideSelectedIDs.Value,
                    DistributeSummary       = this.txtDistributeSummary.Text.Replace("#", ""),
                    Distribute_Pic          = this.txtPath10.Text,
                    NextWeekWarning_Pic     = this.txtPath11.Text,
                    NextWeekMinganValue     = this.ddlNextWeekMinganValue.SelectedValue,
                    NextWeekSustainNumber   = int.Parse(this.txtNextWeekSustainNumber.Text),
                    AttentionQuestions      = questions,
                    Week_Pic                = this.txtPath1.Text,
                    LowExponent             = int.Parse(this.txtLowExponent.Value),
                    HeightExponent          = int.Parse(this.txtHeightExponent.Value),
                    AvgExponent             = int.Parse(this.txtAvgExponent.Value),
                    StartMonth              = int.Parse(this.txtStartMonth.Value),
                    StartDay                = int.Parse(this.txtStartdDay.Value),
                    LowNumber               = int.Parse(this.txtLowNumber.Value),
                    EndMonth                = int.Parse(this.txtEndMonth.Value),
                    EndDay                  = int.Parse(this.txtEndDay.Value),
                    HeightNumber            = int.Parse(this.txtHeightNumber.Value),
                    Tend                    = this.ddlTrend.Value,
                    Attention_Picture       = this.txtPath2.Text,
                    Total_AttentionNumber   = int.Parse(this.txtTotal_AttentionNumber.Value),
                    Mobile_AttentNumber     = int.Parse(this.txtMobile_AttentionNumber.Value),
                    Total_FloatingType      = this.ddlTotal_FloatingType.Value,
                    Mobile_FloatingType     = this.ddlMobile_FloatingType.Value,
                    Total_AttentionPercent  = this.txtTotal_AttentionPercent.Value,
                    Mobile_AttentionPercent = this.txtMobile_AttentionPercent.Value,
                    AttentionCities         = cities,
                    AddDate                 = DateTime.Now,
                    Area                    = area,
                    Subsidiary              = Subsidiary
                };
                context.Reports.Add(report);
                int reportTypeId = int.Parse(reportType);
                var entity       = context.ReportNumbers.FirstOrDefault(a => a.CustomerID == customerId && a.ReportTypeId == reportTypeId);
                if (entity != null)
                {
                    entity.CurrentNumber++;
                    entity.TotalNumber++;
                    context.SaveChanges();
                }
                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
            using (MemoryStream ms = new MemoryStream())
            {
                document.Save(ms, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
                Response.ContentType = "application/msword";
                Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
                Response.BinaryWrite(ms.ToArray());
                Response.End();
            }
        }