Esempio n. 1
0
        private async Task ReadArticlesAsync(string tag)
        {
            BlogArticles = new List <Article>(10);
            IEnumerable <Article> documents;

            if (!String.IsNullOrEmpty(tag))
            {
                documents = (await repository.GetDocuments(d => d.ListName == Blog)).Where(d => d.Tags?.IndexOf(tag, StringComparison.OrdinalIgnoreCase) >= 0).OrderByDescending(d => d.Date).Take(50);
            }
            else
            {
                documents = (await repository.GetDocuments(d => d.ListName == Blog)).OrderByDescending(d => d.Date);
            }
            foreach (Article article in documents)
            {
                // Set featured articles
                if (null == HeadlineArticle && article.FeaturedLevel == 1)
                {
                    HeadlineArticle = article;
                }
                else if (null == SideFeaturedArticle_1 && article.FeaturedLevel == 2)
                {
                    SideFeaturedArticle_1 = article;
                }
                else if (null == SideFeaturedArticle_2 && article.FeaturedLevel == 3)
                {
                    SideFeaturedArticle_2 = article;
                }
                else
                {
                    BlogArticles.Add(article);
                }
            }
        }
Esempio n. 2
0
        public async Task OnGet(string category = null)
        {
            await this.LogGetActivity();

            if (String.IsNullOrEmpty(category))
            {
                IEnumerable <CommentedLinkItem> documents = await repository.GetDocuments(d => d.ListName == listName);

                CommentedLinks = documents.OrderByDescending(d => d.Date);
            }
            else
            {
                string permaLinkLower = category.ToLower();
                ReferencedPhotoPage = (await repository.GetDocuments(d => d.UrlTitle == permaLinkLower)).OrderByDescending(d => d.Date).FirstOrDefault();
                await this.LogActivity(permaLinkLower);

                if (ReferencedPhotoPage == null)
                {
                    // Now check if a category matches the given argument
                    IEnumerable <CommentedLinkItem> documents = await repository.GetDocuments(d => d.ListName == listName && d.Category == category);

                    CommentedLinks = documents.OrderByDescending(d => d.Date);
                }
                else
                {
                    if (ReferencedPhotoPage.Infos != null)
                    {
                        List <ContentItem> infos = new List <ContentItem>(ReferencedPhotoPage.Infos);
                        this.HeaderItem = infos.Find(c => c.SortOrder == 0);
                        infos.ForEach(c => c.ReferenceId = ReferencedPhotoPage.Id);
                    }
                }
            }
        }
        public async Task <IActionResult> Link(string category, string nickname)
        {
            Shortcut target = (await repository.GetDocuments(s => s.Category == category && s.Nickname == nickname)).FirstOrDefault();

            if (null != target)
            {
                return(this.Redirect(target.Url));
            }
            return(new NotFoundResult());
        }
Esempio n. 4
0
        public async Task OnGet(string category = null)
        {
            if (String.IsNullOrEmpty(category))
            {
                IEnumerable <CommentedLinkItem> documents = await repository.GetDocuments();

                CommentedLinks = documents.OrderByDescending(d => d.Date);
            }
            else
            {
                IEnumerable <CommentedLinkItem> documents = await repository.GetDocuments(d => d.Category == category);

                CommentedLinks = documents.OrderByDescending(d => d.Date);
            }
        }
        public async Task <IActionResult> OnGetChangeLinkAsync(string documentid)
        {
            if (String.IsNullOrEmpty(documentid))
            {
                return(new NotFoundResult());
            }
            NewTrack = await repository.GetDocument(documentid);

            if (null == NewTrack)
            {
                return(new NotFoundResult());
            }
            Categories = await categoryRepository.GetDocuments(d => d.ListName == "Ausfahrten");

            return(Page());
        }
