/// <summary>
        /// 重建索引
        /// </summary>
        /// <param name="code">CODE</param>
        /// <returns></returns>
        public ActionResult RebuildIndex(string code)
        {
            ISearcher searcher = SearcherFactory.GetSearcher(code);

            string name            = searcher.Name;
            string manageIndexUrl  = SiteUrls.Instance().ManageIndex();
            string rebuildIndexUrl = SiteUrls.Instance().RebuildIndex(code);

            #region 操作日志
            OperationLogEntry log = new OperationLogEntry();
            log.DateCreated         = DateTime.UtcNow;
            log.OperatorUserId      = currentUser.UserId;
            log.Operator            = currentUser.DisplayName;
            log.OperatorIP          = Tunynet.Utilities.WebUtility.GetIP();
            log.OperationType       = EntityOperationType.Update.ToString();
            log.OperationObjectName = "重建" + name + "索引";
            log.Source    = "索引管理";
            log.AccessUrl = rebuildIndexUrl;
            #endregion

            string url = SiteUrls.Instance().ControlPanelOperating("正在执行[重建\"" + name + "\"索引]操作,请耐心等待", manageIndexUrl, rebuildIndexUrl);

            searcher.RebuildIndex();

            log.Description = "重建" + name + "索引成功";
            logService.Create(log);

            return(Redirect(SiteUrls.Instance().ControlPanelSuccess("执行成功", SiteUrls.Instance().ManageIndex())));
        }
        void UserOperationLogProcesser_After(User sender, CommonEventArgs eventArgs)
        {
            if (eventArgs.EventOperationType == EventOperationType.Instance().BanUser() ||
                eventArgs.EventOperationType == EventOperationType.Instance().UnbanUser() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Update())
            {
                OperationLogService logService = new OperationLogService();
                logService = Tunynet.DIContainer.Resolve <OperationLogService>();
                IUserService userService = DIContainer.Resolve <IUserService>();

                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);
                entry.ApplicationId       = 0;
                entry.Source              = string.Empty;
                entry.OperationObjectName = sender.UserName;
                entry.OperationObjectId   = 0;
                if (eventArgs.EventOperationType == EventOperationType.Instance().Update())
                {
                    entry.OperationType = "UpdateUser";
                    entry.Description   = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_Update"), "用户", entry.OperationObjectName);
                }
                else
                {
                    entry.OperationType = eventArgs.EventOperationType;
                    entry.Description   = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType), entry.OperationObjectName);
                }
                logService.Create(entry);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 问题操作日志事件处理
        /// </summary>
        private void AskQuestionOperationLogEventModule_After(AskQuestion senders, CommonEventArgs eventArgs)
        {
            if (eventArgs.EventOperationType == EventOperationType.Instance().Delete() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Approved() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Disapproved() ||
                eventArgs.EventOperationType == EventOperationType.Instance().SetEssential() ||
                eventArgs.EventOperationType == EventOperationType.Instance().SetSticky() ||
                eventArgs.EventOperationType == EventOperationType.Instance().CancelEssential() ||
                eventArgs.EventOperationType == EventOperationType.Instance().CancelSticky())
            {
                //if (eventArgs.EventOperationType == EventOperationType.Instance().SetEssential()
                //  || eventArgs.EventOperationType == EventOperationType.Instance().CancelEssential())
                //{
                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);
                entry.ApplicationId       = eventArgs.ApplicationId;
                entry.Source              = AskConfig.Instance().ApplicationName;
                entry.OperationType       = eventArgs.EventOperationType;
                entry.OperationObjectName = senders.Subject;
                entry.OperationObjectId   = senders.QuestionId;
                entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType, entry.ApplicationId), "问题", entry.OperationObjectName);

                OperationLogService logService = Tunynet.DIContainer.Resolve <OperationLogService>();
                logService.Create(entry);
            }
        }
