/// <summary> /// 保存命令发送流量 /// </summary> /// <param name="ter"></param> /// <param name="sim"></param> private void saveTerminalFlow(int ter, string sim) { var n = (int?)null; int monthly = int.Parse(DateTime.Now.ToString("yyyyMM")); var flow = new TerminalFlowBLL(); var f = flow.Find(find => find.Sim.Equals(sim) && find.Monthly == monthly); if (null == f) { f = flow.GetObject(); f.Monthly = monthly; f.Sim = sim; f.Terminal = ter < 0 ? n : ter; f.SMSDeliver = 1; flow.Add(f); } else { flow.Update(u => u.id == f.id, act => { if (n == act.Terminal) { act.Terminal = ter < 0 ? n : ter; } act.SMSDeliver += 1; }); } }
/// <summary> /// 保存终端流量 /// </summary> /// <param name="terminal"></param> /// <param name="sim"></param> /// <param name="protocol"></param> /// <param name="len"></param> /// <param name="receive"></param> private void SaveTerminalData(int terminal, string sim, AsyncDataPackageType protocol, int len, bool receive, DateTime time) { var n = (int?)null; var monthly = int.Parse(time.ToString("yyyyMM")); using (var bll = new TerminalFlowBLL()) { var flow = bll.Find(f => f.Sim.Equals(sim) && f.Monthly == monthly); if (null == flow) { flow = bll.GetObject(); flow.Terminal = terminal < 0 ? n : terminal; flow.Monthly = monthly; flow.Sim = sim; if (protocol == AsyncDataPackageType.TCP || protocol == AsyncDataPackageType.UDP) { if (receive) { flow.GPRSReceive = len; } else { flow.GPRSDeliver = len; } } else if (protocol == AsyncDataPackageType.SMS) { if (receive) { flow.SMSReceive = 1; } else { flow.SMSDeliver = 1; } } bll.Add(flow); } else { // 如果终端不存在则更新sim卡号码的流量 if (flow.Terminal == n) { bll.Update(f => f.Sim.Equals(sim) && f.Monthly == monthly, act => { if (n == act.Terminal && 0 < terminal) { act.Terminal = terminal; } if (protocol == AsyncDataPackageType.TCP || protocol == AsyncDataPackageType.UDP) { if (receive) { act.GPRSReceive += len; } else { act.GPRSDeliver += len; } } else if (protocol == AsyncDataPackageType.SMS) { if (receive) { act.SMSReceive += 1; } else { act.SMSDeliver += 1; } } }); } else { bll.Update(f => f.id == flow.id, act => { if (n == act.Terminal && 0 < terminal) { act.Terminal = terminal; } if (protocol == AsyncDataPackageType.TCP || protocol == AsyncDataPackageType.UDP) { if (receive) { act.GPRSReceive += len; } else { act.GPRSDeliver += len; } } else if (protocol == AsyncDataPackageType.SMS) { if (receive) { act.SMSReceive += 1; } else { act.SMSDeliver += 1; } } }); } } } }