public QueueService CloneQueueService(QueueService Q, int FatherChromosomeID) { QueueService Qs = new CoEVO.QueueService(Q.ID, Q.VesselID, Q.VCategory, Q.Direction, Q.ArrivalTime, Q.AwaitingTime, Q.MOV, Q.Status, Q.ToUse); Qs.ID = Q.ID; Qs.ArrivalTime = Q.ArrivalTime; Qs.AwaitingTime = Q.AwaitingTime; //Qs.ChromosomeID = Q.ChromosomeID; Qs.ChromosomeID = FatherChromosomeID; Qs.Cost = Q.Cost; Qs.CrossTime = Q.CrossTime; Qs.CurrentDock = Q.CurrentDock; Qs.CurrentHour = Q.CurrentHour; Qs.DelayTime = Q.DelayTime; Qs.DepartureTime = Q.DepartureTime; Qs.Direction = Q.Direction; Qs.Fitness = Q.Fitness; Qs.FixedCost = Q.FixedCost; Qs.POPSupplyingID = Q.POPSupplyingID; Qs.QueueType = Q.QueueType; Qs.TimeInPort = Q.TimeInPort; Qs.Units = Q.Units; Qs.VariableCost = Q.VariableCost; return(Qs); }
public QueueService[] GetQuequeServiceHistoryForPOPID(QueueService[] QueueServiceHistory, int POP_ID, int QueueSize) { QueueService[] Qs = new CoEVO.QueueService[QueueSize]; int cont = 0; foreach (QueueService QL in Queue) { if (QL.POPSupplyingID == POP_ID) { if (GetVesselTypebyVesselID(QL.VesselID).ToUse1 > 0) //Se ToUse es diferente a 0, i.e. Not Crossing { Qs[cont] = QL; cont++; } } } return(Qs); }