Esempio n. 1
0
        /// <summary>
        /// 处理设备注册
        /// </summary>
        /// <param name="registerInfo"></param>
        /// <param name="con"></param>
        /// <param name="db"></param>
        public void ProcessReqest(Register registerInfo, SocketConnection con, IClientRequest db)
        {
            var registerBk = new CmdHeader
            {
                CmdCode  = 0xFF01,
                Identity = registerInfo.Identity,
                ServerId = SocketConnectionServerDispatcher.ServerId,
                //TimeToken = registerInfo.TimeToken
            };

            SocketConnection.ShowMsg(registerInfo.ToString());
            var registerDto = new DtoRegister
            {
                Iccid            = registerInfo.Iccid,
                ImeiNo           = registerInfo.Identity,
                ImeiType         = registerInfo.ImeiType,
                ImeiVersion      = registerInfo.ImeiVersion,
                RemoteIpEndPoint = con.ConnectSocket.RemoteEndPoint.ToString(),
                ServerIp         = con.ConnectSocket.LocalEndPoint.ToString(),
                ServerOutIp      = SocketConnectionServerDispatcher.ServerOutIpEndPort,
                Lng = registerInfo.Lng,
                Lat = registerInfo.Lat
            };

            registerBk.ResultCode = db.DeviceRegister(registerDto);
            con.Send(registerBk.ToByteArray());
            SocketConnection.ShowMsg(registerBk.ToString());
        }
Esempio n. 2
0
        public void StopServices(IClientRequest request)
        {
            Items input = request.GetInput <Items>();

            ServiceStateProcessor.StopServices(input);
            //            service.SendResult(new object());
        }
Esempio n. 3
0
        IClientResponse Execute(IClientRequest request)
        {
            MemoryResource resource;
            if (!Resources.TryGetValue(request.RequestUri, out resource))
            {
                return NotFoundResponse(request);
            }
            Func<IClientRequest, IClientResponse> methodHandler;
            if (!resource.Operations.TryGetValue(request.Method,out methodHandler))
            {
                return new MemoryResponse
                {
                        Status = new HttpStatus(405, "Method not allowed"),
                        Headers = { { "Content-Length", "0" } }
                };
            }
            if (
                resource.Username != null &&
                resource.Password != null &&
                (request.Credentials == null ||
                 resource.Username != request.Credentials.UserName ||
                 resource.Password != request.Credentials.Password))
            {
                return new MemoryResponse
                {
                    Status = new HttpStatus(401, "Unauthorized"),
                    Headers= {{"Content-Length", "0"}}
                };
            }
            return methodHandler(request);

        }
