Exemplo n.º 1
0
        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
            }));
        }
Exemplo n.º 2
0
        public CustomRoBot(SendMessageService service, ServerMessageSubject transponder, QQUser user)
        {
            _service     = service;
            _transponder = transponder;
            _user        = user;

            // 将机器人加入转发器的订阅列表中
            _transponder.AddCustomRoBot(this);
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 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")
            });
        }
Exemplo n.º 8
0
        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
            }));
        }