Esempio n. 6
0
        public async Task <IActionResult> OnGetAsync(string permalink = null, string language = null)
        {
            if (String.IsNullOrEmpty(permalink))
            {
                return(new NotFoundResult());
            }
            ReferencedArticle = (await repository.GetDocuments(d => d.ListName == Blog && d.UrlTitle == permalink.ToLower())).OrderByDescending(d => d.Date).FirstOrDefault();
            if (ReferencedArticle == null)
            {
                return(new NotFoundResult());
            }
            Language = "de";
            if (!String.IsNullOrEmpty(language))
            {
                Language = language;
                ReferencedArticle.Title = await _functionSiteTools.Translate(language, ReferencedArticle.Title);

                ReferencedArticle.Summary = await _functionSiteTools.Translate(language, ReferencedArticle.Summary);

                if (!String.IsNullOrEmpty(ReferencedArticle.ArticleContent))
                {
                    ReferencedArticle.ArticleContent = await _functionSiteTools.Translate(language, ReferencedArticle.ArticleContent);
                }
            }
            this.ViewData["Keywords"]    = this.ReferencedArticle.Tags;
            this.ViewData["Description"] = ReferencedArticle.Title;
            await this.LogActivity(permalink);

            return(Page());
        }
Esempio n. 7
0
        public async Task OnGetAsync()
        {
            Headline = await this.repository.GetDocumentByKey("homepage-headline");

            IEnumerable <CommentedLinkItem> documents = await photoRepository.GetDocuments(d => d.ListName == listName);

            PhotoList = documents.OrderByDescending(d => d.Date);
        }
Esempio n. 8
0
        public async Task <IActionResult> OnGetAsync(string category = null, string permalink = null, string language = null)
        {
            if (String.IsNullOrEmpty(category))
            {
                IEnumerable <TrackItem> documents = await repository.GetDocuments(d => d.ListName == "Ausfahrten");

                Tracks = documents.OrderByDescending(d => d.Date);
                this.ViewData["Title"]       = "Radausfahrten";
                this.ViewData["Description"] = "Radausfahrten - Köln, Bergisches Land, Eifel";
                await this.LogGetActivity();
            }
            else if (String.IsNullOrEmpty(permalink))
            {
                string categoryLower = category.ToLower();
                IEnumerable <TrackItem> documents = await repository.GetDocuments(d => d.ListName == "Ausfahrten" && d.Category.ToLower() == categoryLower);

                Tracks = documents.OrderByDescending(d => d.Date);
                this.ViewData["Title"]       = "Radausfahrten " + category;
                this.ViewData["Description"] = $"Radausfahrten - {category}";
                await this.LogActivity(categoryLower);
            }
            else
            {
                string categoryLower  = category.ToLower();
                string permaLinkLower = permalink.ToLower();
                ReferencedTrack = (await repository.GetDocuments(d => d.ListName == "Ausfahrten" && d.Category.ToLower() == categoryLower && d.UrlTitle == permaLinkLower)).OrderByDescending(d => d.Date).FirstOrDefault();
                if (ReferencedTrack == null)
                {
                    return(new NotFoundResult());
                }
                ReferencedTrack.Language = "de";
                if (!String.IsNullOrEmpty(language))
                {
                    ReferencedTrack.Language    = language;
                    ReferencedTrack.Description = await _functionSiteTools.Translate(language, ReferencedTrack.Description);
                }
                this.ViewData["Title"]       = ReferencedTrack.Title;
                this.ViewData["Description"] = "Die Tourbeschreibung.";
                if (!String.IsNullOrEmpty(ReferencedTrack.PlainDescription))
                {
                    this.ViewData["Description"] = ReferencedTrack.PlainDescription;
                }
                await this.LogActivity($"{categoryLower}/{permaLinkLower}");
            }
            return(Page());
        }
Esempio n. 9
0
        public async Task OnGet(string category = null)
        {
            await this.LogGetActivity();

            if (String.IsNullOrEmpty(category))
            {
                IEnumerable <CommentedLinkItem> documents = await repository.GetDocuments(d => d.ListName == listName);

                CommentedLinks = documents.OrderByDescending(d => d.Date);
            }
            else
            {
                IEnumerable <CommentedLinkItem> documents = await repository.GetDocuments(d => d.ListName == listName && d.Category == category);

                CommentedLinks = documents.OrderByDescending(d => d.Date);
            }
        }
