public virtual void MakePickUndo(AdminValue av) { av.ActionId = ForumLogAction.UnPick; AdminUpdate("set IsPicked=0", av.Condition); //取消精华不减少积分 makeLog(av); }
public virtual void MakeStickyUndo(AdminValue av) { av.ActionId = ForumLogAction.UnSticky; AdminUpdate("set Status=" + TopicStatus.Normal, av.Condition); //取消置顶不减少积分 makeLog(av); }
public virtual void MakePick(AdminValue av) { av.ActionId = ForumLogAction.Pick; AdminUpdate("set IsPicked=1", av.Condition); AddAuthorIncome(av.Condition, UserAction.Forum_TopicPicked.Id, "加为精华"); makeLog(av); }
private void makeLog(AdminValue av) { List <ForumTopic> topics = GetByIds(av.Ids); foreach (ForumTopic topic in topics) { logService.AddTopic(av.User, av.AppId, topic.Id, av.ActionId, av.Reason, av.Ip); // 发送短信通知 if (!av.IsSendMsg) { continue; } String msg = ForumLogAction.GetLable(av.ActionId); String title = string.Format(alang.get(typeof(ForumApp), "adminPostMsgTitle"), topic.Title, msg); String topicInfo = "<a href='" + alink.ToAppData(topic) + "'>" + topic.Title + "</a>"; if (av.ActionId == ForumLogAction.Delete) { topicInfo = topic.Title; } String body = string.Format(alang.get(typeof(ForumApp), "adminPostMsgBody"), topicInfo, msg, DateTime.Now, av.Reason); msgService.SiteSend(title, body, topic.Creator); } }
public virtual void MakeSticky(AdminValue av) { av.ActionId = ForumLogAction.Sticky; AdminUpdate("set Status=" + TopicStatus.Sticky, av.Condition); AddAuthorIncome(av.Condition, UserAction.Forum_TopicSticky.Id, "置顶"); makeLog(av); }
public override void After(object returnValue, MethodInfo method, object[] args, object target) { if (method.Name == "DeleteToTrash") { ForumTopic topic = args[0] as ForumTopic; Microblog mblog = Microblog.find("DataId=:id and DataType=:dtype") .set("id", topic.Id) .set("dtype", typeof(ForumTopic).FullName) .first(); if (mblog != null) { mblog.delete(); } } else if (method.Name == "DeleteList") { AdminValue av = args[0] as AdminValue; if (strUtil.HasText(av.Ids)) { String str = "DataType='" + typeof(ForumTopic).FullName + "' and DataId in (" + av.Ids + ")"; Microblog.deleteBatch(str); } } }
public virtual void MakeCategory(int categoryId, AdminValue av) { av.ActionId = ForumLogAction.SetCategory; String action = string.Format("set CategoryId=" + categoryId); ForumTopic.updateBatch(action, av.Condition); makeLog(av); }
public virtual void MakeLockUndo(AdminValue av) { av.ActionId = ForumLogAction.UnLock; AdminUpdate("set IsLocked=0", av.Condition); // 积分规则中本身定义的是负值,所以反操作用SubstractIncome SubstractAuthorIncome(av.Condition, UserAction.Forum_TopicLocked.Id, "取消锁定"); makeLog(av); }
public virtual void MakeLock(AdminValue av) { av.ActionId = ForumLogAction.Lock; AdminUpdate("set IsLocked=1", av.Condition); // 积分规则中本身定义的是负值,所以此处用AddIncome AddAuthorIncome(av.Condition, UserAction.Forum_TopicLocked.Id, "锁定"); makeLog(av); }
public virtual void MakeHighlightUndo(AdminValue av) { av.ActionId = ForumLogAction.UnHighlight; String action = "set TitleStyle=''"; ForumTopic.updateBatch(action, av.Condition); makeLog(av); }
public virtual void MakeHighlight(String style, AdminValue av) { av.ActionId = ForumLogAction.Highlight; String action = string.Format("set TitleStyle='{0}'", style); ForumTopic.updateBatch(action, av.Condition); makeLog(av); }
public virtual void DeleteList(AdminValue av) { av.ActionId = ForumLogAction.Delete; DeleteListToTrash(av.Ids); // 积分规则中本身定义的是负值,所以此处用AddIncome AddAuthorIncome(av.Condition, UserAction.Forum_TopicDeleted.Id, "删除"); makeLog(av); }
public virtual void MakeMove(int targetForumId, AdminValue av) { av.ActionId = ForumLogAction.MoveTopic; String condition = "Id in (" + av.Ids + ")"; String conditionPost = "TopicId in (" + av.Ids + ")"; String action = "set ForumBoardId=" + targetForumId; db.updateBatch <ForumTopic>(action, condition); db.updateBatch <ForumPost>(action, conditionPost); makeLog(av); }
//----------------------------------------------------------------------------------------------------- private AdminValue av() { AdminValue v = new AdminValue(); v.Ids = idList; v.AppId = ctx.app.Id; v.User = (User)ctx.viewer.obj; v.Reason = ctx.PostIsCheck("chkReason") == 1 ? ctx.Post("reasonText") : ctx.Post("reasonSelect"); v.Ip = ctx.Ip; v.IsSendMsg = ctx.PostIsCheck("IsSendMsg") == 1; return(v); }
public virtual void MakeGloablStickyUndo(AdminValue av) { av.ActionId = ForumLogAction.GlobalUnSticky; ForumApp app = db.findById <ForumApp>(av.AppId); if (app == null) { return; } List <ForumTopic> newStickTopics = db.find <ForumTopic>(av.Condition).list(); app.StickyTopic = StickyTopic.SubtractData(app.StickyTopic, newStickTopics); db.update(app); makeLog(av); }
public async Task GetVendorQuestions(int VendorID, Release currentRelease, WindowsPrincipal User) { try { Release updatedRelease; using (IReleaseRepository db = new ReleaseRepository()) { updatedRelease = db.WhereAndInclude(r => r.ReleaseID == currentRelease.ReleaseID, r => r.ReleaseVendors).FirstOrDefault(); } var vendorIDs = updatedRelease.ReleaseVendors.Select(rv => rv.VendorID).ToArray(); IEnumerable <Vendor> Vendors = DbSet.Where(v => vendorIDs.Contains(v.VendorID)) .Include(v => v.VendorAreass) .Include(v => v.VendorAreass.Select(a => a.Area.QuestionAreas)).ToList(); List <int> AreaIDs = new List <int>(); List <int> ReleaseQuestions = new List <int>(); Vendors.ToList().ForEach(v => v.VendorAreass.ToList().ForEach(e => { var IsReleaseArea = currentRelease.ReleaseAreaOwners.Any(a => a.AreaID == e.AreaID && a.IsChecked == true); if (IsReleaseArea) { AreaIDs.Add(e.AreaID); } })); List <int> ReleaseQuestion = new List <int>(); if (AreaIDs.Count > 0) { using (IQuestionRepository db = new QuestionRepository()) { ReleaseQuestions = db.Where(q => AreaIDs.Contains(q.SubArea.AreaID)).Select(q => q.QuestionID).ToList(); } var Qustions = QuestionClasifications.SelectQuestionClasificationsView(Context); var AreaQuestions = Qustions.Where(q => ReleaseQuestions.Contains(q.QuestionID)).ToList(); List <QuestionAreaView> arrQuestions = new List <QuestionAreaView>(); AreaQuestions.ToList().ForEach(e => { AdminValue userValue = AdminValue.NO; switch (e.TableName) { case "Product": { var obj = currentRelease.ReleaseProducts.Count > 0 ? currentRelease.ReleaseProducts.FirstOrDefault(p => p.ProductID == e.ParameterID) : null; userValue = obj != null && obj.IsChecked ? AdminValue.YES : AdminValue.NO; break; } case "FamilyProduct": { var obj = currentRelease.ReleaseFamilyProducts.Count > 0 ? currentRelease.ReleaseFamilyProducts.FirstOrDefault(p => p.FamilyProductID == e.ParameterID) : null; userValue = obj != null && obj.IsChecked ? AdminValue.YES : AdminValue.NO; break; } case "Characteristic": { var obj = currentRelease.ReleaseCharacteristics.Count > 0 ? currentRelease.ReleaseCharacteristics.FirstOrDefault(p => p.CharacteristicID == e.ParameterID) : null; userValue = obj != null && obj.IsChecked ? AdminValue.YES : AdminValue.NO; break; } case "Area": { var obj = currentRelease.ReleaseAreaOwners.Count > 0 ? currentRelease.ReleaseAreaOwners.FirstOrDefault(p => p.AreaID == e.ParameterID) : null; userValue = obj != null && obj.IsChecked ? AdminValue.YES : AdminValue.NO; break; } case "Stakeholder": { var obj = currentRelease.ReleaseStakeholders.Count > 0 ? currentRelease.ReleaseStakeholders.FirstOrDefault(p => p.StakeholderID == e.ParameterID && p.EmployeeID1 != null) : null; userValue = obj != null ? AdminValue.YES : AdminValue.NO; break; } default: break; } ; arrQuestions.Add(new QuestionAreaView() { TableName = e.TableName, ParameterID = e.ParameterID, AdminValue = e.AdminValue, ParameterType = e.ParameterType, QuestionID = e.QuestionID, UserValue = userValue }); }); var AddQuestion = arrQuestions.Where(q => q.ParameterType == ParameterType.Add && (q.UserValue == AdminValue.YES && q.AdminValue == AdminValue.YES)).Select(q => q.QuestionID).Distinct(); var removeQuestions = arrQuestions.Where(q => q.ParameterType == ParameterType.Remove && (q.AdminValue != q.UserValue)).Select(q => q.QuestionID).Distinct(); ReleaseQuestion = AddQuestion.Where(q => !removeQuestions.Contains(q)).ToList(); //if (ReleaseQuestion.Count > 0) //{ //} } using (IQuestionRepository db = new QuestionRepository()) { await db.SetInitiateQuestions(currentRelease, ReleaseQuestion, (WindowsPrincipal)User); } } catch (Exception ex) { throw ex; } }