public void sendToConnection(SItem newItem) { if (Connections == null || !Connections.Any()) { return; } var rand1 = rand.NextDouble(); var prob = Connections.OrderBy(x => x.Item2); foreach (Tuple <Activity, double> tup in prob) { if (rand1 <= tup.Item2) { tup.Item1.FilaEntrada.Add(newItem); return; } } }
SItem AddItemToFilaProcesso(SItem newItem, double tempo) { var ultimoItem = Resultado.OrderByDescending(x => x.Fim).FirstOrDefault(); if (ultimoItem == null) { newItem.Fim = newItem.Inicio + tempo; return(newItem); } if (ultimoItem.Fim < newItem.Inicio) { TempoOcioso += newItem.Inicio - ultimoItem.Fim; } else if (ultimoItem.Fim > newItem.Inicio) { TempoEspera += ultimoItem.Fim - newItem.Inicio; newItem.Inicio = ultimoItem.Fim; } newItem.Fim = newItem.Inicio + tempo; return(newItem); }