//================================ 事件 ================================ #region 交易时间管理窗体 TradeTimeManagerUI_Load /// <summary> /// 交易时间管理窗体 TradeTimeManagerUI_Load /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TradeTimeManagerUI_Load(object sender, EventArgs e) { try { if (EditType == (int)UITypes.EditTypeEnum.AddUI) { m_CM_BourseType = new CM_BourseType(); m_CM_TradeTime = new CM_TradeTime(); _dtTradeTime.Columns.Add(gdvTradeTimeSelect.Columns[0].FieldName, Type.GetType("System.String")); //添加时在自定义的交易时间DataTabel中新增2列 _dtTradeTime.Columns.Add(gdvTradeTimeSelect.Columns[1].FieldName, Type.GetType("System.String")); _dtTradeTime.Columns.Add(gdvTradeTimeSelect.Columns[2].FieldName, Type.GetType("System.String")); this.btnUpdateTradeTime.Enabled = false; this.btnOk.Text = "确定"; } if (EditType == (int)UITypes.EditTypeEnum.UpdateUI) { UpdateInitData(); QueryCMTradeTime(); this.btnOk.Text = "修改交易所类型"; } } catch (Exception ex) { string errCode = "GL-4440"; string errMsg = "交易时间管理窗体加载失败!"; var exception = new VTException(errCode, errMsg, ex); LogHelper.WriteError(exception.ToString(), exception.InnerException); return; } }
/// <summary> ///比较交易时间 /// </summary> /// <param name="cMTradeTimeList">交易时间集合</param> /// <returns></returns> public CM_TradeTime CompareTradeTime(List <CM_TradeTime> cMTradeTimeList) { try { CM_TradeTime cM_TradeTime = new CM_TradeTime(); DateTime _tempStartTime = AppGlobalVariable.INIT_DATETIME; DateTime _tempEndTime = AppGlobalVariable.INIT_DATETIME; DateTime _changeStartTime = AppGlobalVariable.INIT_DATETIME; //某条记录的开始时间 DateTime _changeEndTime = AppGlobalVariable.INIT_DATETIME; //某条记录的结束时间 string timeFormat = string.Empty; //存时间格式 bool isStartTime = true; //标志开始值是否改变 bool isEndTime = true; //标志结束值是否改变 for (int i = 0; i < cMTradeTimeList.Count; i++) { timeFormat = ((DateTime)cMTradeTimeList[i].StartTime).ToString("HH:mm"); _changeStartTime = Convert.ToDateTime(timeFormat); timeFormat = ((DateTime)cMTradeTimeList[i].EndTime).ToString("HH:mm"); _changeEndTime = Convert.ToDateTime(timeFormat); if (isStartTime) { timeFormat = ((DateTime)cMTradeTimeList[0].StartTime).ToString("HH:mm"); _tempStartTime = Convert.ToDateTime(timeFormat); //转换成当前日期的时间 cM_TradeTime.StartTime = _tempStartTime; } if (isEndTime) { timeFormat = ((DateTime)cMTradeTimeList[0].EndTime).ToString("HH:mm"); _tempEndTime = Convert.ToDateTime(timeFormat); //转换成当前日期的时间 cM_TradeTime.EndTime = _tempEndTime; } if (_tempStartTime > _changeStartTime) { _tempStartTime = _changeStartTime; cM_TradeTime.StartTime = _tempStartTime; isStartTime = false; } if (_tempEndTime < _changeEndTime) { _tempEndTime = _changeEndTime; cM_TradeTime.EndTime = _tempEndTime; isEndTime = false; } } return(cM_TradeTime); } catch (Exception ex) { string errCode = "GL-4749"; string errMsg = "比较交易时间失败!"; VTException exception = new VTException(errCode, errMsg, ex); LogHelper.WriteError(exception.ToString(), exception.InnerException); return(null); } }
/// <summary> /// 修改交易时间(修改数据库中已存在的记录) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUpdateTradeTime_Click(object sender, EventArgs e) { try { if (gdvTradeTimeSelect.DataSource != null && gdvTradeTimeSelect.RowCount > 0) { var cM_TradeTime = new CM_TradeTime(); if (m_TradeTimeID == AppGlobalVariable.INIT_INT) { ShowMessageBox.ShowInformation("请选择更新数据!"); return; } DataRow _dr = gdvTradeTimeSelect.GetDataRow(gdvTradeTimeSelect.FocusedRowHandle); int tradeTimeID = Convert.ToInt32(_dr["TradeTimeID"]);//交易时间ID cM_TradeTime.TradeTimeID = m_TradeTimeID; cM_TradeTime.BourseTypeID = m_BourseTypeID; if ((DateTime)tmTradeStartTime.EditValue < (DateTime)tmTradeEndTime.EditValue) { cM_TradeTime.StartTime = Convert.ToDateTime(tmTradeStartTime.Text); cM_TradeTime.EndTime = Convert.ToDateTime(tmTradeEndTime.Text); //根据交易所类型ID获取相关交易时间 List <CM_TradeTime> cmTradeTimeList = CommonParameterSetCommon.GetCMTradeTimeListArray(string.Format("BourseTypeID={0}", m_BourseTypeID)); if (cmTradeTimeList.Count > 0) { DateTime tradeStartTime = (DateTime)tmTradeStartTime.EditValue; string startTime = tradeStartTime.ToString("HH:mm"); DateTime dtTStartTime = Convert.ToDateTime(startTime); //转换成当前日期的时间 DateTime tradeEndTime = (DateTime)tmTradeEndTime.EditValue; string endTime = tradeEndTime.ToString("HH:mm"); DateTime dtTEndTime = Convert.ToDateTime(endTime); //转换成当前日期的时间 for (int i = 0; i < cmTradeTimeList.Count; i++) { i = m_IsCompareRow; if (cmTradeTimeList[i].TradeTimeID == tradeTimeID)//不与自己比较 { m_IsCompareRow++; if (m_IsCompareRow == cmTradeTimeList.Count) //记录比较的行数=当前的总行数时退出循环 { string msg = string.Empty; m_Result = CommonParameterSetCommon.UpdateCMTradeTime(cM_TradeTime);//, ref msg); if (m_Result) { ShowMessageBox.ShowInformation("交易时间修改成功!"); m_IsCompareRow = 0; ClearAll(); } else { ShowMessageBox.ShowInformation("交易时间修改失败!"); } QueryCMTradeTime(); break; } continue; } CM_TradeTime _cmTradeTime = cmTradeTimeList[i]; DateTime _isstartTime = Convert.ToDateTime(_cmTradeTime.StartTime); string isStartTime = _isstartTime.ToString("HH:mm"); DateTime dtInDrStartTime = Convert.ToDateTime(isStartTime); //转换成当前日期的时间 DateTime _isendTime = Convert.ToDateTime(_cmTradeTime.EndTime); string isEndTime = _isendTime.ToString("HH:mm"); DateTime dtInDrEndTime = Convert.ToDateTime(isEndTime); //转换成当前日期的时间 if (!(dtTEndTime < dtInDrStartTime)) { if ((dtTEndTime < dtInDrEndTime) || (dtTEndTime == dtInDrEndTime)) { ShowMessageBox.ShowInformation("开始时间和结束时间的时间区间不能重复!"); return; } else { if (!(dtTStartTime > dtInDrEndTime)) { ShowMessageBox.ShowInformation("开始时间和结束时间的时间区间不能重复!"); return; } } } m_IsCompareRow++; if (m_IsCompareRow == cmTradeTimeList.Count) //记录比较的行数=当前的总行数时退出循环 { string msg = string.Empty; m_Result = CommonParameterSetCommon.UpdateCMTradeTime(cM_TradeTime);//, ref msg); if (m_Result) { ShowMessageBox.ShowInformation("修改成功!"); m_IsCompareRow = 0; ClearAll(); QueryCMTradeTime(); } else { //MessageBox.Show("修改失败!", "系统提示"); ShowMessageBox.ShowInformation("修改失败!"); m_IsCompareRow = 0; } break; } } } } else { ShowMessageBox.ShowInformation("开始时间需小于结束时间!"); return; } } } catch (Exception ex) { string errCode = "GL-4443"; string errMsg = "修改交易所类型_交易时间失败!"; var exception = new VTException(errCode, errMsg, ex); LogHelper.WriteError(exception.ToString(), exception.InnerException); return; } }
/// <summary> /// 保存交易的类型和交易时间到数据库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOk_Click(object sender, EventArgs e) { try { if (EditType == (int)UITypes.EditTypeEnum.AddUI) { if (!string.IsNullOrEmpty(this.txtBourseTypeName.Text)) { if (!CommonParameterSetCommon.IsExistBourseTypeName(this.txtBourseTypeName.Text)) { ShowMessageBox.ShowInformation("交易所名称已经存在!"); return; } } else { ShowMessageBox.ShowInformation("交易所名称不能为空!"); return; } } //交易所类型 CM_BourseType cM_BourseType = new CM_BourseType(); if (CMBourseType != null) { ManagementCenter.Model.CommonClass.UtilityClass.CopyEntityToEntity(CMBourseType, cM_BourseType); cM_BourseType.BourseTypeName = this.txtBourseTypeName.Text; if ((DateTime)tmCounFromSubmitStartTime.EditValue < (DateTime)tmCounFromSubmitEndTime.EditValue) { cM_BourseType.CounterFromSubmitStartTime = Convert.ToDateTime(this.tmCounFromSubmitStartTime.Text); cM_BourseType.CounterFromSubmitEndTime = Convert.ToDateTime(this.tmCounFromSubmitEndTime.Text); } else { ShowMessageBox.ShowInformation("开始时间需小于结束时间!"); return; } cM_BourseType.ISSysDefaultBourseType = (int)GTA.VTS.Common.CommonObject.Types.IsYesOrNo.No;//用户添加的交易所不是系统默认交易所 } if (EditType == (int)UITypes.EditTypeEnum.AddUI) { List <CM_TradeTime> cmTradeTimeList = new List <CM_TradeTime>(); if (_dtTradeTime != null && _dtTradeTime.Rows.Count > 0) { foreach (DataRow _dr in _dtTradeTime.Rows) { //交易时间 CM_TradeTime cM_TradeTime = new CM_TradeTime(); //cM_TradeTime.BourseTypeID =; cM_TradeTime.StartTime = Convert.ToDateTime(_dr[this.gdvTradeTimeSelect.Columns[1].FieldName]); cM_TradeTime.EndTime = Convert.ToDateTime(_dr[this.gdvTradeTimeSelect.Columns[2].FieldName]); cmTradeTimeList.Add(cM_TradeTime); } } else { ShowMessageBox.ShowInformation("请填写交易时间!"); return; } int _BourseTypeMaxID = CommonParameterSetCommon.GetCMBourseTypeMaxId(); if (_BourseTypeMaxID != AppGlobalVariable.INIT_INT) { if (_BourseTypeMaxID > 100) //交易所类型表中的最大ID大于系统默认的ID,100时 { cM_BourseType.BourseTypeID = _BourseTypeMaxID; //因为在DAL层返回的最大ID已经加1 } else { cM_BourseType.BourseTypeID = 100 + 1; } } int result = CommonParameterSetCommon.AddCMBourseTypeAndTradeTime(cM_BourseType, cmTradeTimeList); if (result != AppGlobalVariable.INIT_INT) { ShowMessageBox.ShowInformation("添加成功!"); this.ClearAll(); this.DialogResult = DialogResult.OK; this.Close(); } else { ShowMessageBox.ShowInformation("添加失败!"); } } else if (EditType == (int)UITypes.EditTypeEnum.UpdateUI) //此处只修改交易所类型 { bool _Result = CommonParameterSetCommon.UpdateCMBourseType(cM_BourseType); //, ref msg); if (_Result) { ShowMessageBox.ShowInformation("交易所类型修改成功!"); this.DialogResult = DialogResult.OK; this.Close(); } else { ShowMessageBox.ShowInformation("交易所类型修改失败!"); } } } catch (Exception ex) { string errCode = "GL-4447"; string errMsg = "保存交易的类型和交易时间到数据库失败!"; var exception = new VTException(errCode, errMsg, ex); LogHelper.WriteError(exception.ToString(), exception.InnerException); return; } }
/// <summary> /// 添加交易时间 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddTradeTime_Click(object sender, EventArgs e) { try { if (EditType == (int)UITypes.EditTypeEnum.AddUI) { DataRow _dr = _dtTradeTime.NewRow(); if (!string.IsNullOrEmpty(this.txtBourseTypeName.Text)) { _dr[gdvTradeTimeSelect.Columns[0].FieldName] = this.txtBourseTypeName.Text; //BourseTypeName; } if ((DateTime)tmTradeStartTime.EditValue < (DateTime)tmTradeEndTime.EditValue) { _dr[gdvTradeTimeSelect.Columns[1].FieldName] = tmTradeStartTime.Text; _dr[gdvTradeTimeSelect.Columns[2].FieldName] = tmTradeEndTime.Text; } else { ShowMessageBox.ShowInformation("开始时间需小于结束时间!"); return; } if (_dtTradeTime.Rows.Count == 0) { _dtTradeTime.Rows.Add(_dr); } else { DateTime tradeStartTime = (DateTime)tmTradeStartTime.EditValue; string startTime = tradeStartTime.ToString("HH:mm"); DateTime dtTStartTime = Convert.ToDateTime(startTime);//转换成当前日期的时间 DateTime tradeEndTime = (DateTime)tmTradeEndTime.EditValue; string endTime = tradeEndTime.ToString("HH:mm"); DateTime dtTEndTime = Convert.ToDateTime(endTime);//转换成当前日期的时间 for (int i = 0; i < _dtTradeTime.Rows.Count; i++) { i = m_IsCompareRow; DateTime _isstartTime = Convert.ToDateTime(_dtTradeTime.Rows[i][this.gdvTradeTimeSelect.Columns[1].FieldName]); string isStartTime = _isstartTime.ToString("HH:mm"); DateTime dtInDrStartTime = Convert.ToDateTime(isStartTime);//转换成当前日期的时间 DateTime _isendTime = Convert.ToDateTime(_dtTradeTime.Rows[i][this.gdvTradeTimeSelect.Columns[2].FieldName]); string isEndTime = _isendTime.ToString("HH:mm"); DateTime dtInDrEndTime = Convert.ToDateTime(isEndTime);//转换成当前日期的时间 if (dtTEndTime < dtInDrStartTime) { _dtTradeTime.Rows.Add(_dr); } else { if ((dtTEndTime < dtInDrEndTime) || (dtTEndTime == dtInDrEndTime)) { ShowMessageBox.ShowInformation("开始时间和结束时间的时间区间不能重复!"); return; } else { if (dtTStartTime > dtInDrEndTime) { _dtTradeTime.Rows.Add(_dr); } else { ShowMessageBox.ShowInformation("开始时间和结束时间的时间区间不能重复!"); return; } } } m_IsCompareRow++; if (m_IsCompareRow == _dtTradeTime.Rows.Count - 1)//记录比较的行数=当前的总行数-1时退出循环 { break; } } } gdTradeTimeResult.DataSource = _dtTradeTime; } if (EditType == (int)UITypes.EditTypeEnum.UpdateUI)//直接添加的数据库中 { if ((DateTime)tmTradeStartTime.EditValue < (DateTime)tmTradeEndTime.EditValue) { var cM_TradeTime = new CM_TradeTime(); if (m_BourseTypeID != AppGlobalVariable.INIT_INT) { cM_TradeTime.BourseTypeID = m_BourseTypeID; } else { cM_TradeTime.BourseTypeID = AppGlobalVariable.INIT_INT; } cM_TradeTime.StartTime = Convert.ToDateTime(tmTradeStartTime.Text); cM_TradeTime.EndTime = Convert.ToDateTime(tmTradeEndTime.Text); //根据交易所类型ID获取相关交易时间 List <CM_TradeTime> cmTradeTimeList = CommonParameterSetCommon.GetCMTradeTimeListArray(string.Format("BourseTypeID={0}", m_BourseTypeID)); if (cmTradeTimeList.Count > 0) { DateTime tradeStartTime = (DateTime)tmTradeStartTime.EditValue; string startTime = tradeStartTime.ToString("HH:mm"); DateTime dtTStartTime = Convert.ToDateTime(startTime); //转换成当前日期的时间 DateTime tradeEndTime = (DateTime)tmTradeEndTime.EditValue; string endTime = tradeEndTime.ToString("HH:mm"); DateTime dtTEndTime = Convert.ToDateTime(endTime); //转换成当前日期的时间 for (int i = 0; i < cmTradeTimeList.Count; i++) { i = m_IsCompareRow; CM_TradeTime _cmTradeTime = cmTradeTimeList[i]; DateTime _isstartTime = Convert.ToDateTime(_cmTradeTime.StartTime); string isStartTime = _isstartTime.ToString("HH:mm"); DateTime dtInDrStartTime = Convert.ToDateTime(isStartTime); //转换成当前日期的时间 DateTime _isendTime = Convert.ToDateTime(_cmTradeTime.EndTime); string isEndTime = _isendTime.ToString("HH:mm"); DateTime dtInDrEndTime = Convert.ToDateTime(isEndTime); //转换成当前日期的时间 if (!(dtTEndTime < dtInDrStartTime)) { if ((dtTEndTime < dtInDrEndTime) || (dtTEndTime == dtInDrEndTime)) { ShowMessageBox.ShowInformation("开始时间和结束时间的时间区间不能重复!"); return; } else { if (!(dtTStartTime > dtInDrEndTime)) { ShowMessageBox.ShowInformation("开始时间和结束时间的时间区间不能重复!"); return; } } } m_IsCompareRow++; if (m_IsCompareRow == cmTradeTimeList.Count) //记录比较的行数=当前的总行数时退出循环 { int result = CommonParameterSetCommon.AddCMTradeTime(cM_TradeTime); //, ref msg); if (result != AppGlobalVariable.INIT_INT) { ShowMessageBox.ShowInformation("交易时间添加成功!"); ClearAll(); m_IsCompareRow = 0; QueryCMTradeTime(); } else { ShowMessageBox.ShowInformation("交易时间添加失败!"); m_IsCompareRow = 0; } break; } } } } else { ShowMessageBox.ShowInformation("开始时间需小于结束时间!"); return; } } } catch (Exception ex) { string errCode = "GL-4441"; string errMsg = "添加交易所类型_交易时间失败!"; var exception = new VTException(errCode, errMsg, ex); LogHelper.WriteError(exception.ToString(), exception.InnerException); return; } }
/// <summary> /// 根据交易时间ID,删除交易时间 /// </summary> /// <param name="TradeTimeID">交易时间ID</param> /// <returns></returns> public bool DeleteCMTradeTime(int TradeTimeID) { DbConnection Conn = null; Database db = DatabaseFactory.CreateDatabase(); Conn = db.CreateConnection(); if (Conn.State != ConnectionState.Open) { Conn.Open(); } DbTransaction tran = Conn.BeginTransaction(); try { //return cM_TradeTimeDAL.Delete(TradeTimeID); CM_TradeTimeDAL cM_TradeTimeDAL = new CM_TradeTimeDAL(); CM_BourseTypeDAL cM_BourseTypeDAL = new CM_BourseTypeDAL(); CM_TradeTime cMTradeTime = cM_TradeTimeDAL.GetModel(TradeTimeID); if (cMTradeTime != null) { //交易所类型ID int bourseTypeID = AppGlobalVariable.INIT_INT; bourseTypeID = (int)cMTradeTime.BourseTypeID; bool deleTTimeResult = cM_TradeTimeDAL.Delete(TradeTimeID); if (!deleTTimeResult) { tran.Rollback(); return(false); } if (bourseTypeID != AppGlobalVariable.INIT_INT) { //根据交易所类型ID获取并查找最早的交易开始时间和最晚的交易结束时间 List <CM_TradeTime> cmTTimeList = cM_TradeTimeDAL.GetListArray(string.Format("BourseTypeID={0}", bourseTypeID), tran, db); if (cmTTimeList.Count > 0) { CM_TradeTime cmTradeTime = CompareTradeTime(cmTTimeList); if (cmTradeTime != null) { bool result = cM_BourseTypeDAL.Update(bourseTypeID, (DateTime)cmTradeTime.StartTime, (DateTime)cmTradeTime.EndTime, tran, db); if (!result) { tran.Rollback(); return(false); } } tran.Commit(); } } } return(true); } catch (Exception ex) { tran.Rollback(); string errCode = "GL-4741"; string errMsg = " 根据交易时间ID,删除交易时间失败!"; VTException exception = new VTException(errCode, errMsg, ex); LogHelper.WriteError(exception.ToString(), exception.InnerException); return(false); } finally { if (Conn.State == ConnectionState.Open) { Conn.Close(); } } }
/// <summary> /// 添加交易时间 /// </summary> /// <param name="model">交易所类型_交易时间实体</param> /// <returns></returns> public int AddCMTradeTime(ManagementCenter.Model.CM_TradeTime model) { DbConnection Conn = null; Database db = DatabaseFactory.CreateDatabase(); Conn = db.CreateConnection(); if (Conn.State != ConnectionState.Open) { Conn.Open(); } DbTransaction tran = Conn.BeginTransaction(); try { CM_TradeTimeDAL cM_TradeTimeDAL = new CM_TradeTimeDAL(); CM_BourseTypeDAL cM_BourseTypeDAL = new CM_BourseTypeDAL(); //int tradeTimeID = (int)model.TradeTimeID; int addTTimeResult = AppGlobalVariable.INIT_INT; //交易所类型ID int bourseTypeID = AppGlobalVariable.INIT_INT; bourseTypeID = (int)model.BourseTypeID; addTTimeResult = cM_TradeTimeDAL.Add(model, tran, db); if (addTTimeResult == AppGlobalVariable.INIT_INT) { tran.Rollback(); return(AppGlobalVariable.INIT_INT); } if (bourseTypeID != AppGlobalVariable.INIT_INT) { //根据交易所类型ID获取并查找最早的交易开始时间和最晚的交易结束时间 List <CM_TradeTime> cmTTimeList = cM_TradeTimeDAL.GetListArray(string.Format("BourseTypeID={0}", bourseTypeID), tran, db); if (cmTTimeList.Count > 0) { CM_TradeTime cmTradeTime = CompareTradeTime(cmTTimeList); if (cmTradeTime != null) { bool result = cM_BourseTypeDAL.Update(bourseTypeID, (DateTime)cmTradeTime.StartTime, (DateTime)cmTradeTime.EndTime, tran, db); if (!result) { tran.Rollback(); return(AppGlobalVariable.INIT_INT); } } tran.Commit(); } } return(addTTimeResult); } catch (Exception ex) { tran.Rollback(); string errCode = "GL-4740"; string errMsg = "添加交易时间失败!"; VTException exception = new VTException(errCode, errMsg, ex); LogHelper.WriteError(exception.ToString(), exception.InnerException); return(AppGlobalVariable.INIT_INT); } finally { if (Conn.State == ConnectionState.Open) { Conn.Close(); } } }