Esempio n. 10
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (ModelState.IsValid)
            {
                IEnumerable <Shortcut> list = await repository.GetDocuments(s => s.Category == NewShortcut.Category && s.Nickname == NewShortcut.Nickname);

                Shortcut existingOne = list.FirstOrDefault();
                if (null != existingOne)
                {
                    NewShortcut.Id = existingOne.Id;
                }
                await repository.UpsertDocument(NewShortcut);

                ViewData["Message"] = "Shortcut gespeichert.";
                return(RedirectToPage("./Index"));
            }
            else
            {
                ViewData["Message"] = "Schiefgegangen";
                return(Page());
            }
        }
        public async Task <IActionResult> OnPostAsync()
        {
            if (ModelState.IsValid)
            {
                IEnumerable <ListCategory> list = await repository.GetDocuments(s => s.ListName == Category.ListName && s.Category == Category.Category);

                ListCategory existingOne = list.FirstOrDefault();
                if (null != existingOne)
                {
                    Category.Id = existingOne.Id;
                }
                await repository.UpsertDocument(Category);

                ViewData["Message"] = "Kategorie gespeichert.";
                return(RedirectToPage("Kategorien"));
            }
            else
            {
                ViewData["Message"] = "Schiefgegangen";
                return(Page());
            }
        }
Esempio n. 12
0
        public async Task <IActionResult> OnGetAsync(string permalink = null, string registrationkey = null)
        {
            if (String.IsNullOrEmpty(permalink))
            {
                return(new NotFoundResult());
            }
            string permaLinkLower = permalink.ToLower();

            ReferencedCalendarItem = (await _repository.GetDocuments(d => d.UrlTitle == permaLinkLower)).OrderByDescending(d => d.StartDate).FirstOrDefault();
            if (null == ReferencedCalendarItem || !ReferencedCalendarItem.RegistrationOpen && !User.IsInAnyRole(KnownRoles.CalendarCoordinatorRoles))
            {
                return(new NotFoundResult());
            }
            CalendarItemId = ReferencedCalendarItem.Id;
            UseCaptcha     = !User.Identity.IsAuthenticated && ReferencedCalendarItem.PublicListing;
            List <Member> members = (ReferencedCalendarItem.Members != null) ? new List <Member>(ReferencedCalendarItem.Members) : new List <Member>();

            NewMember = new Member {
                UniqueId = Guid.NewGuid().ToString(), RegistrationDate = DateTime.UtcNow, Count = 1, RegistrationKey = registrationkey
            };

            return(Page());
        }
Esempio n. 13
0
 public async Task OnGet()
 {
     Shortcuts = await repository.GetDocuments();
 }
 public async Task OnGetAsync()
 {
     CategoryList = await repository.GetDocuments();
 }
Esempio n. 15
0
        public async Task OnGetAsync()
        {
            Categories = await _categoryRepository.GetDocuments(d => d.ListName == EventCategoriesName);

            this.NewEvent.Host = this.User.Identity.Name;
        }
Esempio n. 16
0
 public async Task OnGetAsync()
 {
     Categories = await categoryRepository.GetDocuments(d => d.ListName == "Fotos");
 }
