public Entry(BlogEntry data, EntryEditModule editMod, EntryDisplayModule dispMod, ModuleAction editAction, ModuleAction viewAction) { ObjectSupport.CopyData(data, this); ViewAction = viewAction; Actions = new List <ModuleAction>(); Actions.New(editAction); }
public async Task <MenuList> __GetCommandsAsync() { MenuList actions = new MenuList() { RenderMode = ModuleAction.RenderModeEnum.IconsOnly }; EntryDisplayModule dispMod = new EntryDisplayModule(); actions.New(await dispMod.GetAction_DisplayAsync(Identity), ModuleAction.ActionLocationEnum.GridLinks); EntryEditModule editMod = new EntryEditModule(); actions.New(await editMod.GetAction_EditAsync(Module.EditUrl, Identity), ModuleAction.ActionLocationEnum.GridLinks); actions.New(Module.GetAction_Remove(Identity), ModuleAction.ActionLocationEnum.GridLinks); return(actions); }
public async Task <ActionResult> Blog(DateTime?StartDate = null) { int category; Manager.TryGetUrlArg <int>("BlogCategory", out category); BlogConfigData config = await BlogConfigDataProvider.GetConfigAsync(); using (BlogEntryDataProvider dataProvider = new BlogEntryDataProvider()) { List <DataProviderSortInfo> sort = new List <DataProviderSortInfo> { new DataProviderSortInfo { Field = nameof(BlogEntry.DatePublished), Order = DataProviderSortInfo.SortDirection.Descending }, }; List <DataProviderFilterInfo> filters = new List <DataProviderFilterInfo> { new DataProviderFilterInfo { Field = nameof(BlogEntry.Published), Operator = "==", Value = true }, }; if (category != 0) { filters = DataProviderFilterInfo.Join(filters, new DataProviderFilterInfo { Field = nameof(BlogEntry.CategoryIdentity), Operator = "==", Value = category }); } DateTime sdShown = DateTime.MaxValue; if (StartDate != null) { sdShown = ((DateTime)StartDate).Date; if (sdShown < DateTime.UtcNow) { filters = DataProviderFilterInfo.Join(filters, new DataProviderFilterInfo { Field = nameof(BlogEntry.DatePublished), Operator = "<=", Value = sdShown }); } else { sdShown = DateTime.MaxValue; } } DataProviderGetRecords <BlogEntry> data = await dataProvider.GetItemsAsync(0, config.Entries, sort, filters); if (data.Data.Count == 0) { return(new EmptyResult()); } string rssUrl = string.IsNullOrWhiteSpace(config.FeedMainUrl) ? Manager.CurrentSite.HomePageUrl : config.FeedMainUrl; Manager.LinkAltManager.AddLinkAltTag(AreaRegistration.CurrentPackage.AreaName, "application/rss+xml", config.FeedTitle, rssUrl); EntryEditModule editMod = new EntryEditModule(); EntryDisplayModule dispMod = new EntryDisplayModule(); List <Entry> list = new List <Entry>(); foreach (BlogEntry d in data.Data) { ModuleAction viewAction = await dispMod.GetAction_DisplayAsync(d.Identity, ReadMore : d.Summary != d.Text); ModuleAction editAction = await editMod.GetAction_EditAsync(null, d.Identity); list.Add(new Entry(d, editMod, dispMod, editAction, viewAction)); } DisplayModel model = new DisplayModel() { BlogEntries = list, CategoryIdentity = category, StartDate = sdShown == DateTime.MaxValue ? null : (DateTime?)sdShown, }; return(View(model)); } }