Beispiel #4
0
        private void RewardAndPunishmentUser_After(IUser sender, RewardAndPunishmentUserEventArgs eventArgs)
        {
            OperationLogService logService = new OperationLogService();

            logService = Tunynet.DIContainer.Resolve <OperationLogService>();
            OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);

            entry.ApplicationId       = 0;
            entry.Source              = string.Empty;
            entry.OperationType       = eventArgs.EventOperationType;
            entry.OperationObjectName = sender.UserName;
            entry.OperationObjectId   = sender.UserId;
            entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType), entry.OperationObjectName);
            logService.Create(entry);
        }
        void UserOperationLogEventMoudle_After(User sender, DeleteUserEventArgs eventArgs)
        {
            OperationLogService logService = new OperationLogService();

            logService = Tunynet.DIContainer.Resolve <OperationLogService>();

            OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);

            entry.ApplicationId       = 0;
            entry.Source              = string.Empty;
            entry.OperationType       = EventOperationType.Instance().DeleteUser();
            entry.OperationObjectName = sender.UserName;
            entry.OperationObjectId   = 0;
            entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + entry.OperationType), entry.OperationObjectName);
            logService.Create(entry);
        }
Beispiel #6
0
        /// <summary>
        /// 回答操作日志事件处理
        /// </summary>
        private void AskAnswerOperationLogEventModule_After(AskAnswer senders, CommonEventArgs eventArgs)
        {
            if (eventArgs.EventOperationType == EventOperationType.Instance().Delete())
            {
                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);

                entry.ApplicationId       = entry.ApplicationId;
                entry.Source              = AskConfig.Instance().ApplicationName;
                entry.OperationType       = eventArgs.EventOperationType;
                entry.OperationObjectName = StringUtility.Trim(senders.Body, 20);
                entry.OperationObjectId   = senders.QuestionId;
                entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType), "回答", entry.OperationObjectName);

                OperationLogService logService = Tunynet.DIContainer.Resolve <OperationLogService>();
                logService.Create(entry);
            }
        }
        /// <summary>
        /// 资讯操作日志事件处理
        /// </summary>
        private void ContentFolderOperationLogEventModule_After(ContentFolder sender, CommonEventArgs eventArgs)
        {
            if (eventArgs.EventOperationType == EventOperationType.Instance().Create() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Update() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Delete()
                )
            {
                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);
                entry.ApplicationId       = CmsConfig.Instance().ApplicationId;
                entry.Source              = CmsConfig.Instance().ApplicationName;
                entry.OperationType       = eventArgs.EventOperationType;
                entry.OperationObjectName = sender.FolderName;
                entry.OperationObjectId   = sender.ContentFolderId;
                entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType, entry.ApplicationId), "资讯栏目", entry.OperationObjectName);

                OperationLogService logService = Tunynet.DIContainer.Resolve <OperationLogService>();
                logService.Create(entry);
            }
        }
Beispiel #8
0
        void PermissionOperationLogEventMoudle_BatchAfter(IEnumerable <PermissionItemInUserRole> senders, CommonEventArgs eventArgs)
        {
            //只记录批量更新操作
            if (eventArgs.EventOperationType != EventOperationType.Instance().Update())
            {
                return;
            }
            OperationLogService logService        = Tunynet.DIContainer.Resolve <OperationLogService>();
            PermissionService   permissionService = new PermissionService();

            OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);

            entry.ApplicationId = 0;
            entry.Source        = string.Empty;
            entry.OperationType = eventArgs.EventOperationType;
            IEnumerable <string> roleNames = senders.Select(n => n.RoleName).Distinct();

            entry.OperationObjectName = string.Join(",", roleNames);
            entry.OperationObjectId   = 0;
            entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType), "权限", entry.OperationObjectName);
            logService.Create(entry);
        }
