private void UpdateQueue() { var groups = new List <GroupQueueItem>(); foreach (var group in GroupsList.ToArray()) { var nextGroup = groups.Where(g => g.GroupSize + group.GroupSize <= MaxGroupSize).FirstOrDefault(); if (nextGroup == null) { var newGroup = new GroupQueueItem(); newGroup.GroupName = GetGroupName(); newGroup.Groups.Add(group); groups.Add(newGroup); } else { nextGroup.Groups.Add(group); } } var groupList = GroupsList.OrderBy(g => g.GroupNumber).ToList(); GroupsList.Clear(); GroupsQueue.Clear(); foreach (var group in groupList) { GroupsList.Add(group); } foreach (var group in groups) { GroupsQueue.Add(group); } }
private void OnRemoveGroupQueueCommand(GroupQueueItem groups) { foreach (var group in groups.Groups) { GroupsList.Remove(group); } UpdateQueue(); }