protected void btnOK_Click(object sender, EventArgs e) { try { EquipmentInfo equipmentData = EquipmentInfo.GetEquipmentByName(mEQP.EquipmentName); if (mEQP.Tag != equipmentData.Tag) { throw new RuleCimesException(TextMessage.Error.T00747("")); } string EqpID = ciEquipment.Must(lblEquipment); string Reason = csReason.Must(lblReasonCode).Value; EquipmentStateInfo equipmentState = EquipmentStateInfo.GetEquipmentStateByState(ddlNewState.Must(lblNewState).Text); var txnStamp = new TransactionStamp(User.Identity.Name, ProgramRight, ProgramRight, this.ApplicationName); var rcData = csReason.GetBusinessReason().CategoryReason; txnStamp.CategoryReasonCode = rcData; txnStamp.Description = ttbDesc.Text.Trim(); #region 檢查是否有設定機台變更狀態警報,若有,則發送警報 //使用Function取得ALM設定,可彈性使用 //取得機台狀態警報設定,預設是抓取系統資料設定[EquipStateAlarm] AlarmTypeInfo AlarmType = RuleExtendManager.GetEquipmentChangeStateAlarm(equipmentData, ddlNewState.Must(lblNewState).Text); string ALMsg = @"[Subject:{0}][Content:{1}:{2}; {3}:{4}; {5}:{6}; {7}:{8}; {9}:{10}]"; if (AlarmType != null) { // "[Content:TEST][Subject:TEST]" ALMsg = string.Format(ALMsg, ProgramInformationBlock1.Caption, lblEquipment.Text, mEQP.EquipmentName, lblOldState.Text, mEQP.CurrentState, lblNewState.Text, equipmentState.State, lblReasonCode.Text, rcData.Reason, lblDescription.Text, txnStamp.Description); } #endregion using (var cts = CimesTransactionScope.Create()) { EMSTransaction.ChangeState(equipmentData, equipmentState, txnStamp); RuleExtendManager.EquipmentTxnEnd(equipmentData); cts.Complete(); } #region 發送警報 if (AlarmType != null) { AlarmService WebServiceALM = new AlarmService(); string url = "http://" + Request.Url.Host + Request.ApplicationPath + "/ALM/Services/AlarmService.asmx"; WebServiceALM.Url = url; string ReturnMsg = WebServiceALM.LaunchAlarm(AlarmType.GroupRights, AlarmType.TYPE, ALMsg, txnStamp.RecordTime, "UI", User.Identity.Name); } #endregion Response.Redirect(ciMes.Security.UserSetting.GetPreviousListPage(this), false); } catch (Exception ex) { HandleError(ex); } }
public IList <AlarmTypeInfo> GetAlarmTypes() { DataTable tb = getAlarmTypes(); List <AlarmTypeInfo> lst = new List <AlarmTypeInfo>(); if (tb != null && tb.Rows.Count > 0) { foreach (DataRow row in tb.Rows) { AlarmTypeInfo info = new AlarmTypeInfo(); info.DID = int.Parse(row[0].ToString()); info.Type = row[1].ToString(); lst.Add(info); } } return(lst); }
public static AlarmTypeModel ToModel(this AlarmTypeInfo entity) { return(Mapper.Map <AlarmTypeInfo, AlarmTypeModel>(entity)); }