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)); }
public EntryCollection GetEntriesForYear(DateTime date, string acceptLanguages) { var yearCollection = new EntryCollection(); for (int i = 1; i < 13; i++) { DateTime dt = new DateTime(date.Year, i, 1); yearCollection.AddRange(dataService.GetEntriesForMonth(dt, dasBlogSettings.GetConfiguredTimeZone(), acceptLanguages)); } return(yearCollection); }
/// <summary> /// Browse the folder /// </summary> /// <param name="startIndex">start index</param> /// <param name="requestedCount">requested count</param> /// <param name="userAgent">user agent</param> /// <returns>the browse result</returns> public override BrowseResult Browse(uint startIndex, uint requestedCount, UserAgent userAgent) { var entries = new EntryCollection(); entries.AddRange(Children); if (!String.IsNullOrWhiteSpace(Path)) { try { bool isFreeboxV5 = (userAgent == UserAgent.FreeboxV5); foreach (var file in Directory.GetFiles(Path, "*.*", SearchOption.TopDirectoryOnly)) { try { var f = FileFactory.CreateFile(file); if (f is IContainer) { var entry = ((IContainer)f).GetContent(isFreeboxV5); if (entry == null) { continue; } if (!(entry is IMedia)) { entries.Add(entry); continue; } f = (IMedia)entry; } if (f.MediaKind != null && (f.MediaKind & MediaKind) > 0) { entries.Add((Entry)f); } } catch (Exception ex) { Utils.WriteException(ex); } } } catch (Exception ex) { Utils.WriteException(ex); } try { foreach (var directory in Directory.GetDirectories(Path, "*.*", SearchOption.TopDirectoryOnly)) { try { var folder = new Folder() { UsePathAsId = true, Path = directory }; if (!folder.IsHidden) { entries.Add(folder); } } catch (Exception ex) { Utils.WriteException(ex); } } } catch (Exception ex) { Utils.WriteException(ex); } } entries.Sort(new Comparison <Entry>((e1, e2) => { if (e1 is FolderBase && !(e2 is FolderBase)) { return(-1); } if (e2 is FolderBase && !(e1 is FolderBase)) { return(1); } if (e1.Label == null) { return(e2.Label == null ? 0 : -1); } return(e1.Label.CompareTo(e2.Label)); })); var browseResult = new BrowseResult() { TotalCount = entries.Count }; int i = 0; foreach (Entry entry in entries) { if (i == startIndex) { if (browseResult.Entries.Count < requestedCount) { browseResult.Entries.Add(entry); } else { break; } } else { i += 1; } } return(browseResult); }