public async Task <ActionResult <BoolResult> > Submit([FromBody] SubmitRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.SettingsSite)) { return(Unauthorized()); } var site = await _siteRepository.GetAsync(request.SiteId); var styles = await GetInputStylesAsync(request.SiteId); foreach (var style in styles) { var inputType = style.InputType; if (inputType == InputType.TextEditor) { var value = request.Get(style.AttributeName, string.Empty); value = await _pathManager.EncodeTextEditorAsync(site, value); value = UEditorUtils.TranslateToStlElement(value); site.Set(style.AttributeName, value); } else if (inputType == InputType.Image || inputType == InputType.Video || inputType == InputType.File) { var count = request.Get(ColumnsManager.GetCountName(style.AttributeName), 0); site.Set(ColumnsManager.GetCountName(style.AttributeName), count); for (var n = 0; n <= count; n++) { site.Set(ColumnsManager.GetExtendName(style.AttributeName, n), request.Get(ColumnsManager.GetExtendName(style.AttributeName, n), string.Empty)); } } else if (inputType == InputType.CheckBox || style.InputType == InputType.SelectMultiple) { var list = request.Get <List <object> >(style.AttributeName); site.Set(style.AttributeName, ListUtils.ToString(list)); } else { var value = request.Get(style.AttributeName, string.Empty); site.Set(style.AttributeName, value); } } await _siteRepository.UpdateAsync(site); await _authManager.AddSiteLogAsync(request.SiteId, "修改站点设置"); return(new BoolResult { Value = true }); }
public async Task <ActionResult <BoolResult> > Submit([FromBody] SubmitRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, GatherManager.PermissionsAdd)) { return(Unauthorized()); } var rule = new Rule { SiteId = request.SiteId }; if (request.Id > 0) { rule = await _ruleRepository.GetAsync(request.Id); } rule.RuleName = request.RuleName; rule.ChannelId = request.ChannelId; rule.Charset = request.Charset; rule.GatherNum = request.GatherNum; rule.IsSaveImage = request.IsSaveImage; rule.IsSaveFiles = request.IsSaveFiles; rule.ImageSource = request.ImageSource; rule.IsEmptyContentAllowed = request.IsEmptyContentAllowed; rule.IsSameTitleAllowed = request.IsSameTitleAllowed; rule.IsChecked = request.IsChecked; rule.IsOrderByDesc = request.IsOrderByDesc; rule.GatherUrlIsCollection = request.GatherUrlIsCollection; rule.GatherUrlIsSerialize = request.GatherUrlIsSerialize; rule.GatherUrlCollection = request.GatherUrlCollection; rule.GatherUrlSerialize = request.GatherUrlSerialize; rule.SerializeFrom = request.SerializeFrom; rule.SerializeTo = request.SerializeTo; rule.SerializeInterval = request.SerializeInterval; rule.SerializeIsOrderByDesc = request.SerializeIsOrderByDesc; rule.SerializeIsAddZero = request.SerializeIsAddZero; rule.ContentUrlStart = request.ContentUrlStart; rule.ContentUrlEnd = request.ContentUrlEnd; rule.ImageUrlStart = request.ImageUrlStart; rule.ImageUrlEnd = request.ImageUrlEnd; rule.ContentTitleByList = request.ContentTitleByList; rule.ContentTitleStart = request.ContentTitleStart; rule.ContentTitleEnd = request.ContentTitleEnd; rule.ContentContentStart = request.ContentContentStart; rule.ContentContentEnd = request.ContentContentEnd; rule.ContentContentStart2 = request.ContentContentStart2; rule.ContentContentEnd2 = request.ContentContentEnd2; rule.ContentContentStart3 = request.ContentContentStart3; rule.ContentContentEnd3 = request.ContentContentEnd3; rule.ContentNextPageStart = request.ContentNextPageStart; rule.ContentNextPageEnd = request.ContentNextPageEnd; rule.TitleInclude = request.TitleInclude; rule.ListAreaStart = request.ListAreaStart; rule.ListAreaEnd = request.ListAreaEnd; rule.CookieString = request.CookieString; rule.ContentExclude = request.ContentExclude; rule.ContentHtmlClearCollection = ListUtils.ToString(request.ContentHtmlClearList); rule.ContentHtmlClearTagCollection = ListUtils.ToString(request.ContentHtmlClearTagList); rule.FileNameAttributeName = request.FileNameAttributeName; rule.ContentAttributes = ListUtils.ToString(request.ContentAttributeList); if (request.ContentAttributeList != null) { foreach (var attribute in request.ContentAttributeList) { rule.Set($"{attribute}ByList", request.Get <bool>($"{attribute}ByList")); rule.Set($"{attribute}Start", request.Get <string>($"{attribute}Start")); rule.Set($"{attribute}End", request.Get <string>($"{attribute}End")); rule.Set($"{attribute}Default", request.Get <string>($"{attribute}Default")); } } if (rule.Id > 0) { await _ruleRepository.UpdateAsync(rule); } else { if (await _ruleRepository.IsExistsAsync(request.SiteId, rule.RuleName)) { return(BadRequest("保存失败,已存在相同名称的采集规则!")); } await _ruleRepository.InsertAsync(rule); } return(new BoolResult { Value = true }); }