private void EditSatellite() { var num = txtNumber.Value.Trim(); var t = SatelliteInstance.Find(f => f.id == ParseInt(Utility.Decrypt(hidID.Value))); if (null != t) { var old = SatelliteInstance.Find(f => f.CardNo.Equals(num)); if (null != old && old.id != t.id) { ShowNotification("./satellite_manage.aspx", "Cannot edit the satellite object: The number has exist.", false); } else { SatelliteInstance.Update(f => f.id == t.id, act => { act.CardNo = num; }); SaveHistory(new TB_AccountHistory() { ActionId = ActionInstance.Find(f => f.Name.Equals("EditSat")).id, ObjectA = SatelliteInstance.ToString(t) }); ShowNotification("./satellite_manage.aspx", "You saved the satellite information."); } } else { ShowNotification("./satellite_manage.aspx", "Cannot edit the satellite object: no record exist.", false); } }
/// <summary> /// 解绑终端和卫星模块 /// </summary> private void UnboundSatellite() { var id = int.Parse(hidBoundSatellite.Value.Trim()); var t = TerminalInstance.Find(f => f.id == id); if (null == t) { ShowNotification("./terminal_list.aspx", "Unbind fail: Terminal not exists.", false); } else { if ((int?)null == t.Satellite) { ShowNotification("./terminal_list.aspx", "Unbind fail: No Satellite bound on it.", false); } else { string satno = t.TB_Satellite.CardNo; TerminalInstance.Update(f => f.id == t.id, act => { act.Satellite = (int?)null; // 更新终端的链接为OFF if (act.OnlineStyle == (byte)LinkType.SATELLITE) { act.OnlineStyle = (byte?)null; } // 更新卫星功能为false act.SatelliteStatus = false; }); // 更新设备的链接为OFF EquipmentInstance.Update(f => f.Terminal == t.id, act => { if (act.OnlineStyle == (byte)LinkType.SATELLITE) { act.OnlineStyle = (byte?)null; } act.SatelliteStatus = false; }); SatelliteInstance.Update(f => f.id == t.Satellite, act => { act.Bound = false; }); // 发送解绑卫星模块的命令 SendDD02Command(false, t); SaveHistory(new TB_AccountHistory() { ActionId = ActionInstance.Find(f => f.Name.Equals("UnbindSat")).id, ObjectA = "Ter: " + t.Number + " unbind Sat: " + satno }); ShowNotification("./terminal_list.aspx", "Ter: " + t.Number + " unbind Sat: " + satno + " OK!"); } } }
protected void btBoundSatellite_Click(object sender, EventArgs e) { var value = hidBoundSatellite.Value.Trim(); if (string.IsNullOrEmpty(value)) { return; } // 为终端绑定卫星模块 var index = value.IndexOf(','); if (index < 0) { // 没有,分割的是解绑卫星模块 UnboundSatellite(); return; } var tid = value.Substring(0, index); var gid = value.Substring(index + 1); gid = Utility.Decrypt(gid); var t = TerminalInstance.Find(f => f.id == int.Parse(tid)); if (null == t) { ShowNotification("./terminal_list.aspx", "Bound fail: Terminal not exists.", false); } else { if (t.Satellite != (int?)null) { ShowNotification("./terminal_list.aspx", "Terminal \"" + t.Number + "\" has bound Satellite: " + t.TB_Satellite.CardNo, false); } else { var g = SatelliteInstance.Find(f => f.id == int.Parse(gid)); if (null == g) { ShowNotification("./terminal_list.aspx", "No Satellite info exists.", false); } else { if (g.Bound == true) { var gt = TerminalInstance.Find(f => f.TB_Satellite.id == g.id); ShowNotification("./terminal_list.aspx", "Satellite \"" + g.CardNo + "\" has bound on Terminal: " + gt.Number, false); } else { TerminalInstance.Update(f => f.id == t.id, act => { act.Satellite = g.id; }); t = TerminalInstance.Find(f => f.id == t.id); SatelliteInstance.Update(f => f.id == g.id, act => { act.Bound = true; }); // 发送绑定卫星模块的命令 SendDD02Command(true, t); // 保存绑定卫星模块的历史记录 SaveHistory(new TB_AccountHistory() { ActionId = ActionInstance.Find(f => f.Name.Equals("BindSat")).id, ObjectA = TerminalInstance.ToString(t) }); //ShowTerminals(); ShowNotification("./terminal_list.aspx", "Terminal \"" + t.Number + "\" bound Satellite \"" + g.CardNo + "\" OK!"); } } } } }