public ActionResult DeleteManager(DeleteManager m) { if (!string.IsNullOrEmpty(m.Name)) { ExploreMidwest.Data.ExploreMidwestDBContext context = new Data.ExploreMidwestDBContext(); var userMgr = new UserManager <IdentityUser>(new UserStore <IdentityUser>(context)); var roleMgr = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); var findmanager = userMgr.FindByName(m.Name); // create the user with the manager class if (findmanager != null) { userMgr.Delete(findmanager); } else { return(View(m)); } return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("Name", "Please Enter A Name"); } return(View(m)); }
private void DeleteAllPage() { var templateType = TemplateTypeUtils.GetEnumType(AuthRequest.GetQueryString("TemplateType")); if (templateType == TemplateType.ChannelTemplate) { LtlTitle.Text = "删除已生成的栏目页文件"; } else if (templateType == TemplateType.ContentTemplate) { LtlTitle.Text = "删除所有已生成的内容页文件"; } else if (templateType == TemplateType.FileTemplate) { LtlTitle.Text = "删除所有已生成的文件页"; } try { if (templateType == TemplateType.ChannelTemplate) { var channelIdList = ChannelManager.GetChannelIdList(SiteId); DeleteManager.DeleteChannelsByPage(SiteInfo, channelIdList); } else if (templateType == TemplateType.ContentTemplate) { var channelIdList = ChannelManager.GetChannelIdList(SiteId); DeleteManager.DeleteContentsByPage(SiteInfo, channelIdList); } else if (templateType == TemplateType.FileTemplate) { DeleteManager.DeleteFiles(SiteInfo, DataProvider.TemplateDao.GetIdListByType(SiteId, TemplateType.FileTemplate)); } AuthRequest.AddSiteLog(SiteId, LtlTitle.Text); LtlRegisterScripts.Text = @" <script> $(document).ready(function(){ writeResult('任务执行成功。', ''); }) </script> "; } catch (Exception ex) { LtlRegisterScripts.Text = $@" <script> $(document).ready(function(){{ writeResult('', '{ex.Message}'); }}) </script> "; } }
public void Delete_OnClick(object sender, EventArgs e) { if (!Page.IsPostBack || !Page.IsValid) { return; } try { var channelIdList = TranslateUtils.StringCollectionToIntList(AuthRequest.GetQueryString("ChannelIDCollection")); channelIdList.Sort(); channelIdList.Reverse(); var channelIdListToDelete = new List <int>(); foreach (var channelId in channelIdList) { if (channelId == SiteId) { continue; } if (HasChannelPermissions(channelId, ConfigManager.ChannelPermissions.ChannelDelete)) { channelIdListToDelete.Add(channelId); } } var builder = new StringBuilder(); foreach (var channelId in channelIdListToDelete) { builder.Append(ChannelManager.GetChannelName(SiteId, channelId)).Append(","); } if (builder.Length > 0) { builder.Length -= 1; } if (_deleteContents) { SuccessMessage(bool.Parse(RblRetainFiles.SelectedValue) == false ? "成功删除内容以及生成页面!" : "成功删除内容,生成页面未被删除!"); foreach (var channelId in channelIdListToDelete) { var tableName = ChannelManager.GetTableName(SiteInfo, channelId); var contentIdList = DataProvider.ContentDao.GetContentIdList(tableName, channelId); DeleteManager.DeleteContents(SiteInfo, channelId, contentIdList); DataProvider.ContentDao.UpdateTrashContents(SiteId, channelId, tableName, contentIdList); } AuthRequest.AddSiteLog(SiteId, "清空栏目下的内容", $"栏目:{builder}"); } else { if (bool.Parse(RblRetainFiles.SelectedValue) == false) { DeleteManager.DeleteChannels(SiteInfo, channelIdListToDelete); SuccessMessage("成功删除栏目以及相关生成页面!"); } else { SuccessMessage("成功删除栏目,相关生成页面未被删除!"); } foreach (var channelId in channelIdListToDelete) { var tableName = ChannelManager.GetTableName(SiteInfo, channelId); DataProvider.ContentDao.UpdateTrashContentsByChannelId(SiteId, channelId, tableName); DataProvider.ChannelDao.Delete(SiteId, channelId); } AuthRequest.AddSiteLog(SiteId, "删除栏目", $"栏目:{builder}"); } AddWaitAndRedirectScript(ReturnUrl); } catch (Exception ex) { FailMessage(ex, _deleteContents ? "删除内容失败!" : "删除栏目失败!"); LogUtils.AddErrorLog(ex); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds")); var isRetainFiles = request.GetPostBool("isRetainFiles"); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentDelete)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } if (!isRetainFiles) { DeleteManager.DeleteContents(siteInfo, channelId, contentIdList); } var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); if (contentIdList.Count == 1) { var contentId = contentIdList[0]; var contentTitle = DataProvider.ContentDao.GetValue(tableName, contentId, ContentAttribute.Title); request.AddSiteLog(siteId, channelId, contentId, "删除内容", $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, channelId)},内容标题:{contentTitle}"); } else { request.AddSiteLog(siteId, "批量删除内容", $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, channelId)},内容条数:{contentIdList.Count}"); } DataProvider.ContentDao.UpdateTrashContents(siteId, channelId, tableName, contentIdList); CreateManager.TriggerContentChangedEvent(siteId, channelId); return(Ok(new { Value = contentIdList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public void init(ArrayList pieceList) { this.pieceList = pieceList; delManager = GameObject.Find ("DeleteManager").GetComponent<DeleteManager> (); createManager = GameObject.Find ("CreateManager").GetComponent<CreateManager> (); }
private static async Task CreateContentAsync(SiteInfo siteInfo, ChannelInfo channelInfo, int contentId) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { return; } if (!contentInfo.IsChecked) { DeleteManager.DeleteContent(siteInfo, channelInfo.Id, contentId); return; } //引用链接,不需要生成内容页;引用内容,需要生成内容页; if (contentInfo.ReferenceId > 0 && ETranslateContentTypeUtils.GetEnumType(contentInfo.GetString(ContentAttribute.TranslateContentType)) != ETranslateContentType.ReferenceContent) { return; } if (!string.IsNullOrEmpty(contentInfo.GetString(ContentAttribute.LinkUrl))) { return; } if (siteInfo.Additional.IsCreateStaticContentByAddDate && contentInfo.AddDate < siteInfo.Additional.CreateStaticContentAddDate) { return; } var templateInfo = TemplateManager.GetContentTemplateInfo(siteInfo.Id, channelInfo.Id); var pageInfo = new PageInfo(channelInfo.Id, contentId, siteInfo, templateInfo, new Dictionary <string, object>()); var contextInfo = new ContextInfo(pageInfo) { ContextType = EContextType.Content, ContentInfo = contentInfo }; var filePath = PathUtility.GetContentPageFilePath(siteInfo, pageInfo.PageChannelId, contentInfo, 0); var contentBuilder = new StringBuilder(TemplateManager.GetTemplateContent(siteInfo, templateInfo)); var stlLabelList = StlParserUtility.GetStlLabelList(contentBuilder.ToString()); //如果标签中存在<stl:content type="PageContent"></stl:content> if (StlParserUtility.IsStlContentElementWithTypePageContent(stlLabelList)) //内容存在 { var stlElement = StlParserUtility.GetStlContentElementWithTypePageContent(stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); contentBuilder.Replace(stlElement, stlElementTranslated); var innerBuilder = new StringBuilder(stlElement); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); var pageContentHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(ContentUtility.PagePlaceHolder, pageContentHtml) + 1; //一共需要的页数 Parser.Parse(pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = pageInfo.Clone(); var index = pageContentHtml.IndexOf(ContentUtility.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? pageContentHtml.Length : index; var pageHtml = pageContentHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, channelInfo.Id, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(siteInfo, thePageInfo.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); if (index != -1) { pageContentHtml = pageContentHtml.Substring(length + ContentUtility.PagePlaceHolder.Length); } } } //如果标签中存在<stl:pageContents> else if (StlParserUtility.IsStlElementExists(StlPageContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageContentsElementParser = new StlPageContents(stlElement, pageInfo, contextInfo); int totalNum; var pageCount = pageContentsElementParser.GetPageCount(out totalNum); Parser.Parse(pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = pageInfo.Clone(); var pageHtml = pageContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, true); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, channelInfo.Id, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(siteInfo, thePageInfo.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } //如果标签中存在<stl:pageChannels> else if (StlParserUtility.IsStlElementExists(StlPageChannels.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageChannels.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageChannelsElementParser = new StlPageChannels(stlElement, pageInfo, contextInfo); var pageCount = pageChannelsElementParser.GetPageCount(out _); Parser.Parse(pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = pageInfo.Clone(); var pageHtml = pageChannelsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, channelInfo.Id, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(siteInfo, thePageInfo.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } //如果标签中存在<stl:pageSqlContents> else if (StlParserUtility.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageSqlContentsElementParser = new StlPageSqlContents(stlElement, pageInfo, contextInfo); var pageCount = pageSqlContentsElementParser.GetPageCount(out _); Parser.Parse(pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = pageInfo.Clone(); var pageHtml = pageSqlContentsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, channelInfo.Id, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(siteInfo, thePageInfo.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } else //无翻页 { Parser.Parse(pageInfo, contextInfo, contentBuilder, filePath, false); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, contentBuilder); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var channelContentIds = MinContentInfo.ParseMinContentInfoList(request.GetPostString("channelContentIds")); var isRetainFiles = request.GetPostBool("isRetainFiles"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentDelete)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } if (!isRetainFiles) { foreach (var channelContentId in channelContentIds) { DeleteManager.DeleteContent(siteInfo, channelContentId.ChannelId, channelContentId.Id); } } var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); if (channelContentIds.Count == 1) { var channelContentId = channelContentIds[0]; var contentTitle = DataProvider.ContentDao.GetValue(tableName, channelContentId.Id, ContentAttribute.Title); request.AddSiteLog(siteId, channelContentId.ChannelId, channelContentId.Id, "删除内容", $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, channelContentId.ChannelId)},内容标题:{contentTitle}"); } else { request.AddSiteLog(siteId, "批量删除内容", $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, channelId)},内容条数:{channelContentIds.Count}"); } foreach (var distinctChannelId in channelContentIds.Select(x => x.ChannelId).Distinct()) { var contentIdList = channelContentIds.Where(x => x.ChannelId == distinctChannelId) .Select(x => x.Id).ToList(); DataProvider.ContentDao.UpdateTrashContents(siteId, distinctChannelId, tableName, contentIdList); CreateManager.TriggerContentChangedEvent(siteId, distinctChannelId); } return(Ok(new { Value = true })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public override void Submit_OnClick(object sender, EventArgs e) { if (!Page.IsPostBack || !Page.IsValid) { return; } try { foreach (var channelId in _idsDictionary.Keys) { var tableName = ChannelManager.GetTableName(SiteInfo, channelId); var contentIdList = _idsDictionary[channelId]; if (!_isDeleteFromTrash) { if (bool.Parse(RblRetainFiles.SelectedValue) == false) { DeleteManager.DeleteContents(SiteInfo, channelId, contentIdList); SuccessMessage("成功删除内容以及生成页面!"); } else { SuccessMessage("成功删除内容,生成页面未被删除!"); } if (contentIdList.Count == 1) { var contentId = contentIdList[0]; var contentTitle = DataProvider.ContentDao.GetValue(tableName, contentId, ContentAttribute.Title); AuthRequest.AddSiteLog(SiteId, channelId, contentId, "删除内容", $"栏目:{ChannelManager.GetChannelNameNavigation(SiteId, channelId)},内容标题:{contentTitle}"); } else { AuthRequest.AddSiteLog(SiteId, "批量删除内容", $"栏目:{ChannelManager.GetChannelNameNavigation(SiteId, channelId)},内容条数:{contentIdList.Count}"); } DataProvider.ContentDao.UpdateTrashContents(SiteId, channelId, tableName, contentIdList); //引用内容,需要删除 //var siteTableNameList = SiteManager.GetTableNameList(); //foreach (var siteTableName in siteTableNameList) //{ // var targetContentIdList = DataProvider.ContentDao.GetReferenceIdList(siteTableName, contentIdList); // if (targetContentIdList.Count > 0) // { // var targetContentInfo = ContentManager.GetContentInfo(siteTableName, TranslateUtils.ToInt(targetContentIdList[0].ToString())); // DataProvider.ContentDao.DeleteContents(targetContentInfo.SiteId, siteTableName, targetContentIdList, targetContentInfo.ChannelId); // } //} CreateManager.TriggerContentChangedEvent(SiteId, channelId); } else { SuccessMessage("成功从回收站清空内容!"); DataProvider.ContentDao.DeleteContents(SiteId, tableName, contentIdList, channelId); AuthRequest.AddSiteLog(SiteId, "从回收站清空内容", $"内容条数:{contentIdList.Count}"); } } AddWaitAndRedirectScript(_returnUrl); } catch (Exception ex) { LogUtils.AddErrorLog(ex); FailMessage(ex, "删除内容失败!"); } }
internal DeleteWhere(DeleteManager <TableType> manager) : base(manager) { }
internal DeleteBase(DeleteManager <TableType> manager) { this.manager = manager; }
private void ProcessDataRequest(DataRequest dataRequest, IClient client) { // the collection name is case insensitive var key = DataStores.Keys.FirstOrDefault(k => dataRequest.CollectionName.ToLower() == k.ToLower()); DataStore dataStore = null; if (key != null) { dataStore = DataStores.TryGetValue(key); } else { // for now there is one special table containing the activity log. It is always non persistent and it has an LRU eviction policy if (dataRequest.CollectionName.ToLower() == "@activity") { dataStore = _serviceContainer.Log.ActivityTable; } } if (dataStore == null) { throw new NotSupportedException("Unknown collection : " + dataRequest.CollectionName); } Dbg.Trace($"begin processing {dataRequest.AccessType} request on server {ShardIndex}"); var lockManager = _serviceContainer.LockManager; if (dataRequest.AccessType == DataAccessType.Write) { if (dataRequest is DomainDeclarationRequest) { if (PersistenceEngine != null) { throw new NotSupportedException( "Domain declaration can only be used in cache mode (without persistence)"); } } if (dataRequest is EvictionSetupRequest) { if (PersistenceEngine != null) { throw new NotSupportedException( "Eviction can only be used in cache mode (without persistence)"); } } lockManager.DoWithWriteLock(() => { if (dataRequest is RemoveManyRequest removeManyRequest) { var mgr = new DeleteManager(dataStore, PersistenceEngine); mgr.ProcessRequest(removeManyRequest, client); } else if (dataRequest is PutRequest putRequest) { var mgr = new PutManager(PersistenceEngine, _serviceContainer.FeedSessionManager, dataStore, _serviceContainer.Log); mgr.ProcessRequest(putRequest, client); } else if (dataRequest is DomainDeclarationRequest domainDeclarationRequest) { var mgr = new CacheOnlyManager(dataStore); mgr.ProcessRequest(domainDeclarationRequest, client); } else if (dataRequest is EvictionSetupRequest evictionSetupRequest) { var mgr = new CacheOnlyManager(dataStore); mgr.ProcessRequest(evictionSetupRequest, client); } }, dataRequest.CollectionName); } else { if (dataRequest.SessionId != default)// request inside a consistent read context { if (lockManager.CheckLock(dataRequest.SessionId, false, dataRequest.CollectionName)) { if (dataRequest is GetRequest getRequest) { new QueryManager(dataStore, _serviceContainer.Log).ProcessRequest(getRequest, client); } else if (dataRequest is EvalRequest evalRequest) { new QueryManager(dataStore).ProcessRequest(evalRequest, client); } else if (dataRequest is PivotRequest pivotRequest) { new QueryManager(dataStore).ProcessRequest(pivotRequest, client); } } else { throw new NotSupportedException("Data request with session received but no session is active"); } } else // simple request { lockManager.DoWithReadLock(() => { if (dataRequest is GetRequest getRequest) { new QueryManager(dataStore, _serviceContainer.Log).ProcessRequest(getRequest, client); } else if (dataRequest is EvalRequest evalRequest) { new QueryManager(dataStore).ProcessRequest(evalRequest, client); } else if (dataRequest is PivotRequest pivotRequest) { new QueryManager(dataStore).ProcessRequest(pivotRequest, client); } }, dataRequest.CollectionName); } } Dbg.Trace($"end processing {dataRequest.AccessType} request on server {ShardIndex}"); }