Beispiel #1
0
        public ActionResult Index(YearFilterViewModel filter, int page = 1)
        {
            var pagingInfo = new PagingInfo()
            {
                PageNumber = page
            };
            var entities = Enumerable.Empty <Bar>();

            #region keep track of filter across

            if (filter != null && !filter.IsEmpty)
            {
                TempData[FilterDateKey] = filter;
            }
            else
            {
                if (TempData.Peek(FilterDateKey) != null)
                {
                    filter = TempData.Peek(FilterDateKey) as YearFilterViewModel;
                }
            }

            #endregion keep track of filter across

            if (filter.Year.HasValue)
            {
                entities = _barService.GetAllBars(!string.IsNullOrEmpty(filter.DateAsYear) ? int.Parse(filter.DateAsYear) : (int?)null
                                                  , filter.DisplayName, filter.BarNumber, null, filter.DbSource, pagingInfo);
                ViewBag.DisplayResults = true;
            }
            else
            {
                ViewBag.DisplayResults = false;
            }

            var viewmodel = new BarsListViewModel()
            {
                Filters = filter,
                Data    = entities.ToMappedPagedList <Bar, BarDetailsViewModel>(pagingInfo)
            };

            ViewBag.AvailableDbSources = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = DbSource.GC.ToString(), Value = ((int)DbSource.GC).ToString()
                },
                new SelectListItem()
                {
                    Text = DbSource.DIST.ToString(), Value = ((int)DbSource.DIST).ToString()
                }
            };
            ViewBag.DisplayBarNumberTarget = filter.DbSource.HasValue && (filter.DbSource.Value == DbSource.DIST);
            return(View(viewmodel));
        }
Beispiel #2
0
        public MemoryStream GetBarsTemplate(int year)
        {
            string       excelTemplate = GetExcelTemplate(ReportType.BarsTemplate);
            var          templateFile  = new FileInfo(excelTemplate);
            ExcelPackage package       = new ExcelPackage(templateFile, true);

            GenerateBarsTemplate(package, _barService.GetAllBars(year), year);

            var stream = new MemoryStream(package.GetAsByteArray());

            return(stream);
        }
Beispiel #3
0
        public List <AnnualReportDataItemDetails> GetAnnualReportData(int year, int?fundId = null, string barNumber = null)
        {
            var reportData = new List <AnnualReportDataItemDetails>();
            // 1- get all possible combination of funds*bars
            var annualReportData = _fundsRepository.GetAnnualReportDataRows(year, fundId);
            // 2- get all possible/valid bars
            var dbBars   = _barService.GetAllBars(year, null, null, true);
            var viewBars = annualReportData.Select(t => t.View_BarNumber).Distinct().ToList();
            // 3- get bar mapping rules to get right MapTo list.
            //var mappingRules = _mappingRuleRepository.Get(t => t.Year == year).ToList();
            // 4- generate report item detail.
            var groupByFundNumber = annualReportData.GroupBy(t => new { t.PrimaryFundNumber, t.FundDisplayName, t.MCAG, t.DbSource }
                                                             , (gKey, gValue) => new AnnualReportDataItemGroup()
            {
                PrimaryFundNumber = gKey.PrimaryFundNumber,
                FundDisplayName   = gKey.FundDisplayName,
                MCAG      = gKey.MCAG,
                DbSource  = gKey.DbSource,
                GroupData = gValue.ToList()
            }).ToList();

            foreach (var fundGroup in groupByFundNumber)
            {
                if (fundGroup.DbSource == DbSource.GC)
                {
                    reportData.AddRange(GetGcAnnualReportItems(year, viewBars, dbBars, fundGroup));
                }
                else
                {
                    reportData.AddRange(GetDistAnnualReportItems(year, viewBars, dbBars, fundGroup));
                }
            }
            return(reportData);
        }