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()
                {
                });
            }
        }
Beispiel #2
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);
            }
        }