public override string ToString()
 {
     if (CategoryPath.Count < 2)
     {
         return("");
     }
     return(new String(' ', CategoryPath.Count - 2) + CategoryPath.Last <String>());
 }
Example #2
0
 internal GWPosition(PositionData data, int depth, LinkedList <int> categoryPath)
 {
     Depth = depth;
     Data  = data;
     Id    = Program.Random.Next();
     if (categoryPath.NotNullOrEmpty())
     {
         CategoryPath.AddRange(categoryPath);
     }
 }
 public List<String> MakePath()
 {
     if (CategoryPath.Count > 1 && CategoryPath.Last() == ItemsDir) return new List<string>() { "." };
     List<String> cnames = new List<string>();
     foreach (string s in CategoryPath) 
     {
         removeInvalidPathChars.Replace(s, "_");
         cnames.Add(s);
     }
     cnames.Remove(ItemsDir);
     return cnames;
 }
Example #4
0
 /// <summary>
 /// 重载比较方法
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public override bool Equals(object obj)
 {
     if (obj == null)
     {
         return(false);
     }
     if (obj is string)
     {
         return(CategoryPath.Equals(obj));
     }
     if (obj is CategoryNode)
     {
         var category = obj as CategoryNode;
         return(CategoryPath.Equals(category.CategoryPath));
     }
     return(false);
 }