Esempio n. 17
0
        public async Task <IActionResult> OnGetAsync(string permalink = null, string language = null, string message = null)
        {
            Categories = await _categoryRepository.GetDocuments(d => d.ListName == CategoryListName);

            CategoriesDisplay = Categories.ToDictionary(t => t.Category, t => t.CategoryDisplay ?? t.Category);
            Message           = message;
            IEnumerable <CalendarItem> documents;

            OverviewArticle = await _articleRepository.GetDocumentByKey(ArticleKey);

            DateTime compareDate = DateTime.Today.AddDays(-8);

            if (String.IsNullOrEmpty(permalink))
            {
                if (User.Identity.IsAuthenticated)
                {
                    documents = await _calendarRepository.GetDocuments();
                }
                else
                {
                    documents = await _calendarRepository.GetDocuments(d => d.EndDate > compareDate && d.PublicListing == true);
                }
                CalendarItems = documents.OrderBy(d => d.StartDate);
                await this.LogGetActivity();
            }
            else
            {
                string permaLinkLower = permalink.ToLower();
                ReferencedCalenderItem = (await _calendarRepository.GetDocuments(d => d.UrlTitle == permaLinkLower)).OrderByDescending(d => d.StartDate).FirstOrDefault();
                await this.LogActivity(permaLinkLower);

                if (ReferencedCalenderItem == null)
                {
                    // Now check if a category matches the given argument
                    documents = await _calendarRepository.GetDocuments(d => d.EndDate > compareDate && d.CalendarName.ToLower() == permaLinkLower && d.PublicListing == true);

                    if (null == documents)
                    {
                        return(new NotFoundResult());
                    }
                    CalendarItems = documents.OrderBy(d => d.StartDate);
                    return(Page());
                }
                ReferencedCalenderItem.Language = "de";
                if (!ReferencedCalenderItem.EnableTranslations)
                {
                    language = String.Empty;
                }
                if (!String.IsNullOrEmpty(language))
                {
                    ReferencedCalenderItem.Language = language;
                    if (language != "de")
                    {
                        ReferencedCalenderItem.Title = await _functionSiteTools.Translate(language, ReferencedCalenderItem.Title);

                        ReferencedCalenderItem.Summary = await _functionSiteTools.Translate(language, ReferencedCalenderItem.Summary);

                        ReferencedCalenderItem.Description = await _functionSiteTools.Translate(language, ReferencedCalenderItem.Description);
                    }
                }
                if (!ReferencedCalenderItem.PublicListing)
                {
                    ViewData["NoRobots"] = true;
                }
                if (ReferencedCalenderItem.Infos != null)
                {
                    List <ContentItem> infos = new List <ContentItem>(ReferencedCalenderItem.Infos);
                    this.HeaderItem = infos.Find(c => c.SortOrder == 0);
                    infos.ForEach(c => c.ReferenceId = ReferencedCalenderItem.Id);
                    if (ReferencedCalenderItem.Language != "de")
                    {
                        foreach (ContentItem c in infos)
                        {
                            c.Title = await _functionSiteTools.Translate(ReferencedCalenderItem.Language, c.Title);

                            c.Description = await _functionSiteTools.Translate(ReferencedCalenderItem.Language, c.Description);
                        }
                    }
                }
            }
            return(Page());
        }
Esempio n. 18
0
        public async Task <IActionResult> OnGetAsync(string category = null, string permalink = null, string language = null)
        {
            IEnumerable <TrackItem> documents;

            if (String.IsNullOrEmpty(category))
            {
                documents = await repository.GetDocuments(d => d.ListName == ListName);

                ArticleKey      = "wanderungen";
                OverviewArticle = await articleRepository.GetDocumentByKey(ArticleKey);

                Tracks = documents.OrderByDescending(d => d.Date);
                this.ViewData["Title"]       = ListName;
                this.ViewData["Description"] = "Wandern in der Eifel, im Bergischen Land, Siebengebirge, am Rhein und auf Reisen";
                await this.LogGetActivity();
            }
            else if (String.IsNullOrEmpty(permalink))
            {
                string categoryLower = category.ToLower();
                documents = await repository.GetDocuments(d => d.ListName == ListName && d.Category.ToLower() == categoryLower);

                ArticleKey      = "wanderungen-" + categoryLower;
                OverviewArticle = await articleRepository.GetDocumentByKey(ArticleKey);

                if (null == OverviewArticle)
                {
                    OverviewArticle = await articleRepository.GetDocumentByKey("wanderungen");
                }
                Tracks = documents.OrderByDescending(d => d.Date);
                this.ViewData["Title"]       = $"{ListName} - {category}";
                this.ViewData["Description"] = $"Wanderungen - {category}";
                await this.LogActivity(categoryLower);
            }
            else
            {
                string categoryLower  = category.ToLower();
                string permaLinkLower = permalink.ToLower();
                ReferencedTrack = (await repository.GetDocuments(d => d.ListName == ListName && d.Category.ToLower() == categoryLower && d.UrlTitle == permaLinkLower)).OrderByDescending(d => d.Date).FirstOrDefault();
                if (ReferencedTrack == null)
                {
                    return(new NotFoundResult());
                }
                ReferencedTrack.Language = "de";
                if (!String.IsNullOrEmpty(language))
                {
                    ReferencedTrack.Language    = language;
                    ReferencedTrack.Description = await _functionSiteTools.Translate(language, ReferencedTrack.Description);
                }
                this.ViewData["Title"]       = ReferencedTrack.Title;
                this.ViewData["Description"] = "Die Beschreibung zur Wanderung.";
                await this.LogActivity($"{categoryLower}/{permaLinkLower}");
            }
            Categories = await categoryRepository.GetDocuments(d => d.ListName == CategoryListName);

            CategoriesDisplay = Categories.ToDictionary(t => t.Category, t => t.CategoryDisplay ?? t.Category);
            if (null != Tracks)
            {
                foreach (TrackItem track in Tracks)
                {
                    if (CategoriesDisplay.ContainsKey(track.Category))
                    {
                        track.CategoryDisplay = CategoriesDisplay[track.Category];
                    }
                    else
                    {
                        track.CategoryDisplay = track.Category;
                    }
                }
            }
            return(Page());
        }
