Ejemplo n.º 1
0
 public bool AddOrUpdate(t_KinpanDetails entity)
 {
     if (entity.id < 1)
     {
         return(dbContext.Add(entity));
     }
     return(dbContext.Update(entity, c => c.id == entity.id));
 }
Ejemplo n.º 2
0
        /// <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());
            }
        }