private bool importArticle(FuncClasses.FastXML bdb) { var list = bdb.GetAllArticles(user); var savingList = new List<Articles.Article>(); foreach(var prevart in list) { var article = bdb.GetArticle(prevart.ArticleID, user); var outputArticle = new Articles.Article(); outputArticle.ArticleID = article.ArticleID; outputArticle.ArticleDescription = article.ArticleDescription; outputArticle.ArticleCategory = article.ArticleCategory; outputArticle.ArticleText = article.ArticleText; //outputArticle.ArticleWeight = article.WeightString; outputArticle.Price1 = new Models.PriceModel(outputArticle) { Price1 = new Utils.EMoney(article.ArticlePrice1.Amount, article.ArticlePrice1.IsGross) }; outputArticle.Price2 = new Models.PriceModel(outputArticle) { Price1 = new Utils.EMoney(article.ArticlePrice2.Amount, article.ArticlePrice2.IsGross) }; outputArticle.Price3 = new Models.PriceModel(outputArticle) { Price1 = new Utils.EMoney(article.ArticlePrice3.Amount, article.ArticlePrice3.IsGross) }; // TaxClass var TaxClass = new Utils.TaxClass(); TaxClass.Name = article.TaxClass.Name; TaxClass.TaxRate = new Utils.Percentage() { PercentageString = article.TaxClass.TaxRateString }; Database.SaveOrUpdateTaxClass(TaxClass); outputArticle.TaxClass = TaxClass; // Unit var ArticleUnit = new Utils.Unit(); ArticleUnit.DecimalSeperator = ","; // Gets the count of digits after the seperating "." var format = article.ArticleUnit.UnitFormat.Split(new Char[] { '.' }); if (format.Length>1) { ArticleUnit.DecimalDigits = format[1].Length; } else { ArticleUnit.DecimalDigits = 0; } ArticleUnit.Name = article.ArticleUnit.Name; ArticleUnit.ShortName = article.ArticleUnit.ShortName; outputArticle.ArticleUnit = ArticleUnit; Database.SaveOrUpdateArticleUnit(ArticleUnit); savingList.Add(outputArticle); } Database.SaveOrUpdateArticle(savingList); return true; }
private bool importArticles(string filepath, Interfaces.IDatabase database) { using (System.IO.TextReader textreader = System.IO.File.OpenText(filepath)) { var csv = new CsvReader(textreader); csv.Configuration.Delimiter = ";"; var taskedUnits = database.ArticleUnits(); var unitlist = taskedUnits.Result; var output = new List<Core.Articles.Article>(); while (csv.Read()) { string ID; if (!csv.TryGetField("Artikelnummer", out ID)) { var task = database.GetNextArticleID(); ID = (task.Result).ToString(); } string description; if (!csv.TryGetField("Bezeichnung", out description)) { description = "" ; } string text; if (!csv.TryGetField("Text", out text)) { text = ""; } string unit; if (!csv.TryGetField("Einheit", out unit)) { unit = ""; } string price1; if (!csv.TryGetField("Preis 1", out price1)) { price1 = ""; } string tax; if (!csv.TryGetField("Steuersatz", out tax)) { tax = ""; } var article = new Articles.Article(); article.ArticleID = ID; article.ArticleDescription = description; article.ArticleText = text; article.Price1.Price1.AmountString = price1; var list = from units in unitlist where units.ShortName.ToLower().Contains(unit.ToLower()) select units; if (list.Count() > 0) article.ArticleUnit = list.First(); //var saveresult = database.SaveOrUpdateArticle(article); //if (!saveresult.Result) // database.SaveOrUpdateArticle(article); output.Add(article); } database.SaveOrUpdateArticle(output); } return true; }