Esempio n. 19
0
        public async Task <IActionResult> OnGetAsync(string category = null, string permalink = null, string language = null)
        {
            IEnumerable <TrackItem> documents;

            if (String.IsNullOrEmpty(category))
            {
                return(RedirectToPage("./Ausfahrten"));
            }
            else if (String.IsNullOrEmpty(permalink))
            {
                string tourSetLower = category.ToLower();
                TourSet   = category;
                documents = await repository.GetDocuments(d => d.TourSet.ToLower() == tourSetLower);

                if (documents.Count() == 0)
                {
                    return(new NotFoundResult());
                }
                ArticleKey      = "tourset-" + tourSetLower;
                OverviewArticle = await articleRepository.GetDocumentByKey(ArticleKey);

                Tracks = documents.OrderBy(d => d.Date);
                if (null != OverviewArticle)
                {
                    this.ViewData["Title"] = OverviewArticle.Title;
                    if (!String.IsNullOrEmpty(OverviewArticle.PlainSummary))
                    {
                        this.ViewData["Description"] = OverviewArticle.PlainSummary;
                    }
                }
                await this.LogActivity(tourSetLower);
            }
            else
            {
                string categoryLower  = category.ToLower();
                string permaLinkLower = permalink.ToLower();
                ReferencedTrack = (await repository.GetDocuments(d => d.UrlTitle == permaLinkLower)).OrderByDescending(d => d.Date).FirstOrDefault();
                if (ReferencedTrack == null)
                {
                    return(new NotFoundResult());
                }
                ReferencedTrack.Language = "de";
                if (!String.IsNullOrEmpty(language))
                {
                    ReferencedTrack.Language    = language;
                    ReferencedTrack.Description = await _functionSiteTools.Translate(language, ReferencedTrack.Description);
                }
                this.ViewData["Title"] = ReferencedTrack.Title;
                if (!String.IsNullOrEmpty(ReferencedTrack.PlainDescription))
                {
                    this.ViewData["Description"] = ReferencedTrack.PlainDescription;
                }
                await this.LogActivity($"{categoryLower}/{permaLinkLower}");
            }

            Categories = await categoryRepository.GetDocuments(d => d.ListName == CategoryListName);

            CategoriesDisplay = Categories.ToDictionary(t => t.Category, t => t.CategoryDisplay ?? t.Category);
            if (null != Tracks)
            {
                foreach (TrackItem track in Tracks)
                {
                    if (CategoriesDisplay.ContainsKey(track.Category))
                    {
                        track.CategoryDisplay = CategoriesDisplay[track.Category];
                    }
                    else
                    {
                        track.CategoryDisplay = track.Category;
                    }
                }
            }
            return(Page());
        }