Exemplo n.º 1
0
        public async Task <ActionResult> SiteAnnouncement_Partial(AddModel model)
        {
            model.UpdateData();
            if (!ModelState.IsValid)
            {
                return(PartialView(model));
            }

            if (model.TestMode)
            {
                return(FormProcessed(model, model.Message, model.Title, OnClose: OnCloseEnum.UpdateInPlace, OnPopupClose: OnPopupCloseEnum.UpdateInPlace, PopupOptions: "{encoded:true, canClose: true, autoClose: 0}"));
            }
            else
            {
                using (SiteAnnouncementDataProvider siteAnnounceDP = new SiteAnnouncementDataProvider()) {
                    await YetaWF_Messenger_SiteAnnouncementsHub.SendMessageAsync(model.Message, model.Title);

                    if (await siteAnnounceDP.IsInstalledAsync())
                    {
                        if (!await siteAnnounceDP.AddItemAsync(model.GetData()))
                        {
                            throw new Error(this.__ResStr("noLog", "Message sent. New site announcement log record couldn't be added"));
                        }
                    }
                }
                return(FormProcessed(model));
            }
        }
        public ActionResult BrowseSiteAnnouncement()
        {
            using (SiteAnnouncementDataProvider sitAnncDP = new SiteAnnouncementDataProvider()) {
                if (!sitAnncDP.Usable)
                {
                    return(View(SiteAnnouncementsUnavailableView.ViewName));
                }
            }
            BrowseModel model = new BrowseModel {
                GridDef = GetGridModel()
            };

            return(View(model));
        }
        private GridDefinition GetGridModel()
        {
            return(new GridDefinition {
                ModuleGuid = Module.ModuleGuid,
                SettingsModuleGuid = Module.PermanentGuid,
                RecordType = typeof(BrowseItem),
                AjaxUrl = GetActionUrl(nameof(BrowseSiteAnnouncement_GridData)),
                DirectDataAsync = async(int skip, int take, List <DataProviderSortInfo> sort, List <DataProviderFilterInfo> filters) => {
                    using (SiteAnnouncementDataProvider dataProvider = new SiteAnnouncementDataProvider()) {
                        DataProviderGetRecords <SiteAnnouncement> browseItems = await dataProvider.GetItemsAsync(skip, take, sort, filters);

                        return new DataSourceResult {
                            Data = (from s in browseItems.Data select new BrowseItem(Module, s)).ToList <object>(),
                            Total = browseItems.Total
                        };
                    }
                },
            });
        }