public List <M_Reservation> GetReservations() { var entities = new List <M_Reservation>(); using (var rdr = SqlHelper.ExecuteReader(this._databaseConnectionString, CommandType.Text, SqlCommands_Sc.Sql_M_Reservation_Repository_GetReservations, null)) { while (rdr.Read()) { var entity = new M_Reservation(); entity.Id = SqlTypeConverter.DBNullStringHandler(rdr["Id"]); entity.Name = SqlTypeConverter.DBNullStringHandler(rdr["Name"]); entity.ExpStartTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["ExpStartTime"]); entity.StartTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["StartTime"]); entity.EndTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["EndTime"]); entity.ProjectId = SqlTypeConverter.DBNullStringHandler(rdr["ProjectId"]); entity.Creator = SqlTypeConverter.DBNullStringHandler(rdr["Creator"]); entity.UserId = SqlTypeConverter.DBNullStringHandler(rdr["UserId"]); entity.CreatedTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["CreatedTime"]); entity.Comment = SqlTypeConverter.DBNullStringHandler(rdr["Comment"]); entity.Enabled = SqlTypeConverter.DBNullBooleanHandler(rdr["Enabled"]); entity.Status = SqlTypeConverter.DBNullResultHandler(rdr["Status"]); entities.Add(entity); } } return(entities); }
public List <M_Reservation> GetReservationsInSpan(DateTime start, DateTime end) { SqlParameter[] parms = { new SqlParameter("@expStartTime", SqlDbType.DateTime), new SqlParameter("@endTime", SqlDbType.DateTime) }; parms[0].Value = start; parms[1].Value = end; var entities = new List <M_Reservation>(); using (var rdr = SqlHelper.ExecuteReader(this._databaseConnectionString, CommandType.Text, SqlCommands_Sc.Sql_M_Reservation_Repository_GetReservationsInSpan, parms)) { while (rdr.Read()) { var entity = new M_Reservation(); entity.Id = SqlTypeConverter.DBNullStringHandler(rdr["Id"]); entity.Name = SqlTypeConverter.DBNullStringHandler(rdr["Name"]); entity.ExpStartTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["ExpStartTime"]); entity.StartTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["StartTime"]); entity.EndTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["EndTime"]); entity.ProjectId = SqlTypeConverter.DBNullStringHandler(rdr["ProjectId"]); entity.Creator = SqlTypeConverter.DBNullStringHandler(rdr["Creator"]); entity.UserId = SqlTypeConverter.DBNullStringHandler(rdr["UserId"]); entity.CreatedTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["CreatedTime"]); entity.Comment = SqlTypeConverter.DBNullStringHandler(rdr["Comment"]); entity.Enabled = SqlTypeConverter.DBNullBooleanHandler(rdr["Enabled"]); entity.Status = SqlTypeConverter.DBNullResultHandler(rdr["Status"]); entities.Add(entity); } } return(entities); }
public M_Reservation GetReservation(string id) { SqlParameter[] parms = { new SqlParameter("@Id", SqlDbType.VarChar, 100) }; parms[0].Value = SqlTypeConverter.DBNullStringChecker(id); M_Reservation entity = null; using (var rdr = SqlHelper.ExecuteReader(this._databaseConnectionString, CommandType.Text, SqlCommands_Sc.Sql_M_Reservation_Repository_GetReservation, parms)) { if (rdr.Read()) { entity = new M_Reservation(); entity.Id = SqlTypeConverter.DBNullStringHandler(rdr["Id"]); entity.Name = SqlTypeConverter.DBNullStringHandler(rdr["Name"]); entity.ExpStartTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["ExpStartTime"]); entity.StartTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["StartTime"]); entity.EndTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["EndTime"]); entity.ProjectId = SqlTypeConverter.DBNullStringHandler(rdr["ProjectId"]); entity.Creator = SqlTypeConverter.DBNullStringHandler(rdr["Creator"]); entity.UserId = SqlTypeConverter.DBNullStringHandler(rdr["UserId"]); entity.CreatedTime = SqlTypeConverter.DBNullDateTimeHandler(rdr["CreatedTime"]); entity.Comment = SqlTypeConverter.DBNullStringHandler(rdr["Comment"]); entity.Enabled = SqlTypeConverter.DBNullBooleanHandler(rdr["Enabled"]); entity.Status = SqlTypeConverter.DBNullResultHandler(rdr["Status"]); } } return(entity); }
public JsonResult SaveReservation(ReservationModel model, int action) { try { if (model == null) { throw new ArgumentException("model"); } var startTime = DateTime.Parse(model.expStartDate); var endTime = DateTime.Parse(model.endDate); var interval = endTime.Subtract(startTime); if (interval.TotalSeconds < 0) { throw new iPemException("预约结束时间不能早于预约开始时间"); } //if (interval.TotalSeconds > 86400) throw new iPemException("预约总时长不能超过24个小时"); if (model.nodes == null || model.nodes.Length == 0) { throw new iPemException("未选择需要预约的监控节点"); } var project = _projectService.GetProject(model.projectId); if (project == null) { throw new iPemException("未找到所关联的工程信息"); } if (!(project.StartTime <= startTime && project.EndTime > endTime)) { throw new iPemException("预约时间已超出关联的工程时间"); } if (action == (int)EnmAction.Add) { var newOne = new M_Reservation { Id = model.id, Name = model.name, ExpStartTime = startTime, EndTime = endTime, ProjectId = project.Id, Creator = _workContext.Employee() != null?_workContext.Employee().Name : _workContext.User().Uid, UserId = _workContext.User().Id, CreatedTime = DateTime.Now, Comment = model.comment, Enabled = model.enabled, Status = EnmResult.Undefine }; var nodes = new List <M_NodeInReservation>(); foreach (var node in model.nodes) { var keys = Common.SplitKeys(node); if (keys.Length == 2) { var type = int.Parse(keys[0]); nodes.Add(new M_NodeInReservation { ReservationId = newOne.Id, NodeId = keys[1], NodeType = Enum.IsDefined(typeof(EnmSSH), type) ? (EnmSSH)type : EnmSSH.Area }); } } _reservationService.Add(newOne); _nodesInReservationService.Add(nodes.ToArray()); _webLogger.Information(EnmEventType.Other, string.Format("新增预约[{0}]", newOne.Id), _workContext.User().Id, null); return(Json(new AjaxResultModel { success = true, code = 200, message = "保存成功" })); } else if (action == (int)EnmAction.Edit) { var existed = _reservationService.GetReservation(model.id); if (existed == null) { throw new iPemException("预约不存在,保存失败。"); } if (existed.Creator != (_workContext.Employee() != null ? _workContext.Employee().Name : _workContext.User().Uid)) { throw new iPemException("您没有操作权限。"); } existed.Name = model.name; existed.ExpStartTime = startTime; existed.EndTime = endTime; existed.ProjectId = project.Id; existed.Comment = model.comment; existed.Enabled = model.enabled; existed.Status = EnmResult.Undefine; var nodes = new List <M_NodeInReservation>(); foreach (var node in model.nodes) { var keys = Common.SplitKeys(node); if (keys.Length == 2) { var type = int.Parse(keys[0]); nodes.Add(new M_NodeInReservation { ReservationId = existed.Id, NodeId = keys[1], NodeType = Enum.IsDefined(typeof(EnmSSH), type) ? (EnmSSH)type : EnmSSH.Area }); } } _reservationService.Update(existed); _nodesInReservationService.Remove(existed.Id); _nodesInReservationService.Add(nodes.ToArray()); _webLogger.Information(EnmEventType.Other, string.Format("更新预约[{0}]", model.id), _workContext.User().Id, null); return(Json(new AjaxResultModel { success = true, code = 200, message = "保存成功" })); } throw new ArgumentException("action"); } catch (Exception exc) { _webLogger.Error(EnmEventType.Other, exc.Message, _workContext.User().Id, exc); return(Json(new AjaxResultModel { success = false, code = 400, message = exc.Message })); } }