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)); }