Esempio n. 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));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        /// <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);
        }