public async Task <IActionResult> OnGetAsync(string userId, int?profileId, string profileName, int?webSitesMenuId, string returnUrl)
        {
            if (string.IsNullOrEmpty(userId) ||
                string.IsNullOrEmpty(webSitesMenuId.ToString()) ||
                string.IsNullOrEmpty(profileId.ToString()) ||
                string.IsNullOrEmpty(profileName) ||
                string.IsNullOrEmpty(returnUrl))
            {
                return(NotFound());
            }
            TempData["UserId"]      = userId;
            TempData["ProfileId"]   = profileId;
            TempData["ProfileName"] = profileName;
            TempData["ReturnUrl"]   = returnUrl;

            WebSitesMenuModel = await _context.WebSitesMenu
                                .SingleOrDefaultAsync(m => m.Id == webSitesMenuId);

            if (WebSitesMenuModel == null)
            {
                return(RedirectToPage("./WebSitesMenuIndex", new { userId, profileId, profileName, returnUrl, deletedMenuItem = "true" }));
            }

            return(Page());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> AddNew(
            int profileId,
            string inputDescription,
            string currId,
            string addLocation,
            WebSitesMenuModel webSitesMenuModel)
        {
            if (String.IsNullOrEmpty(profileId.ToString()) ||
                String.IsNullOrEmpty(currId) ||
                String.IsNullOrEmpty(addLocation))
            {
                return(NotFound());
            }

            if (string.IsNullOrEmpty(inputDescription))
            {
                return(RedirectToAction(nameof(WebSitesMenuIndex), new { profileId }));
            }

            var menuItems = _context.WebSitesMenu
                            .Where(w => w.ProfileId == profileId)
                            .OrderBy(o => o.SequenceNumber);

            var seqNo  = 0;
            var addAmt = 1;

            foreach (var item in menuItems)
            {
                seqNo  = seqNo + addAmt;
                addAmt = 1;

                if (item.Id.ToString() == currId)
                {
                    webSitesMenuModel.ProfileId   = profileId;
                    webSitesMenuModel.Description = inputDescription;

                    if (addLocation == "Above")
                    {
                        webSitesMenuModel.SequenceNumber = seqNo;
                        seqNo += 1;
                    }
                    if (addLocation == "Below")
                    {
                        webSitesMenuModel.SequenceNumber = seqNo + 1;
                        addAmt = 2;
                    }

                    _context.Add(webSitesMenuModel);
                }

                item.SequenceNumber = seqNo;
                var updateItem = await _context.WebSitesMenu.SingleOrDefaultAsync(m => m.Id == item.Id);

                _context.Update(updateItem);
            }

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(WebSitesMenuIndex), new { profileId }));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> AddFirst(
            int profileId,
            string inputDescription,
            WebSitesMenuModel webSitesMenuModel)
        {
            if (String.IsNullOrEmpty(profileId.ToString()))
            {
                return(NotFound());
            }

            if (!string.IsNullOrEmpty(inputDescription))
            {
                webSitesMenuModel.SequenceNumber = 1;
                webSitesMenuModel.ProfileId      = profileId;
                webSitesMenuModel.Description    = inputDescription;
                _context.Add(webSitesMenuModel);
                await _context.SaveChangesAsync();
            }

            return(RedirectToAction(nameof(WebSitesMenuIndex), new { profileId }));
        }
        public async Task <IActionResult> OnPostAsync(string userId, int?id, int profileId, string profileName, string returnUrl)
        {
            if (string.IsNullOrEmpty(userId) ||
                string.IsNullOrEmpty(id.ToString()) ||
                string.IsNullOrEmpty(profileId.ToString()) ||
                string.IsNullOrEmpty(profileName) ||
                string.IsNullOrEmpty(returnUrl))
            {
                return(RedirectToPage("./WebSitesMenuIndex", new { userId, profileId, profileName, returnUrl }));
            }

            WebSitesMenuModel = await _context.WebSitesMenu.FindAsync(id);

            if (WebSitesMenuModel == null)
            {
                return(RedirectToPage("./WebSitesMenuIndex", new { userId, profileId, profileName, returnUrl, deletedMenuItem = "true" }));
            }

            _context.WebSitesMenu.Remove(WebSitesMenuModel);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./WebSitesMenuIndex", new { userId, profileId, profileName, returnUrl }));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> MoveItem(
            int?currId,
            int?profileId,
            string moveDirection,
            WebSitesMenuModel webSitesMenuModel)
        {
            if (String.IsNullOrEmpty(profileId.ToString()) ||
                String.IsNullOrEmpty(currId.ToString()) ||
                String.IsNullOrEmpty(moveDirection))
            {
                return(NotFound());
            }
            var seqNo     = 1;
            var increment = 1;

            if (moveDirection == "Up")
            {
                increment = -1;
            }

            var origIncrement = increment;
            var origSeqNo     = seqNo;

            var menuItems = _context.WebSitesMenu
                            .Where(w => w.ProfileId == profileId)
                            .OrderBy(o => o.SequenceNumber * increment)
                            .Include(w => w.Profile);

            if (moveDirection == "Up")
            {
                seqNo = menuItems.Count();
            }

            foreach (var item in menuItems)
            {
                origSeqNo           = item.SequenceNumber;
                item.SequenceNumber = seqNo;

                seqNo = seqNo + increment;

                if (item.Id == currId)
                {
                    item.SequenceNumber = item.SequenceNumber + increment;
                    seqNo     = seqNo - increment;
                    increment = increment * 2;
                }
                else
                {
                    increment = origIncrement;
                }

                if (item.SequenceNumber != origSeqNo)
                {
                    var updateItem = await _context.WebSitesMenu.SingleOrDefaultAsync(m => m.Id == item.Id);

                    updateItem.SequenceNumber = item.SequenceNumber;
                    _context.Update(updateItem);
                }
            }

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(WebSitesMenuIndex), new { profileId }));
        }