Exemplo n.º 1
0
 public LoginModule()
 {
     Get["/Login"] = r =>
     {
         var model = SystemConfig.SystemTitle;
         return(View["Index", model]);
     };
     Get["/Login/Exit"] = r =>
     {
         return(this.LogoutAndRedirect("/Login"));
     };
     Post["/Login/Info"] = x =>
     {
         var info = this.Bind <Users>();
         JsonBaseModel <Users> user = UserAccess.Login(info.UserName, info.PassWord, Request.UserHostAddress);
         if (!user.HasError && user.Result != null)
         {
             return(this.LoginAndRedirect(Guid.Parse(user.Result.UserId), cookieExpiry: DateTime.Now.AddDays(2), fallbackRedirectUrl: "/Home"));
         }
         else
         {
             return(Response.AsJson(user));
         }
     };
 }
Exemplo n.º 2
0
        protected JsonResult SuccessResult(string message = "")
        {
            JsonBaseModel basemodel = new JsonBaseModel();

            basemodel.Success = true;
            basemodel.Message = message;

            return(Json(basemodel, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 保存配置信息
        /// </summary>
        /// <param name="value">配置信息</param>
        public JsonBaseModel <string> Save(OptionViewModel value)
        {
            JsonBaseModel <string> result = new JsonBaseModel <string>();

            result.HasError = true;
            string GroupType = value.Group.GroupType;

            if (value.Group == null || string.IsNullOrEmpty(GroupType) || value.ListOptions == null)
            {
                result.Message = "保存参数配置时发生参数空异常";
                return(result);
            }
            //调用保存前处理事件
            ConfigOption curConfigOption = AllConfig.First(e => e.GroupType.Equals(GroupType, StringComparison.OrdinalIgnoreCase));

            if (curConfigOption == null)
            {
                //如果没有找到匹配项
                result.Message = string.Format("当前保存配置信息{0}不对应后台的任务配置类", GroupType);
                return(result);
            }
            if (!curConfigOption.BeforeSave(value))
            {
                result.Message = "当前配置项不允许保存";
                return(result);
            }

            //保存数据

            try
            {
                //删除原有数据
                SQLHelper.ExecuteNonQuery("Delete from Configuration_Options WHERE OptionType=@OptionType", new { OptionType = GroupType });
                //保存数据
                foreach (var item in value.ListOptions)
                {
                    item.OptionId = Guid.NewGuid().ToString("N");
                    SQLHelper.ExecuteNonQuery(@"INSERT INTO Configuration_Options(OptionId,OptionType,OptionName,[Key],Value,ValueType) 
                    select @OptionId,@OptionType,@OptionName,@Key,@Value,@ValueType", item);
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("系统参数配置保存异常", ex);
                result.Message = ex.Message;
                return(result);
            }

            //对当前配置项进行赋值
            SetValue(curConfigOption, value.ListOptions);

            //调用保存后处理事件
            curConfigOption.AfterSave(curConfigOption);
            result.HasError = false;
            return(result);
        }
Exemplo n.º 4
0
        protected JsonResult FailResult(string message = "")
        {
            JsonBaseModel basemodel = new JsonBaseModel();

            basemodel.Success = false;
            basemodel.Message = message;

            var result = new JsonResult();

            result.Data = basemodel;
            return(Json(basemodel, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 5
0
 /// <summary>
 /// 根据条件查询任务
 /// </summary>
 /// <param name="condition">查询条件</param>
 /// <returns>符合条件的任务</returns>
 public static JsonBaseModel<List<TaskUtil>> Query(QueryCondition condition)
 {
     JsonBaseModel<List<TaskUtil>> result = new JsonBaseModel<List<TaskUtil>>();
     if (string.IsNullOrEmpty(condition.SortField))
     {
         condition.SortField = "CreatedOn";
         condition.SortOrder = "DESC";
     }
     Hashtable ht = Pagination.QueryBase<TaskUtil>("SELECT * FROM p_Task", condition);
     result.Result = ht["data"] as List<TaskUtil>;
     result.TotalCount = Convert.ToInt32(ht["total"]);
     result.TotalPage = result.CalculateTotalPage(condition.PageSize, result.TotalCount.Value, condition.IsPagination);
     return result;
 }
Exemplo n.º 6
0
        /// <summary>
        /// 根据条件查询任务
        /// </summary>
        /// <param name="condition">查询条件</param>
        /// <returns>符合条件的任务</returns>
        public static JsonBaseModel <List <TaskUtil> > Query(QueryCondition condition)
        {
            JsonBaseModel <List <TaskUtil> > result = new JsonBaseModel <List <TaskUtil> >();

            if (string.IsNullOrEmpty(condition.SortField))
            {
                condition.SortField = "CreatedOn";
                condition.SortOrder = "DESC";
            }
            Hashtable ht = Pagination.QueryBase <TaskUtil>("SELECT * FROM t_Tasks", condition);

            result.Result     = ht["data"] as List <TaskUtil>;
            result.TotalCount = Convert.ToInt32(ht["total"]);
            result.TotalPage  = result.CalculateTotalPage(condition.PageSize, result.TotalCount.Value, condition.IsPagination);
            return(result);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 计算任务下次运行时间
        /// </summary>
        /// <param name="CronExpressionString"></param>
        /// <returns>下次运行时间</returns>
        private static JsonBaseModel <DateTime> GetTaskeLastRunTime(string CronExpressionString)
        {
            JsonBaseModel <DateTime> result = new JsonBaseModel <DateTime>();

            try
            {
                //计算下次任务运行时间
                result.Result = QuartzHelper.GetTaskeFireTime(CronExpressionString, 1)[0];
            }
            catch (Exception ex)
            {
                result.HasError = true;
                result.Message  = "任务Cron表达式设置错误";
                LogHelper.WriteLog("任务Cron表达式设置错误", ex);
            }
            return(result);
        }
Exemplo n.º 8
0
        public TaskModule() : base("Task")
        {
            //任务列表
            Get["/Grid"] = r =>
            {
                return(View["Grid"]);
            };
            //任务编辑界面
            Get["/Edit"] = r =>
            {
                return(View["Edit"]);
            };

            //取数接口API
            #region
            Get["/GetById/{Id}"] = r =>
            {
                JsonBaseModel <TaskUtil> result = new JsonBaseModel <TaskUtil>();
                try
                {
                    //取出单条记录数据
                    string TaskId = r.Id;
                    result.Result = TaskHelper.GetById(TaskId);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message  = ex.Message;
                }
                return(Response.AsJson(result));
            };

            //列表查询接口
            Post["/PostQuery"] = r =>
            {
                QueryCondition condition = this.Bind <QueryCondition>();
                return(Response.AsJson(TaskHelper.Query(condition)));
            };

            //保存数据
            Post["/"] = r =>
            {
                TaskUtil TaskUtil = this.Bind <TaskUtil>();
                return(Response.AsJson(TaskHelper.SaveTask(TaskUtil)));
            };
            //更新数据
            Put["/"] = r =>
            {
                TaskUtil TaskUtil = this.Bind <TaskUtil>();
                return(Response.AsJson(TaskHelper.SaveTask(TaskUtil)));
            };
            //删除任务接口
            Delete["/{Id}"] = r =>
            {
                JsonBaseModel <string> result = new JsonBaseModel <string>();
                try
                {
                    string TaskId = r.Id;
                    TaskHelper.DeleteById(TaskId);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message  = ex.Message;
                }
                return(Response.AsJson(result));
            };

            //更新任务运行状态
            Put["/{Id}/{Status:int}"] = r =>
            {
                JsonBaseModel <string> result = new JsonBaseModel <string>();
                try
                {
                    TaskStatus Status = Enum.ToObject(typeof(TaskStatus), r.Status);
                    string     TaskId = r.Id;
                    TaskHelper.UpdateTaskStatus(TaskId, Status);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message  = ex.Message;
                }
                return(Response.AsJson(result));
            };
            #endregion
        }
Exemplo n.º 9
0
        public TaskModule()
            : base("Task")
        {
            //任务列表
            Get["/Grid"] = r =>
            {
                return View["Grid"];
            };
            //任务编辑界面
            Get["/Edit"] = r =>
            {
                return View["Edit"];
            };

            #region "取数接口API"

            //立即运行一次任务
            Get["/Run/{Id}"] = r =>
            {
                //取出单条记录数据
                string TaskId = r.Id;
                JsonBaseModel<string> result = new JsonBaseModel<string>();
                try
                {
                    TaskHelper.RunById(TaskId);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message = ex.Message;
                }
                return Response.AsJson(result);
            };

            Get["/GetById/{Id}"] = r =>
            {
                JsonBaseModel<TaskUtil> result = new JsonBaseModel<TaskUtil>();
                try
                {
                    //取出单条记录数据
                    string TaskId = r.Id;
                    result.Result = TaskHelper.GetById(TaskId);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message = ex.Message;
                }
                return Response.AsJson(result);
            };

            //列表查询接口
            Post["/PostQuery"] = r =>
            {
                QueryCondition condition = this.Bind<QueryCondition>();
                return Response.AsJson(TaskHelper.Query(condition));
            };

            //保存数据
            Post["/"] = r =>
            {
                TaskUtil TaskUtil = this.Bind<TaskUtil>();
                return Response.AsJson(TaskHelper.SaveTask(TaskUtil));
            };
            //更新数据
            Put["/"] = r =>
            {
                TaskUtil TaskUtil = this.Bind<TaskUtil>();
                return Response.AsJson(TaskHelper.SaveTask(TaskUtil));
            };
            //删除任务接口
            Delete["/{Id}"] = r =>
            {
                JsonBaseModel<string> result = new JsonBaseModel<string>();
                try
                {
                    string TaskId = r.Id;
                    TaskHelper.DeleteById(TaskId);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message = ex.Message;
                }
                return Response.AsJson(result);
            };

            //更新任务运行状态
            Put["/{Id}/{Status:int}"] = r =>
            {
                JsonBaseModel<string> result = new JsonBaseModel<string>();
                try
                {
                    TaskStatus Status = Enum.ToObject(typeof(TaskStatus), r.Status);
                    string TaskId = r.Id;
                    TaskHelper.UpdateTaskStatus(TaskId, Status);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message = ex.Message;
                }
                return Response.AsJson(result);
            };
            #endregion
        }
Exemplo n.º 10
0
        /// <summary>
        /// 保存任务
        /// </summary>
        /// <param name="value">任务</param>
        /// <returns>保存结果</returns>
        public static JsonBaseModel<string> SaveTask(TaskUtil value)
        {
            JsonBaseModel<string> result = new JsonBaseModel<string>();
            result.HasError = true;
            if (value == null)
            {
                result.Message = "参数空异常";
                return result;
            }

            #region "校验"
            if (string.IsNullOrEmpty(value.TaskName))
            {
                result.Message = "任务名称不能为空";
                return result;
            }
            if (string.IsNullOrEmpty(value.Assembly))
            {
                result.Message = "程序集名称不能为空";
                return result;
            }
            if (string.IsNullOrEmpty(value.CronExpressionString))
            {
                result.Message = "Cron表达式不能为空";
                return result;
            }
            if (!QuartzHelper.ValidExpression(value.CronExpressionString))
            {
                result.Message = "Cron表达式格式不正确";
                return result;
            }
            if (string.IsNullOrEmpty(value.CronRemark))
            {
                result.Message = "表达式说明不能为空";
                return result;
            }
            if (string.IsNullOrEmpty(value.Class))
            {
                result.Message = "类名不能为空";
                return result;
            }
            #endregion

            JsonBaseModel<DateTime> cronResult = null;
            try
            {
                //新增
                if (value.TaskID == Guid.Empty)
                {
                    value.TaskID = Guid.NewGuid();
                    //任务状态处理

                    cronResult = GetTaskeLastRunTime(value.CronExpressionString);
                    if (cronResult.HasError)
                    {
                        result.Message = cronResult.Message;
                        return result;
                    }
                    else
                    {
                        value.LastRunTime = cronResult.Result;
                    }
                    //添加新任务
                    QuartzHelper.ScheduleJob(value);

                    SQLHelper.ExecuteNonQuery(InsertSQL, value);
                }
                else
                {
                    value.ModifyOn = DateTime.Now;
                    TaskUtil srcTask = GetById(value.TaskID.ToString());

                    //表达式改变了重新计算下次运行时间
                    if (!value.CronExpressionString.Equals(srcTask.CronExpressionString, StringComparison.OrdinalIgnoreCase))
                    {
                        cronResult = GetTaskeLastRunTime(value.CronExpressionString);
                        if (cronResult.HasError)
                        {
                            result.Message = cronResult.Message;
                            return result;
                        }
                        else
                        {
                            value.LastRunTime = cronResult.Result;
                        }

                        //更新任务
                        QuartzHelper.ScheduleJob(value, true);
                    }
                    else
                    {
                        value.LastRunTime = srcTask.LastRunTime;
                    }

                    SQLHelper.ExecuteNonQuery(UpdateSQL, value);
                }

                result.HasError = false;
                result.Result = value.TaskID.ToString();
            }
            catch (Exception ex)
            {
                result.HasError = true;
                result.Message = ex.Message;
            }
            return result;
        }
Exemplo n.º 11
0
 /// <summary>
 /// 计算任务下次运行时间
 /// </summary>
 /// <param name="CronExpressionString"></param>
 /// <returns>下次运行时间</returns>
 private static JsonBaseModel<DateTime> GetTaskeLastRunTime(string CronExpressionString)
 {
     JsonBaseModel<DateTime> result = new JsonBaseModel<DateTime>();
     try
     {
         //计算下次任务运行时间
         result.Result = QuartzHelper.GetTaskeFireTime(CronExpressionString, 1)[0];
     }
     catch (Exception ex)
     {
         result.HasError = true;
         result.Message = "任务Cron表达式设置错误";
         LogHelper.WriteLog("任务Cron表达式设置错误", ex);
     }
     return result;
 }
Exemplo n.º 12
0
 public UserModule() : base("User")
 {
     Get["/"]           = x => View["Grid"];
     Get["/Edit"]       = x => View["Edit"];
     Post["/PostQuery"] = r =>
     {
         QueryCondition condition = this.Bind <QueryCondition>();
         return(Response.AsJson(UserAccess.Query(condition)));
     };
     Put["/{Id}/{Status:int}"] = r =>
     {
         JsonBaseModel <string> result = new JsonBaseModel <string>();
         try
         {
             UserAccess.UpdUserStatus(r.Id, r.Status);
         }
         catch (Exception ex)
         {
             result.HasError = true;
             result.Message  = ex.Message;
         }
         return(Response.AsJson(result));
     };
     Delete["/{Id}"] = r =>
     {
         JsonBaseModel <string> result = new JsonBaseModel <string>();
         try
         {
             string TaskId = r.Id;
             UserAccess.DeleteById(TaskId);
         }
         catch (Exception ex)
         {
             result.HasError = true;
             result.Message  = ex.Message;
         }
         return(Response.AsJson(result));
     };
     Post["/"] = r =>
     {
         var user = this.Bind <Users>();
         return(Response.AsJson(UserAccess.SaveUser(user)));
     };
     Put["/"] = r =>
     {
         var user = this.Bind <Users>();
         return(Response.AsJson(UserAccess.SaveUser(user)));
     };
     Get["/GetById/{Id}"] = r =>
     {
         JsonBaseModel <Users> result = new JsonBaseModel <Users>();
         try
         {
             //取出单条记录数据
             string TaskId = r.Id;
             result.Result = UserAccess.GetById(TaskId);
         }
         catch (Exception ex)
         {
             result.HasError = true;
             result.Message  = ex.Message;
         }
         return(Response.AsJson(result));
     };
 }
Exemplo n.º 13
0
        public TaskLogModule() : base("TaskLog")
        {
            //任务列表
            Get["/Grid"] = r =>
            {
                return(View["Grid"]);
            };
            //任务日志查看界面
            Get["/View"] = r =>
            {
                return(View["View"]);
            };
            //取数接口API
            #region
            Get["/GetById/{Id}"] = r =>
            {
                JsonBaseModel <TaskLogUtil> result = new JsonBaseModel <TaskLogUtil>();
                try
                {
                    //取出单条记录数据
                    string LogID = r.Id;
                    result.Result = TaskHelper.GetLogById(LogID);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message  = ex.Message;
                }
                return(Response.AsJson(result));
            };

            //列表查询接口
            Post["/PostQuery"] = r =>
            {
                QueryCondition condition = this.Bind <QueryCondition>();
                return(Response.AsJson(TaskHelper.QueryLog(condition)));
            };
            //删除7天前任务日志接口
            Delete["/Delete7DayAgoLog"] = r =>
            {
                JsonBaseModel <string> result = new JsonBaseModel <string>();
                try
                {
                    TaskHelper.DeleteLog(7);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message  = ex.Message;
                }
                return(Response.AsJson(result));
            };
            //删除任务接口
            Delete["/{Id}"] = r =>
            {
                JsonBaseModel <string> result = new JsonBaseModel <string>();
                try
                {
                    string LogId = r.Id;
                    TaskHelper.DeleteLogById(LogId);
                }
                catch (Exception ex)
                {
                    result.HasError = true;
                    result.Message  = ex.Message;
                }
                return(Response.AsJson(result));
            };

            #endregion
        }
Exemplo n.º 14
0
        /// <summary>
        /// 保存任务
        /// </summary>
        /// <param name="value">任务</param>
        /// <returns>保存结果</returns>
        public static JsonBaseModel <string> SaveTask(TaskUtil value)
        {
            JsonBaseModel <string> result = new JsonBaseModel <string>();

            result.HasError = true;
            if (value == null)
            {
                result.Message = "参数空异常";
                return(result);
            }

            #region "校验"
            if (string.IsNullOrEmpty(value.TaskName))
            {
                result.Message = "任务名称不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(value.Assembly))
            {
                result.Message = "程序集名称不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(value.CronExpressionString))
            {
                result.Message = "Cron表达式不能为空";
                return(result);
            }
            if (!QuartzHelper.ValidExpression(value.CronExpressionString))
            {
                result.Message = "Cron表达式格式不正确";
                return(result);
            }
            if (string.IsNullOrEmpty(value.CronRemark))
            {
                result.Message = "表达式说明不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(value.Class))
            {
                result.Message = "类名不能为空";
                return(result);
            }
            #endregion

            JsonBaseModel <DateTime> cronResult = null;
            try
            {
                //新增
                if (value.TaskID == string.Empty || value.TaskID.Equals("00000000-0000-0000-0000-000000000000"))
                {
                    value.TaskID    = Guid.NewGuid().ToString();
                    value.CreatedOn = DateTime.Now;
                    //任务状态处理

                    cronResult = GetTaskeLastRunTime(value.CronExpressionString);
                    if (cronResult.HasError)
                    {
                        result.Message = cronResult.Message;
                        return(result);
                    }
                    else
                    {
                        value.LastRunTime = cronResult.Result;
                    }
                    //添加新任务
                    QuartzHelper.ScheduleJob(value);

                    SQLHelper.ExecuteNonQuery(InsertSQL, value);
                }
                else
                {
                    value.ModifyOn = DateTime.Now;
                    TaskUtil srcTask = GetById(value.TaskID.ToString());

                    //表达式改变了重新计算下次运行时间
                    if (!value.CronExpressionString.Equals(srcTask.CronExpressionString, StringComparison.OrdinalIgnoreCase))
                    {
                        cronResult = GetTaskeLastRunTime(value.CronExpressionString);
                        if (cronResult.HasError)
                        {
                            result.Message = cronResult.Message;
                            return(result);
                        }
                        else
                        {
                            value.LastRunTime = cronResult.Result;
                        }
                        //更新任务
                        QuartzHelper.ScheduleJob(value, true);
                    }
                    else
                    {
                        value.LastRunTime = srcTask.LastRunTime;
                    }

                    SQLHelper.ExecuteNonQuery(UpdateSQL, value);
                }

                result.HasError = false;
                result.Result   = value.TaskID.ToString();
            }
            catch (Exception ex)
            {
                result.HasError = true;
                result.Message  = ex.Message;
            }
            return(result);
        }