protected void LineRead(ImportLine data) { if (data != null) { OnLineFeedRead(new FeedLineReadEventArgs(data)); } }
void ouImportationClassBuilder_FeedLineRead(object sender, FeedLineReadEventArgs e) { ImportLine line = CheckLine(e.Data); if (line != null) { lines.Add(line); } CheckToSaveLines(); }
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); } }
public FeedLineReadEventArgs(ImportLine data) { this.Data = data; }
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); }