Esempio n. 1
0
        /// <summary>
        ///利用ID获取设备信息
        /// </summary>
        /// <returns></returns>
        public ReturnItem <RetDeviceInfo> GetDeviceInfo(GetDeviceInfoParameter parameter)
        {
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.DeviceApiUrl + "Api/EquipmentInfo/GetDeviceInfoInside"
            };

            if (!string.IsNullOrEmpty(parameter.ID))
            {
                wparameter.Content.Add("ID", parameter.ID.ToString());// 传递设备ID
            }
            if (!string.IsNullOrEmpty(parameter.DeviceLabel))
            {
                wparameter.Content.Add("DeviceLabel", parameter.DeviceLabel);
            }
            if (!string.IsNullOrEmpty(parameter.Phone))
            {
                wparameter.Content.Add("Phone", parameter.Phone);
            }
            if (!string.IsNullOrEmpty(parameter.OrgID))
            {
                wparameter.Content.Add("OrgID", parameter.OrgID);
            }
            return(new WebApiHelper().GetEntity <RetDeviceInfo>(wparameter));
        }
Esempio n. 2
0
        /// Post请求WebApi获得返回对象
        /// </summary>
        /// <typeparam name="T">返回对象的具体类型</typeparam>
        /// <param name="parameter">请求对象</param>
        /// <param name="debug">出错是否输出错信息到ReturnItem.Message</param>
        /// <param name="mediaType">请求媒体类型</param>
        /// <param name="timeOut">超时时间设置 默认5秒 单位:秒</param>
        /// <returns></returns>
        public ReturnItem <T> GetEntity <T>(WebApiPostParameter parameter, bool debug = false, string mediaType = "application/json", int timeOut = 30)
        {
            if (CheckParameter(parameter))
            {
                string outstr       = "";
                int    tryintlimit  = 5; //尝试5次
                int    tryint       = 0; //以尝试次数
                bool   run          = true;
                string responseJson = "";
                #region     //规避连接预热产生的超时问题
                while (run) //规避连接预热产生的超时问题
                {
                    try
                    {
                        responseJson = Post(parameter, debug, mediaType, timeOut);
                        try
                        {
                            var get = JsonHelper.JsonToEntity <ReturnItem <T> >(responseJson);
                            run = false;
                            return(get);
                        }
                        catch (Exception ex)
                        {
                            //反序列化失败
                            outstr = "错误:" + ex.Message;
                            if (debug)
                            {
                                outstr = outstr + ",接收到的消息:" + responseJson;
                            }
                            log.Debug(outstr);
                            return(new ReturnItem <T>()
                            {
                                Code = -1, Msg = outstr
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        tryint = tryint + 1;
                        if (tryint >= tryintlimit)
                        {
                            run = false;
                            throw new Exception("已达重试次数:" + tryint + "/" + tryintlimit);
                            //return new ReturnItem<T>() { Success = false, Message = "请求失败:超过最大请求次数" };
                        }
                        Thread.Sleep(1000);
                    }
                }
                return(null);

                #endregion
            }
            else
            {
                return(new ReturnItem <T>()
                {
                    Code = -1, Msg = "请求失败:WebApePostParameter效验不通过"
                });
            }
        }
Esempio n. 3
0
 public HttpResponseMessage Connect(WebApiPostParameter parameter, bool debug = false, string mediaType = "application/json", int timeOut = 30)
 {
     #region 通讯逻辑
     using (HttpClient httpClient = new HttpClient())
     {
         httpClient.Timeout = TimeSpan.FromSeconds(timeOut);
         var response = httpClient.SendAsync(new HttpRequestMessage {
             RequestUri = new Uri(parameter.Url)
         });
         if (response.Result.IsSuccessStatusCode)
         {
             try
             {
                 return(response.Result);
             }
             catch (Exception ex)
             {
                 return(new System.Net.Http.HttpResponseMessage {
                 });
             }
         }
         return(new HttpResponseMessage {
         });
     }
     #endregion
 }
Esempio n. 4
0
        internal string Post(WebApiPostParameter parameter, bool debug = false, string mediaType = "application/json", int timeOut = 30)
        {
            string r = "";

            #region 通讯逻辑
            using (HttpClient httpClient = new HttpClient())
            {
                httpClient.Timeout = TimeSpan.FromSeconds(timeOut);
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(mediaType));
                HttpResponseMessage response = httpClient.PostAsync(parameter.Url, new FormUrlEncodedContent(parameter.Content)).Result;
                if (response.IsSuccessStatusCode)
                {
                    try
                    {
                        r = response.Content.ReadAsStringAsync().Result;
                        return(r);
                    }
                    catch (Exception ex)
                    {
                        return(new ReturnItem <object>()
                        {
                            Code = -1, Msg = ex.Message
                        }.ToJson());
                    }
                }
                return(new ReturnItem <object>()
                {
                    Code = -1, Msg = response.StatusCode.ToString()
                }.ToJson());;
            }
            #endregion
        }
Esempio n. 5
0
        /// <summary>
        /// 根据UserId获取用户信息
        /// </summary>
        /// <returns></returns>
        public ReturnItem <RetUserLoginInfo> GetUserInfo(GetUserInfoParameter parameter)
        {
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.UserApiUrl + "Api/User/GetUserInfoInside"
            };

            parameter.SetPostParameter(wparameter);//填充请求参数
            return(new WebApiHelper().GetEntity <RetUserLoginInfo>(wparameter));
        }
Esempio n. 6
0
        /// <summary>
        /// 检查请求参数.现在默认只检查Token
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        bool CheckParameter(WebApiPostParameter parameter)
        {
            bool r = false;

            if (parameter.Content != null)
            {
                r = true;
            }
            return(r);
        }
Esempio n. 7
0
 public void SetPostParameter(WebApiPostParameter postParameter)
 {
     if (TokenId != null && TokenId != "")
     {
         postParameter.Content.Add("TokenID", TokenId.ToString());
     }
     else
     {
         throw new Exception("Need TokenId");
     }
 }
Esempio n. 8
0
        /// <summary>
        /// 根据数据连接ID获取连接信息
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public ReturnItem <RetDataConnectConfiguration> GetDataConnect(IoTHubConfigurationModel parameter)
        {
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.DeviceApiUrl + "Api/EquipmentInfo/GetDataConnectInner"
            };
            string connectInfo = JsonConvert.SerializeObject(parameter);

            wparameter.Content.Add("ID", parameter.ID.ToString());
            return(new WebApiHelper().GetEntity <RetDataConnectConfiguration>(wparameter));
        }
        public ReturnItem <string> EnanbleDeviceService(EnableDeviceParmeter parameter)
        {
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.AlertApiUrl + "Api/AlertPolicies/EnableDeviceService"
            };

            wparameter.Content.Add("IsEnable", parameter.IsEnable);
            wparameter.Content.Add("DeviceId", parameter.DeviceId);
            return(new WebApiHelper().GetEntity <string>(wparameter));
        }
