/// <summary>
        /// edit static page route
        /// </summary>
        /// <param name="pageRouteViewModel"></param>
        /// <param name="newVersionStatusEnum"></param>
        /// <param name="oldVersionStatusEnum"></param>
        /// <param name="changeActionEnum"></param>
        /// <param name="userId"></param>
        /// <param name="pageRoutVersionId"></param>
        /// <returns></returns>
        private IActionResult EditMethod(PageRouteEditViewModel pageRouteViewModel, VersionStatusEnum newVersionStatusEnum, VersionStatusEnum oldVersionStatusEnum, ChangeActionEnum changeActionEnum, string userId, out int pageRoutVersionId, bool fromSaveAndSubmit = false)
        {
            List <NavItem> navItems;

            if (!pageRouteViewModel.HasNavItem)
            {
                ModelState.Remove("NavItemId");
            }


            PageRouteVersion pageRouteVersion = pageRouteViewModel.MapToPageRouteVersion();

            if (ModelState.IsValid)
            {
                if (oldVersionStatusEnum == VersionStatusEnum.Approved || oldVersionStatusEnum == VersionStatusEnum.Ignored)
                {
                    pageRouteVersion.CreatedById       = userId;
                    pageRouteVersion.CreationDate      = DateTime.Now;
                    pageRouteVersion.VersionStatusEnum = newVersionStatusEnum;
                    pageRouteVersion.ChangeActionEnum  = changeActionEnum;
                    pageRouteVersion.Id = 0;
                    _pageRouteVersionRepository.AddStaticPage(pageRouteVersion);
                    pageRoutVersionId = pageRouteVersion.Id;
                    if (!fromSaveAndSubmit)
                    {
                        _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                    }
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Add, "Definitions > Static Pages > Add", pageRouteViewModel.EnName);
                    return(RedirectToAction(nameof(Index)));
                }
                PageRouteVersion newPageRouteVersion = _pageRouteVersionRepository.Update(pageRouteVersion);
                if (newPageRouteVersion != null)
                {
                    if (!fromSaveAndSubmit)
                    {
                        _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                    }
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Update, "Definitions > Static Pages > Edit", pageRouteViewModel.EnName);
                    pageRoutVersionId = pageRouteVersion.Id;
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    _toastNotification.AddErrorToastMessage(ToasrMessages.warning);
                    navItems = _navItemRepository.Get().ToList();
                    pageRouteViewModel.NavItems = navItems;
                    pageRoutVersionId           = pageRouteVersion.Id;
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Warning, "Definitions > Static Pages > Edit", pageRouteViewModel.EnName);
                    return(View(pageRouteViewModel));
                }
            }
            navItems = _navItemRepository.Get().ToList();
            pageRouteViewModel.NavItems = navItems;
            pageRoutVersionId           = pageRouteVersion.Id;
            return(View(pageRouteViewModel));
        }