public ActionResult SendEmergencyMessage(string SerID) { if (string.IsNullOrEmpty(SerID)) { throw new BusinessException("请传入设备Code"); } var smoke = SmokeDetectorServices.LoadSmokeDetail(SerID); if (smoke == null || string.IsNullOrEmpty(smoke.AddressCode)) { throw new BusinessException("当前设备还未安装入网"); } DevicesWarningTemplateTemplate devicesWarningTemplate = new DevicesWarningTemplateTemplate { SerID = SerID, DeviceName = "烟感器报警", Type = "感应报警", WarningTime = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = $"此设备地址为{smoke.AddressName}", // Url = "http://tfs-code2.chinacloudapp.cn/Smoke/Notice", MasterID = SerID, DateStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = smoke.AddressName, }; if (smoke.InstallerSysNo.HasValue && smoke.InstallerSysNo < 0) { devicesWarningTemplate.Address = smoke.Position; devicesWarningTemplate.Memo = smoke.Position; } SendMessageService.SendMessage(devicesWarningTemplate, SerID); return(Json(new AjaxResult { Success = true })); }
public CustomRoBot(SendMessageService service, ServerMessageSubject transponder, QQUser user) { _service = service; _transponder = transponder; _user = user; // 将机器人加入转发器的订阅列表中 _transponder.AddCustomRoBot(this); }
public void SendMessage() { var sendMessageService = new SendMessageService(); if (!CanExecute()) { return; } if (ReplyMessage == null) { sendMessageService.SendMessage(InputText); } else { sendMessageService.SendReplyMessage(InputText, ReplyMessage.Id); } InputText = string.Empty; EraseReply(); }
private void SendMessageButton_Click(object sender, EventArgs e) { SendMessageService.SendMessages(Event.Guests.Select(x => x.Number).ToList(), Event.Message); Toast.MakeText(this, "Messages Sent!", ToastLength.Short); var mDatabase = new DatabaseManager(); var db = mDatabase.GetDb(); var properties = new Dictionary <String, Object> { { "type", "Event" }, { "event", Event } }; Document document = db.GetDocument("1"); document.Delete(); document = db.GetDocument("1"); document.PutProperties(properties); Intent intent = new Intent(this, typeof(EventViewerActivity)); intent.PutExtra("MainData", document.Id); StartActivity(intent); }
public List <ResponceModel> Post([FromBody] MessageModel message) { var id = Guid.NewGuid().ToString(); message.MessageId = id; var responses = new List <ResponceModel>(); foreach (var recipient in message.Recipients) { SendMessageService.SendMessage(recipient, message); responses.Add(new ResponceModel { MessageId = message.MessageId, IsSent = message.IsSent, Recipient = String.Format("{0} {1}", recipient.Name, recipient.Surname) }); } MessageService.SaveMessage(message, _context); return(responses); }
public TestRoBot(SendMessageService service, ServerMessageSubject transponder, QQUser user) : base(service, transponder, user) { }
public HttpResponseMessage SyncDeviceStatus() { Stream reqstream = HttpContext.Current.Request.InputStream; reqstream.Seek(0, System.IO.SeekOrigin.Begin); string body = new StreamReader(reqstream).ReadToEnd(); Logger.WriteLog("API接收数据:" + body); List <SyncDeviceStatusRequest> list = JsonConvert.DeserializeObject <List <SyncDeviceStatusRequest> >(body); SyncDeviceStatusResponse response = new SyncDeviceStatusResponse(); if (list == null || list.Count <= 0) { response.IsSuccess = false; response.Message = "参数错误。"; } else { SyncDeviceStatusRequest request = null; foreach (var item in list) { if (SMOKE_STATUS_CODE.Contains(item.Status)) { request = item; break; } } if (request == null) { response.IsSuccess = false; response.Message = "参数错误。"; } else { SmokeDetector detecor = SmokeDetectorServices.LoadSmokeDetailByDeviceID(request.DeviceID); if (detecor == null) { response.Message = "设备不存在。"; } else { SmokeDetectorStatus status = MatchDeviceStatus(request.Status); if (detecor.Status != status)//两次设备状态不一致 { SmokeDetectorStatusLog lastLog = SmokeDetectorServices.LoadSmokeDetectorStatusLogByDeviceCode(detecor.Code); #region 更新设备状态,写状态变更日志 DateTime dt; DateTime.TryParse(request.CDatetime, out dt); SmokeDetectorStatusLog statusLog = new SmokeDetectorStatusLog() { PreStatus = detecor.Status.Value, Status = status, BeginTime = dt == DateTime.MinValue ? DateTimeHelper.GetTimeZoneNow() : dt, ReceivedJsonData = body, SmokeDetectorCode = detecor.Code }; detecor.Status = status; if (lastLog != null && statusLog.BeginTime.HasValue && lastLog.BeginTime.HasValue) { statusLog.DurationSeconds = (int)(statusLog.BeginTime.Value - lastLog.BeginTime.Value).TotalSeconds; } using (var trans = TransactionManager.Create()) { SmokeDetectorServices.InsertSmokeDetectorStatusLog(statusLog); SmokeDetectorServices.UpdateSmokeDetector(detecor); trans.Complete(); } #endregion #region 更新首页地图数据缓存 (new MapDataService(detecor.CompanySysNo)).DataChangeAsync(); #endregion #region 发送消息 if (detecor.Status == SmokeDetectorStatus.Warning || detecor.Status == SmokeDetectorStatus.TestWarning) { Task.Factory.StartNew(() =>//火灾报警 { DevicesWarningTemplateTemplate devicesWarningTemplate = new DevicesWarningTemplateTemplate { SerID = detecor.Code, DeviceName = "烟感设备报警", Type = "火灾报警", WarningTime = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = $"此设备地址为{detecor.AddressName}", MasterID = detecor.Code, DateStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = detecor.AddressName }; if (detecor.InstallerSysNo.HasValue && detecor.InstallerSysNo < 0) { devicesWarningTemplate.Address = detecor.Position; devicesWarningTemplate.Memo = detecor.Position; } SendMessageService.SendMessage(devicesWarningTemplate, detecor.Code); }); } else if (detecor.Status == SmokeDetectorStatus.Lost || detecor.Status == SmokeDetectorStatus.Offline || detecor.Status == SmokeDetectorStatus.OutNet) { Task.Factory.StartNew(() =>//离线报警 { DevicesOfflineTemplateTemplate devicesOfflintTemplate = new DevicesOfflineTemplateTemplate { SerID = detecor.Code, DeviceName = "烟感设备离线", DeviceAddress = $"此设备地址为{detecor.AddressName}", OffLineTimeStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = "请尽快处理!", MasterID = detecor.Code, DateStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = detecor.AddressName }; if (detecor.InstallerSysNo.HasValue && detecor.InstallerSysNo < 0) { devicesOfflintTemplate.Address = detecor.Position; devicesOfflintTemplate.Memo = detecor.Position; } SendMessageService.SendMessage(devicesOfflintTemplate, detecor.Code); }); } else if (detecor.Status == SmokeDetectorStatus.LowPower) { Task.Factory.StartNew(() =>//低电压报警 { DevicesWarningTemplateTemplate devicesWarningTemplate = new DevicesWarningTemplateTemplate { SerID = detecor.Code, DeviceName = "烟感设备电量过低", Type = "低电量报警", WarningTime = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = $"此设备地址为{detecor.AddressName}", MasterID = detecor.Code, DateStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = detecor.AddressName }; if (detecor.InstallerSysNo.HasValue && detecor.InstallerSysNo < 0) { devicesWarningTemplate.Address = detecor.Position; devicesWarningTemplate.Memo = detecor.Position; } SendMessageService.SendMessage(devicesWarningTemplate, detecor.Code); }); } #endregion } response.IsSuccess = true; } } } string result = JsonConvert.SerializeObject(response); return(new HttpResponseMessage() { Content = new StringContent(result, Encoding.UTF8, "application/json") }); }
public ActionResult BindingDevicesApi(string serID) { if (string.IsNullOrEmpty(serID)) { throw new BusinessException("读取设备id失败,请重新扫描"); } var user = ClientService.LoadClient(curentUser.UserSysNo); if (user == null) { UserMgr.Logout(); throw new BusinessException("登录信息已过期,请退出重新进入公众号"); } var ClientSmokeDetectorList = ClientSmokeDetectorProcessor.LoadAllBindClientUser(serID); var temp = ClientSmokeDetectorList.Find(e => string.Equals(e.ClientSysNo, curentUser.UserSysNo)); if (temp != null) { throw new BusinessException("你已绑定过当前设备"); } if (ClientSmokeDetectorList.Count > 0) { throw new BusinessException($"设备已经绑定到“{ClientSmokeDetectorList.FirstOrDefault().Name}”,不能再次绑定"); } var smoke = SmokeDetectorServices.LoadSmokeDetail(serID); if (smoke == null || string.IsNullOrEmpty(smoke.AddressCode) || smoke.Status == SmokeDetectorStatus.Delete) { return(Json(new AjaxResult { Success = true, Code = 1, Message = "设备还未安装入网,请添加设备,如果您是公司用户,请绑定管理员!" })); // throw new BusinessException("设备还未安装入网"); } if (user != null) { ClientSmokeDetector clientSmokeDetector = new ClientSmokeDetector { ClientSysNo = user.SysNo, SmokeDetectorCode = serID, IsDefaultCellPhone = true, CellPhone = user.CellPhone, CellPhone2 = user.CellPhone2, CellPhone3 = user.CellPhone3 }; ClientSmokeDetectorProcessor.InsertClientSmokeDetector(clientSmokeDetector); List <MessageCenter.Entity.ReceiverInfo> receivers = new List <MessageCenter.Entity.ReceiverInfo> { new MessageCenter.Entity.ReceiverInfo { ReceiverNo = user.AppCustomerID, MsgType = MessageCenter.Entity.MsgType.WeiXin } }; var cellphone = clientSmokeDetector.CellPhone ?? clientSmokeDetector.CellPhone2 ?? clientSmokeDetector.CellPhone3 ?? null; if (!string.IsNullOrEmpty(cellphone)) { receivers.Add(new MessageCenter.Entity.ReceiverInfo { ReceiverNo = cellphone, MsgType = MessageCenter.Entity.MsgType.SMS }); } Task.Factory.StartNew(() => { WechatUserBindDevicesTemplate wechatUserBind = new WechatUserBindDevicesTemplate { Title = $"尊敬的{HttpUtility.UrlDecode(curentUser.UserID)}用户", SerID = serID, BindResult = "绑定成功", BindTimeStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = $"此设备地址为{smoke.AddressName}", // Url = $"http://tfs-code2.chinacloudapp.cn//Smoke/Notice?code= {serID}", MasterID = serID, DateStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = smoke.AddressName, }; if (smoke.InstallerSysNo.HasValue && smoke.InstallerSysNo < 0) { wechatUserBind.Address = smoke.Position; wechatUserBind.Memo = smoke.Position; } SendMessageService.SendMessageOnce(wechatUserBind, receivers); }); } return(Json(new AjaxResult { Success = true })); }