Example #1
0
        public IActionResult ArchiveAll()
        {
            var entries        = new EntryCollection();
            var languageFilter = httpContextAccessor.HttpContext.Request.Headers["Accept-Language"];
            var listofyears    = archiveManager.GetDaysWithEntries().Select(i => i.Year).Distinct();

            foreach (var year in listofyears)
            {
                entries.AddRange(
                    archiveManager.GetEntriesForYear(new DateTime(year, 1, 1), languageFilter).OrderByDescending(x => x.CreatedUtc));
            }

            var alvm = new ArchiveListViewModel();

            foreach (var i in entries.ToList().Select(entry => mapper.Map <PostViewModel>(entry)).ToList())
            {
                var index = int.Parse(string.Format("{0}{1}", i.CreatedDateTime.Year, string.Format("{0:00}", i.CreatedDateTime.Month)));

                if (alvm.MonthEntries.ContainsKey(index))
                {
                    alvm.MonthEntries[index].Add(i);
                }
                else
                {
                    var list = new List <PostViewModel>()
                    {
                        i
                    };
                    alvm.MonthEntries.Add(index, list);
                }
            }

            return(View(alvm));
        }
        private List <MonthViewViewModel> GetMonthsViewModel(DateTime dateTime, bool wholeYear = false)
        {
            string languageFilter = httpContextAccessor.HttpContext.Request.Headers["Accept-Language"];

            ViewBag.PreviousMonth = dateTime.AddMonths(-1).Date;
            ViewBag.NextMonth     = dateTime.AddMonths(1).Date;
            ViewBag.CurrentMonth  = dateTime.Date;

            //unique list of years for the top of archives
            var daysWithEntries = archiveManager.GetDaysWithEntries();

            ViewBag.Years = daysWithEntries.Select(i => i.Year).Distinct();

            EntryCollection entries;

            if (wholeYear)
            {
                entries = archiveManager.GetEntriesForYear(dateTime, languageFilter);
            }
            else
            {
                entries = archiveManager.GetEntriesForMonth(dateTime, languageFilter);
            }

            //TODO: Do I need this?
            //entries = new EntryCollection(entries.OrderBy(e => e.CreatedUtc));

            DefaultPage(ARCHIVE);
            return(MonthViewViewModel.Create(dateTime, entries, mapper));
        }
        private List <MonthViewViewModel> GetMonthsViewModel(DateTime dateTime, bool wholeYear = false)
        {
            string languageFilter = httpContextAccessor.HttpContext.Request.Headers["Accept-Language"];

            ViewBag.PreviousMonth = dateTime.AddMonths(-1).Date;
            ViewBag.NextMonth     = dateTime.AddMonths(1).Date;
            ViewBag.CurrentMonth  = dateTime.Date;

            var stopWatch = new Stopwatch();

            stopWatch.Start();

            //unique list of years for the top of archives
            var daysWithEntries = archiveManager.GetDaysWithEntries();

            ViewBag.Years = daysWithEntries.Select(i => i.Year).Distinct();

            EntryCollection entries;

            if (wholeYear)
            {
                entries = archiveManager.GetEntriesForYear(dateTime, languageFilter);
            }
            else
            {
                entries = archiveManager.GetEntriesForMonth(dateTime, languageFilter);
            }


            stopWatch.Stop();
            logger.LogInformation(new DasBlog.Services.ActivityLogs.EventDataItem(EventCodes.Site, null, $"ArchiveController (Date: {dateTime.ToLongDateString()}; Year: {wholeYear}) Time elapsed: {stopWatch.Elapsed.TotalMilliseconds}ms"));

            //TODO: Do I need this?
            //entries = new EntryCollection(entries.OrderBy(e => e.CreatedUtc));

            DefaultPage(ARCHIVE);
            return(MonthViewViewModel.Create(dateTime, entries, mapper));
        }