Esempio n. 10
0
        /// <summary>
        /// 添加报警信息
        /// </summary>
        /// <returns></returns>
        public ReturnItem <string> AddAlarmMessage(GetMessageInfoParameter parameter)
        {
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.UserApiUrl + "Api/Message/AddAlarmMessageInside"
            };

            wparameter.Content.Add("Type", parameter.Type);
            wparameter.Content.Add("Tittle", parameter.Tittle);
            wparameter.Content.Add("Text", parameter.Text);
            wparameter.Content.Add("OrgID", parameter.OrgID);
            return(new WebApiHelper().GetEntity <string>(wparameter));
        }
Esempio n. 11
0
        /// <summary>
        /// 获取所有设备列表
        /// </summary>
        /// <returns></returns>
        public ReturnItem <List <RetDeviceInfo> > GetAllDeviceList(GetDeviceInfoParameter parameter)
        {
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.DeviceApiUrl + "Api/EquipmentInfo/GetAllDeviceListInside"
            };

            if (!string.IsNullOrEmpty(parameter.Status))
            {
                wparameter.Content.Add("Status", parameter.Status);
            }
            return(new WebApiHelper().GetEntity <List <RetDeviceInfo> >(wparameter));
        }
        /// <summary>
        /// 获取报警策略个数
        /// </summary>
        /// <returns></returns>
        public ReturnItem <string> GetAlertPoliciesNum()
        {
            string tokenId = "";
            var    getdic  = JsonHelper.JsonToEntity <Hashtable>(HttpContext.Current.Request.Headers["tokenid"].ToBase64DecryptString());

            tokenId = getdic["tokenid"].ToString();
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.AlertApiUrl + "Api/AlertPolicies/GetAlertPoliciesNum"
            };

            wparameter.Content.Add("TokenId", tokenId.ToString());
            return(new WebApiHelper().GetEntity <string>(wparameter));
        }
