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);
            }
        }
Beispiel #2
0
        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());
            }
        }
Beispiel #4
0
        // Конструктор класса. Ему нужно передавать принятого клиента от 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());
            }
        }