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 }); }
/// <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 }); }