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)); } }; }
protected JsonResult SuccessResult(string message = "") { JsonBaseModel basemodel = new JsonBaseModel(); basemodel.Success = true; basemodel.Message = message; return(Json(basemodel, JsonRequestBehavior.AllowGet)); }
/// <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); }
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)); }
/// <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; }
/// <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); }
/// <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); }
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 }
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 }
/// <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; }
/// <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; }
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)); }; }
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 }
/// <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); }