示例#1
0
        public async Task <ActionResult> FeedbackAdd_Partial(AddModel model)
        {
            FeedbackConfigData config = await FeedbackConfigDataProvider.GetConfigAsync();

            model.RequireName  = config.RequireName;
            model.RequireEmail = config.RequireEmail;
            model.ShowCaptcha  = config.Captcha;

            if (!ModelState.IsValid)
            {
                return(PartialView(model));
            }

            using (FeedbackDataProvider dataProvider = new FeedbackDataProvider()) {
                if (!await dataProvider.AddItemAsync(model.GetData()))
                {
                    throw new InternalError("Feedback couldn't be sent");
                }

                Emails emails = new Emails(Manager);
                await emails.SendFeedbackAsync(config.Email, model.Email, model.Subject, model.Message, model.Name, config.BccEmails?Manager.CurrentSite.AdminEmail : null);

                return(FormProcessed(model, this.__ResStr("okSaved", "Your message has been sent!"), NextPage: Manager.ReturnToUrl));
            }
        }
示例#2
0
        public async Task <ActionResult> RemoveFeedback(int key)
        {
            using (FeedbackDataProvider dataProvider = new FeedbackDataProvider()) {
                await dataProvider.RemoveItemAsync(key);

                return(Reload(null, Reload: ReloadEnum.ModuleParts));
            }
        }
示例#3
0
        public async Task <ActionResult> FeedbackDisplay(int key)
        {
            using (FeedbackDataProvider dataProvider = new FeedbackDataProvider()) {
                FeedbackData data = await dataProvider.GetItemAsync(key);

                if (data == null)
                {
                    throw new Error(this.__ResStr("notFound", "Feedback \"{0}\" not found."), key);
                }
                DisplayModel model = new DisplayModel();
                model.SetData(data);
                return(View(model));
            }
        }
示例#4
0
        private GridDefinition GetGridModel()
        {
            return(new GridDefinition {
                ModuleGuid = Module.ModuleGuid,
                SettingsModuleGuid = Module.PermanentGuid,
                RecordType = typeof(BrowseItem),
                AjaxUrl = GetActionUrl(nameof(FeedbackBrowse_GridData)),
                DirectDataAsync = async(int skip, int take, List <DataProviderSortInfo> sort, List <DataProviderFilterInfo> filters) => {
                    using (FeedbackDataProvider dataProvider = new FeedbackDataProvider()) {
                        DataProviderGetRecords <FeedbackData> 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
                        };
                    }
                },
            });
        }