Beispiel #9
0
        /// <summary>
        /// 微博操作日志事件处理
        /// </summary>
        private void MicroblogOperationLogEventModule_After(MicroblogEntity senders, CommonEventArgs eventArgs)
        {
            if (eventArgs.EventOperationType == EventOperationType.Instance().Delete() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Approved() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Disapproved() ||
                eventArgs.EventOperationType == EventOperationType.Instance().SetEssential() ||
                eventArgs.EventOperationType == EventOperationType.Instance().SetSticky() ||
                eventArgs.EventOperationType == EventOperationType.Instance().CancelEssential() ||
                eventArgs.EventOperationType == EventOperationType.Instance().CancelSticky())
            {
                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);
                entry.ApplicationId       = entry.ApplicationId;
                entry.Source              = MicroblogConfig.Instance().ApplicationName;
                entry.OperationType       = eventArgs.EventOperationType;
                entry.OperationObjectName = StringUtility.Trim(senders.Body, 20);
                entry.OperationObjectId   = senders.MicroblogId;
                entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType, entry.ApplicationId), "微博", entry.OperationObjectName);

                OperationLogService logService = Tunynet.DIContainer.Resolve <OperationLogService>();
                logService.Create(entry);
            }
        }
        void UserOperationLogEventMoudle_BatchAfter(IEnumerable <User> senders, CommonEventArgs eventArgs)
        {
            //只有批量激活用户、取消激活用户、管制用户、取消管制用户时,才记录到操作日志
            if (eventArgs.EventOperationType == EventOperationType.Instance().ActivateUser() ||
                eventArgs.EventOperationType == EventOperationType.Instance().CancelActivateUser() ||
                eventArgs.EventOperationType == EventOperationType.Instance().ModerateUser() ||
                eventArgs.EventOperationType == EventOperationType.Instance().CancelModerateUser())
            {
                OperationLogService logService = new OperationLogService();
                logService = Tunynet.DIContainer.Resolve <OperationLogService>();
                IUserService userService = DIContainer.Resolve <IUserService>();

                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);
                entry.ApplicationId = 0;
                entry.Source        = string.Empty;
                entry.OperationType = eventArgs.EventOperationType;
                IEnumerable <string> userNames = senders.Select(n => n.UserName);
                entry.OperationObjectName = string.Join(",", userNames);
                entry.OperationObjectId   = 0;
                entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType), entry.OperationObjectName);
                logService.Create(entry);
            }
        }
Beispiel #11
0
        /// <summary>
        /// 照片操作日志事件处理
        /// </summary>
        private void PhotoOperationLogEventModule_After(Photo senders, CommonEventArgs eventArgs)
        {
            if (eventArgs.EventOperationType == EventOperationType.Instance().Delete() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Approved() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Disapproved() ||
                eventArgs.EventOperationType == EventOperationType.Instance().SetEssential() ||
                eventArgs.EventOperationType == EventOperationType.Instance().SetSticky() ||
                eventArgs.EventOperationType == EventOperationType.Instance().CancelEssential() ||
                eventArgs.EventOperationType == EventOperationType.Instance().CancelSticky())
            {
                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);

                entry.ApplicationId       = entry.ApplicationId;
                entry.Source              = PhotoConfig.Instance().ApplicationName;
                entry.OperationType       = eventArgs.EventOperationType;
                entry.OperationObjectName = string.IsNullOrEmpty(senders.Description) ? "照片" : senders.Description;
                entry.OperationObjectId   = senders.PhotoId;
                entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType, entry.ApplicationId), "照片", entry.OperationObjectName);

                OperationLogService logService = Tunynet.DIContainer.Resolve <OperationLogService>();
                logService.Create(entry);
            }
        }
Beispiel #12
0
        /// <summary>
        /// 资讯操作日志事件处理
        /// </summary>
        private void RecommendOperationLogEventModule_After(RecommendItem sender, CommonEventArgs eventArgs)
        {
            if (eventArgs.EventOperationType == EventOperationType.Instance().Create() ||
                eventArgs.EventOperationType == EventOperationType.Instance().Delete())
            {
                TenantTypeService tenantTypeService = new TenantTypeService();
                TenantType        tenantType        = tenantTypeService.Get(sender.TenantTypeId);
                if (tenantType == null)
                {
                    return;
                }

                OperationLogEntry entry = new OperationLogEntry(eventArgs.OperatorInfo);
                entry.ApplicationId       = tenantType.ApplicationId;
                entry.Source              = tenantType.Name;
                entry.OperationType       = eventArgs.EventOperationType;
                entry.OperationObjectName = sender.ItemName;
                entry.OperationObjectId   = sender.ItemId;
                entry.Description         = string.Format(ResourceAccessor.GetString("OperationLog_Pattern_" + eventArgs.EventOperationType), tenantType.Name + "推荐", entry.OperationObjectName);

                OperationLogService logService = Tunynet.DIContainer.Resolve <OperationLogService>();
                logService.Create(entry);
            }
        }
