public bool AddOrUpdate(t_KinpanDetails entity) { if (entity.id < 1) { return(dbContext.Add(entity)); } return(dbContext.Update(entity, c => c.id == entity.id)); }
/// <summary> /// 获取详情 /// </summary> /// <param name="ProDetailsUrl">详情Html地址</param> /// <param name="ImgPath">图片保存地址 如:</param> /// <param name="ProID">项目ID</param> /// <param name="ProName">项目名字</param> /// <returns></returns> public static void GetKinpanDetails(string ProDetailsUrl, string ImgPath, string ProID, string ProName) { try { //string detailsUrl = ProDetailsUrl.ToString().Trim(); //detailsUrl = WebUrl + detailsUrl; //string strHtml = HtmlCodeRequest(detailsUrl).Trim(); HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(ProDetailsUrl); doc.OptionOutputAsXml = true; //轮播图 HtmlNode lbtnode = doc.DocumentNode.SelectSingleNode(".//*[@class=\"list-h\"]"); if (lbtnode != null) { MessageLog.AddLog("轮播图开始=》"); try { ////*[@id="test"]/li[1] HtmlNodeCollection lbtList = lbtnode.SelectNodes(".//li"); foreach (var item in lbtList) { HtmlNodeCollection lablaImg = item.SelectNodes(".//img"); HtmlAttribute ImgUrl = lablaImg[0].Attributes["bigpic"]; string sImgUrl = ImgUrl.Value.Trim() ?? ""; HtmlAttribute Imgtitle = lablaImg[0].Attributes["title"]; // string sImgtitle = Imgtitle.Value ?? ""; string sImgtitle = Imgtitle.Value.Trim().Length > 0 ? Imgtitle.Value.Trim() : ""; var fName = sImgUrl.Split('/').Last(); string tempImgPath = ImgPath + "\\" + fName; List <string> lStr = new List <string>(); lStr.Add(tempImgPath); lStr.Add(sImgUrl); //while ((startDownload.ThreadState != System.Threading.ThreadState.Stopped) && (startDownload.ThreadState != System.Threading.ThreadState.Aborted)) //{ // Thread.Sleep(5000); //} //startDownload.Abort(); //数据保存 t_KinpanImgDetail mKinpanImgDetail = new t_KinpanImgDetail(); mKinpanImgDetail.ProID = ProID; mKinpanImgDetail.ProImgSavaPath = tempImgPath; mKinpanImgDetail.ProImgTitle = sImgtitle; mKinpanImgDetail.ProImgType = 0; mKinpanImgDetail.ProImgUrl = sImgUrl; if (BllImgDetails.AddOrUpdate(mKinpanImgDetail)) { MessageLog.AddLog("添加成功,轮播图图片下载地址(" + sImgUrl + ");轮播图图片保存地址(" + tempImgPath + ")。"); Thread startDownload = new Thread(new ParameterizedThreadStart(DownLoadimg)); startDownload.Start(lStr); } else { MessageLog.AddLog("添加失败,轮播图图片下载地址(" + sImgUrl + ");轮播图图片保存地址(" + tempImgPath + ")。"); } } } catch (Exception ex) { MessageLog.AddLog("轮播图出错=》" + ex); } MessageLog.AddLog("轮播图结束=》"); } //项目详情 HtmlNode xmxqnode = doc.DocumentNode.SelectSingleNode(".//div[@class=\"QXCon2_c1xmxq\"]"); if (xmxqnode != null) { MessageLog.AddLog("开始保存项目信息详情"); //项目信息详情 HtmlNodeCollection xmxxxq = xmxqnode.SelectNodes(".//div[@class=\"QXCon2c_con\"]/ul/li"); string szhi = ""; foreach (var item in xmxxxq) { szhi += item.InnerHtml.Trim() + " ; "; //数据保存 } List <string> lxqStr = new List <string>(); lxqStr.Add(ImgPath); lxqStr.Add(szhi); lxqStr.Add("项目信息详情"); //描述 //string sms = ""; //HtmlNodeCollection ms = xmxqnode.SelectNodes(".//div[@class=\"QXCon2_clpic\"]/p"); //foreach (var item in ms) //{ // sms += item.InnerHtml.Trim(); //} //图片 //描述 //*[@id="js_detail"] HtmlNodeCollection picDetail = xmxqnode.SelectNodes(".//*[@id=\"js_detail\"]"); if (picDetail[0].InnerHtml.Trim().Length == 0) { picDetail = xmxqnode.SelectNodes(".//div[@class=\"QXCon2_clpic\"]"); } string sms = ""; //string(.) foreach (var picImg in picDetail) { HtmlNodeCollection mss = picImg.SelectNodes(".//p"); //只可能有一个 if (mss.Count > 0) { foreach (var item in mss) { sms += item.InnerText.Trim() + "、"; } } List <string> lmsStr = new List <string>(); lmsStr.Add(ImgPath); lmsStr.Add(sms); lmsStr.Add("描述"); Thread startMsinfoLog = new Thread(new ParameterizedThreadStart(InfoLog)); startMsinfoLog.Start(lmsStr); HtmlNodeCollection lablaImg = picImg.SelectNodes(".//img"); foreach (var PicImgs in lablaImg) { HtmlAttribute ImgUrl = PicImgs.Attributes["src"]; // string sImgUrl = ImgUrl.Value.Trim() ?? ""; string sImgUrl = ImgUrl.Value.Trim() ?? ""; HtmlAttribute Imgtitle = PicImgs.Attributes["title"]; // string sImgtitle = Imgtitle.Value.Trim() ?? ""; string sImgtitle = ""; try { sImgtitle = Imgtitle.Value.Trim().Length > 0 ? Imgtitle.Value.Trim() : ""; } catch (Exception) { } var fName = sImgUrl.Split('/').Last(); string tempImgPath = ImgPath + "\\" + fName; List <string> lStr = new List <string>(); lStr.Add(tempImgPath); lStr.Add(sImgUrl); t_KinpanImgDetail mKinpanImgDetail = new t_KinpanImgDetail(); mKinpanImgDetail.ProID = ProID; mKinpanImgDetail.ProImgSavaPath = tempImgPath; mKinpanImgDetail.ProImgTitle = sImgtitle; mKinpanImgDetail.ProImgType = 1; mKinpanImgDetail.ProImgUrl = sImgUrl; if (BllImgDetails.AddOrUpdate(mKinpanImgDetail)) { MessageLog.AddLog("添加成功,图片下载地址(" + sImgUrl + ");图片保存地址(" + tempImgPath + ")。"); Thread startDownload = new Thread(new ParameterizedThreadStart(DownLoadimg)); startDownload.Start(lStr); } else { MessageLog.AddLog("添加失败,图片下载地址(" + sImgUrl + ");图片保存地址(" + tempImgPath + ")。"); } } Thread startinfoLog = new Thread(new ParameterizedThreadStart(InfoLog)); startinfoLog.Start(lxqStr); } t_KinpanDetails mKinpanDetails = new t_KinpanDetails(); mKinpanDetails.ProID = ProID; mKinpanDetails.ProName = ProName; mKinpanDetails.ProTextDtails = szhi; mKinpanDetails.ProDescription = sms; mKinpanDetails.CreationAt = System.DateTime.Now; if (BllDetails.AddOrUpdate(mKinpanDetails)) { MessageLog.AddLog("成功数据==》" + JsonConvert.SerializeObject(mKinpanDetails)); MessageLog.AddLog("项目详情添加成功"); } else { MessageLog.AddLog("失败数据==》" + JsonConvert.SerializeObject(mKinpanDetails)); MessageLog.AddLog("项目详情添加失败"); } MessageLog.AddLog("添加项目详情==>"); } } catch (Exception ex) { MessageLog.AddErrorLogJson("GetKinpanDetails()==>错误:", ex.ToString()); } }