Esempio n. 4
0
        /// <summary>
        /// 处理设备登录
        /// </summary>
        /// <param name="loginInfo"></param>
        /// <param name="con"></param>
        /// <param name="db"></param>
        public void ProcessReqest(CmdHeader loginInfo, SocketConnection con, IClientRequest db)
        {
            con.Identity          = loginInfo.Identity;
            con.SocketConnectType = SocketConnectType.DeviceSocket;
            SocketConnectionServerDispatcher.DicSockectConnection.AddOrUpdate(loginInfo.Identity, con, (key, old) => con);
            var loginDto = new DtoLogin
            {
                ImeiNo           = loginInfo.Identity,
                RemoteIpEndPoint = con.ConnectSocket.RemoteEndPoint.ToString(),
                ServerIp         = con.ConnectSocket.LocalEndPoint.ToString(),
                ServerOutIp      = SocketConnectionServerDispatcher.ServerOutIpEndPort
            };
            var res = db.DeviceLogin(loginDto);
            //con.StateData.BoundList = res.UsrClients;
            var loginBk = new LoginBk
            {
                CmdCode    = 0xFF02,
                Identity   = loginInfo.Identity,
                ServerId   = SocketConnectionServerDispatcher.ServerId,
                TimeToken  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
                ResultCode = res.Res
            };

            //TODO 根据链接的多个服务器返回新的上位机地址
            con.Send(loginBk.ToByteArray());
            SocketConnection.ShowMsg(loginBk.ToString());
            //var appconfig = CommCode.AppSettings("gettuiappid", "gettuiappkey", "gettuimasterkey");
            //if (con.StateData.BoundList == null) return;
            //foreach (var usrClient in con.StateData.BoundList)
            //{
            //    CommCode.GeTuiMsg("设备通知", "设备" + con.Identity + "上线", appconfig[0], appconfig[1], appconfig[2], usrClient.ClientId, null);
            //}
        }
        WebRequest ConvertRequestToWebClient(IClientRequest request)
        {
            var webRequest = WebRequest.Create(request.Uri);
            webRequest.Method = request.HttpMethod;
            if (request.Entity.ContentType != null)
                webRequest.ContentType = request.Entity.ContentType.ToString();
            if (request.Credentials != null)
                webRequest.Credentials = new NetworkCredential(request.Credentials.Username, request.Credentials.Password);
            foreach (var header in request.Headers)
            {
                try
                {
                    webRequest.Headers[header.Key] = header.Value;
                }
                catch (ArgumentException)
                {
                }
            }
            if (request.Entity.ContentLength != null && request.Entity.ContentLength > 0)
            {
                webRequest.ContentLength = request.Entity.Stream.Length;
                var requestStream = webRequest.GetRequestStream();
                request.Entity.Stream.Position = 0;
                request.Entity.Stream.CopyTo(requestStream);
            }

            return webRequest;
        }
        WebRequest ConvertRequestToWebClient(IClientRequest request)
        {
            var webRequest = WebRequest.Create(request.Uri);

            webRequest.Method = request.HttpMethod;
            if (request.Entity.ContentType != null)
            {
                webRequest.ContentType = request.Entity.ContentType.ToString();
            }
            if (request.Credentials != null)
            {
                webRequest.Credentials = new NetworkCredential(request.Credentials.Username, request.Credentials.Password);
            }
            foreach (var header in request.Headers)
            {
                try
                {
                    webRequest.Headers[header.Key] = header.Value;
                }
                catch (ArgumentException)
                {
                }
            }
            if (request.Entity.ContentLength != null && request.Entity.ContentLength > 0)
            {
                webRequest.ContentLength = request.Entity.Stream.Length;
                var requestStream = webRequest.GetRequestStream();
                request.Entity.Stream.Position = 0;
                request.Entity.Stream.CopyTo(requestStream);
            }

            return(webRequest);
        }
