public DataTable GetOrderQuestionExcel(OrderQuestionQuery o) { try { DataTable _list = _oqdao.GetOrderQuestionExcel(o); if (_list.Rows.Count > 0) { ParametersrcDao _parameterDao = new Dao.ParametersrcDao(connStr); List<Parametersrc> parameterList = _parameterDao.QueryParametersrcByTypes("Question_Status", "problem_category"); _list.Columns.Add("question_status_name"); _list.Columns.Add("question_type_name"); foreach (DataRow dr in _list.Rows) { //求參數 var alist = parameterList.Find(m => m.ParameterType == "Question_Status" && m.ParameterCode == dr["question_status"].ToString()); var clist = parameterList.Find(m => m.ParameterType == "problem_category" && m.ParameterCode == dr["question_type"].ToString()); if (alist != null) { dr["question_status_name"] = alist.parameterName; } if (clist != null) { dr["question_type_name"] = clist.parameterName; } } } return _list; } catch (Exception ex) { throw new Exception("OrderQuestionMgr-->GetOrderQuestionExcel-->" + ex.Message, ex); } }
/// <summary> /// /// </summary> /// <param name="query"></param> /// <param name="totalCount"></param> /// <returns></returns> public List<OrderQuestionQuery> GetOrderQuestionList(OrderQuestionQuery query, out int totalCount) { try { List<OrderQuestionQuery> _list = _oqdao.GetOrderQuestionList(query, out totalCount); if (_list.Count > 0) { ParametersrcDao _parameterDao = new Dao.ParametersrcDao(connStr); List<Parametersrc> parameterList = _parameterDao.QueryParametersrcByTypes("Question_Status", "problem_category"); foreach (OrderQuestionQuery dr in _list) { //求參數 var alist = parameterList.Find(m => m.ParameterType == "Question_Status" && m.ParameterCode == dr.question_status.ToString()); var clist = parameterList.Find(m => m.ParameterType == "problem_category" && m.ParameterCode == dr.question_type.ToString()); if (alist != null) { dr.question_status_name = alist.parameterName; } if (clist != null) { dr.question_type_name = clist.parameterName; } } } return _list; } catch (Exception ex) { throw new Exception("OrderQuestionMgr-->GetOrderQuestionList-->" + ex.Message, ex); } }
/// <summary> /// 根據條件查詢問題及回覆列表信息 /// </summary> /// <param name="query">查詢條件</param> /// <param name="totalCount">查到數據總條件</param> /// <returns>問題及回覆列表</returns> public DataTable GetList(OrderQuestionQuery query, out int totalCount) { try { return _oqdao.GetList(query, out totalCount); } catch (Exception ex) { throw new Exception("OrderQuestionMgr-->GetList-->" + ex.Message, ex); } }
public HttpResponseBase GetQuestion() { List<OrderQuestionQuery> stores = new List<OrderQuestionQuery>(); string json = string.Empty; try { OrderQuestionQuery query = new OrderQuestionQuery(); query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量 query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "20");//用於分頁的變量 query.order_id = Convert.ToUInt32(Request.Params["Order_Id"].ToString()); _tabshow = new TabShowMgr(mySqlConnectionString); int totalCount = 0; stores = _tabshow.GetQuestion(query, out totalCount); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; json = "{success:true,'msg':'user',totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(stores, Formatting.Indented, timeConverter) + "}";//返回json數據 } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:true,totalCount:0,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
public List<OrderQuestionQuery> GetQuestion(OrderQuestionQuery store, out int totalCount) { StringBuilder sql = new StringBuilder(); StringBuilder sqlcount = new StringBuilder(); try { sql.AppendLine(@"SELECT oqn.question_id,oqn.order_id,oqn.question_username,oqn.question_phone,"); sql.AppendLine(@"oqn.question_email,oqn.question_type,para.parameterName as 'question_type_str', oqn.question_reply,"); sql.AppendLine(@"oqn.question_reply_time,oqn.question_status,oqn.question_content,"); sql.AppendLine(@"oqn.question_ipfrom,FROM_UNIXTIME(oqn.question_createdate) AS question_createdates,oqn.question_file,"); sql.AppendLine(@"ore.response_id,ore.response_content,FROM_UNIXTIME(ore.response_createdate) AS response_createdates"); sql.AppendLine(@"FROM order_question oqn LEFT JOIN order_response ore ON oqn.question_id=ore.question_id"); sql.AppendLine(@"LEFT JOIN (SELECT parameterCode,parameterName FROM t_parametersrc WHERE parameterType='order_question') para on oqn.question_type=para.parameterCode "); sql.AppendFormat(@"WHERE oqn.order_id={0}", store.order_id); sqlcount.AppendFormat(@"SELECT count(oqn.question_id) AS search_total FROM order_question oqn LEFT JOIN order_response ore ON oqn.question_id=ore.question_id WHERE oqn.order_id={0}", store.order_id); totalCount = 0; if (store.IsPage) { System.Data.DataTable _dt = _access.getDataTable(sqlcount.ToString()); if (_dt != null && _dt.Rows.Count > 0) { totalCount = Convert.ToInt32(_dt.Rows[0]["search_total"]); } sql.AppendFormat(" limit {0},{1}", store.Start, store.Limit); } return _access.getDataTableForObj<OrderQuestionQuery>(sql.ToString()); } catch (Exception ex) { throw new Exception("TabShowDao-->GetMoney " + ex.Message + sql.ToString(), ex); } }
/// <summary> /// 獲取回覆記錄列表 /// </summary> /// <returns>回覆記錄json格式數據</returns> public HttpResponseBase GetOrderQuestionResponseList() { string json = string.Empty; DataTable dtQuestionResponseList = new DataTable(); int totalCount = 0; OrderQuestionQuery query = new OrderQuestionQuery(); string question_id = Request.Params["question_id"]; if (!string.IsNullOrEmpty(question_id)) { query.question_id = Convert.ToUInt32(question_id); } query.Start = Convert.ToInt32(Request.Params["start"] ?? "0"); query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25"); _IOrderQuesMgr = new OrderQuestionMgr(mySqlConnectionString); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; try { dtQuestionResponseList = _IOrderQuesMgr.GetList(query, out totalCount); if (dtQuestionResponseList.Rows.Count > 0) { #region // //for (int i = 0; i < dtQuestionResponseList.Rows.Count; i++) //{ // string user_id = dtQuestionResponseList.Rows[i]["user_id"].ToString(); // string product_id = dtQuestionResponseList.Rows[i]["product_id"].ToString(); // string item_id = string.Empty; // List<ProductItem> listProductItem = _IProductItemMgr.GetProductItemByID(Convert.ToInt32(product_id)); // if (listProductItem.Count > 0) // { // item_id = listProductItem[0].Item_Id.ToString(); // } // OrderMasterQuery orderMasterQuery = new OrderMasterQuery // { // User_Id = Convert.ToUInt32(dtQuestionResponseList.Rows[i]["user_id"]), // Item_Id = Convert.ToInt32(item_id) // }; // dtQuestionResponseList.Rows[i]["buyCount"] = _IOrderMasterMgr.GetBuyCount(orderMasterQuery); //} #endregion json = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(dtQuestionResponseList, Formatting.Indented, timeConverter) + "}"; } else { json = "{success:false,msg:0}"; } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,msg:0}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
public JsonResult UpdateOrderQuestionActive() { string json = string.Empty; OrderQuestionQuery query = new OrderQuestionQuery(); _IOrderQuesMgr = new OrderQuestionMgr(mySqlConnectionString); try { if (!string.IsNullOrEmpty(Request.Params["id"])) { query.question_id = Convert.ToUInt32(Request.Params["id"]); } if (!string.IsNullOrEmpty(Request.Params["active"])) { query.question_status = Convert.ToUInt32(Request.Params["active"]); } if (query.question_id != 0) { _IOrderQuesMgr.UpdateQuestionStatus(query); return Json(new { success = "true", msg = "" }); } else { return Json(new { success = "false", msg = "" }); } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); return Json(new { success = "false", msg = "" }); } }
public HttpResponseBase ReplyQuestion() { string timestr = string.Empty; string path = Server.MapPath(xmlPath); SiteConfigMgr _siteConfigMgr = new SiteConfigMgr(path); SiteConfig Mail_From = _siteConfigMgr.GetConfigByName("Mail_From"); SiteConfig Mail_Host = _siteConfigMgr.GetConfigByName("Mail_Host"); SiteConfig Mail_Port = _siteConfigMgr.GetConfigByName("Mail_Port"); SiteConfig Mail_UserName = _siteConfigMgr.GetConfigByName("Mail_UserName"); SiteConfig Mail_UserPasswd = _siteConfigMgr.GetConfigByName("Mail_UserPasswd"); string EmailFrom = Mail_From.Value;//發件人郵箱 string SmtpHost = Mail_Host.Value;//smtp服务器 string SmtpPort = Mail_Port.Value;//smtp服务器端口 string EmailUserName = Mail_UserName.Value;//郵箱登陸名 string EmailPassWord = Mail_UserPasswd.Value;//郵箱登陸密碼 string json = string.Empty; _IOrderQuesMgr = new OrderQuestionMgr(mySqlConnectionString); _IOrderResponseMgr = new OrderResponseMgr(mySqlConnectionString); OrderQuestionQuery query = new OrderQuestionQuery(); OrderResponse ormodel = new OrderResponse(); SmsQuery smsquery = new SmsQuery(); //if (!string.IsNullOrEmpty(Request.Params["question_content"])) //{ // query.question_content = Request.Params["question_content"]; //} //string order_id = Request.Params["OrderId"].ToString(); //if (!string.IsNullOrEmpty(order_id)) //{ // query.order_id = Convert.ToUInt32(order_id); //} try { if (!string.IsNullOrEmpty(Request.Params["question_id"])) { query.question_id = Convert.ToUInt32(Request.Params["question_id"]); ormodel.question_id = query.question_id; } if (!string.IsNullOrEmpty(Request.Params["order_id"])) { smsquery.order_id = Convert.ToInt32(Request.Params["order_id"]); } //if (!string.IsNullOrEmpty(Request.Params["status"])) //{ // query.question_status = Convert.ToUInt32(Request.Params["status"]); //} if (!string.IsNullOrEmpty(Request.Params["response_content"])) { ormodel.response_content = Request.Params["response_content"].Replace("\\", "\\\\"); ; smsquery.content = ormodel.response_content.Replace("\\", "\\\\"); ; } if (!string.IsNullOrEmpty(Request.Params["question_createdate"])) { timestr = Request.Params["question_createdate"]; } if (!string.IsNullOrEmpty(Request.Params["question_username"])) { query.question_username = Request.Params["question_username"]; } if (!string.IsNullOrEmpty(Request.Params["this_question_email"])) { query.question_email = Request.Params["this_question_email"]; } if (!string.IsNullOrEmpty(Request.Params["question_phone"])) { smsquery.mobile = Request.Params["question_phone"].ToString(); } //回複方式 bool reply1 = false; bool reply2 = false; bool reply3 = false; if (!string.IsNullOrEmpty(Request.Params["reply_mail"])) { reply1 = Convert.ToBoolean(Request.Params["reply_mail"]); } if (!string.IsNullOrEmpty(Request.Params["reply_sms"])) { reply2 = Convert.ToBoolean(Request.Params["reply_sms"]); } if (!string.IsNullOrEmpty(Request.Params["reply_phone"])) { reply3 = Convert.ToBoolean(Request.Params["reply_phone"]); } //如果選擇結案就更新問題狀態 //更新order_question表狀態 query.question_status = 1; _IOrderQuesMgr.UpdateQuestionStatus(query); //獲取數據往回覆表添加數據 ormodel.user_id = uint.Parse((System.Web.HttpContext.Current.Session["caller"] as Caller).user_id.ToString()); ormodel.response_ipfrom = CommonFunction.GetIP4Address(Request.UserHostAddress.ToString()); ; ormodel.response_createdate = Convert.ToUInt32(CommonFunction.GetPHPTime(DateTime.Now.ToString())); //判斷選擇的回複方式 if (reply1 || !reply1 && !reply2 && !reply3) { ormodel.response_type = 1; _IOrderResponseMgr.insert(ormodel); FileStream fs = new FileStream(Server.MapPath("../ImportUserIOExcel/OrderQuestionResponse.html"), FileMode.OpenOrCreate, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.UTF8); string strTemp = sr.ReadToEnd(); sr.Close(); fs.Close(); strTemp = strTemp.Replace("{{$s_datetime$}}", timestr);//添加提問時間 strTemp = strTemp.Replace("{{$s_username$}}", query.question_username);//添加提問用戶名 strTemp = strTemp.Replace("{{$consultInfo$}}", query.question_content);//添加提問內容 strTemp = strTemp.Replace("{{$consultAnwser$}}", ormodel.response_content.Replace("\\\\", "\\")); sendmail(EmailFrom, FromName, query.question_email, query.question_username, EmailTile, strTemp, "", SmtpHost, Convert.ToInt32(SmtpPort), EmailUserName, EmailPassWord); } else if (reply2) { ormodel.response_type = 2; _IOrderResponseMgr.insert(ormodel); smsquery.type = 11;//10表示聯絡客服列表保存過去的 smsquery.send = 0; smsquery.trust_send = "9"; smsquery.created = DateTime.Now; smsquery.modified = DateTime.Now; _ISmsMgr = new SmsMgr(mySqlConnectionString); _ISmsMgr.InsertSms(smsquery); } else if (reply3) { ormodel.response_type = 3; _IOrderResponseMgr.insert(ormodel); } //if (!reply1 && !reply2 && !reply3) //{ // ormodel.response_type = 4; // _IOrderResponseMgr.insert(ormodel); //} json = "{success:true}"; } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,msg:0}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
public void OrderQuestionExcel() { OrderQuestionQuery query = new OrderQuestionQuery(); _IOrderQuesMgr = new OrderQuestionMgr(mySqlConnectionString); try { if (!string.IsNullOrEmpty(Request.Params["ddlSel"])) { query.ddlSel = Convert.ToInt32(Request.Params["ddlSel"]); } if (!string.IsNullOrEmpty(Request.Params["selcontent"])) { query.selcontent = Request.Params["selcontent"].ToString(); } if (!string.IsNullOrEmpty(Request.Params["ddtSel"])) { query.ddtSel = Convert.ToInt32(Request.Params["ddtSel"]); } if (!string.IsNullOrEmpty(Request.Params["time_start"]) && Request.Params["time_start"] != "null") { query.question_createdates = Convert.ToDateTime(Request.Params["time_start"]); query.time_start = Convert.ToUInt32(CommonFunction.GetPHPTime(query.question_createdates.ToString())); } if (!string.IsNullOrEmpty(Request.Params["time_end"]) && Request.Params["time_end"] != "null") { query.response_createdates = Convert.ToDateTime(Request.Params["time_end"]); query.time_end = Convert.ToUInt32(CommonFunction.GetPHPTime(query.response_createdates.ToString())); } if (!string.IsNullOrEmpty(Request.Params["ddrSel"])) { query.question_type = Convert.ToUInt32(Request.Params["ddrSel"]); } if (!string.IsNullOrEmpty(Request.Params["ddlstatus"])) { query.ddlstatus = Request.Params["ddlstatus"]; } DataTable dtMain = _IOrderQuesMgr.GetOrderQuestionExcel(query); DataTable new_Table = new DataTable(); #region new_Table表頭 new_Table.Columns.Add(new DataColumn("問題流水號")); new_Table.Columns.Add(new DataColumn("付款單號")); new_Table.Columns.Add(new DataColumn("姓名")); //new_Table.Columns.Add(new DataColumn("聯絡電話")); //new_Table.Columns.Add(new DataColumn("電子信箱")); new_Table.Columns.Add(new DataColumn("問題分類")); new_Table.Columns.Add(new DataColumn("狀態")); new_Table.Columns.Add(new DataColumn("問題內容")); new_Table.Columns.Add(new DataColumn("回覆內容")); new_Table.Columns.Add(new DataColumn("建立日期")); new_Table.Columns.Add(new DataColumn("回覆日期")); #endregion for (int i = 0; i < dtMain.Rows.Count; i++) { DataRow dr1 = new_Table.NewRow(); dr1["問題流水號"] = dtMain.Rows[i]["question_id"].ToString(); dr1["付款單號"] = dtMain.Rows[i]["order_id"].ToString(); dr1["姓名"] = dtMain.Rows[i]["question_username"].ToString(); //dr1["聯絡電話"] = dtMain.Rows[i]["question_phone"].ToString(); //dr1["電子信箱"] = dtMain.Rows[i]["question_email"].ToString(); dr1["問題分類"] = dtMain.Rows[i]["question_type_name"].ToString(); dr1["狀態"] = dtMain.Rows[i]["question_status_name"].ToString(); dr1["問題內容"] = dtMain.Rows[i]["question_content"].ToString(); //CommonFunction.GetNetTime(item.question_createdate); dr1["建立日期"] = CommonFunction.GetNetTime(uint.Parse(dtMain.Rows[i]["question_createdate"].ToString())); if (dtMain.Rows[i]["question_status"].ToString() == "0") { dr1["回覆日期"] = "~"; dr1["回覆內容"] = ""; } else { dr1["回覆內容"] = dtMain.Rows[i]["response_content"].ToString(); if (!string.IsNullOrEmpty(dtMain.Rows[i]["response_createdate"].ToString())) { dr1["回覆日期"] = CommonFunction.GetNetTime(uint.Parse(dtMain.Rows[i]["response_createdate"].ToString())); } else { dr1["回覆日期"] = "~"; } } new_Table.Rows.Add(dr1); } if (new_Table.Rows.Count > 0) { string fileName = "訂單問題" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; MemoryStream ms = ExcelHelperXhf.ExportDT(new_Table, "訂單問題" + DateTime.Now.ToString("yyyyMMddHHmmss")); Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); Response.BinaryWrite(ms.ToArray()); } else { Response.Write("匯出數據不存在"); } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } }
public HttpResponseBase OrderQuestionlist() { List<OrderQuestionQuery> store = new List<OrderQuestionQuery>(); string json = string.Empty; int totalCount = 0; _IOrderQuesMgr = new OrderQuestionMgr(mySqlConnectionString); try { OrderQuestionQuery query = new OrderQuestionQuery(); query.Start = Convert.ToInt32(Request.Params["start"] ?? "0"); if (!string.IsNullOrEmpty(Request.Params["limit"])) { query.Limit = Convert.ToInt32(Request.Params["limit"]); } if (!string.IsNullOrEmpty(Request.Params["ddlSel"])) { query.ddlSel = Convert.ToInt32(Request.Params["ddlSel"]); } if (!string.IsNullOrEmpty(Request.Params["selcontent"])) { query.selcontent = Request.Params["selcontent"].ToString(); } if (!string.IsNullOrEmpty(Request.Params["ddtSel"])) { query.ddtSel = Convert.ToInt32(Request.Params["ddtSel"]); } if (!string.IsNullOrEmpty(Request.Params["time_start"])) { query.question_createdates = Convert.ToDateTime(Request.Params["time_start"]); query.time_start = Convert.ToUInt32(CommonFunction.GetPHPTime(query.question_createdates.ToString())); } if (!string.IsNullOrEmpty(Request.Params["time_end"])) { query.response_createdates = Convert.ToDateTime(Request.Params["time_end"]); query.time_end = Convert.ToUInt32(CommonFunction.GetPHPTime(query.response_createdates.ToString())); } if (!string.IsNullOrEmpty(Request.Params["ddrSel"])) { query.question_type = Convert.ToUInt32(Request.Params["ddrSel"]); } if (!string.IsNullOrEmpty(Request.Params["ddlstatus"])) { query.ddlstatus = Request.Params["ddlstatus"]; } else { query.ddlstatus = "-1"; } if (!string.IsNullOrEmpty(Request.Params["relation_id"]))//待回覆 { query.question_id = Convert.ToUInt32(Request.Params["relation_id"]); } store = _IOrderQuesMgr.GetOrderQuestionList(query, out totalCount); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; foreach (var item in store) { if (Convert.ToBoolean(Request.Params["isSecret"])) { if (!string.IsNullOrEmpty(item.question_username)) { item.question_username = item.question_username.Substring(0, 1) + "**"; } item.question_email = item.question_email.Split('@')[0] + "@***"; if (item.question_phone.ToString().Length > 3) { item.question_phone = item.question_phone.Substring(0, 3) + "***"; } else { item.question_phone = item.question_phone + "***"; } } item.question_createdates = CommonFunction.GetNetTime(item.question_createdate); item.response_createdates = CommonFunction.GetNetTime(item.response_createdate); } //listUser是准备转换的对象 json = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(store, Formatting.Indented, timeConverter) + "}";//返回json數據 } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,totalCount:0,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
/// <summary> /// 更新訂單問題狀態 /// </summary> /// <param name="query">更新條件</param> public void UpdateQuestionStatus(OrderQuestionQuery query) { try { _oqdao.UpdateQuestionStatus(query); } catch (Exception ex) { throw new Exception("OrderQuestionMgr-->UpdateQuestionStatus-->" + ex.Message, ex); } }