public async Task ImportAsync(OrdersImport request) { var orders = request.Orders.Select(x => { try { var order = new Database.Domain.Order { OxId = x.Id, OrderDatetime = x.OrderDatetime, BillingAddresses = new List <Database.Domain.BillingAddress> { new Database.Domain.BillingAddress { City = x.BillingAddress.City, Country = x.BillingAddress.Country.Geo, Email = x.BillingAddress.Email, FullName = x.BillingAddress.FullName, HomeNumber = x.BillingAddress.HomeNumber, Street = x.BillingAddress.Street, Zip = x.BillingAddress.Zip } }, Articles = x.Articles .Select(a => new Database.Domain.Article { Amount = a.Amount, BrutPrice = a.BrutPrice, Nomenclature = a.Nomenclature, Title = a.Title }) .ToList(), Payments = x.Payments .Select(p => new Database.Domain.Payment { Amount = p.Amount, MethodName = p.MethodName }) .ToArray() }; return(order); } catch { // todo: add logging return(null); } }).Where(x => x != null); dbContext.AddRange(orders); await dbContext.SaveChangesAsync(); }