public void AddRouteForMenu(long menuId, long routeId, string flightNo) { var routeForMenu = (from rm in _context.tMenuForRoute where rm.MenuID == menuId && rm.RouteID == routeId select rm).FirstOrDefault(); if (routeForMenu == null) { routeForMenu = new tMenuForRoute(); routeForMenu.MenuID = menuId; routeForMenu.RouteID = routeId; routeForMenu.Flights = flightNo; _context.tMenuForRoute.Add(routeForMenu); _context.SaveChanges(); } else { routeForMenu.Flights = routeForMenu.Flights + "," + flightNo; } }
public long CreateReorderMenuFromMenuid(long menuId, int userid) { var originalMenu = _menuManagement.GetMenuById(menuId); var currCycleId = (from c in _context.tCycle where c.Active == true select c.CycleID).FirstOrDefault(); if (originalMenu != null) { //getdata var getOldMenuData = (from om in _context.tMenu where om.ID == menuId select om).FirstOrDefault(); long newMenuId = 0; if (getOldMenuData != null) { //create new menu var ifDuplicate = '_'; var newmenu = new tMenu(); newmenu.MenuName = getOldMenuData.MenuName; if (getOldMenuData.MenuCode.Contains(ifDuplicate)) { string oldMenucode = getOldMenuData.MenuCode; string str1 = oldMenucode.Substring(0, 8); int str2 = Convert.ToInt16(oldMenucode.Substring(8)); //check if there is a higher version of the menu already exist for (var i = 1; i < 50; i++) { string str3 = Convert.ToString(str2 + i); string checkmenucode = str1 + str3; var checkmenu = _menuManagement.GetMenuIdByMenuCode(checkmenucode); if (checkmenu == 0) { newmenu.MenuCode = checkmenucode; break; } } } else { string oldMenucode = getOldMenuData.MenuCode; string str1 = oldMenucode + "_"; for (var i = 1; i < 50; i++) { string str2 = Convert.ToString(i); string checkmenucode = str1 + str2; var checkmenu = _menuManagement.GetMenuIdByMenuCode(checkmenucode); if (checkmenu == 0) { newmenu.MenuCode = checkmenucode; break; } } } newmenu.MenuTypeID = getOldMenuData.MenuTypeID; newmenu.IsDeleted = false; newmenu.CreatedAt = DateTime.Now; newmenu.CreatedBy = userid; newmenu.LanguageID = getOldMenuData.LanguageID; newmenu.CycleID = currCycleId; newmenu.CurrentApprovalStatusID = 1; newmenu.IsMovedToLiveOrder = false; newmenu.ReorderCount = null; _context.tMenu.Add(newmenu); _context.SaveChanges(); newMenuId = newmenu.ID; } //get and create new Menuforroutes var oldMenuforRoutesData = (from mfr in _context.tMenuForRoute where mfr.MenuID == menuId select mfr).ToList(); foreach (var mfrdata in oldMenuforRoutesData) { var newmfr = new tMenuForRoute(); newmfr.MenuID = newMenuId; newmfr.RouteID = mfrdata.RouteID; newmfr.Flights = mfrdata.Flights; _context.tMenuForRoute.Add(newmfr); _context.SaveChanges(); } //get and create new MenuItem var oldMenuItemData = (from mi in _context.tMenuItem where mi.MenuID == menuId select mi).ToList(); foreach (var midata in oldMenuItemData) { var newmi = new tMenuItem(); newmi.MenuID = newMenuId; newmi.BaseItemCode = midata.BaseItemCode; _context.tMenuItem.Add(newmi); _context.SaveChanges(); } //get and create new MenuTemplate var oldMenuTemplate = (from mt in _context.tMenuTemplates where mt.MenuID == menuId select mt).FirstOrDefault(); var newMenuTemp = new tMenuTemplates(); newMenuTemp.MenuID = newMenuId; newMenuTemp.TemplateID = oldMenuTemplate.TemplateID; newMenuTemp.ChiliDocumentID = oldMenuTemplate.ChiliDocumentID; _context.tMenuTemplates.Add(newMenuTemp); _context.SaveChanges(); return(newMenuId); } else { return(0); } }
private void CloneMenus(string fromCycle, Dictionary <long, long> NewClonedMenus, tCycle cycleFrom, tCycle cycleTo, long toCycleID, List <tMenu> oldMenus) { foreach (var oldMenu in oldMenus) { if (oldMenu == null) { continue; } //create menu var oldMenuId = oldMenu.ID; tMenu newMenu = new tMenu(); var menuName = oldMenu.MenuName.Replace(cycleFrom.CycleShortName, cycleTo.CycleShortName); newMenu.MenuName = menuName; //TODO : assign new menu code //newMenu.MenuCode = oldMenu.MenuCode; newMenu.MenuTypeID = oldMenu.MenuTypeID; newMenu.IsDeleted = oldMenu.IsDeleted; newMenu.CreatedAt = System.DateTime.Now; newMenu.CreatedBy = 2; newMenu.LanguageID = oldMenu.LanguageID; //assign new cycle id newMenu.CycleID = toCycleID; newMenu.CurrentApprovalStatusID = 1; _context.tMenu.Add(newMenu); _context.SaveChanges(); var newMenuId = newMenu.ID; //create menu for route var menuForRoutes = _context.tMenuForRoute.Where(mr => mr.MenuID == oldMenuId).ToList(); foreach (var menuForRoute in menuForRoutes) { tMenuForRoute newMenuForRoute = new tMenuForRoute(); newMenuForRoute.MenuID = newMenuId; newMenuForRoute.RouteID = menuForRoute.RouteID; newMenuForRoute.Flights = menuForRoute.Flights; _context.tMenuForRoute.Add(newMenuForRoute); _context.SaveChanges(); } //write to menu history tMenuHistory history = new tMenuHistory(); history.MenuID = newMenuId; history.ActionTaken = "Menu created by cloning from menu - " + oldMenu.MenuCode + " cycle -" + fromCycle; history.ActionByUserID = 2; history.ModifiedAt = System.DateTime.Now; _context.tMenuHistory.Add(history); _context.SaveChanges(); //clone menu chili doc tempalte and assign var oldMenuTemplate = _context.tMenuTemplates.Where(t => t.MenuID == oldMenuId).FirstOrDefault(); tMenuTemplates newMenuTemplate = new tMenuTemplates(); newMenuTemplate.MenuID = newMenuId; newMenuTemplate.ChiliDocumentID = ""; newMenuTemplate.TemplateID = oldMenuTemplate.TemplateID; _context.tMenuTemplates.Add(newMenuTemplate); _context.SaveChanges(); NewClonedMenus.Add(newMenuId, oldMenuId); } }