public TripStream() { var startDay = Random.Next(1, 100); var start = new TripStarted { Day = startDay }; Events.Add(start); var state = RandomState(); Events.Add(new Departure { Day = startDay, State = state }); var duration = Random.Next(1, 20); var randomNumber = Random.NextDouble(); for (var i = 0; i < duration; i++) { var day = startDay + i; var travel = Travel.Random(day); Events.Add(travel); if (i > 0 && randomNumber > .3) { var departure = new Departure { Day = day, State = state }; Events.Add(departure); state = RandomState(); var arrival = new Arrival { State = state, Day = i }; Events.Add(arrival); } } if (randomNumber > .5) { Events.Add(new TripEnded { Day = startDay + duration, State = state }); } else if (randomNumber > .9) { Events.Add(new TripAborted()); } }
public Trip Create(TripStarted started) { return(new Trip { StartedOn = started.Day, Active = true }); }