public ActionResult MoveInWaitlist(string clientID, string direction, MoveInWaitlistViewModel vm) { string sql = null; // Get the logged in Site ID from the session int?SiteID = Session["SiteID"] as int?; // if there is none, they can't do anything so redirect to the login page if (!SiteID.HasValue) { return(RedirectToAction("Login", "Account")); } foreach (Waitlist entry in vm.WaitlistList) { sql = String.Format("UPDATE waitlist SET Ranking = {0} WHERE ClientID = {1} AND SiteID = {2}", entry.Ranking, entry.ClientID, vm.SiteID); SqlHelper.ExecuteNonQuery(sql); } vm.StatusMessage = "Waitlist successfully updated"; return(View(vm)); }
public ActionResult MoveInWaitlist(string clientID, string direction) { // Get the logged in Site ID from the session int?SiteID = Session["SiteID"] as int?; // if there is none, they can't do anything so redirect to the login page if (!SiteID.HasValue) { return(RedirectToAction("Login", "Account")); } MoveInWaitlistViewModel vm = new MoveInWaitlistViewModel(); vm.ClientID = int.Parse(clientID); vm.SiteID = int.Parse(SiteID.ToString()); // Get Client and ranking list for site's waitlist for later modification string sql = String.Format( "SELECT ClientID, Ranking " + "FROM waitlist WHERE SiteID = {0} ORDER BY RANKING ASC", vm.SiteID); // run the sql against the db List <object[]> result = SqlHelper.ExecuteMultiSelect(sql, 2); List <Waitlist> current_Waitlist = GetWaitListFromQueryResponse(result); // Get ranking for selected client sql = String.Format("SELECT Ranking FROM waitlist WHERE ClientID = {0} AND SiteID = {1}", vm.ClientID, vm.SiteID); object result2 = SqlHelper.ExecuteScalar(sql); int ranking = int.Parse(result2.ToString()); int count = 0; // Shuffle around ranking based on direction that client is desired to go (up/down) foreach (Waitlist entry in current_Waitlist) { current_Waitlist[count].oldRanking = current_Waitlist[count].Ranking; if (direction == "up") { if (entry.Ranking == ranking - 1) { current_Waitlist[count].Ranking += 1; } else if (entry.Ranking == ranking) { current_Waitlist[count].Ranking -= 1; } } else if (direction == "down") { if (entry.Ranking == ranking + 1) { current_Waitlist[count].Ranking -= 1; } else if (entry.Ranking == ranking) { current_Waitlist[count].Ranking += 1; } } // Update to new ranking for every client sql = String.Format("UPDATE waitlist SET Ranking = {0} WHERE ClientID = {1} AND SiteID = {2}", entry.Ranking, entry.ClientID, vm.SiteID); SqlHelper.ExecuteNonQuery(sql); count += 1; } List <Waitlist> SortedList = current_Waitlist.OrderBy(o => o.Ranking).ToList(); vm.WaitlistList = SortedList; return(View(vm)); }