private void CompareEbayArticlesOnly() { if (Articles.Count == 0 || newOriginalArticles.Count == 0) { MessageBox.Show("Es kann kein Update gemacht werden, da entweder die Basis oder die Vergleichsdatei fehlt."); return; } var ebayArticles = Articles.Where(x => x.EbayIds.Count > 0); var criteria = new PriceCriteria(); var resultList = new List <IArticle>(); foreach (var ebayArticle in ebayArticles) { var key = ArticleKeyGenerator.GetKeyFromArticle(ebayArticle); try { var newArticle = newOriginalArticles[key]; if (!criteria.IsCriteriaSatisfied(ebayArticle, newArticle)) { newArticle.EbayIds = ebayArticle.EbayIds; if (newArticle.Availability < EbayArticleConstants.MinimumCountOfArticles) { newArticle.Availability = 0; } resultList.Add(newArticle); } } catch (KeyNotFoundException) { ebayArticle.Availability = 0; resultList.Add(ebayArticle); } } NavigateToWheelDetailListPage(resultList); }
private Dictionary <string, IArticle> .ValueCollection IterateThroughAllItemsAndUploadThem(Dictionary <string, IArticle> dictionary, EbayArticleCSVWriter ebaySingleArticleCsvWriter, double amount, string template) { foreach (var articleToUpload in WheelListFlat) { IArticle result = null; try { result = ebayUploader.RefreshOrCreateEbayArticle(articleToUpload, ebaySingleArticleCsvWriter, amount, template); var key = ArticleKeyGenerator.GetKeyFromArticle(articleToUpload); if (dictionary.ContainsKey(key)) { dictionary.Remove(key); } dictionary[key] = result; } catch (ApiException e) { logger.Warn( "Fehler bei Ebay Kommunikation von Datensatz ID:" + articleToUpload.ArticleId, e); } catch (Exception e) { logger.Error("Unknown Exception On Uploading articles", e); break; } CountOfCurrentUploadedItems++; } return(dictionary.Values); }
private void CompareBaseAndNewFile() { if (Articles.Count == 0) { MessageBox.Show("Keine Vergleichsdaten vorhanden. Bitte Datensätze laden. "); return; } if (NewArticles.Count == 0) { string messageBoxText = "Es sind keine Datensätze zum Vergleichen vorhanden. Wollen Sie alle Datensätze der Basis übernehmen?"; string caption = "Leere Vergleichsdaten"; var buttons = MessageBoxButtons.YesNo; var result = MessageBox.Show(messageBoxText, caption, buttons); switch (result) { case DialogResult.Yes: NavigateToWheelDetailListPage(Articles); break; } return; } var copyOfNewArticles = new List <IArticle>(NewArticles); var resultList = new List <IArticle>(); var comperator = new ArticleCrudComperator(); foreach (var baseArticle in Articles) { try { string key = ArticleKeyGenerator.GetKeyFromArticle(baseArticle); var newArticle = newOriginalArticles[key]; if (!comperator.AreBothArticleEqual(baseArticle, newArticle)) { var newArticleWithId = newArticle; newArticleWithId.EbayIds = baseArticle.EbayIds; resultList.Add(newArticleWithId); } copyOfNewArticles.Remove(newArticle); } catch (KeyNotFoundException) { baseArticle.Availability = 0; resultList.Add(baseArticle); } } resultList.AddRange(copyOfNewArticles); NavigateToWheelDetailListPage(resultList); }
public Dictionary <string, IArticle> ReadArticlesFromFile(string filePath) { var logger = LogManager.GetLogger(typeof(CSVReader)); try { var textLines = File.ReadAllLines(filePath); var result = new Dictionary <string, IArticle>(); int index = 1; foreach (var textLine in textLines.Skip(1)) { try { var article = CSVTextHelper.GetArticleFromString(textLine, index); if (article == null) { continue; } var key = ArticleKeyGenerator.GetKeyFromArticle(article); if (result.ContainsKey(key)) { IWheel wheel = article as IWheel; if (wheel == null) { continue; } result.Remove(key); result.Add(key, article); } result.Add(key, article); index++; } catch (Exception e) { logger.Info("Couldnt read line: " + textLine + " Möglicherweise Double Parse Fehler", e); } } return(result); } catch (IOException exception) { logger.Error("Unerwarteter Fehler: ", exception); throw new FileNotReadyException(); } }