コード例 #1
0
        protected override void OnReceived(byte[] buffer, long offset, long size)
        {
            var message = Encoding.UTF8.GetString(buffer, (int)offset, (int)size);

            try
            {
#if DEBUG
                log.Debug("Incoming: " + message);
#endif
                var strings = message.Split(new[] { (char)0x1A });
                foreach (var str in strings)
                {
                    if (string.IsNullOrEmpty(str))
                    {
                        continue;
                    }
                    var signal = SignalInfo.Create(str);
                    handler.PostSignal(signal, mServer);
                }
            }
            catch (Exception e)
            {
                log.Error($"OnReceived: {message} e={e}");
            }
        }
コード例 #2
0
        public ActionResult SendSignal()
        {
            Task <string> response = null;

            try
            {
                using (var reader = new StreamReader(Request.Body))
                {
                    response = reader.ReadToEndAsync();
                    if (string.IsNullOrEmpty(response.Result))
                    {
                        return(Problem("Empty data passed as a parameter", "Error",
                                       StatusCodes.Status500InternalServerError));
                    }
                    var signal = SignalInfo.Create(response.Result);
                    var result = MainService.SendSignal(signal);
                    return(Ok(result));
                }
            }
            catch (Exception e)
            {
                if (response != null && !string.IsNullOrEmpty(response.Result))
                {
                    log.Error($"Result error:{response.Result} {e}");
                }
                else
                {
                    log.Error(e.ToString());
                }
                return(Problem(e.ToString(), "Error", StatusCodes.Status500InternalServerError));
            }
        }
コード例 #3
0
        public ActionResult PostSignal()
        {
            Task <string> response = null;
            SignalInfo    signal   = null;

            try
            {
                using (var reader = new StreamReader(Request.Body))
                {
                    response = reader.ReadToEndAsync();
                    if (string.IsNullOrEmpty(response.Result))
                    {
                        return(Problem("NULL Signal passed as a parameter", "Error",
                                       StatusCodes.Status500InternalServerError));
                    }
                    signal = SignalInfo.Create(response.Result);

                    if (signal == null)
                    {
                        return(Problem("Broken Signal passed as a parameter", "Error",
                                       StatusCodes.Status500InternalServerError));
                    }
                    MainService.PostSignalTo(signal);
                }

                return(Ok());
            }
            catch (Exception e)
            {
                if (response != null && !string.IsNullOrEmpty(response.Result))
                {
                    log.Error($"Result error:{response.Result} {e}");
                    if (signal != null)
                    {
                        log.Error($"Signal.Data={signal.Data}");
                    }
                }
                else
                {
                    log.Error(e.ToString());
                }
                return(Problem(e.ToString(), "Error", StatusCodes.Status500InternalServerError));
            }
        }