/// <summary> /// Determine if a task can be added to a schedule at the new start time /// </summary> /// <param name="newAccessList"></param> /// <param name="newTaskStartTime"></param> /// <returns></returns> public bool CanAddTasks(Stack <Access> newAccessList, double newTaskStartTime) { int count = 0; foreach (var access in newAccessList) { if (!AllStates.isEmpty(access.Asset)) { if (AllStates.GetLastEvent().GetEventEnd(access.Asset) > newTaskStartTime) { return(false); } } if (access.Task != null) { count += AllStates.timesCompletedTask(access.Task); if (count >= access.Task.MaxTimesToPerform) { return(false); } } } return(true); }
public bool CanAddTasks(Stack <Access> newAccessList, double newTaskStartTime) { //TODO: Mehiel double check //HSF v2.3: //size_t count = 0; //vector<assetSchedule*>::iterator asIt2 = assetscheds.begin(); //for (vector <const Task*>::const_iterator tIt = newTaskList.begin(); tIt != newTaskList.end(); tIt++, asIt2++) { // if (*tIt != NULL) // { // for (vector<assetSchedule*>::iterator asIt = assetscheds.begin(); asIt != assetscheds.end(); asIt++) // { // count += (*asIt)->timesCompletedTask(*tIt); // } // if (count >= (*tIt)->getMaxTimesPerformable()) // return false; // if (!(*asIt2)->empty()) // { // if ((*asIt2)->getLastState()->getEventEnd() > newTaskStartTime) // return false; // } // } //} //return true; int count = 0; // vector<assetSchedule*>::iterator asIt2 = assetscheds.begin(); //int asIt2 = 0; foreach (var access in newAccessList) { if (!AllStates.isEmpty(access.Asset)) // the ait2 check { if (AllStates.GetLastEvent().GetEventEnd(access.Asset) > newTaskStartTime) { return(false); } } if (access.Task != null) { count += AllStates.timesCompletedTask(access.Task); if (count >= access.Task.MaxTimesToPerform) { return(false); } } } return(true); }