public void Addressee(DeviceModel device, string messageSms) { var serviceBus = new ServiceBusHelper(); if (!String.IsNullOrEmpty(device.Addressee1)) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee1, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee2)) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee2, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee3)) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee3, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee4)) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee4, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } }
public async Task <bool> SendAsync(object value) { SmsModel sm = value as SmsModel; logger.LogInformation($"Send SMS to {sm.tel}"); return(await ValueTask.FromResult(true)); using (var client = new HttpClient()) { var url = conf.GetSection("SmsSender:Url").Value; var path = conf.GetSection("SmsSender:Path").Value; var login = conf.GetSection("SmsSender:Login").Value; var passw = conf.GetSection("SmsSender:Password").Value; var text = conf.GetSection("SmsSender:Text").Value; sm.mes = string.Format(text, sm.mes); var ss = new SmsSenderModel(sm); var authInfo = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{login}:{passw}"))); var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(ss), Encoding.UTF8, "application/json"); client.BaseAddress = new Uri(url); client.DefaultRequestHeaders.Authorization = authInfo; var res = await client.PostAsync(path, content); if (res.IsSuccessStatusCode) { return(true); } else { return(false); } } }
private void SendWebClients(Mt100Message message) { var device = repository.SaveMessage(message); if (device != null) { if (message.EventCode == "Help") { try { var messageSms = HttpUtility.UrlEncode("На " + device.Name + " сработал SOS. https://maps.google.com/maps?q=" + device.LastCoordinates, Encoding.UTF8); Addressee(device, messageSms); } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } } if (message.EventCode == "Geo out") { try { var messageSms = HttpUtility.UrlEncode(device.Name + " покинуло гео-зону. https://maps.google.com/maps?q=" + device.LastCoordinates, Encoding.UTF8); Addressee(device, messageSms); } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } } if (message.EventCode == "VIB") { try { var messageSms = HttpUtility.UrlEncode("На " + device.Name + " зафиксировано падение. https://maps.google.com/maps?q=" + device.LastCoordinates, Encoding.UTF8); Addressee(device, messageSms); } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } } if (message.EventCode == "LowBattery") { try { var messageSms = HttpUtility.UrlEncode(device.Name + " села батарейка. https://maps.google.com/maps?q=" + device.LastCoordinates, Encoding.UTF8); var serviceBus = new ServiceBusHelper(); if (!String.IsNullOrEmpty(device.Addressee1) && device.Addressee1LowBattery) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee1, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee2) && device.Addressee2LowBattery) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee2, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee3) && device.Addressee3LowBattery) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee3, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee4) && device.Addressee4LowBattery) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee4, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } } } try { using (var hubConnection = new HubConnection("http://cb.hranitel24.ru:80")) { var hubProxy = hubConnection.CreateHubProxy("deviceHub"); hubConnection.Start().Wait(); hubProxy.Invoke("UpdateDevice", (new JavaScriptSerializer()).Serialize(device)); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } try { using (var hubConnection = new HubConnection("http://crm.hranitel24.ru:80")) { var hubProxy = hubConnection.CreateHubProxy("deviceHub"); hubConnection.Start().Wait(); hubProxy.Invoke("UpdateDevice", (new JavaScriptSerializer()).Serialize(device)); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } }
// Конструктор класса. Ему нужно передавать принятого клиента от TcpListener public Client(string aOut) { var s = aOut; Console.WriteLine(aOut); if (s.IndexOf('&') > -1) { var strArr = s.Split('&'); if (strArr.Length > 0) { var phoneStr = ""; if (strArr[0].IndexOf("phone=", StringComparison.Ordinal) > -1) { phoneStr = strArr[0].Remove(0, 6); } string phone = Regex.Replace(phoneStr, @"[^0-9]", string.Empty); if (!String.IsNullOrEmpty(phone)) { if (strArr[1].IndexOf("mes=", StringComparison.Ordinal) > -1) { (new FileHelper()).SaveMessage("output.txt", "mes==" + strArr[1]); var device = (new Gc3Repository()).GetDeviceByPhone(phone); if (device.Type == DeviceTypeEnum.Gc3) { var mes = strArr[1].Remove(0, 4); var gc3Message = new Gc3Message(); Console.WriteLine(mes); gc3Message.Battery = 100; var sendDb = false; if (mes.IndexOf("SOS%20-%20Ende", StringComparison.Ordinal) > -1) { //SOS Modus ist deaktiviert. //gc3Message.PositioningStatus = "A"; //sendDb = true; //gc3Message.Type = 15; //Console.WriteLine("Position"); } else if (mes.IndexOf("SOS%20Modus%20ist%20deaktiviert", StringComparison.Ordinal) > -1) { //SOS Modus ist deaktiviert. //gc3Message.PositioningStatus = "A"; //sendDb = true; //gc3Message.Type = 15; //Console.WriteLine("Position"); } else if (mes.IndexOf("SOS", StringComparison.Ordinal) > -1) { var date = DateTime.UtcNow; var sosEnabled = ((date - device.SosCloseUpdateTime).Minutes > 2); if (mes.IndexOf("Letzte%20Position", StringComparison.Ordinal) > -1) { gc3Message.PositioningStatus = "V"; sendDb = true; if (!device.SosActive && device.SosClose && sosEnabled) { var messageSms = HttpUtility.UrlEncode( "На " + device.Name + " сработал SOS. Последние координаты https://maps.google.com/maps?q=" + device.LastCoordinates, Encoding.UTF8); Addressee(device, messageSms); gc3Message.Type = 1; (new Gc3Repository()).SosClose(device.Id, 0); } else { //if ((date - device.SosTime).Minutes > 15) //{ //var message = "sosaus"; //var smsSender = new SmsSenderRabbitMQ() //{ // Sender = ConfigHelper.GetConfigValueByKey("SmsMt90Sender"), // Phone = phone, //device.Phone, // Message = message, // CrateDate = DateTime.UtcNow //}; //(new Gc3Repository()).SosClose(device.Id, 1); //var json = new JavaScriptSerializer().Serialize(smsSender); //var serviceBus = new ServiceBusHelper(); //serviceBus.SendMessages("SmsSender", json); //} gc3Message.Type = 2; } } else if (mes.IndexOf("Aktualisierte%20Position", StringComparison.Ordinal) > -1) { gc3Message.Type = !device.SosActive && sosEnabled ? 1 : 2; var messageSms = HttpUtility.UrlEncode( String.Format( "Абонент {0} попал в экстренную ситуацию. Его актуальные координаты https://maps.google.com/maps?q={1}", device.Name, device.LastCoordinates), Encoding.UTF8); Addressee(device, messageSms); gc3Message.PositioningStatus = "A"; //var message = "sosaus"; //var smsSender = new SmsSenderRabbitMQ() //{ // Sender = ConfigHelper.GetConfigValueByKey("SmsMt90Sender"), // Phone = phone, //device.Phone, // Message = message, // CrateDate = DateTime.UtcNow //}; //(new Gc3Repository()).SosClose(device.Id, 1); //var json = new JavaScriptSerializer().Serialize(smsSender); //var serviceBus = new ServiceBusHelper(); //serviceBus.SendMessages("SmsSender", json); sendDb = true; } } else if (mes.IndexOf("Akkukapazitaet", StringComparison.Ordinal) > -1) { gc3Message.PositioningStatus = "A"; sendDb = false; gc3Message.Type = 15; Console.WriteLine("Position"); } else if (mes.IndexOf("%20ist%0A", StringComparison.Ordinal) > -1) { gc3Message.PositioningStatus = "A"; sendDb = true; gc3Message.Type = 15; var messageSms = HttpUtility.UrlEncode( "Актуальные координаты " + device.Name + " https://maps.google.com/maps?q=" + device.LastCoordinates, Encoding.UTF8); Addressee(device, messageSms); Console.WriteLine("Position"); } else if ( mes.IndexOf("Kein%20GPS-Signal%20verfuegbar", StringComparison.Ordinal) > -1) { var message = "position"; var smsSender = new SmsSenderModel() { Sender = ConfigHelper.GetConfigValueByKey("SmsGc3Sender"), Phone = phone, //device.Phone, Message = message, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); var serviceBus = new ServiceBusHelper(); serviceBus.SendMessages("SmsSender", json); } var strDecode = HttpUtility.UrlDecode(mes); (new FileHelper()).SaveMessage("output.txt", strDecode); if (sendDb) { #region обработка сообщения var coordinatesIndexStart = mes.IndexOf("geocare%40", StringComparison.Ordinal); var coordinatesTmp = mes.Remove(0, coordinatesIndexStart + 10); var coordinatesIndexFinish = coordinatesTmp.IndexOf("%26z%3D", System.StringComparison.Ordinal); var coordinates = HttpUtility.UrlDecode(coordinatesTmp.Remove(coordinatesIndexFinish)); gc3Message.Phone = phone; gc3Message.Latitude = coordinates.Split(',')[0]; gc3Message.Longitude = coordinates.Split(',')[1]; gc3Message.DateAndTime = DateTime.Now; gc3Message.Speed = "0"; (new Gc3Repository()).SaveMessage(gc3Message); //Console.WriteLine(coordinates); Console.WriteLine(strDecode); #endregion var devicea = (new Gc3Repository()).GetDeviceByPhone(phone); try { using (var hubConnection = new HubConnection("http://cb.hranitel24.ru:180")) { var hubProxy = hubConnection.CreateHubProxy("deviceHub"); hubConnection.Start().Wait(); hubProxy.Invoke("UpdateDevice", (new JavaScriptSerializer()).Serialize(devicea)); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", "cb==" + e.ToString()); } try { using (var hubConnection = new HubConnection("http://crm.hranitel24.ru:180") ) { var hubProxy = hubConnection.CreateHubProxy("deviceHub"); hubConnection.Start().Wait(); hubProxy.Invoke("UpdateDevice", (new JavaScriptSerializer()).Serialize(devicea)); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", "crm==" + e.ToString()); } } } } } //&id=21470454&to=79023500131&time=1427289490&sent=1427289490&smsc= } } }
private void SendWebClients(Mt70Message message) { var deviceOld = repository.GetDeviceByImei(message.Imei); var device = repository.SaveMessage(message); if (device != null) { if (message.EventCode == "Sos") { try { var messageSms = message.PositioningStatus == "R" ? HttpUtility.UrlEncode( String.Format( "Абонент {0} попал в экстренную ситуацию. Его актуальные координаты https://maps.google.com/maps?q={1}", device.Name, device.LastCoordinates), Encoding.UTF8) : HttpUtility.UrlEncode( String.Format( "Абонент {0} попал в экстренную ситуацию. Его последние координаты https://maps.google.com/maps?q={1}", device.Name, device.LastCoordinates), Encoding.UTF8); Addressee(device, messageSms); } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } } if (message.EventCode == "Timer") { try { if (message.PositioningStatus == "R" && !deviceOld.LastCoordinatesValid) { var messageSms = HttpUtility.UrlEncode( String.Format( "Абонент {0} попал в экстренную ситуацию. Его актуальные координаты https://maps.google.com/maps?q={1}", device.Name, device.LastCoordinates), Encoding.UTF8); Addressee(device, messageSms); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } } if (message.EventCode == "LowBattery") { try { var messageSms = HttpUtility.UrlEncode(device.Name + " села батарейка. https://maps.google.com/maps?q=" + device.LastCoordinates, Encoding.UTF8); var serviceBus = new ServiceBusHelper(); if (!String.IsNullOrEmpty(device.Addressee1) && device.Addressee1LowBattery) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee1, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee2) && device.Addressee2LowBattery) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee2, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee3) && device.Addressee3LowBattery) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee3, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } if (!String.IsNullOrEmpty(device.Addressee4) && device.Addressee4LowBattery) { var smsSender = new SmsSenderModel() { Sender = ConfigurationManager.AppSettings["SmsSender"].ToString(), Phone = device.Addressee4, Message = messageSms, CrateDate = DateTime.UtcNow }; var json = new JavaScriptSerializer().Serialize(smsSender); serviceBus.SendMessages("SmsSender", json); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } } } try { using (var hubConnection = new HubConnection("http://cb.hranitel24.ru:80")) { var hubProxy = hubConnection.CreateHubProxy("deviceHub"); hubConnection.Start().Wait(); hubProxy.Invoke("UpdateDevice", (new JavaScriptSerializer()).Serialize(device)); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } try { using (var hubConnection = new HubConnection("http://crm.hranitel24.ru:80")) { var hubProxy = hubConnection.CreateHubProxy("deviceHub"); hubConnection.Start().Wait(); hubProxy.Invoke("UpdateDevice", (new JavaScriptSerializer()).Serialize(device)); } } catch (Exception e) { (new FileHelper()).SaveMessage("error.txt", e.ToString()); } }