Beispiel #13
0
        /// <summary>
        /// 奖惩用户
        /// </summary>
        /// <param name="userId">被奖惩用户</param>
        /// <param name="experiencePoints">经验</param>
        /// <param name="reputationPoints">威望</param>
        /// <param name="tradePoints">金币</param>
        /// <param name="description">奖惩理由</param>
        public void Reward(long userId, int experiencePoints, int reputationPoints, int tradePoints, string description)
        {
            if (experiencePoints == 0 && reputationPoints == 0 && tradePoints == 0)
            {
                return;
            }
            IUserService userService = DIContainer.Resolve <IUserService>();
            IUser        user        = userService.GetUser(userId);

            if (user == null)
            {
                throw new ExceptionFacade(string.Format("用户“{0}”不存在或已被删除", userId));
            }
            //1、增减用户积分额并生成用户积分记录;
            bool        isIncome    = experiencePoints > 0 || reputationPoints > 0 || tradePoints > 0;
            PointRecord pointRecord = new PointRecord(userId, isIncome ? ResourceAccessor.GetString("Common_AdminReward") : ResourceAccessor.GetString("Common_AdminPunish"), description, experiencePoints, reputationPoints, tradePoints);

            pointRecordRepository.Insert(pointRecord);
            userService.ChangePoints(userId, experiencePoints, reputationPoints, tradePoints);

            //2、增减系统积分额并生成系统积分记录;
            PointRecord systemPointRecord = new PointRecord(0, isIncome ? ResourceAccessor.GetString("Common_RewardUser") : ResourceAccessor.GetString("Common_PunishUser"), description, -experiencePoints, -reputationPoints, -tradePoints);

            pointRecordRepository.Insert(systemPointRecord);

            ChangeSystemTradePoints(-tradePoints);

            //3、生成操作文章
            OperationLogService logService         = Tunynet.DIContainer.Resolve <OperationLogService>();
            IOperatorInfoGetter operatorInfoGetter = DIContainer.Resolve <IOperatorInfoGetter>();

            if (operatorInfoGetter == null)
            {
                return;
            }

            OperationLogEntry logEntry = new OperationLogEntry(operatorInfoGetter.GetOperatorInfo());

            logEntry.ApplicationId       = 0;
            logEntry.Source              = string.Empty;
            logEntry.OperationType       = EventOperationType.Instance().Update();
            logEntry.OperationObjectName = user.UserName;
            logEntry.OperationObjectId   = userId;

            PointCategory experiencePointCategory = GetPointCategory(PointCategoryKeys.Instance().ExperiencePoints());

            if (experiencePointCategory == null)
            {
                return;
            }
            PointCategory reputationPointCategory = GetPointCategory(PointCategoryKeys.Instance().ReputationPoints());

            if (reputationPointCategory == null)
            {
                return;
            }
            PointCategory tradePointCategory = GetPointCategory(PointCategoryKeys.Instance().TradePoints());

            if (tradePointCategory == null)
            {
                return;
            }

            logEntry.Description = string.Format("{0}“{1}”:{2}{3}{4},{5}{6}{7},{8}{9}{10}",
                                                 isIncome ? ResourceAccessor.GetString("Common_RewardUser") : ResourceAccessor.GetString("Common_PunishUser"), user.UserName,
                                                 experiencePoints, experiencePointCategory.Unit, experiencePointCategory.CategoryName,
                                                 reputationPoints, reputationPointCategory.Unit, reputationPointCategory.CategoryName,
                                                 tradePoints, tradePointCategory.Unit, tradePointCategory.CategoryName);
            logService.Create(logEntry);
        }