/// <summary> /// 编辑问题/取消问题 /// </summary> /// <remarks> /// 1.如果问题未解决(答案被采纳前),提问者及管理员都可以对问题进行编辑,如果修改悬赏分值仅允许追加悬赏分值 /// 2.如果问题已解决(答案被采纳后),则仅允许管理员对问题进行编辑,不允许修改悬赏分值 /// </remarks> public static bool Question_Edit(this Authorizer authorizer, AskQuestion question) { IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { return(false); } //如果问题未解决 if (question.Status == QuestionStatus.Unresolved) { if (question.UserId == currentUser.UserId || authorizer.IsAdministrator(AskConfig.Instance().ApplicationId)) { return(true); } } //如果问题已解决 if (question.Status == QuestionStatus.Resolved) { if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId)) { return(true); } } return(false); }
/// <summary> /// 删除问题 /// </summary> /// <remarks> /// 管理员可以删除问题 /// </remarks> public static bool Question_Delete(this Authorizer authorizer, AskQuestion question) { if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId)) { return(true); } return(false); }
/// <summary> /// 构造函数 /// </summary> /// <param name="name">Searcher名称</param> /// <param name="indexPath">索引文件所在路径(支持"~/"及unc路径)</param> /// <param name="asQuickSearch">是否作为快捷搜索</param> /// <param name="displayOrder">显示顺序</param> public AskSearcher(string name, string indexPath, bool asQuickSearch, int displayOrder) { this.Name = name; this.IndexPath = WebUtility.GetPhysicalFilePath(indexPath); this.AsQuickSearch = asQuickSearch; this.DisplayOrder = displayOrder; searchEngine = SearcherFactory.GetSearchEngine(indexPath); publiclyAuditStatus = auditService.GetPubliclyAuditStatus(AskConfig.Instance().ApplicationId); }
/// <summary> /// 编辑回答 /// </summary> /// <remarks> /// 1.如果问题已解决(答案被采纳后),不允许回答者编辑,其余情况允许回答者编辑 /// 2.管理员可以编辑所有的回答 /// </remarks> public static bool Answer_Edit(this Authorizer authorizer, AskQuestion question, AskAnswer answer) { if (question.Status == QuestionStatus.Unresolved) { if (UserContext.CurrentUser != null && UserContext.CurrentUser.UserId == answer.UserId) { return(true); } } if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId)) { return(true); } return(false); }
/// <summary> /// 将问题设置为精华或取消精华 /// </summary> /// <remarks> /// 管理员可以对问题设为精华或取消精华 /// </remarks> public static bool Question_SetEssential(this Authorizer authorizer) { IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { return(false); } if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId)) { return(true); } return(false); }
/// <summary> /// 管理员或用户可以修改自己的设置 /// </summary> public static bool Ask_UserSetting(this Authorizer authorizer, long userId) { if (userId == 0) { return(false); } IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { return(false); } if (currentUser.UserId == userId) { return(true); } if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId)) { return(true); } return(false); }
/// <summary> /// 是否接受定向提问 /// </summary> /// <param name="userDataKeys"></param> /// <returns></returns> public static string AcceptQuestion(this UserDataKeys userDataKeys) { return(AskConfig.Instance().ApplicationKey + "-AcceptQuestion"); }
/// <summary> /// 用户在用户在问答中的简介 /// </summary> /// <param name="userDataKeys"></param> /// <returns></returns> public static string UserDescription(this UserDataKeys userDataKeys) { return(AskConfig.Instance().ApplicationKey + "-UserDescription"); }
/// <summary> /// 回答被赞同数 /// </summary> public static string AnswerSupportCount(this UserDataKeys userDataKeys) { return(AskConfig.Instance().ApplicationKey + "-AnswerSupportCount"); }
/// <summary> /// 提问数 /// </summary> public static string QuestionCount(this UserDataKeys userDataKeys) { return(AskConfig.Instance().ApplicationKey + "-QuestionCount"); }
/// <summary> /// 用户问答威望 /// </summary> /// <param name="ownerDataKeys"></param> /// <returns></returns> public static string UserAskReputation(this OwnerDataKeys ownerDataKeys) { return(AskConfig.Instance().ApplicationKey + "-UserAskReputation"); }
/// <summary> /// 回答被反对数 /// </summary> public static string AnswerOpposeCount(this OwnerDataKeys ownerDataKeys) { return(AskConfig.Instance().ApplicationKey + "-AnswerOpposeCount"); }
/// <summary> /// 提问数 /// </summary> public static string QuestionCount(this OwnerDataKeys ownerDataKeys) { return(AskConfig.Instance().ApplicationKey + "-ThreadCount"); }