public IActionResult Put(TrafficLightEntity product) { if (ModelState.IsValid) { db.Update(product); db.SaveChanges(); return(Ok(product)); } return(BadRequest(ModelState)); }
public IActionResult Delete(int id) { TrafficLightEntity trafficLight = db.TrafficLights.FirstOrDefault(x => x.Id == id); if (trafficLight != null) { db.TrafficLights.Remove(trafficLight); db.SaveChanges(); } return(Ok(trafficLight)); }
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 SwitchNextColor(TrafficLight currentTrafficLight) { if (currentTrafficLight != null) { if (currentTrafficLight.Color == Colors.Red) { currentTrafficLight.Color = Colors.Yellow; currentTrafficLight.IsSwitchingDown = true; } else if (currentTrafficLight.Color == Colors.Yellow && currentTrafficLight.IsSwitchingDown) { currentTrafficLight.Color = Colors.Green; currentTrafficLight.IsSwitchingDown = false; } else if (currentTrafficLight.Color == Colors.Yellow && !currentTrafficLight.IsSwitchingDown) { currentTrafficLight.Color = Colors.Red; } else if (currentTrafficLight.Color == Colors.Green) { currentTrafficLight.Color = Colors.Yellow; } await ChangeDateTimeToCurrent(currentTrafficLight); try {//TODO fix sending params TrafficLightEntity hubLight = new TrafficLightEntity() { Id = currentTrafficLight.Id, Color = currentTrafficLight.Color, Date = currentTrafficLight.Date }; await _hubContext.Clients.All.SendAsync("ReceiveColor", hubLight); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
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); } }
public void SwitchNextColor(object?o) { if (CurrentTrafficLight.Color == Colors.Red) { CurrentTrafficLight.Color = Colors.Yellow; // CurrentTrafficLight.ColorSwitchTimer.Change(1000, Timeout.Infinite); CurrentTrafficLight.IsSwitchingDown = true; } else if (CurrentTrafficLight.Color == Colors.Yellow && CurrentTrafficLight.IsSwitchingDown) { // CurrentTrafficLight.ColorSwitchTimer.Change(2000, Timeout.Infinite); CurrentTrafficLight.Color = Colors.Green; CurrentTrafficLight.IsSwitchingDown = false; } else if (CurrentTrafficLight.Color == Colors.Yellow && !CurrentTrafficLight.IsSwitchingDown) { // CurrentTrafficLight.ColorSwitchTimer.Change(2000, Timeout.Infinite); CurrentTrafficLight.Color = Colors.Red; } else if (CurrentTrafficLight.Color == Colors.Green) { // CurrentTrafficLight.ColorSwitchTimer.Change(1000, Timeout.Infinite); CurrentTrafficLight.Color = Colors.Yellow; } try {//TODO fix sending params TrafficLightEntity hubLight = new TrafficLightEntity() { Id = CurrentTrafficLight.Id, Color = CurrentTrafficLight.Color, Date = CurrentTrafficLight.Date }; _hubContext.Clients.All.SendAsync("ReceiveColor", hubLight); } catch (Exception ex) { Console.WriteLine(ex.Message); } Changes?.Invoke(); }
public TrafficLightEntity Get(int id) { TrafficLightEntity product = db.TrafficLights.FirstOrDefault(x => x.Id == id); return(product); }
public async Task AddTrafficLightAsync(TrafficLightEntity traficLight, CancellationToken cancellationToken) { await _databaseContext.AddAsync(traficLight); await _databaseContext.SaveChangesAsync(cancellationToken); }