예제 #1
0
        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);
            }
        }
예제 #2
0
 private void OnRemoveGroupQueueCommand(GroupQueueItem groups)
 {
     foreach (var group in groups.Groups)
     {
         GroupsList.Remove(group);
     }
     UpdateQueue();
 }