Exemple #1
0
        public ActionResult Index(int id)
        {
            var customer        = this.customerRepository.Get(id);
            var medalCalculator = new MedalCalculators(customer);

            return(Json(medalCalculator, JsonRequestBehavior.AllowGet));
        }         // Index
        public byte[] GenerateReport(MedalCalculators medalCalculators, string fullName)
        {
            var worksheet = _workbook.Worksheets[_workbook.Worksheets.ActiveSheetIndex];

            worksheet.Name = "Medal Calculations";
            CreateHead(worksheet, fullName);
            int row = 2;

            CreateXlsHeaderMedalResult(worksheet, row);
            row++;
            CreateXlsContentMedalResult(medalCalculators, row, worksheet);
            row = row + 3;
            CreateXlsHeaderMedalCharecteristic(row, worksheet);
            var lastMedal = medalCalculators.DetailedHistory.MedalDetailsHistories.FirstOrDefault();

            if (lastMedal != null)
            {
                foreach (var medal in lastMedal.MedalCharacteristics)
                {
                    row++;
                    worksheet.Cells[row, 0].PutValue(medal.CustomerCharacteristic);
                    worksheet.Cells[row, 1].PutValue(medal.WeightUsed.ToString(CultureInfo.InvariantCulture) + "%");
                    worksheet.Cells[row, 2].PutValue(medal.ACParameters.ToString(CultureInfo.InvariantCulture) + " from " +
                                                     medal.MaxPoss + " ( " + medal.PointsObtainedPercent + "%) ");
                    SetCellStyle(worksheet, row, false);
                }
                row++;
                worksheet.Cells[row, 0].PutValue("Total");
                worksheet.Cells[row, 1].PutValue(lastMedal.TotalWeightUsed.ToString(CultureInfo.InvariantCulture) + "%");
                worksheet.Cells[row, 2].PutValue(lastMedal.TotalACParameters.ToString(CultureInfo.InvariantCulture) + " from " +
                                                 lastMedal.TotalMaxPoss + " ( " + lastMedal.TotalPointsObtainedPercent + "%) ");
                SetCellStyle(worksheet, row, true);
            }
            return(_workbook.SaveToStream().ToArray());
        }
        private static void CreateXlsContentMedalResult(MedalCalculators medalCalculators, int row, Worksheet worksheet)
        {
            var medalResult = medalCalculators.Score;

            worksheet.Cells[row, 0].PutValue(medalResult.Medal);
            worksheet.Cells[row, 1].PutValue(medalResult.Points);
            worksheet.Cells[row, 2].PutValue(medalResult.Result);
            SetCellStyle(worksheet, 3, false);
        }
        public override void ExecuteResult(ControllerContext context)
        {
            var medalCalculator = new MedalCalculators(_customer);
            var generator       = new MedalExcelReportGenerator();
            var content         = generator.GenerateReport(medalCalculator, _customer.PersonalInfo.Fullname);
            var f = new FileContentResult(content, "application/xls")
            {
                FileDownloadName = "Medal Calculations(" + _customer.PersonalInfo.Fullname + ").xls"
            };

            f.ExecuteResult(context);
        }