private async Task SaveDataToDB(XML.Orders item) { await _orderRepository.AddAsync(new DTO.Orders() { OxId = item.Order.Oxid, OrderDatetime = item.Order.Orderdate }); await _orderRepository.SaveAsync(); await _billingAddressesRepository.AddAsync(new DTO.BillingAddresses() { Email = item.Order.Billingaddress.Billemail, Fullname = item.Order.Billingaddress.Billfname, Street = item.Order.Billingaddress.Billstreet, City = item.Order.Billingaddress.Billcity, Zip = item.Order.Billingaddress.Billzip, HomeNumber = item.Order.Billingaddress.Billstreetnr, OrderOxId = item.Order.Oxid, Country = item.Order.Billingaddress.Country.Geo }); await _billingAddressesRepository.SaveAsync(); await _paymentsRepository.AddAsync(new Payments() { Amount = item.Order.Payments.Payment.Amount, OrderOxId = item.Order.Oxid, MethodName = item.Order.Payments.Payment.Methodname }); await _paymentsRepository.SaveAsync(); var orderArticle = item.Order.Articles.Orderarticle; orderArticle.Select(article => _articlesRepository.AddAsync(new DTO.Articles() { OrderOxId = item.Order.Oxid, Amount = article.Amount, BrutPrice = article.Brutprice, Nomenclature = article.Artnum, Title = article.Title })); await _articlesRepository.SaveAsync(); }
public async Task <IResult> ImportOrder() { IResult result = new Result(); using (OrdersDBContext db = new OrdersDBContext()) { using (var transaction = db.Database.BeginTransaction()) { try { string path = Path.Combine(_env.ContentRootPath, _settings.XmlFileName); string xmlInputData = string.Empty; string xmlOutputData = string.Empty; xmlInputData = await File.ReadAllTextAsync(path); XML.Orders item = Deserialize(xmlInputData); //save to db await SaveDataToDB(item); result.Success = true; transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); result.Message = $"{MessagesDictionary.GetErrorMessag("Error")} Exception: {ex.Message}"; } } } return(result); }