private bool webSend(string imei, PilotkaState state, DateTime utcDatetime) { string currentUrl = url; currentUrl = currentUrl.Replace("{IMEI}", imei) .Replace("{STATE}", state == PilotkaState.Started ? "1" : "0") .Replace("{UTC}", HttpUtility.UrlEncode(utcDatetime.ToString(datetimeFormat))); HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(currentUrl); webRequest.Timeout = webRequestTimeout; webRequest.Method = "GET"; try { var webResponse = (HttpWebResponse)webRequest.GetResponse(); log.DebugFormat("WebRequestSender: webResponse = {0}, url={1}", webResponse.StatusCode, currentUrl); return(webResponse.StatusCode == HttpStatusCode.OK); } catch (Exception e) { log.Error("WebRequestSender: " + currentUrl + ": " + e.ToString()); return(false); } finally { webRequest.GetResponse().Close(); webRequest.GetResponse().Dispose(); } }
public async Task <bool> send(string imei, PilotkaState state, DateTime utcDatetime) { return(await Task <bool> .Run(() => { lock (this) { if (Settings.Default.Activemq_enabled) { return nsmSend(imei, state, utcDatetime); } else { return webSend(imei, state, utcDatetime); } } } )); }
private bool nsmSend(string imei, PilotkaState state, DateTime utcDatetime) { try { if (session == null) { createConnection(); } string msg = imei + "|" + (state == PilotkaState.Started ? "1" : "0") + "|" + utcDatetime.ToString(datetimeFormat); var textMessage = session.CreateTextMessage(msg); producer.Send(textMessage); return(true); } catch { closeConnection(); return(false); } }
public async void retranslate(BasePacket packet) { try { if (settings.Enabled && imeiDictionary.ContainsKey(packet.IMEI)) { StateSended stateSended = imeiDictionary[packet.IMEI]; PilotkaState newState = packet.Status[bitIndex] == '0' ? PilotkaState.Stoped : PilotkaState.Started; if (!stateSended.sended || stateSended.state != newState) { var webRequestSender = webRequestSenderPool.GetFromPool(); try { stateSended.state = newState; stateSended.sended = await webRequestSender.send(packet.IMEI, newState, packet.ValidNavigDateTime); if (stateSended.sended) { log.InfoFormat("Успешно: IMEI={0}, State={1}", packet.IMEI, packet.Status[bitIndex]); } else { log.WarnFormat("Провально: IMEI={0}, State={1}", packet.IMEI, packet.Status[bitIndex]); } } finally { webRequestSenderPool.ReturnToPool(webRequestSender); } } } } catch (Exception e) { log.Error("RetranslatorPilotka.retranslate: " + e.ToString()); } }