Esempio n. 1
0
 public IActionResult Put(TrafficLightEntity product)
 {
     if (ModelState.IsValid)
     {
         db.Update(product);
         db.SaveChanges();
         return(Ok(product));
     }
     return(BadRequest(ModelState));
 }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 4
0
        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);
                }
            }
        }
Esempio n. 5
0
        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();
 }
Esempio n. 7
0
        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);
        }