Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.ComponentModel.DataAnnotations;
- using System.Linq;
- using System.Transactions;
- using System.Web;
- using System.Web.Mvc;
- using System.Web.Routing;
- using System.Web.Security;
- using MSharp.Framework;
- using MSharp.Framework.Data;
- using MSharp.Framework.Mvc;
- using MSharp.Framework.Services;
- using Domain;
- using vm = ViewModel;
- namespace Controllers
- {
- [RestrictTo(Roles = "User")]
- [EscapeGCop("Auto generated code.")]
- public partial class StockSummary_ThreeYearChangeController : BaseController
- {
- [HttpPost, Route("StockSummary_ThreeYearChange/Export")]
- public ActionResult Export(vm.StockSummary_ThreeYearChange info)
- {
- try
- {
- return ExportToExcell(info, ExcelExporter.Output.ExcelXml);
- }
- catch (Exception ex)
- {
- return Notify(ex.Message, "error");
- }
- }
- [NonAction, OnBound]
- public void OnBound(vm.StockSummary_ThreeYearChange info)
- {
- info.Key_Options.Clear();
- info.Key_Options.AddRange(GetBaseSource(info).Select(x => x.Key).Distinct());
- info.Items = GetSource(info).Select(item => new vm.StockSummary_ThreeYearChange.ListItem(item)).ToList();
- }
- [NonAction]
- IEnumerable<NYearChange> GetBaseSource(vm.StockSummary_ThreeYearChange info)
- {
- IEnumerable<NYearChange> result = new NYearChangeFactory(info.Organisation, Year.GetCurrentYear()).GetThreeYearChangeData<RPStockByTenureField>();
- return result;
- }
- [NonAction]
- IEnumerable<NYearChange> GetSource(vm.StockSummary_ThreeYearChange info)
- {
- var result = GetBaseSource(info);
- if (info.Key.Any())
- {
- result = result.Where(n => info.Key.Any(x => n.Key == x));
- }
- if (info.Sort.Expression == "YearBeforeLastValue")
- {
- result = info.Sort.Apply(result, item => item.YearBeforeLastValue);
- }
- else
- {
- result = info.Sort.Apply(result);
- }
- return result;
- }
- [NonAction]
- public ActionResult ExportToExcell(vm.StockSummary_ThreeYearChange info, ExcelExporter.Output mode)
- {
- var exporter = new ExcelExporter("Stock summary - three year change");
- // Add header texts:
- exporter.AddColumn("Tenure/type");
- exporter.AddColumn("Three-year change (units)");
- exporter.AddColumn("Three-year change (%)");
- exporter.Columns[1].DataType = "Number";
- exporter.Columns[2].DataType = "Number";
- exporter.Columns[3].DataType = "Number";
- exporter.Columns[4].DataType = "Number";
- exporter.Columns[5].DataType = "Number";
- // Add data rows:
- foreach (var item in GetSource(info))
- {
- exporter.AddRow(item.Key,
- item.ThreeYearChangeUnits,
- item.ThreeYearChangePercentage);
- }
- return File(System.Text.Encoding.UTF8.GetBytes(exporter.Generate(mode)),
- "application/vnd.ms-excel",
- $"{info.Organisation.Name} - Stock Summary" + exporter.GetFileExtension(mode));
- }
- }
- }
- namespace ViewModel
- {
- [EscapeGCop("Auto generated code.")]
- public partial class StockSummary_ThreeYearChange : IViewModel
- {
- public StockSummary_ThreeYearChange()
- {
- Sort = new ListSortExpression(this);
- }
- [FromQuery("SHRN")]
- public Organisation Organisation { get; set; }
- public Year Year
- {
- get
- {
- return Organisation.GetMostRecent(Year.GetCurrentYear());
- }
- }
- public IEnumerable<Year> Years
- {
- get
- {
- return Year.GetPreviousYears().Union(Year);
- }
- }
- [FromQuery("s")]
- public ListSortExpression Sort { get; set; }
- // Search filters
- public List<string> Key { get; set; } = new List<string>();
- [ReadOnly(true)]
- public List<SelectListItem> Key_Options = new List<SelectListItem>();
- [ReadOnly(true)]
- public List<ListItem> Items = new List<ListItem>();
- public partial class ListItem : IViewModel
- {
- public ListItem(NYearChange item)
- {
- Item = item;
- }
- public NYearChange Item { get; set; }
- [ReadOnly(true)]
- public NYearChange OrganisationNYearChange { get; set; }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment