public string RemoveOrder(int orderId) { try { if (orderId <= 0) { return(null); } string message = string.Empty; using (var context = new TakeThaiContext()) { var order = context.OrderModels .Include(o => o.CustomerDeliveryAddressModel) .Include(o => o.SubOrderModelsList) .FirstOrDefault(o => o.Id == orderId); if (order != null) { context.Remove(order); context.SaveChanges(); message = "Order has been successfully removed."; } else { message = "Cannot find Order."; } } return(message); } catch (Exception exception) { return($"An unexpected error occurred. {exception.Message}"); } }
public string RemoveSubOrder(int orderId, int subOrderId) { try { if (orderId <= 0 || subOrderId <= 0) { return(null); } string message = string.Empty; using (var context = new TakeThaiContext()) { var subOrder = context.SubOrderModels.FirstOrDefault(s => s.Id == subOrderId); var order = context.OrderModels.FirstOrDefault(o => o.Id == orderId); if (order != null && subOrder != null) { order.SubOrderModelsList = context.SubOrderModels.Where(s => s.OrderModel == order).ToList(); if (order.SubOrderModelsList.Contains(subOrder)) { context.Remove(subOrder); context.SaveChanges(); var subOrders = context.SubOrderModels .Where(s => s.OrderModel == order) .Include(s => s.ProductSubModels) .ToList(); var subOrderModels = subOrders.ToList(); double totalPrice = 0; foreach (var getSubOrder in subOrderModels) { if (getSubOrder.Quantity == 0) { getSubOrder.Quantity = 1; } totalPrice += getSubOrder.Quantity * getSubOrder.ProductSubModels.Price; } totalPrice = Math.Round(totalPrice, 2, MidpointRounding.ToEven); if (order != null) { order.SubTotal = totalPrice; order.TotalCost = order.SubTotal + order.DeliveryCost - order.CustomerDiscount; context.Update(order); context.SaveChanges(); } message = "Sub Order has been successfully removed."; } else { message = "Cannot find Sub Order within the specified order."; } } else { message = "Cannot find Order or Sub Order."; } } return(message); } catch (Exception exception) { return($"An unexpected error occurred. {exception.Message}"); } }