Beispiel #1
0
        /// <summary>
        /// 最简单的Http请求(操作类)应答处理函数,需要自己扩展
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="control"></param>
        /// <param name="response"></param>
        /// <param name="context"></param>
        public static void CommOpResponseCommHandler <T>(this Control control, HttpResponse response,
                                                         object context)
            where T : BaseOpResult
        {
            control.Dispatcher.BeginInvoke(new Action <HttpResponse>((result) =>
            {
                var strHandleMsg = "";
                try
                {
                    var requestUrl = response.RequestMessage?.RequestUri;
                    if (null == result)
                    {
                        strHandleMsg = string.Format("服务处理{0}失败,应答数据为空!", requestUrl?.AbsolutePath);
                        WaitingDialog.ChangeStateMsg(strHandleMsg);
                        SLogger.Err(result.ToString());
                        //MessageBox.Show(string.Format("服务处理{0}失败,应答数据为空!", requestUrl?.AbsolutePath));
                        return;
                    }

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

                        if (opResult.ResultCode != QueryResultCode.Succeed)
                        {
                            // 操作失败
                            //MessageBox.Show(string.Format("服务{0}处理失败,原因:{1}", requestUrl?.AbsolutePath, opResult.RetMsg));
                            strHandleMsg = string.Format("服务{0}处理失败,原因:{1}", requestUrl?.AbsolutePath, opResult.RetMsg);
                            WaitingDialog.ChangeStateMsg(strHandleMsg);
                            SLogger.Err(result.ToString());
                            return;
                        }
                        else
                        {
                            // 操作成功
                            var succeedMsg = opResult.RetMsg;
                            WaitingDialog.ChangeStateMsg(succeedMsg);
                        }
                    }
                    else
                    {
                        strHandleMsg = string.Format("后台请求失败,原因:{0}", result.ResponseContent);
                        WaitingDialog.ChangeStateMsg(strHandleMsg);
                        SLogger.Err(result.ToString());
                        return;
                    }
                }
                catch (Exception ex)
                {
                    strHandleMsg = string.Format("软件处理出错,msg:{0}", ex.Message);
                    WaitingDialog.ChangeStateMsg(strHandleMsg);
                    SLogger.Err(result.ToString(), ex);
                    return;
                }
            }), DispatcherPriority.DataBind, new object[] { response });
        }
Beispiel #2
0
        private void FreBusinessSearchResultResponseHandler <T>(HttpResponse res, object context)
            where T : FreBussinessOpCenterDTO
        {
            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 <FreBussinessOpCenterDTO> > >(result.ResponseContent);

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

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

                        var entityList = queryResult.ResultData;
                        if (null == entityList)
                        {
                            //strHandleMsg = $"返回结果不是数据列表,原因:{queryResult.RetMsg}";
                            //WaitingDialog.ChangeStateMsg(strHandleMsg);
                            //SLogger.Err(res.ToString());
                            //return;

                            // 返回结果为空
                            entityList = new List <FreBussinessOpCenterDTO>();
                        }

                        var showSearchResultList = new List <FreBusinessSearchPanelMode>();
                        foreach (var e in entityList)
                        {
                            showSearchResultList.Add(new FreBusinessSearchPanelMode(e));
                        }
                        var pageViewMode = new PaggingViewMode <FreBusinessSearchPanelMode>(
                            showSearchResultList, queryResult.ResultCount, StartSearch);
                        this.DataContext = pageViewMode;

                        this.Pagger.Init(queryResult.ResultCount, StartSearch);

                        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 });
        }
Beispiel #3
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 });
        }