public void GetDish(IDishSiteModel dishSiteModel, string storeID)
 {
     if (string.IsNullOrEmpty(dishSiteModel.DishName))
     {
         return;
     }
     var dishes = new Maticsoft.Model.Dishes
     {
         DishesID = Guid.NewGuid().ToString(),
         DishesName = dishSiteModel.DishName,
         DishesMoney = dishSiteModel.DishesMoney,
         dishTypeID = dishSiteModel.DishTypeID,
         StoreId = storeID,
         DishesUnit = string.IsNullOrEmpty(dishSiteModel.DishesUnit) ? "份" : dishSiteModel.DishesUnit
     };
     if (!string.IsNullOrEmpty(dishSiteModel.PictureName))
     {
         var storePicture = new Maticsoft.Model.StorePicture();
         storePicture.PID = Guid.NewGuid().ToString();
         storePicture.PictureName = string.Format("{0}.jpg", storePicture.PID);
         storePicture.PicType = "Food";
         storePicture.PicturePath = dishSiteModel.PictureName;
         storePicture.StoreId = storeID;
         storePictureBll.Add(storePicture);
         dishes.PictureName = storePicture.PictureName;
     }
     dishesBll.Add(dishes);
 }
 public void GetDish(IDishSiteModel dishSiteModel, string storeID)
 {
     var dishes = new Maticsoft.Model.Dishes
     {
         DishesID = Guid.NewGuid().ToString(),
         DishesName = dishSiteModel.DishName,
         DishesMoney = dishSiteModel.DishesMoney,
         dishTypeID = dishSiteModel.DishTypeID,
         StoreId = storeID,
         popularity = dishSiteModel.Popularity.ToString(CultureInfo.InvariantCulture),
         DishesUnit = dishSiteModel.DishesUnit,
         DishesBrief = dishSiteModel.DishesBrief
     };
     if (!string.IsNullOrEmpty(dishSiteModel.PictureName))
     {
         var storePicture = new Maticsoft.Model.StorePicture();
         storePicture.PID = Guid.NewGuid().ToString();
         storePicture.PictureName = string.Format("{0}.jpg", storePicture.PID);
         storePicture.PicType = "Food";
         storePicture.PicturePath = dishSiteModel.PictureName;
         storePicture.StoreId = storeID;
         storePictureBll.Add(storePicture);
         dishes.PictureName = storePicture.PictureName;
     }
     dishesBll.Add(dishes);
 }
        public void GetFood(Maticsoft.Model.StoreInfo storeInfo)
        {
            var dishesPath = "Food";
            try
            {
                //string CreatePath = string.Format(newPath, storeInfo.StoreName, dishesPath, string.Empty);
                //if (!Directory.Exists(CreatePath))
                //{
                //    Directory.CreateDirectory(CreatePath);
                //}

                //var foodThumbnail = string.Format(newThumbnail, dishesPath, storeInfo.StoreName);
                //if (!Directory.Exists(foodThumbnail))
                //{
                //    Directory.CreateDirectory(foodThumbnail);
                //}

                //var newPathThumb = string.Format(newPathThu, dishesPath);
                //if (!Directory.Exists(newPathThumb))
                //{
                //    Directory.CreateDirectory(newPathThumb);
                //}

                var dishesBll = new Maticsoft.BLL.Dishes();
                var disheslist = dishesBll.GetModelList(string.Format("StoreId = '{0}'", storeInfo.storeId));
                foreach (var dishese in disheslist)
                {
                    dishesBll.Delete(dishese.DishesID);
                }
                var dishTypeBll = new Maticsoft.BLL.DishesTyepTable();
                var dishTypeList = dishTypeBll.GetModelList(string.Format("BusinessID = '{0}'", storeInfo.storeId));
                foreach (var dishesTyepTable in dishTypeList)
                {
                    dishTypeBll.Delete(dishesTyepTable.DishesTypeID);
                }
                var dishTypePath = string.Format("{0}shop/{1}/dish/", _pageUrl, storeInfo.Fid);

                var storePictureBll = new StorePicture();

                var storePicturelist = storePictureBll.GetModelList(string.Format("StoreID = '{0}' and picType ='{1}'", storeInfo.storeId, dishesPath));
                foreach (var storePicture in storePicturelist)
                {
                    storePictureBll.Delete(storePicture.PID);
                }

                //dishPath = @"http://www.xiaomishu.com/shop/D22I15N56303/dish/";
                var htmlWeb = new HtmlWeb();

                var htmlDoc = htmlWeb.Load(dishTypePath);
                var dishTypeNodeList = htmlDoc.DocumentNode.SelectNodes(".//div[@class='constr']/div[@class='constr_in']/div[@class='l float_four']/div[@class='bdc bgf0 pr10 pb10']/a[@class='res_food_ins_gra']");
                if (dishTypeNodeList == null)
                {
                    return;
                }
                foreach (var dishTypeNode in dishTypeNodeList)
                {
                    var dishType = new Maticsoft.Model.DishesTyepTable();
                    dishType.BusinessID = storeInfo.storeId;
                    dishType.CreateDate = DateTime.Now;
                    dishType.DishesTypeID = Guid.NewGuid().ToString();
                    var dishName = dishTypeNode.InnerText;
                    var dishlength = dishName.IndexOf('(');
                    dishType.DishesTypeName = dishTypeNode.InnerText.Substring(0, dishlength);
                    dishTypeBll.Add(dishType);

                    var pageIndex = 1;
                    while (true)
                    {
                        var dishUrl = dishTypeNode.Attributes["href"].Value;

                        var dishPath = string.Format("{0}{1}p{2}/", _pageUrl, dishUrl, pageIndex);

                        pageIndex++;
                        htmlDoc = htmlWeb.Load(dishPath);
                        var dishesNodeList =
                        htmlDoc.DocumentNode.SelectNodes(
                            ".//div[@class='constr']/div[@class='constr_in']/div[@class='cell pl10']/ul[@id='foodListUl']/li[@class='res_food_list']");
                        if (dishesNodeList == null || dishesNodeList.Count <= 1)
                        {
                            break;
                        }
                        foreach (var dishNode in dishesNodeList)
                        {
                            var dishes = new Maticsoft.Model.Dishes();
                            var foodList = dishNode.SelectSingleNode(".//div[@class='fix']");
                            if (foodList == null)
                            {
                                continue;
                            }
                            var foodChildList = foodList.ChildNodes;
                            var foodName = foodList.ChildNodes.Count > 1 ? foodChildList[1].InnerText ?? string.Empty : string.Empty;
                            var foodPrice = foodList.ChildNodes.Count > 3 ? foodChildList[3].InnerText ?? string.Empty : string.Empty;
                            var popularity = foodList.ChildNodes.Count > 5 ? foodChildList[5].InnerText ?? string.Empty : string.Empty;
                            dishes.DishesID = Guid.NewGuid().ToString();
                            dishes.DishesName = foodName.Trim();
                            foodPrice = foodPrice.Trim().Replace("¥", string.Empty).Replace("¥", string.Empty);
                            dishes.dishTypeID = dishType.DishesTypeID;
                            if (foodPrice.Trim() == "时价")
                            {
                                dishes.DishesMoney = "0";
                                dishes.IsCurrentPrice = true;
                            }
                            else if (foodPrice.Trim() == "不详")
                            {
                                dishes.DishesMoney = "0";
                            }
                            else
                            {
                                dishes.DishesMoney = foodPrice;
                            }

                            dishes.popularity = popularity.Trim();
                            dishes.StoreId = storeInfo.storeId;
                            var dishesPictureNode = dishNode.SelectSingleNode(
                                ".//div[@class='abs_out pt10']/div[@class='fix rel']/div[@class='pct50 l']/a[@class='g3']/img");
                            if (dishesPictureNode != null)
                            {
                                var dishesPicturePath = dishesPictureNode.Attributes["src"].Value;
                                if (!string.IsNullOrEmpty(dishesPicturePath) && !dishesPicturePath.EndsWith("food_nopic.png"))
                                {
                                    var storePicture = new Maticsoft.Model.StorePicture();
                                    storePicture.PID = Guid.NewGuid().ToString();
                                    var pictureName = string.Format("{0}.jpg", storePicture.PID);
                                    storePicture.PictureName = pictureName;
                                    storePicture.PicType = dishesPath;
                                    storePicture.PicturePath = dishesPicturePath;
                                    storePicture.StoreId = storeInfo.storeId;
                                    storePictureBll.Add(storePicture);

                                    dishes.PictureName = pictureName;
                                    //try
                                    //{
                                    //    db.DownFile(dishesPicturePath.Replace(@"/300_200/", "/").Replace("/320_0/", "/"), string.Format(newPath, storeInfo.StoreName, dishesPath, dishes.PictureName));
                                    //}
                                    //catch (Exception)
                                    //{
                                    //}
                                    //try
                                    //{
                                    //    db.DownFile(dishesPicturePath, newPathThumb + dishes.PictureName);
                                    //}
                                    //catch (Exception)
                                    //{

                                    //    throw;
                                    //}
                                    //var storeInfopath = string.Format(newPath, storeInfo.StoreName, dishesPath, dishes.PictureName);
                                    //db.ZoomAuto(newPathThumb + dishes.PictureName, foodThumbnail + dishes.PictureName, 320, 240);//生成缩略图
                                    //db.ZoomAuto(newPathThumb + dishes.PictureName, foodThumbnail + "640_480_" + dishes.PictureName, 640, 480);//生成缩略图
                                    //db.ZoomAuto(newPathThumb + dishes.PictureName, foodThumbnail + "320_240_" + dishes.PictureName, 320, 240);//生成缩略图
                                    //db.ZoomAuto(newPathThumb + dishes.PictureName, foodThumbnail + "160_120_" + dishes.PictureName, 160, 120);//生成缩略图

                                }
                            }
                            dishesBll.Add(dishes);
                        }
                    }
                }

            }
            catch (Exception e)
            {
            }
        }
        public void GetDish(IDishSiteModel dishSiteModel, string storeID)
        {
            string regex = @"([\u4E00-\u9FA5]*)(([\u4E00-\u9FA5]*))";
            var dishName = dishSiteModel.DishName;
            if (Regex.IsMatch(dishSiteModel.DishName, regex))
            {
                var matchCollection = Regex.Match(dishSiteModel.DishName, regex);
                dishName = matchCollection.Groups[1].Value.Trim();
                dishSiteModel.DishesUnit = string.IsNullOrEmpty(matchCollection.Groups[2].Value.Trim())
                    ? "份"
                    : matchCollection.Groups[2].Value.Trim();

            }
            if (string.IsNullOrEmpty(dishName))
            {
                return;
            }
            var dishes = new Maticsoft.Model.Dishes
            {
                DishesID = Guid.NewGuid().ToString(),
                DishesName = dishName,
                DishesMoney = dishSiteModel.DishesMoney,
                dishTypeID = dishSiteModel.DishTypeID,
                StoreId = storeID,
                DishesUnit = string.IsNullOrEmpty(dishSiteModel.DishesUnit) ? "份" : dishSiteModel.DishesUnit
            };
            if (!string.IsNullOrEmpty(dishSiteModel.PictureName))
            {
                var storePicture = new Maticsoft.Model.StorePicture();
                storePicture.PID = Guid.NewGuid().ToString();
                storePicture.PictureName = string.Format("{0}.jpg", storePicture.PID);
                storePicture.PicType = "Food";
                storePicture.PicturePath = dishSiteModel.PictureName;
                storePicture.StoreId = storeID;
                storePictureBll.Add(storePicture);
                dishes.PictureName = storePicture.PictureName;
            }
            dishesBll.Add(dishes);
        }
        /// <summary>
        /// 获取菜品详细--取消使用
        /// </summary>
        public List<Model.Dishes> GetDish(string UrlPath, string StoreName, string StoreId)
        {
            const string dishesPath = "Food";
            var foodThumbnail = string.Format(newThumbnail, dishesPath, StoreName);
            try
            {
                string CreatePath = string.Format(newPath, StoreName, dishesPath, string.Empty);
                if (!Directory.Exists(CreatePath))
                {
                    Directory.CreateDirectory(CreatePath);
                }
                if (!Directory.Exists(foodThumbnail))
                {
                    Directory.CreateDirectory(foodThumbnail);
                }

            }
            catch (Exception e)
            {
                return null;
            }
            var dishPath = string.Format("{0}{1}", _pageUrl, UrlPath);
            //dishPath = @"http://www.xiaomishu.com/shop/D22I15N56303/dish/";
            var htmlWeb = new HtmlWeb();

            var htmlDoc = htmlWeb.Load(dishPath);

            var dishesList = new List<Model.Dishes>();
            var dishesNodeList =
            htmlDoc.DocumentNode.SelectNodes(
                ".//div[@class='constr']/div[@class='constr_in']/div[@class='cell pl10']/ul[@id='foodListUl']/li");
            if (dishesNodeList == null || dishesNodeList.Count <= 1)
            {
                return dishesList;
            }
            foreach (var dishNode in dishesNodeList)
            {
                var dishes = new Maticsoft.Model.Dishes();
                var foodList = dishNode.SelectSingleNode(".//div[@class='fix']");
                if (foodList == null)
                {
                    continue;
                }
                var foodChildList = foodList.ChildNodes;
                var foodName = foodList.ChildNodes.Count > 1 ? foodChildList[1].InnerText ?? string.Empty : string.Empty;
                var foodPrice = foodList.ChildNodes.Count > 3 ? foodChildList[3].InnerText ?? string.Empty : string.Empty;
                var popularity = foodList.ChildNodes.Count > 5 ? foodChildList[5].InnerText ?? string.Empty : string.Empty;
                dishes.StoreId = StoreId;
                dishes.DishesID = Guid.NewGuid().ToString();
                dishes.DishesName = foodName.Trim();
                dishes.DishesMoney = foodPrice.Replace("¥", String.Empty).Trim();
                dishes.popularity = popularity.Trim();
                //dishes.StoreId = storeInfo.storeId;
                var dishesPictureNode = dishNode.SelectSingleNode(
                    ".//div[@class='abs_out pt10']/div[@class='fix rel']/div[@class='pct50 l']/a[@class='g3']/img");
                if (dishesPictureNode != null)
                {
                    dishes.PictureName = string.Format("{0}.jpg", Guid.NewGuid().ToString());
                    var dishesPicturePath = dishesPictureNode.Attributes["src"].Value;
                    if (!string.IsNullOrEmpty(dishesPicturePath))
                    {
                        try
                        {
                            try
                            {
                                db.DownFile(dishesPicturePath.Replace(@"/300_200/", "/"), string.Format(newPath, StoreName, dishesPath, dishes.PictureName));
                            }
                            catch (Exception)
                            {
                                db.DownFile(dishesPicturePath, string.Format(newPath, StoreName, dishes.PictureName));
                            }
                            //db.ZoomAuto(string.Format(newPath, StoreName, dishesPath, dishes.PictureName), newThumbnail + dishes.PictureName, 320, 240);//生成缩略图
                            var dishPicPath = string.Format(newPath, StoreName, dishesPath, dishes.PictureName);
                            db.ZoomAuto(dishPicPath, foodThumbnail + "640_480_" + dishes.PictureName, 640, 480);//生成缩略图
                            db.ZoomAuto(dishPicPath, foodThumbnail + "320_240_" + dishes.PictureName, 320, 240);//生成缩略图
                            db.ZoomAuto(dishPicPath, foodThumbnail + "160_120_" + dishes.PictureName, 160, 120);//生成缩略图
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }

                }
                dishesList.Add(dishes);

            }
            return dishesList;
        }