/* * private async Task SaveCurrentTrafficLightToDBAsync(CancellationToken cancellationToken) * { * var trafficLightFromDb = await _repository.GetByIdAsync(CurrentTrafficLight.Id, cancellationToken); * if(trafficLightFromDb is null) * { * return; * } * else * { * trafficLightFromDb.Color = CurrentTrafficLight.CurrentColor.ToString(); * trafficLightFromDb.Time = DateTime.Now; * await _lightsContext.SaveChangesAsync(); * } * }*/ public async Task SetCurrentColorFromDBAsync(CancellationToken cancellationToken) { var traficLights = await _repository.GetByIdAsync(CurrentTrafficLight.Id, cancellationToken).ConfigureAwait(false); if (traficLights.Color == Colors.Red) { CurrentTrafficLight.Color = Colors.Red; } else if (traficLights.Color == Colors.Yellow) { CurrentTrafficLight.Color = Colors.Yellow; } else { CurrentTrafficLight.Color = Colors.Green; } //TODO return Task.CompletedTask return; }
public IActionResult Index(int id = 1) { var traficLightByID = _repository.GetByIdAsync(id, CancellationToken.None).Result; if (traficLightByID is null) { traficLightByID = new TrafficLightEntity() { Color = Colors.Red, Date = DateTime.Now }; _repository.AddTrafficLightAsync(traficLightByID, CancellationToken.None).ConfigureAwait(false).GetAwaiter().GetResult(); int lastId = _repository.GetMaxTraficLightsIdAsync(CancellationToken.None).Result; _currentTrafficLight.Id = lastId; TraficLightsWorker.TrafficLightsList.Add(_currentTrafficLight); _traficLightsWorker.CurrentTrafficLight = _currentTrafficLight; _traficLightsWorker.SetCurrentColorFromDBAsync(CancellationToken.None).ConfigureAwait(false).GetAwaiter().GetResult(); _traficLightsWorker.Activate(); return(Redirect($"{lastId}")); } var traficLightWithCurrentId = TraficLightsWorker.TrafficLightsList.FirstOrDefault(t => t.Id == id); if (traficLightWithCurrentId != null) { _currentTrafficLight = traficLightWithCurrentId; _traficLightsWorker.CurrentTrafficLight = _currentTrafficLight; _traficLightsWorker.Activate(); return(View(_currentTrafficLight)); } else { TraficLightsWorker.TrafficLightsList.Add(_currentTrafficLight); _currentTrafficLight.Id = traficLightByID.Id; _traficLightsWorker.CurrentTrafficLight = _currentTrafficLight; _traficLightsWorker.SetCurrentColorFromDBAsync(CancellationToken.None).ConfigureAwait(false).GetAwaiter().GetResult(); _traficLightsWorker.Activate(); return(View(_currentTrafficLight)); } }
public async Task <ITrafficLight> Get(int id) { var traficLightById = await _repository.GetByIdAsync(id, CancellationToken.None); if (traficLightById == null) { traficLightById = new TrafficLightEntity() { Color = Colors.Red, Date = DateTime.Now }; //TODO replace code below with Interface Realization await _repository.AddTrafficLightAsync(traficLightById, CancellationToken.None); var trafficLightForService = new TrafficLight() { Id = traficLightById.Id, Color = traficLightById.Color, Date = traficLightById.Date, IsSwitchingDown = default }; _trafficLightsService.AddTrafficLight(trafficLightForService); return(trafficLightForService); } var activeTafficLigthFromService = _trafficLightsService._activeTrafficLights.FirstOrDefault(t => t.Id == id); if (activeTafficLigthFromService != null) { return(activeTafficLigthFromService); } else { var trafficLigthForService = new TrafficLight() { Id = traficLightById.Id, Color = traficLightById.Color, Date = traficLightById.Date, IsSwitchingDown = default }; _trafficLightsService.AddTrafficLight(trafficLigthForService); return(traficLightById); } }