Esempio n. 7
0
        public bool Validate(string ApiName, IClientRequest request)
        {
            try
            {
                lock (_writelock)
                {
                    _requestsLog.Add(request);
                }

                var rulesToApply = ApiAndRulesMap[ApiName];
                foreach (var rule in rulesToApply)
                {
                    if (!rule.Validate(request, this))
                    {
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
                // Log/Manage exception
            }
        }
Esempio n. 8
0
        /// <summary>
        /// </summary>
        /// <param name="request"></param>
        /// <param name="response"></param>
        public void Process(IClientRequest request, IServerResponse response)
        {
            string[] clientMessage = Encoding.Default.GetString(request.Read()).TrimEnd('\0').Split(' ');

            if (clientMessage.Length == 1 && clientMessage[0] != "BYE")
            {
                response.Write("-Error Unknown Command");
                return;
            }

            Debug.WriteLine("Message received by mock server: " + clientMessage[0] + " " + (clientMessage.Length == 2 ? clientMessage[1] : string.Empty));

            switch (clientMessage[0])
            {
            case "CONN":
                response.Write(string.Format("+OK Hello {0}", clientMessage[1]));
                break;

            case "MESG":
                MessageCount++;
                response.Write("+OK Msg Received");
                OnMessageReceived(new MessageReceivedEventArgs(clientMessage[1]));
                break;

            case "BYE":
                response.Write("+OK GoodBye");
                response.EndConnection = true;
                break;
            }
        }
Esempio n. 9
0
        /// <summary>
        ///     Processes a client request.
        /// </summary>
        /// <param name="request"></param>
        /// <param name="response"></param>
        public void Process(IClientRequest request, IServerResponse response)
        {
            Argument.Assert.IsNotNull(request, "request");
            Argument.Assert.IsNotNull(response, "response");

            string[] commandArgs = Encoding.Default.GetString(request.Read()).Split(' ');
            ProcessCommand(commandArgs, response);
        }
Esempio n. 10
0
 public static byte[] GetBytes(IClientRequest response)
 {
     using (MemoryStream stream = new MemoryStream())
     {
         response.WriteTo(stream);
         return(stream.ToArray());
     }
 }
Esempio n. 11
0
        public void ProcessReqest(Waring waringInfo, SocketConnection con, IClientRequest db)
        {
            var fbdb = db as StreetLightPersistence;

            if (fbdb == null)
            {
                return;
            }
            var comBk = new CmdHeader
            {
                CmdCode    = 0xFF0F,
                Identity   = waringInfo.Identity,
                ResultCode = fbdb.AddWaringMessage(new DtoWaring
                {
                    ImeiNo               = waringInfo.Identity,
                    ImeiLightNo          = waringInfo.LightNo,
                    WaringCode           = waringInfo.WaringCode,
                    WaringMessage        = waringInfo.WaringDesc,
                    ImeiWaringMsgContent = JsonConvert.SerializeObject(waringInfo)
                }),
                ServerId = SocketConnectionServerDispatcher.ServerId,
                //TimeToken = waringInfo.TimeToken
            };

            con.Send(comBk.ToByteArray());
            switch (waringInfo.WaringCode)
            {
            case "0001":    //设置门未开报警
                break;
            }
            SocketConnection.ShowMsg(waringInfo.ToString());
            //if (con.StateData?.BoundList == null) return;
            //foreach (var usr in con.StateData.BoundList)
            //{
            //    //if (string.IsNullOrWhiteSpace(usr.ClientId) || usr.ClientId.Equals("null")) continue;
            //    //var res = CommCode.GeTuiMsg("设备报警", $"设备{waringInfo.Identity}发生警报,{waringInfo.WaringDesc}", _gettuiappid, _gettuiappkey, _gettuimasterkey, usr.ClientId, null);
            //    //SocketConnection.ShowMsg(res);
            //    #region 直接发送异常信息
            //    //SocketConnection clientSkt;
            //    //if (SocketConnectionServerDispatcher.DicSockectConnection.TryGetValue(usr, out clientSkt) && clientSkt.ConnectSocket.Connected)
            //    //{
            //    //    var waringBk = new WaringBkPb
            //    //    {
            //    //        CmdCode = "FF06",
            //    //        Identity = usr,
            //    //        OppositeId = con.Identity,
            //    //        ResultCode = dealRes.res,
            //    //        ServerId = SocketConnectionServerDispatcher.ServerId,
            //    //        TimeToken = waringInfo.TimeToken,
            //    //        WaringCode = waringInfo.WaringCode,
            //    //        WaringDesc = waringInfo.WaringDesc
            //    //    };
            //    //    clientSkt.Send(waringBk.ToByteArray());
            //    //}
            //    #endregion
            //}
        }
Esempio n. 12
0
        public int ApiFunction2(IClientRequest request)
        {
            if (!_rate_limiter_service.Validate("ApiFunction2", request))
            {
                return(-1);
            }

            return(200);
        }
Esempio n. 13
0
        public void CreateFolder(IClientRequest request)
        {
            NewName input = request.GetInput <NewName>();

            try
            {
                FolderCreator.Create(input);
            }
            catch { }
        }
        public IResponse ExecuteRequest(IClientRequest request)
        {
            if (request.Entity.Stream.Length > 0)
                request.Entity.Stream.Position = 0;
            var response = _host.ProcessRequest(request);
            if (response.StatusCode == 303)
                response = RedirectOn303SeeOther(response);
            else if (response.StatusCode == 401)
                response = RetryWithHttpAuthenticationCredentials(request, response);

            if (response.Entity.ContentLength > 0 && response.Entity.Stream.CanSeek)
                response.Entity.Stream.Position = 0;
            return response;
        }
        public virtual async Task AuthenticateAsync(IClientRequest request, CancellationToken token = default)
        {
            var oAuthToken = await GetTokenAsync(token).ConfigureAwait(false);

            if (string.IsNullOrWhiteSpace(oAuthToken))
            {
                if (Options.ThrowIfNoToken)
                {
                    throw new NoTokenException("No token could be found in any stores");
                }

                return;
            }

            request.AddHeader("Authorization", "Bearer " + oAuthToken);
        }
Esempio n. 16
0
        /// <summary>
        /// This will be called before a client Interface gets called.
        /// </summary>
        /// <param name="stream"></param>
        /// <returns></returns>
        public bool ProessRequest(NetworkStream stream)
        {
            try
            {
                BinaryBuffer buff = new BinaryBuffer(Database.ReadBuffer(stream));

                buff.BeginRead();

                int count = buff.ReadInt();

                BinaryBuffer writeBuff = new BinaryBuffer();

                writeBuff.BeginWrite();

                for (int i = 0; i < count; i++)
                {
                    IClientRequest Request = CurrentServer.GetRequest(buff.ReadByte());
                    // if a IClientRequest to close. we need to handle by not reading and writing back!
                    if (!this.TcpConnection.Connected)
                    {
                        return(false);
                    }

                    byte[] data = buff.ReadByteArray(buff.ReadInt());
                    if (Request != null)
                    {
                        data = Request.Process(new BinaryBuffer(data), this);
                        writeBuff.Write(data.Length);
                        writeBuff.Write(data);
                    }
                    else
                    {
                        writeBuff.Write(0); // length;
                    }
                }

                writeBuff.EndWrite();

                Database.WriteBuffer(writeBuff.ByteBuffer, stream);

                return(true);
            }
            catch (Exception)
            { }
            return(false);
        }
        public IResponse ExecuteRequest(IClientRequest request)
        {
            var webRequest = ConvertRequestToWebClient(request);
            HttpWebResponse response;
            try
            {
                response = webRequest.GetResponse() as HttpWebResponse;
            }
            catch (WebException exception)
            {
                response = exception.Response as HttpWebResponse;
                if (response == null)
                    throw;
            }

            return new WebRequestResponse(response);
        }
Esempio n. 18
0
        public HttpResponseMessage Post(IClientRequest postRequest)
        {
            var client = new HttpClient();
            if (postRequest.RequestHeaders != null && postRequest.RequestHeaders.Any())
            {
                client.DefaultRequestHeaders.Clear();
                foreach (var header in postRequest.RequestHeaders)
                {
                    client.DefaultRequestHeaders.Add(header.Key, header.Value);
                }
            }

            var request = new HttpRequestMessage(HttpMethod.Post, postRequest.RequestUri)
            {
                Content = new StringContent(postRequest.RequestBody, Encoding.UTF8, "application/x-www-form-urlencoded")
            };

            return client.PostAsync(postRequest.RequestUri, request.Content).Result;
        }
        public IResponse ExecuteRequest(IClientRequest request)
        {
            var             webRequest = ConvertRequestToWebClient(request);
            HttpWebResponse response;

            try
            {
                response = webRequest.GetResponse() as HttpWebResponse;
            }
            catch (WebException exception)
            {
                response = exception.Response as HttpWebResponse;
                if (response == null)
                {
                    throw;
                }
            }

            return(new WebRequestResponse(response));
        }
        IResponse RetryWithHttpAuthenticationCredentials(IClientRequest request, IResponse response)
        {
            if (response.Headers["WWW-Authenticate"] != null && response.Headers["WWW-Authenticate"].Contains("Digest"))
            {
                var responseDigest = DigestHeader.Parse(response.Headers["WWW-Authenticate"]);

                var header = new OpenRasta.Security.DigestHeader(responseDigest)
                {
                    Username    = request.Credentials.Username,
                    Password    = request.Credentials.Password,
                    Nonce       = responseDigest.Nonce,
                    ClientNonce = "none",
                    Uri         = request.Uri.GetLeftPart(UriPartial.Path)
                };
                header.Response = header.GetCalculatedResponse(request.HttpMethod);

                request.Headers["Authorization"] = header.ClientRequestHeader;
                return(_host.ProcessRequest(request));
            }
            return(response);
        }
        IResponse RetryWithHttpAuthenticationCredentials(IClientRequest request, IResponse response)
        {
            if (response.Headers["WWW-Authenticate"] != null && response.Headers["WWW-Authenticate"].Contains("Digest"))
            {
                var responseDigest = DigestHeader.Parse(response.Headers["WWW-Authenticate"]);

                var header = new DigestHeader(responseDigest)
                {
                    Username = request.Credentials.Username,
                    Password = request.Credentials.Password,
                    Nonce = responseDigest.Nonce,
                    ClientNonce = "none",
                    Uri = request.Uri.GetLeftPart(UriPartial.Path)
                };
                header.Response =  header.GetCalculatedResponse(request.HttpMethod);

                request.Headers["Authorization"] = header.ClientRequestHeader;
                return _host.ProcessRequest(request);
            }
            return response;
        }
Esempio n. 22
0
        public bool Validate(IClientRequest request, IRateLimiterManager rate_limiter)
        {
            try
            {
                if (RulesSettings.MaxRequestsLimit == -1)
                {
                    return(true); // settings are not initiated == no limit.
                }
                if (rate_limiter.RequestsLog.Count(l => l.Token.Equals(request.Token) &&
                                                   l.CallDateTimeStamp >= DateTime.Now - RulesSettings.TimeSpanLimit) > RulesSettings.MaxRequestsLimit)
                {
                    return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
                // Log/Manage exception
            }
        }
        public IResponse ExecuteRequest(IClientRequest request)
        {
            if (request.Entity.Stream.Length > 0)
            {
                request.Entity.Stream.Position = 0;
            }
            var response = _host.ProcessRequest(request);

            if (response.StatusCode == 303)
            {
                response = RedirectOn303SeeOther(response);
            }
            else if (response.StatusCode == 401)
            {
                response = RetryWithHttpAuthenticationCredentials(request, response);
            }

            if (response.Entity.ContentLength > 0 && response.Entity.Stream.CanSeek)
            {
                response.Entity.Stream.Position = 0;
            }
            return(response);
        }
Esempio n. 24
0
        IClientResponse Execute(IClientRequest request)
        {
            MemoryResource resource;

            if (!Resources.TryGetValue(request.RequestUri, out resource))
            {
                return(new MemoryResponse
                {
                    Status = new HttpStatus(404, "Nout found"),
                    Headers = { { "Content-Length", "0" } }
                });
            }
            Func <IClientRequest, IClientResponse> methodHandler;

            if (!resource.Operations.TryGetValue(request.Method, out methodHandler))
            {
                return(new MemoryResponse
                {
                    Status = new HttpStatus(405, "Method not allowed"),
                    Headers = { { "Content-Length", "0" } }
                });
            }
            if (
                resource.Username != null &&
                resource.Password != null &&
                (request.Credentials == null ||
                 resource.Username != request.Credentials.UserName ||
                 resource.Password != request.Credentials.Password))
            {
                return(new MemoryResponse
                {
                    Status = new HttpStatus(401, "Unauthorized"),
                    Headers = { { "Content-Length", "0" } }
                });
            }
            return(methodHandler(request));
        }
        // per specification: allow request only if a certain timespan passed since the last call per user (token)
        public bool Validate(IClientRequest request, IRateLimiterManager rate_limiter)
        {
            try
            {
                if (RulesSettings.TimeSpanLimit.Equals(new TimeSpan(0, 0, 0, 0, 0))) // setting is not enabled
                {
                    return(true);
                }

                DateTime lastcall = rate_limiter.RequestsLog.Where(l => l.Token.Equals(request.Token)).Max(l => l.CallDateTimeStamp);
                if (lastcall != null &&
                    lastcall > DateTime.Now - RulesSettings.TimeSpanLimit)
                {
                    return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
                // Log/Manage exception
            }
        }
Esempio n. 26
0
        /// <summary>
        /// 处理用户单点登录
        /// </summary>
        /// <param name="clientInfo"></param>
        /// <param name="con"></param>
        /// <param name="db"></param>
        public void ProcessReqest(ClientLogin clientInfo, SocketConnection con, IClientRequest db)
        {
            con.Identity = clientInfo.Identity;
            con.PhoneMac = clientInfo.PhoneMac;
            SocketConnection oldSocket;
            var loginBk = new LoginBk
            {
                CmdCode  = 0xFF02,
                Identity = clientInfo.Identity,
                ServerId = SocketConnectionServerDispatcher.ServerId,
                //TimeToken = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
                ResultCode = 1
            };

            con.Send(loginBk.ToByteArray());
            if (SocketConnectionServerDispatcher.DicSockectConnection.TryGetValue(clientInfo.Identity,
                                                                                  out oldSocket) && !oldSocket.PhoneMac.Equals(con.PhoneMac))
            {
                loginBk.ResultCode = 4;
                oldSocket.Send(loginBk.ToByteArray()); //返回处理结果
            }
            SocketConnectionServerDispatcher.DicSockectConnection.AddOrUpdate(clientInfo.Identity, con, (key, old) => con);
            SocketConnection.ShowMsg(clientInfo.ToString());
        }
Esempio n. 27
0
 static IClientResponse DefaultNotFoundResponse(IClientRequest request)
 {
     return new MemoryResponse
     {
         Status = new HttpStatus(404, "Not found"),
         Headers = { { "Content-Length", "0" } }
     };
 }
 public ClientRequestController(IClientRequest iClientRequest)
 {
     this._iClientRequest = iClientRequest;
 }
Esempio n. 29
0
 public static IClientRequest Handle(this IClientRequest request, Action <IClientResponse> response)
 {
     return(request.Handle(_ => true, response));
 }
        public Task AuthenticateAsync(IClientRequest request, CancellationToken token = default)
        {
            request.AddHeader(_key, _value);

            return(Task.CompletedTask);
        }
Esempio n. 31
0
 public static IClientRequest Handle(this IClientRequest request, Func <IClientResponse, bool> predicate, Action <IClientResponse> response)
 {
     request.RegisterHandler(predicate, response);
     return(request);
 }
Esempio n. 32
0
 public bool Validate(IClientRequest request, IRateLimiterManager rate_limiter)
 {
     return(request.GeoLocation == GeoLocation.US ?
            new RequestsPerTimespanLimit().Validate(request, rate_limiter) :
            new TimespanSinceLastCallLimit().Validate(request, rate_limiter));
 }
Esempio n. 33
0
 public Task AuthenticateAsync(IClientRequest request, CancellationToken token = default)
 {
     request.AddHeader("Authorization", $"Basic {_encoded}");
     return(Task.CompletedTask);
 }
Esempio n. 34
0
        /// <summary>
        /// 处理设备上报状态
        /// </summary>
        /// <param name="statusInfo"></param>
        /// <param name="con"></param>
        /// <param name="db"></param>
        public void ProcessReqest(DeviceStatus statusInfo, SocketConnection con, IClientRequest db)
        {
            if (!string.IsNullOrWhiteSpace(statusInfo.OppositeId))
            {//立即返回当前设备状态
                SocketConnection client;
                if (SocketConnectionServerDispatcher.DicSockectConnection.TryGetValue(statusInfo.OppositeId, out client) && client.ConnectSocket.Connected)
                {
                    client.Send(statusInfo.ToByteArray());
                }
            }
            var statusBk = new CmdHeader
            {
                CmdCode  = 0xFF03,
                Identity = con.Identity,
                ServerId = SocketConnectionServerDispatcher.ServerId,
                //TimeToken = statusInfo.TimeToken,
            };

            if (statusInfo.LightStatus == null)
            {
                statusBk.ResultCode = 0;
                con.Send(statusBk.ToByteArray());
                return;
            }
            var deviceStatus = new DtoStatusInfo
            {
                ImeiNo      = statusInfo.Identity,
                LightStatus = new DtoLightStatus()
                {
                    lightstatus = statusInfo.LightStatus.Status,
                    CellAddr    = statusInfo.LightStatus.CellAddr,
                    lightBt     = statusInfo.LightStatus.LightBt,
                    lightBu     = statusInfo.LightStatus.LightBu,
                    lightLi     = statusInfo.LightStatus.LightLi,
                    lightLu     = statusInfo.LightStatus.LightLu,
                    lightPw     = statusInfo.LightStatus.LightPw,
                    lightUi     = statusInfo.LightStatus.LightUi,
                    lightUu     = statusInfo.LightStatus.LightUu,
                    lightBgu    = JsonConvert.SerializeObject(statusInfo.LightStatus.LightBgus)
                }
            };

            //foreach (var l in statusInfo.LightStatus)
            //{
            //    deviceStatus.LightStatus.Add(new DtoLightStatus
            //    {
            //        lightstatus = l.Status,
            //        CellAddr = l.CellAddr,
            //        //lightNo = l.LightNo,
            //        lightBt = l.LightBt,
            //        lightBu = l.LightBu,
            //        lightLi = l.LightLi,
            //        lightLu = l.LightLu,
            //        lightPw = l.LightPw,
            //        lightUi = l.LightUi,
            //        lightUu = l.LightUu,
            //        lightBgu = JsonConvert.SerializeObject(l.LightBgus)
            //    });
            //}

            statusBk.ResultCode = db.DeviceStatusInfo(deviceStatus);
            con.Send(statusBk.ToByteArray());
            SocketConnection.ShowMsg(statusInfo.ToString());
        }
Esempio n. 35
0
 public static IClientRequest Handle(this IClientRequest request, int statusCode, Action <IClientResponse> response)
 {
     return(request.Handle(_ => _.Status.Code == statusCode, response));
 }
Esempio n. 36
0
 public MailSender(IClientRequest smtpRequest)
 {
     _smtpRequest = smtpRequest;
 }