public Cycle CreateNewCycle(Cycle cycle) { try { tCycle addNewCycle = new tCycle() { InstanceID = 1, Year = cycle.Year, CycleName = cycle.CycleName, CycleShortName = cycle.ShortName, //KeyFieldID = 0, StartDate = cycle.StartDate, EndDate = cycle.EndDate, Active = cycle.Active, Archived = false, IsLocked = false, ModifiedAt = DateTime.Now }; _context.tCycle.Add(addNewCycle); _context.SaveChanges(); //add cycle week var startDate = cycle.StartDate; var endDate = cycle.EndDate; TimeSpan timeSpan = (Convert.ToDateTime(endDate) - Convert.ToDateTime(startDate)); var totalWeek = Convert.ToInt32(timeSpan.TotalDays / 7); for (int i = 1; i <= totalWeek; i++) { var cycleWeek = new tCycleWeek(); cycleWeek.CycleId = addNewCycle.CycleID; cycleWeek.StartDate = Convert.ToDateTime(startDate).AddDays((i - 1) * 7); cycleWeek.EndDate = cycleWeek.StartDate.AddDays(6); cycleWeek.WeekNo = i; _context.tCycleWeek.Add(cycleWeek); _context.SaveChanges(); } return(new Cycle() { Id = addNewCycle.CycleID, InstanceId = addNewCycle.InstanceID, CycleName = addNewCycle.CycleName, ShortName = addNewCycle.CycleShortName, Year = addNewCycle.Year, CreatedDatetime = addNewCycle.ModifiedAt, Status = addNewCycle.Active == true ? "Active" : "Inactive", IsLocked = addNewCycle.IsLocked, StartDate = addNewCycle.StartDate, EndDate = addNewCycle.EndDate }); } catch (Exception ex) { return(new Cycle() { }); } }
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); } }