/**
         * Tries to find the biggest queues where prio ques are more importatn then normal
         */
        public T GetElement(out bool isPrio)
        {
            DoubleQueue <T> biggest = null;

            isPrio = false;
            foreach (var que in workShopQueues)
            {
                if (biggest == null)
                {
                    biggest = que;
                }
                if (que.prioQueue.Any() || biggest.prioQueue.Any())
                {
                    isPrio = true;
                    if (que.prioQueue.Count() > biggest.prioQueue.Count())
                    {
                        biggest = que;
                    }
                }
                else
                {
                    if (que.queue.Count() > biggest.queue.Count())
                    {
                        biggest = que;
                    }
                }
            }


            if (biggest.prioQueue.Any())
            {
                return(biggest.prioQueue.Dequeue());
            }
            return(biggest.queue.Dequeue());
        }
        /**
         * Insert to the smallest prio queue
         */
        public void InsertPrio(T element)
        {
            DoubleQueue <T> smallest = null;

            foreach (var que in workShopQueues)
            {
                if (smallest == null)
                {
                    smallest = que;
                }
                if (smallest.prioQueue.Count() < que.prioQueue.Count())
                {
                    smallest = que;
                }
            }

            smallest.prioQueue.Enqueue(element);
        }