public ActionResult Reorder(int userListId, string serializedItems) { try { // Parse serialized items var pattern = @"item\[\]=(\d+)"; var matches = Regex.Matches(serializedItems, pattern); // Get the new order of serialized items var order = new int[matches.Count]; var index = 0; foreach (Match match in matches) order[index++] = Int32.Parse(match.Groups[1].Value); // Update the list var list = UserListRepository.Instance.FindUserList(userListId); var newList = new UserList() { Url = list.Url, Name = list.Name }; for (int i = 0; i < order.Length; i++) newList.UserListItems.Add(list.UserListItems[order[i]]); UserListRepository.Instance.UpdateUserList(newList); } catch { // // TODO: Add error handler // } WebSocketHandler.Instance.NotifyAllClients(NotificationType.ListChanged); return new JsonResult(); }
public ActionResult CreateList() { var url = Guid.NewGuid().ToString().Substring(0, 8).ToUpper(); var list = new UserList() { Url = url }; UserListRepository.Instance.AddUserList(list); return RedirectToRoute("List", new { url = list.Url }); }
public void AddUserList(UserList list) { lock (_syncRoot) { using (var db = new InstantListContext()) { db.UserLists.Add(list); db.SaveChanges(); } } }
public void UpdateUserList(UserList list) { lock (_syncRoot) { using (var db = new InstantListContext()) { var query = from userList in db.UserLists where userList.UserListId == list.UserListId select userList; if (query.Count() != 0) { var oldList = query.FirstOrDefault(); db.UserLists.Remove(oldList); db.UserLists.Add(list); db.SaveChanges(); } } } }
public UserListViewModel(UserList list) { UserList = list; }