public void addNewPartTime(QueueAssign partTime)
        {
            PartTimes.Add(partTime);

            OnPropertyChanged("PartTimes");
            OnPropertyChanged("PartTimeSum");
        }
        public void AddToHistory(int time, Process executingProcess, ObservableCollection<Process> queue)
        {
            // hogy ne kelljen teljes Process-t emiatt sorosítani, ezért csak a neveket kiszedni
            ObservableCollection<string> queueWithProcessNames = new ObservableCollection<string>();
            foreach (Process process in queue)
            {
                queueWithProcessNames.Add(process.ProcessName);
            }

            string executingProcessName = "";
            if (executingProcess != null)
            {
                executingProcessName = executingProcess.ProcessName;
            }

            QueueAssign queueAssign = new QueueAssign(previousTime, time, queueWithProcessNames);


            if (ProcessQueueCouples.Count > 0)  // már van tárolva Gannt egység
            {
                ProcessWithQueueAssigns processWithQueueAssigns = ProcessQueueCouples.Last();

                if (processWithQueueAssigns.ProcessName != null)
                {
                    if (processWithQueueAssigns.ProcessName.Equals(executingProcessName))
                    {
                        if (processWithQueueAssigns.PartTimes.Count > 0)
                        {
                            if (CheckIfQuesAreEqual(queueWithProcessNames, processWithQueueAssigns.PartTimes.Last().Queue))
                            {
                                processWithQueueAssigns.setLastPartTimesEndInterval(time);
                            }
                            else
                            {
                                QueueAssigns.Add(queueAssign);
                                processWithQueueAssigns.addNewPartTime(queueAssign);
                            }
                        }
                        else
                        { 
                        
                        }
                    }
                    else
                    {
                        QueueAssigns.Add(queueAssign);
                        ObservableCollection<QueueAssign> partTime = new ObservableCollection<QueueAssign>();
                        partTime.Add(queueAssign);
                        processQueueCouples.Add(new ProcessWithQueueAssigns(executingProcessName, partTime));
                    }
                }
                else    // ha előzőleg nem volt tárolva process, ami végrehajtás alatt lett volna (tipikusan 2. iteráció, vagy esetleg sokadik) // több esetre kell szétválasztani
                {
                    QueueAssigns.Add(queueAssign);
                    ObservableCollection<QueueAssign> partTime = new ObservableCollection<QueueAssign>();
                    partTime.Add(queueAssign);
                    processQueueCouples.Add(new ProcessWithQueueAssigns(executingProcessName, partTime));
                }
            }
            else        // ha az adatszerkezetben még nincs korábban eltárolt Gannt egység  (1. iteráció)
            {
                QueueAssigns.Add(queueAssign);
                ObservableCollection<QueueAssign> partTime = new ObservableCollection<QueueAssign>();
                partTime.Add(queueAssign);
                processQueueCouples.Add(new ProcessWithQueueAssigns(executingProcessName, partTime));
            }
            previousTime = time;
        }