コード例 #1
0
 protected void LineRead(ImportLine data)
 {
     if (data != null)
     {
         OnLineFeedRead(new FeedLineReadEventArgs(data));
     }
 }
コード例 #2
0
        void ouImportationClassBuilder_FeedLineRead(object sender, FeedLineReadEventArgs e)
        {
            ImportLine line = CheckLine(e.Data);

            if (line != null)
            {
                lines.Add(line);
            }

            CheckToSaveLines();
        }
コード例 #3
0
        protected ImportLine ConvertDataToLine(object data)
        {
            try
            {
                IFormatProvider formatProvider = new CultureInfo("en-US");

                ImportLine line = new ImportLine();
                line.ProgramName = GetValue("ProgramName", data).ToString();
                line.Name        = GetValue("Name", data).ToString();
                line.Description = GetValue("Description", data).ToString();
                line.Keywords    = GetValue("Keywords", data).ToString();
                line.Sku         = GetValue("Sku", data).ToString();
                if (GetValue("Sku2", data) != null)
                {
                    line.Sku += "-" + GetValue("Sku2", data);
                }
                if (!string.IsNullOrEmpty(GetValue("Price", data).ToString()))
                {
                    line.Price = Convert.ToDecimal(GetValue("Price", data).ToString(), formatProvider);
                }
                line.BuyUrl   = GetValue("BuyUrl", data).ToString();
                line.ImageUrl = GetValue("ImageUrl", data).ToString();
                if (GetValue("Gender", data) != null)
                {
                    line.Gender = GetValue("Gender", data).ToString();
                }
                else
                {
                    line.Gender = string.Empty;
                }

                return(line);
            }
            catch
            {
                return(null);
            }
        }
コード例 #4
0
 public FeedLineReadEventArgs(ImportLine data)
 {
     this.Data = data;
 }
コード例 #5
0
        private ImportLine CheckLine(ImportLine line)
        {
            //Chekeo de datos obligatorios
            if (string.IsNullOrEmpty(line.Sku) ||
                string.IsNullOrEmpty(line.Description) ||
                line.Price == null || line.Price <= 0 ||
                string.IsNullOrEmpty(line.BuyUrl) || string.IsNullOrEmpty(line.ImageUrl))
            {
                return(null);
            }

            string lineForKeywords = string.Format("{0} {1} {2} {3}", line.Name.ToLower(), line.Keywords.ToLower(), line.Description.ToLower(), line.Gender.ToLower());

            if (wordsForDiscard.Any(s => lineForKeywords.HasKeywords(s) && !lineForKeywords.HasKeywords("woman") && !lineForKeywords.HasKeywords("women")))
            {
                return(null);
            }

            // REVIEW: LINQ queries are more efficient.
            foreach (Trend trend in trends)
            {
                if (trend.Keywords.Any(keyword => lineForKeywords.HasKeywords(keyword)))
                {
                    line.Trends.Add(trend);
                }
            }

            if (line.Trends.Count == 0)
            {
                return(null);
            }

            // REVIEW: LINQ queries are more efficient.
            foreach (Silouhette silouhette in silouhettes)
            {
                if (lineForKeywords.HasKeywords(silouhette.Description))
                {
                    line.Silouhette = silouhette;
                    break;
                }
                else
                {
                    foreach (SilouhetteKeywordsByPartner keyword in silouhetteKeywords)
                    {
                        if (keyword.Partner != partner || keyword.Silouhette != silouhette)
                        {
                            continue;
                        }

                        if (keyword.Keywords.Split(',').Any(key => lineForKeywords.HasKeywords(key)))
                        {
                            line.Silouhette = silouhette;
                            break;
                        }
                    }
                }
            }

            // REVIEW: LINQ queries are more efficient.
            foreach (Pattern pattern in patterns)
            {
                if (lineForKeywords.HasKeywords(pattern.Description))
                {
                    line.Pattern = pattern;
                    break;
                }
                else
                {
                    foreach (PatternKeywordsByPartner keyword in patternKeywords)
                    {
                        if (keyword.Partner == partner && keyword.Pattern == pattern)
                        {
                            if (keyword.Keywords.Split(',').Any(key => lineForKeywords.HasKeywords(key)))
                            {
                                line.Pattern = pattern;
                                break;
                            }
                        }
                    }
                }
            }

            // REVIEW: LINQ queries are more efficient.
            foreach (ColorFamily colorFamily in colorFamilies)
            {
                if (lineForKeywords.HasKeywords(colorFamily.Description))
                {
                    line.ColorFamily = colorFamily;
                    break;
                }
                else
                {
                    foreach (ColorFamilyKeywordsByPartner keyword in colorFamilyKeywords)
                    {
                        if (keyword.Partner == partner && keyword.ColorFamily == colorFamily)
                        {
                            if (keyword.Keywords.Split(',').Any(key => lineForKeywords.HasKeywords(key)))
                            {
                                line.ColorFamily = colorFamily;
                                break;
                            }
                        }
                    }
                }
            }

            if (line.Silouhette != null && line.Pattern != null && line.ColorFamily != null)
            {
                line.Status = OutfitUpdaterStatus.Valid;
            }
            else
            {
                return(null);
            }

            int tmpCount = itemIds.Count;

            itemIds.Add(line.Sku);
            if (itemIds.Count == tmpCount)
            {
                return(null);
            }

            return(line);
        }