public SaveOrderResponse PerformUpdateOrderStatus(UpdateOrderRequest request) { SaveOrderResponse response = new SaveOrderResponse(); var modifiedDate = DateTime.Now; try { using (var db = new CuddlyWombatEntities()) { db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; var orderToUpdate = (from o in db.Orders where o.OrderID == request.OrderID select o).FirstOrDefault(); if (orderToUpdate != null) { var orderHistory = new OrderHistory() { OrderID = orderToUpdate.OrderID, TableID = orderToUpdate.TableID, CustomerID = orderToUpdate.CustomerID, OrderTypeID = orderToUpdate.OrderTypeID, OrderStatusID = orderToUpdate.OrderStatusID, TotalPrice = orderToUpdate.TotalPrice, PickUpTime = orderToUpdate.PickUpTime, IsPaid = orderToUpdate.IsPaid, DateCreated = orderToUpdate.DateCreated, DateModified = modifiedDate }; db.OrderHistories.Add(orderHistory); orderToUpdate.OrderStatusID = request.OrderStatusID; orderToUpdate.DateModified = modifiedDate; } else { response.MessageString = "Please select an order"; response.MessageStatusID = (byte)EMessageStatus.Fail; return(response); } db.SaveChanges(); if (request.OrderStatusID == (byte)EOrderStatus.Canceled) { response.MessageString = "Order is cancelled"; } else if (request.OrderStatusID == (byte)EOrderStatus.Completed) { response.MessageString = "Order Status updated to Completed"; } response.MessageStatusID = (byte)EMessageStatus.Success; } } catch (Exception ex) { response.MessageStatusID = (byte)EMessageStatus.Exception; response.MessageString = ex.Message; } return(response); }