Example #5
0
        public async Task ResolveData(InputUrlModel inputUrlModel)
        {
            var products = new List <Product>();
            var category = new CategoryPath();

            foreach (var viewModel in _viewModel)
            {
                var ratingDesc = 0M;
                var ratingComm = 0M;
                var ratingShip = 0M;
                //var shippingCompany = "";
                //decimal? shippingFee = 0M;
                //var shipping1 = "";
                //var shipping2 = "";
                //var shipping3 = "";
                //var onTimeDelivery = 0;
                //var subTotalPrice = 0M;
                var variationThemeFinal = string.Empty;
                var variationColor      = "";
                var variationSize       = "";
                var variationPlus1      = "";
                var variationPlus2      = "";
                var variationShipFrom   = "";
                var shippingContent     = new ShippingContentResultModel();


                var description = viewModel.Description.Replace("&nbsp;", string.Empty).Replace("\\n", "<p></p>")
                                  .Replace("<span>", "<p>").Replace("</span>", "</p>").Replace("\"", string.Empty)
                                  .Replace("\\t", string.Empty).Replace("::span::", "<p>")
                                  .Replace("::_span::____::span::", "____").Replace("::_span::", "</p>")
                                  .Replace("</p>____<p>", "____");


                var desSplits = description.Split(new string[] { "<p></p>" }, StringSplitOptions.None);
                var desResult = new List <string>();
                if (desSplits.Any())
                {
                    foreach (var desSplit in desSplits)
                    {
                        if (!string.IsNullOrWhiteSpace(desSplit))
                        {
                            if (desSplit.Contains("USD") || desSplit.Contains("$"))
                            {
                                if (desResult.Count > 1)
                                {
                                    desResult.RemoveAt(desResult.Count - 1);
                                }
                            }
                            else
                            {
                                desResult.Add(desSplit);
                            }
                        }
                    }
                }

                var finalDescription = "";

                if (desResult.Any())
                {
                    finalDescription = desResult.Where(dr => !dr.Contains("44894") && !dr.Contains("DIN912")).Aggregate(finalDescription, (current, dr) => current + ("<p>" + dr + "</p>"));
                }

                finalDescription = finalDescription.Replace("<p><p><p><p><p>", "<p>").Replace("<p><p><p><p>", "<p>")
                                   .Replace("<p><p><p>", "<p>").Replace("<p><p>", "<p>")
                                   .Replace("</p></p></p></p></p>", "</p>").Replace("</p></p></p></p>", "</p>")
                                   .Replace("</p></p></p>", "</p>").Replace("</p></p>", "</p>");

                description = "<strong><p>Item Descripton: </p></strong>" + finalDescription +
                              "<strong><p>Item Specification: </p></strong>";

                var specificationHtml = "<p></p><strong>" + viewModel.SpecificationHtml + "</strong>";

                if (!string.IsNullOrEmpty(viewModel.StoreRatingMultiple))
                {
                    var cleanStoreRatingMultiple = viewModel.StoreRatingMultiple.Replace("\n\t", string.Empty);
                    var storeRatingMultiple      = new Regex("jQuery.*?\\(.*?({.*}).*?\\)")
                                                   .Match(cleanStoreRatingMultiple).Groups[1].Value.Trim();
                    var ratingDetail = JsonConvert.DeserializeObject <StoreRatingDetailModel>(storeRatingMultiple);
                    if (ratingDetail != null)
                    {
                        ratingDesc = ratingDetail.StoreRatingDesc?.Score ?? 0;
                        ratingComm = ratingDetail.StoreRatingSeller?.Score ?? 0;
                        ratingShip = ratingDetail.StoreRatingShipping?.Score ?? 0;
                    }
                }

                try
                {
                    shippingContent = GetShippingContent(viewModel.ProductId);
                }
                catch (Exception ex)
                {
                    _log.Error("shipping Error: ", ex);
                }

                //if (!string.IsNullOrEmpty(viewModel.ShippingContent))
                //{
                //    var shippingData = JsonConvert.DeserializeObject<ShippingContentModel>(viewModel.ShippingContent);
                //    if (shippingData != null)
                //    {
                //        var ePack = shippingData.ShippingBody.ShippingFreightResult.Where(n =>
                //            n.Company == "ePacket").ToList();
                //        if (ePack.Any())
                //        {
                //            shippingCompany = ePack.First().Company;
                //            shippingFee = ePack.First().ShippingFreightAmount.Value;
                //            onTimeDelivery = ePack.First().CommitDay;
                //        }

                //        var sorts = shippingData.ShippingBody.ShippingFreightResult.Where(n => n.Tracking)
                //            .Select(n => new
                //            {
                //                n.Company,
                //                n.ShippingFreightAmount
                //            }).OrderBy(n => n.ShippingFreightAmount.Value).ToList();

                //        subTotalPrice = ePack.Any()
                //            ? 0.8M + ePack.First().ShippingFreightAmount.Value
                //            : 0.8M + (sorts.Any() ? sorts.First().ShippingFreightAmount.Value : 0);

                //        for (var i = 0; i < sorts.Count; i++)
                //        {
                //            switch (i)
                //            {
                //                case 0:
                //                    shipping1 = sorts[i].Company + " | " + sorts[i].ShippingFreightAmount.Value;
                //                    break;
                //                case 1:
                //                    shipping2 = sorts[i].Company + " | " + sorts[i].ShippingFreightAmount.Value;
                //                    break;
                //                case 2:
                //                    shipping3 = sorts[i].Company + " | " + sorts[i].ShippingFreightAmount.Value;
                //                    break;
                //            }
                //        }



                //    }
                //}

                var catPaths = viewModel.PatchCategory.Split("|").ToList();
                if (catPaths.Any() && inputUrlModel.IsCategory)
                {
                    category = new CategoryPath
                    {
                        ProductId  = viewModel.ProductId,
                        CategoryId = inputUrlModel.Id,
                    };
                    for (var i = 0; i < catPaths.Count; i++)
                    {
                        if (i == 0)
                        {
                            category.CatMain = catPaths[i];
                        }
                        else if (i == 1)
                        {
                            category.CatSub1 = catPaths[i];
                        }
                        else if (i == 2)
                        {
                            category.CatSub2 = catPaths[i];
                        }
                        else if (i == 3)
                        {
                            category.CatSub3 = catPaths[i];
                        }
                    }
                }

                var product = new Product
                {
                    ProductName              = viewModel.ProductName,
                    ProductId                = viewModel.ProductId,
                    ProductKeyId             = viewModel.ProductId.ToString(),
                    IsParent                 = true,
                    Description              = description,
                    ItemLot                  = viewModel.ItemLot,
                    BrandName                = viewModel.BrandName,
                    StockNumber              = viewModel.StockNumber,
                    CategoryId               = inputUrlModel.IsCategory ? inputUrlModel.Id : (long?)null,
                    CategoryName             = viewModel.CategoryName,
                    StoreId                  = viewModel.StoreId,
                    StoreName                = viewModel.StoreName,
                    StoreYear                = viewModel.StoreYear,
                    StoreRatingPercent       = viewModel.StoreRating,
                    StoreRatingDescribed     = ratingDesc,
                    StoreRatingCommunication = ratingComm,
                    StoreRatingShippingSpeed = ratingShip,
                    RatingNumber             = viewModel.RatingNumber,
                    RatingPercent            = viewModel.RatingPercentNumber,
                    StoreRatingTotal         = viewModel.StoreRatingTotal,
                    OrderNumber              = viewModel.OrderNumber,
                    ProcessingTime           = shippingContent.ProcessingTime.ToString(),
                    ShippingCompany          = shippingContent.ShippingCompany,
                    ShippingFee              = shippingContent.ShippingFee,
                    Shipping1ST              = shippingContent.Shipping1,
                    Shipping2ND              = shippingContent.Shipping2,
                    Shipping3RD              = shippingContent.Shipping3,
                    OnTimeDelivery           = shippingContent.OnTimeDelivery.ToString(),
                    Specification10          = specificationHtml,
                    Bullet1ST                = viewModel.Specification1,
                    Bullet2ND                = viewModel.Specification2,
                    Bullet3RD                = viewModel.Specification3,
                    Bullet4TH                = viewModel.Specification4,
                    Bullet5TH                = viewModel.Specification5,
                    ParentChild              = "Parent"
                };

                //if (!string.IsNullOrEmpty(viewModel.RatingPercentNumber))
                //{
                //    if (decimal.TryParse(viewModel.RatingPercentNumber, out var ratingPercent))
                //    {
                //        product.RatingPercent = ratingPercent;
                //    }

                //}

                if (!string.IsNullOrEmpty(viewModel.ImagePatchList))
                {
                    var imgs = viewModel.ImagePatchList.Split("|").ToList();

                    if (imgs.Any())
                    {
                        for (var i = 0; i < imgs.Count; i++)
                        {
                            if (i == 0)
                            {
                                product.Image1ST = imgs[i];
                            }
                            else if (i == 1)
                            {
                                product.Image2ND = imgs[i];
                            }
                            else if (i == 2)
                            {
                                product.Image3RD = imgs[i];
                            }
                            else if (i == 3)
                            {
                                product.Image4TH = imgs[i];
                            }
                            else if (i == 4)
                            {
                                product.Image5TH = imgs[i];
                            }
                            else if (i == 5)
                            {
                                product.Image6TH = imgs[i];
                            }
                            else if (i == 6)
                            {
                                product.Image7TH = imgs[i];
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(viewModel.SkuPriceList))
                {
                    var prices = JsonConvert.DeserializeObject <List <SkuPriceList> >(viewModel.SkuPriceList);
                    if (!string.IsNullOrEmpty(viewModel.ProductSKUPropertyList))
                    {
                        var skuProps =
                            JsonConvert.DeserializeObject <List <SkuPropertyListModel> >(viewModel.ProductSKUPropertyList);
                        if (skuProps.Any() && prices.Any())
                        {
                            var count = 1;
                            foreach (var price in prices)
                            {
                                var productChild = new Product
                                {
                                    IsParent                 = null,
                                    ParentChild              = "Child",
                                    ProductName              = viewModel.ProductName,
                                    ProductId                = viewModel.ProductId,
                                    ProductKeyId             = viewModel.ProductId + " - " + count,
                                    Description              = description,
                                    ItemLot                  = viewModel.ItemLot,
                                    BrandName                = viewModel.BrandName,
                                    CategoryId               = inputUrlModel.IsCategory ? inputUrlModel.Id : (long?)null,
                                    CategoryName             = viewModel.CategoryName,
                                    StoreId                  = viewModel.StoreId,
                                    StoreName                = viewModel.StoreName,
                                    StoreYear                = viewModel.StoreYear,
                                    StoreRatingPercent       = viewModel.StoreRating,
                                    StoreRatingDescribed     = ratingDesc,
                                    StoreRatingCommunication = ratingComm,
                                    StoreRatingShippingSpeed = ratingShip,
                                    RatingNumber             = viewModel.RatingNumber,
                                    RatingPercent            = viewModel.RatingPercentNumber,
                                    StoreRatingTotal         = viewModel.StoreRatingTotal,
                                    OrderNumber              = viewModel.OrderNumber,
                                    ProcessingTime           = shippingContent.ProcessingTime.ToString(),
                                    ShippingCompany          = shippingContent.ShippingCompany,
                                    ShippingFee              = shippingContent.ShippingFee,
                                    Shipping1ST              = shippingContent.Shipping1,
                                    Shipping2ND              = shippingContent.Shipping2,
                                    Shipping3RD              = shippingContent.Shipping3,
                                    OnTimeDelivery           = shippingContent.OnTimeDelivery.ToString(),
                                    Specification10          = specificationHtml,
                                    Bullet2ND                = viewModel.Specification1,
                                    Bullet3RD                = viewModel.Specification2,
                                    Bullet4TH                = viewModel.Specification3,
                                    Bullet5TH                = viewModel.Specification4,
                                };

                                //if (!string.IsNullOrEmpty(viewModel.RatingPercentNumber))
                                //{
                                //    if (decimal.TryParse(viewModel.RatingPercentNumber, out var ratingPercentChild))
                                //    {
                                //        productChild.RatingPercent = ratingPercentChild;
                                //    }

                                //}


                                var ids          = price.skuPropIds.Split(",").Select(int.Parse).ToList();
                                var childName    = " - ( ";
                                var bullet1      = "NOTE - You are Choosing: \"";
                                var imgChild     = "";
                                var shippingFrom = "";
                                var variations   = new List <VariationModel>();

                                if (ids.Any())
                                {
                                    if (ids.Count == 1)
                                    {
                                        var currentProp = skuProps.FirstOrDefault(n =>
                                                                                  n.SkuPropertyValues.Any(i => i.propertyValueId == ids[0]));

                                        if (currentProp != null)
                                        {
                                            var displayName = currentProp.SkuPropertyValues.First(n => n.propertyValueId == ids[0]).propertyValueDisplayName;
                                            if (currentProp.SkuPropertyName.Contains("Color"))
                                            {
                                                variationThemeFinal = "Color";
                                                variations.Add(new VariationModel
                                                {
                                                    Id    = VariationEnums.Color,
                                                    Value = displayName
                                                });
                                            }
                                            else
                                            {
                                                variationThemeFinal = "SizeName";
                                                variations.Add(new VariationModel
                                                {
                                                    Id    = VariationEnums.Size,
                                                    Value = displayName
                                                });
                                            }
                                        }

                                        //get child name
                                        if (childName == " - ( ")
                                        {
                                            childName +=
                                                currentProp.SkuPropertyName + ": " + currentProp.SkuPropertyValues
                                                .First(n => n.propertyValueId == ids[0]).propertyValueDisplayName;
                                        }
                                        else
                                        {
                                            childName +=
                                                ", " + currentProp.SkuPropertyName + ": " + currentProp.SkuPropertyValues
                                                .First(n => n.propertyValueId == ids[0]).propertyValueDisplayName;
                                        }
                                        //get bullet 1
                                        if (bullet1 == "NOTE - You are Choosing: \"")
                                        {
                                            bullet1 += currentProp.SkuPropertyName + ": " + currentProp.SkuPropertyValues
                                                       .First(n => n.propertyValueId == ids[0])
                                                       .propertyValueDisplayName;
                                        }
                                        else
                                        {
                                            bullet1 += ", " + currentProp.SkuPropertyName + ": " + currentProp.SkuPropertyValues
                                                       .First(n => n.propertyValueId == ids[0])
                                                       .propertyValueDisplayName;
                                        }

                                        var img1 = currentProp.SkuPropertyValues.Where(n =>
                                                                                       !string.IsNullOrEmpty(n.skuPropertyImagePath) && n.propertyValueId == ids[0]).ToList();
                                        if (img1.Any())
                                        {
                                            imgChild = img1.First().skuPropertyImagePath;
                                        }
                                    }
                                    else
                                    {
                                        variationThemeFinal = "SizeName-ColorName";
                                        foreach (var id in ids)
                                        {
                                            var currentProp = skuProps.FirstOrDefault(n =>
                                                                                      n.SkuPropertyValues.Any(i => i.propertyValueId == id));
                                            if (currentProp == null)
                                            {
                                                continue;
                                            }
                                            var displayName = currentProp.SkuPropertyValues.First(n => n.propertyValueId == id).propertyValueDisplayName;
                                            if (currentProp.SkuPropertyName.Contains("Color"))
                                            {
                                                variations.Add(new VariationModel
                                                {
                                                    Id    = VariationEnums.Color,
                                                    Value = displayName
                                                });
                                            }
                                            else if (currentProp.SkuPropertyName.Contains("SizeName"))
                                            {
                                                variations.Add(new VariationModel
                                                {
                                                    Id    = VariationEnums.Size,
                                                    Value = displayName
                                                });
                                            }
                                            else if (currentProp.SkuPropertyName.Contains("Ships From"))
                                            {
                                                variations.Add(new VariationModel
                                                {
                                                    Id    = VariationEnums.ShipFrom,
                                                    Value = displayName
                                                });
                                            }
                                            else
                                            {
                                                variations.Add(new VariationModel
                                                {
                                                    Id    = VariationEnums.Other,
                                                    Value = displayName
                                                });
                                            }

                                            //get child name
                                            if (childName == " - ( ")
                                            {
                                                childName +=
                                                    currentProp.SkuPropertyName + ": " + currentProp.SkuPropertyValues
                                                    .First(n => n.propertyValueId == id).propertyValueDisplayName;
                                            }
                                            else
                                            {
                                                childName +=
                                                    ", " + currentProp.SkuPropertyName + ": " + currentProp.SkuPropertyValues
                                                    .First(n => n.propertyValueId == id).propertyValueDisplayName;
                                            }
                                            //get bullet 1
                                            if (bullet1 == "NOTE - You are Choosing: \"")
                                            {
                                                bullet1 += currentProp.SkuPropertyName + ": " + currentProp.SkuPropertyValues
                                                           .First(n => n.propertyValueId == id)
                                                           .propertyValueDisplayName;
                                            }
                                            else
                                            {
                                                bullet1 += ", " + currentProp.SkuPropertyName + ": " + currentProp.SkuPropertyValues
                                                           .First(n => n.propertyValueId == id)
                                                           .propertyValueDisplayName;
                                            }

                                            var img1 = currentProp.SkuPropertyValues.Where(n =>
                                                                                           !string.IsNullOrEmpty(n.skuPropertyImagePath) && n.propertyValueId == id).ToList();
                                            if (img1.Any())
                                            {
                                                imgChild = img1.First().skuPropertyImagePath;
                                            }
                                        }
                                    }

                                    variationColor = variations.Any(n => n.Id == VariationEnums.Color)
                                        ? variations.First(n => n.Id == VariationEnums.Color).Value
                                        : "";
                                    variationSize = variations.Any(n => n.Id == VariationEnums.Size)
                                        ? variations.First(n => n.Id == VariationEnums.Size).Value
                                        : "";
                                    variationShipFrom = variations.Any(n => n.Id == VariationEnums.ShipFrom)
                                        ? variations.First(n => n.Id == VariationEnums.ShipFrom).Value
                                        : "";

                                    foreach (var variation in variations.Where(n => n.Id == VariationEnums.Other || n.Id == VariationEnums.ShipFrom))
                                    {
                                        if (string.IsNullOrEmpty(variationColor))
                                        {
                                            variationColor = variation.Value;
                                        }
                                        else if (string.IsNullOrEmpty(variationSize))
                                        {
                                            variationSize = variation.Value;
                                        }
                                        else if (string.IsNullOrEmpty(variationPlus1))
                                        {
                                            variationPlus1 = variation.Value;
                                        }
                                        else if (string.IsNullOrEmpty(variationPlus2))
                                        {
                                            variationPlus2 = variation.Value;
                                        }
                                    }
                                }

                                bullet1   += " \", Price for this selection only not for all.";
                                childName += " )";


                                productChild.BuyingPrice = price.skuVal.actSkuCalPrice.HasValue
                                    ? Convert.ToDecimal(price.skuVal.actSkuCalPrice.Value)
                                    : Convert.ToDecimal(price.skuVal.skuCalPrice);

                                productChild.TotalPrice = Convert.ToDecimal(price.skuVal.actSkuCalPrice.HasValue
                                    ? Convert.ToDecimal(price.skuVal.actSkuCalPrice.Value)
                                    : Convert.ToDecimal(price.skuVal.skuCalPrice)) + shippingContent.SubTotalPrice;

                                productChild.StockNumber = Convert.ToInt64(price.skuVal.availQuantity);


                                productChild.ProductName      = product.ProductName + childName;
                                productChild.Bullet1ST        = bullet1;
                                productChild.ParentSku        = product.ProductId;
                                productChild.RelationshipType = "Variation";
                                productChild.VariationTheme   = variationThemeFinal;

                                productChild.VariationColor        = variationColor;
                                productChild.VariationSize         = variationSize;
                                productChild.VariationPlus1ST      = variationPlus1;
                                productChild.VariationPlus2ND      = variationPlus2;
                                productChild.VariationShippingFrom = variationShipFrom;

                                productChild.Image1ST = !string.IsNullOrEmpty(imgChild) ? imgChild : product.Image1ST;
                                productChild.Image2ND =
                                    !string.IsNullOrEmpty(imgChild) ? product.Image1ST : product.Image2ND;
                                productChild.Image3RD =
                                    !string.IsNullOrEmpty(imgChild) ? product.Image2ND : product.Image3RD;
                                productChild.Image4TH =
                                    !string.IsNullOrEmpty(imgChild) ? product.Image3RD : product.Image4TH;
                                productChild.Image5TH =
                                    !string.IsNullOrEmpty(imgChild) ? product.Image4TH : product.Image5TH;
                                productChild.Image6TH =
                                    !string.IsNullOrEmpty(imgChild) ? product.Image5TH : product.Image6TH;
                                productChild.Image7TH =
                                    !string.IsNullOrEmpty(imgChild) ? product.Image6TH : product.Image7TH;


                                variationColor    = "";
                                variationSize     = "";
                                variationPlus1    = "";
                                variationPlus2    = "";
                                variationShipFrom = "";

                                products.Add(productChild);
                                count += 1;
                            }
                        }
                    }
                    else
                    {
                        product.IsParent     = false;
                        product.ParentChild  = "";
                        product.ProductKeyId = viewModel.ProductId.ToString();
                        product.BuyingPrice  = Convert.ToDecimal(prices[0].skuVal.actSkuCalPrice ?? prices[0].skuVal.skuCalPrice);
                        product.TotalPrice   = Convert.ToDecimal(prices[0].skuVal.actSkuCalPrice ?? prices[0].skuVal.skuCalPrice) + shippingContent.SubTotalPrice;
                        product.Image1ST     = viewModel.ImagePatchList;
                    }
                }

                product.VariationTheme = product.IsParent == false ? null : variationThemeFinal;
                product.StockNumber    = product.IsParent == false ? product.StockNumber : null;
                product.ParentSku      = null;
                product.TotalPrice     = product.IsParent == false ? product.TotalPrice : null;
                products.Add(product);
            }

            using (var context = new DesignTimeDbContextFactory().CreateDbContext())
            {
                _log.InfoFormat("before saved:");
                try
                {
                    _log.Info("cat: " + category.CatMain);
                    await context.CategoryPaths.AddAsync(category);

                    _log.Info("products: " + products.Count);
                    await context.ProductParents.AddRangeAsync(products.Distinct().Where(n => n.IsParent != null).Select(
                                                                   n => new ProductParent
                    {
                        ProductId = n.ProductId
                    }));


                    await context.Products.AddRangeAsync(products.Distinct());

                    await context.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    _log.Error("DB error: " + ex);
                }


                await RedisConnectionFactory.GetConnection().GetSubscriber().PublishAsync("redis::singleCount-" + inputUrlModel.SignalRKeyId, products.Count);

                var totalCount = await context.Products.CountAsync();

                await RedisConnectionFactory.GetConnection().GetSubscriber().PublishAsync("redis::totalCounter", totalCount);
            }
        }
Example #6
0
 /// <summary>
 /// 判断节点是否为父节点或者与相比节点为同一节点
 /// </summary>
 /// <param name="category"></param>
 /// <returns></returns>
 public bool IsParentOrSelfNode(CategoryNode category)
 {
     return(CategoryPath.StartsWith(category.CategoryPath));
 }
Example #7
0
 /// <summary>
 /// 判断分类是否为父节点
 /// </summary>
 /// <param name="category">分类</param>
 /// <returns></returns>
 public bool IsParentNode(CategoryNode category)
 {
     return(CategoryPath.StartsWith(category.CategoryPath) && Id != category.Id);
 }
Example #8
0
 /// <summary>
 /// 重载HashCode
 /// </summary>
 /// <returns></returns>
 public override int GetHashCode()
 {
     return(CategoryPath.GetHashCode());
 }
 public override string ToString()
 {
     if (CategoryPath.Count < 2) return "";
     return new String(' ', CategoryPath.Count - 2) + CategoryPath.Last<String>();
 }