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()); }
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 })); }
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 })); }
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 })); }