public void PlaceOrder(Models.Order order) { Entities.StoreOrder o = new Entities.StoreOrder(); if (order.Location.LocationID != null) { o.LocationId = (int)order.Location.LocationID; } if (order.Customer.CustomerID != null) { o.CustomerId = (int)order.Customer.CustomerID; } o.CheckedOut = DateTime.Now; ctx.StoreOrders.Add(o); foreach (Models.Item i in order.Items) { Entities.OrderItem oi = new Entities.OrderItem(); if (i.Product.ProductID != null) { oi.ProductId = (int)i.Product.ProductID; } oi.Quantity = i.Quantity; o.OrderItems.Add(oi); } ctx.SaveChanges(); try { transaction.Commit(); using var log = new LoggerConfiguration() .WriteTo.File("log.txt", rollingInterval: RollingInterval.Day, shared: true) .CreateLogger(); log.Information("TRANSACTION: Committed"); transaction.Dispose(); transaction = ctx.Database.BeginTransaction(); } catch (Exception e) { Console.WriteLine(e.StackTrace); using var log = new LoggerConfiguration() .WriteTo.File("log.txt", rollingInterval: RollingInterval.Day, shared: true) .CreateLogger(); log.Information("TRANSACTION: Rolled back due to database throwing exception"); transaction.Rollback(); } }
public Models.Item ParseItem(Entities.OrderItem item) { return(new Models.Item()); }