protected override void DoHandle(RaceAward content) { var raceAwardQueue = _raceAward.Read(); if (raceAwardQueue == null) { raceAwardQueue = new Queue <RaceAward>(); _raceAward.Write(raceAwardQueue, Time.time); } if (!raceAwardQueue.Contains(content)) { raceAwardQueue.Enqueue(content); } var cacheDialog = _dialogManager.GetCachedDialog(DialogName.RaceAwardsDialog); if (cacheDialog != null) { return; } if (raceAwardQueue.Count <= 0) { return; } var raceAward = raceAwardQueue.Dequeue(); if (raceAward == null) { return; } _dialogManager.ShowDialog <RaceAwardsDialog>(DialogName.RaceAwardsDialog, false, true, (dialog) => { dialog.Apply(raceAward); dialog.Show(); }); }