Beispiel #1
0
        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);
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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();
            }
        }