private void CloneNowMenuBased(string fromCycle, string menuCodes, string toCycle) { this.InvokeEx(f => f.lblStatus.Visible = true); this.InvokeEx(f => f.lblStatus.Text = "In Progress, please wait!"); this.InvokeEx(f => f.btnSubmit.Enabled = false); var newClonedMenus = _menuManagement.CloneMenuCodesToNewCycle(fromCycle, menuCodes, toCycle); ChiliProcessor chili = new ChiliProcessor(); foreach (var key in newClonedMenus.Keys) { var newMenuID = key; var oldMenuId = newClonedMenus[key]; var newMenu = _menuManagement.GetMenuById(newMenuID); var menuCode = "MNU" + Helper.Get8Digits(); menuCode = MenuProcessor.GenerateMenuCode(Convert.ToInt32(newMenu.MenuTypeId), menuCode); var newMenuCodeWeek = menuCode; //only food guide will not have _1 if (newMenu.MenuTypeId != 5) { newMenuCodeWeek += "_1"; } _menuManagement.UpdateMenuCode(newMenuID, newMenuCodeWeek); var newDOc = chili.CloneChiliDocument(oldMenuId); var oldMenuTemplate = _menuManagement.GetMenuTemplate(oldMenuId); _menuManagement.UpdateMenuTemplate(newMenuID, oldMenuTemplate.TemplateID, newDOc); //apply cycle menucode chili variable in chii doc _menuProcessor.RebuildFlightNumberLotNumberChiliVariableForMenu(newMenuID); } this.InvokeEx(f => f.lblStatus.Visible = true); this.InvokeEx(f => f.lblStatus.Text = "Menu cloning has been completed successfully!"); this.InvokeEx(f => f.btnSubmit.Enabled = true); MessageBox.Show("Menu cloning has been completed successfully!"); }