public void CreateLiveOrderNow(long menuId) { var menumovetolive = (from m in _context.tMenu where m.ID == menuId select m).FirstOrDefault(); if (menumovetolive != null) { menumovetolive.IsMovedToLiveOrder = true; _context.SaveChanges(); } var menu = _menuManagement.GetMenuById(menuId); var liveorder = (from LO in _context.tLiveOrders where LO.IsConvertedToOrder == false select LO).FirstOrDefault(); if (liveorder == null) { liveorder = new tLiveOrders(); liveorder.CycleId = menu.CycleId; liveorder.IsConvertedToOrder = false; //TOTO: create a logic to create LOT liveorder.LotNo = Helper.Get3Digits() + "L" + Helper.Get3Digits(); _context.tLiveOrders.Add(liveorder); _context.SaveChanges(); } //get all the route for this menu reading from tMenuForRoute table var routes = (from r in _context.tMenuForRoute where r.MenuID == menuId select r).ToList(); //loop in this above collection and add all the entries as liveorderdetails foreach (var route in routes) { var flights = route.Flights.Split(new char[] { ',' }); for (int i = 0; i < flights.Length; i++) { var flightNo = flights[i].Trim(); if (!string.IsNullOrEmpty(flightNo)) { var loDetails = (from lo in _context.tLiveOrderDetails where lo.MenuId == menuId && lo.LiveOrderId == liveorder.LiveOrderId && lo.RouteId == route.RouteID && lo.FlightNo == flightNo select lo).FirstOrDefault(); if (loDetails == null) { var liveOrderDetails = new tLiveOrderDetails(); liveOrderDetails.LiveOrderId = liveorder.LiveOrderId; liveOrderDetails.MenuId = menuId; liveOrderDetails.RouteId = route.RouteID; liveOrderDetails.FlightNo = flightNo; _context.tLiveOrderDetails.Add(liveOrderDetails); } } } } _context.SaveChanges(); }
public tLiveOrders CreateReorderFromLiveOrder(Int64 orderId) { var liveOrderId = (from o in _context.tOrders where o.OrderID == orderId select o.LiveOrderId).FirstOrDefault(); if (liveOrderId != null) { //getdata var getLiveOrderData = (from lo in _context.tLiveOrders where lo.LiveOrderId == liveOrderId select lo).FirstOrDefault(); long newLiveorderId = 0; if (getLiveOrderData != null) { //create new liveorder var liveorder = new tLiveOrders(); liveorder.CycleId = getLiveOrderData.CycleId; liveorder.IsConvertedToOrder = false; liveorder.LotNo = getLiveOrderData.LotNo; _context.tLiveOrders.Add(liveorder); _context.SaveChanges(); newLiveorderId = liveorder.LiveOrderId; } var oldliveorderdata = (from lod in _context.tLiveOrderDetails where lod.LiveOrderId == liveOrderId select lod).ToList(); //create new live orderDetails foreach (var data in oldliveorderdata) { var liveorderdetails = new tLiveOrderDetails(); liveorderdetails.LiveOrderId = newLiveorderId; liveorderdetails.MenuId = data.MenuId; liveorderdetails.RouteId = data.RouteId; liveorderdetails.FlightNo = data.FlightNo; liveorderdetails.Quantity = null; _context.tLiveOrderDetails.Add(liveorderdetails); _context.SaveChanges(); var menumovetolive = (from m in _context.tMenu where m.ID == data.MenuId select m).FirstOrDefault(); if (menumovetolive != null) { menumovetolive.IsMovedToLiveOrder = true; } _context.SaveChanges(); } var newliveorderdata = (from newlo in _context.tLiveOrders where newlo.IsConvertedToOrder == false && newlo.LiveOrderId == newLiveorderId select newlo).FirstOrDefault(); return(newliveorderdata); } else { return(null); } }