Esempio n. 1
0
        public static NetHandleResult GetEntityListResponseCommHandler <T>(this UserControl control, SimpleProtocolStruct response, IPEndPoint endpoint)
            where T : class, new()
        {
            var handleResult = JsonHelper.DeserializeTo <NetHandleResult>(response.ResponseData);

            control.Dispatcher.BeginInvoke(new Action <NetHandleResult>((result) => {
                if (result.ResultCode == NetHandleResultCode.Succeed)
                {
                    var queryResult = JsonHelper.DeserializeTo <QueryResult <IList <T> > >(result.RetObject.ToString());

                    if (queryResult.ResultCode != 0)
                    {
                        MessageBox.Show(string.Format("服务处理失败,原因:{0}", queryResult.RetMsg));
                        return;
                    }

                    var entityList = queryResult.ResultData;

                    if (null == entityList)
                    {
                        MessageBox.Show(string.Format("服务处理失败,原因:返回结果不是 List<DriverinfoEntity>,type = {0}", result.RetObject.GetType().Name));
                        return;
                    }

                    var viewModeList = entityList;

                    var pageViewMode = new PaggingViewMode <T>(viewModeList);

                    control.DataContext = pageViewMode;
                }
                else
                {
                    MessageBox.Show(string.Format("后台请求:{0}调用失败,原因:{1}", response, result));
                }
            }), DispatcherPriority.DataBind, new object[] { handleResult });

            return(null);
        }
Esempio n. 2
0
        /// <summary>
        /// 最简单的Http请求(查询类)应答处理函数,需要自己扩展
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="control"></param>
        /// <param name="res"></param>
        /// <param name="context"></param>
        public static void GetEntityListResponseCommHandler <T>(this Control control, HttpResponse res, object context)
            where T : class, new()
        {
            control.Dispatcher.BeginInvoke(new Action <HttpResponse>((result) =>
            {
                var strHandleMsg = "";
                try
                {
                    var requestUrl = res.RequestMessage?.RequestUri;

                    if (null == result)
                    {
                        strHandleMsg = string.Format("服务处理{0}失败,应答数据为空!", requestUrl?.AbsolutePath);
                        WaitingDialog.ChangeStateMsg(strHandleMsg);
                        SLogger.Err(res.ToString());
                        return;
                    }

                    if (result.StatusCode == HttpStatusCode.OK)
                    {
                        var queryResult = JsonHelper.DeserializeTo <QueryResult <IList <T> > >(result.ResponseContent);

                        if (null == queryResult)
                        {
                            strHandleMsg = $"服务器应答结果为空,系统异常,请联系管理员";
                            WaitingDialog.ChangeStateMsg(strHandleMsg);
                            SLogger.Err(res.ToString());
                            return;
                        }

                        if (queryResult.ResultCode != 0)
                        {
                            strHandleMsg = string.Format("服务处理失败,原因:{0}", queryResult.RetMsg);
                            WaitingDialog.ChangeStateMsg(strHandleMsg);
                            SLogger.Err(res.ToString());
                            return;
                        }

                        var entityList = queryResult.ResultData;

                        if (null == entityList)
                        {
                            strHandleMsg = string.Format("服务处理失败,返回结果不是数据列表,原因:{0}", queryResult.RetMsg);
                            WaitingDialog.ChangeStateMsg();
                            SLogger.Err(res.ToString());
                            return;
                        }

                        var viewModeList = entityList;

                        var pageViewMode = new PaggingViewMode <T>(viewModeList);

                        control.DataContext = pageViewMode;

                        WaitingDialog.Hide();
                    }
                    else
                    {
                        strHandleMsg = string.Format("后台请求:调用失败,原因:{0}", result.ResponseContent);
                        WaitingDialog.ChangeStateMsg(strHandleMsg);
                        SLogger.Err(res.ToString());
                        return;
                    }
                }
                catch (Exception ex)
                {
                    strHandleMsg = string.Format("软件处理出错,msg:{0}", ex.Message);
                    MessageBox.Show(strHandleMsg);
                    SLogger.Err(res.ToString(), ex);
                }
            }), DispatcherPriority.DataBind, new object[] { res });
        }