Esempio n. 13
0
        /// <summary>
        /// 获取设备实时数据
        /// </summary>
        /// <returns></returns>
        public ReturnItem <List <RetDeviceCurrentData> > GetDeviceCurrentData(List <GetDeviceDataParameter> parameter)
        {
            var    getdic  = JsonHelper.JsonToEntity <Hashtable>(HttpContext.Current.Request.Headers["tokenid"].ToBase64DecryptString());
            string tokenId = getdic["tokenid"].ToString();
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.DeviceApiUrl + "Api/EquipmentData/GetDeviceCurrentDataInside"
            };
            string DeviceInfo = JsonConvert.SerializeObject(parameter);

            wparameter.Content.Add("DeviceInfo", DeviceInfo);
            wparameter.Content.Add("TokenID", tokenId);
            return(new WebApiHelper().GetEntity <List <RetDeviceCurrentData> >(wparameter));
            //报错的地方
        }
Esempio n. 14
0
        /// <summary>
        /// 获取当前组织设备列表
        /// </summary>
        /// <returns></returns>
        public ReturnItem <List <RetDeviceInfo> > GetDeviceList(GetDeviceInfoParameter parameter)
        {
            string tokenId = "";
            var    getdic  = JsonHelper.JsonToEntity <Hashtable>(HttpContext.Current.Request.Headers["tokenid"].ToBase64DecryptString());

            tokenId           = getdic["tokenid"].ToString();
            parameter.TokenId = tokenId;
            WebApiPostParameter wparameter = new WebApiPostParameter()
            {
                Url = CustomConfigParam.DeviceApiUrl + "Api/EquipmentInfo/GetDeviceListInside"
            };

            parameter.SetPostParameter(wparameter);//填充请求参数
            if (!string.IsNullOrEmpty(parameter.Status))
            {
                wparameter.Content.Add("Status", parameter.Status);
            }
            return(new WebApiHelper().GetEntity <List <RetDeviceInfo> >(wparameter));
        }
Esempio n. 15
0
        //是否加密传输
        /// <summary>
        /// 获取TokenId详细信息(用于加密)
        /// </summary>
        /// <param name="TokenId"></param>
        /// <returns></returns>
        public ReturnItem <TokenEntity> GetTokenEntity()
        {
            string tokenId = "";

            try
            {
                var getdic = JsonHelper.JsonToEntity <Hashtable>(HttpContext.Current.Request.Headers["tokenid"].ToBase64DecryptString());
                tokenId = getdic["tokenid"].ToString();
                if (tokenId == "")
                {
                    return(null);
                }
            }
            catch
            {
                return(null);
            }

            Guid token = Guid.Empty;

            Guid.TryParse(tokenId, out token);

            if (CustomConfigParam.IsUseRedis)
            {
                RetUserLoginInfo getbyRedis = new RedisClient(CustomConfigParam.RedisDbNumber).StringGet <RetUserLoginInfo>("Token:" + tokenId.Replace("-", "").ToLower());
                if (getbyRedis != null)
                {
                    getbyRedis.TokenId = token.ToString("N");

                    //判断是否过期
                    if (getbyRedis.TokenDisabledTime.AddHours(2) < DateTime.Now)
                    {
                        return(new ReturnItem <TokenEntity>()
                        {
                            Code = 0,
                            Msg = "登录信息已过期",
                            Data = null
                        });
                    }

                    getbyRedis.TokenDisabledTime = DateTime.Now.AddHours(2);
                    //刷新Redis中的时间
                    new RedisClient(CustomConfigParam.RedisDbNumber).StringSet <RetUserLoginInfo>("Token:" + tokenId.Replace("-", "").ToLower(), getbyRedis);
                    return(new ReturnItem <TokenEntity>()
                    {
                        Code = 0,
                        Msg = "获取用户资料成功",
                        Data = new TokenEntity()
                        {
                            IV = getbyRedis.Iv,
                            Key = getbyRedis.Key,
                            UserId = getbyRedis.UserId,
                            TokenId = Guid.Parse(getbyRedis.TokenId),
                            IsPlatformAdmin = getbyRedis.IsPlatformAdmin,
                            DisableDate = getbyRedis.TokenDisabledTime
                        }
                    });
                }
            }

            if (token != Guid.Empty)
            {
                GetTokenEntityParameter parameter = new GetTokenEntityParameter()
                {
                    TokenId = token
                };
                WebApiPostParameter wparameter = new WebApiPostParameter()
                {
                    Url = CustomConfigParam.UserApiUrl + "Api/User/GetTokenEntity"
                };
                parameter.SetPostParameter(wparameter);//填充请求参数
                return(new WebApiHelper().GetEntity <TokenEntity>(wparameter));
            }
            else
            {
                return(null);
                //throw new Exception("不合法的TokenId");
            }
        }