private void RefreshStreets(CityDto city, ServiceCompanyDto company) { StreetList.Clear(); if (city == null) { return; } RequestService.GetStreets(city.Id, company?.Id).ToList().ForEach(s => StreetList.Add(s)); }
private void ChangeCity(int?cityId) { StreetList.Clear(); if (!cityId.HasValue) { return; } foreach (var street in _requestService.GetStreets(cityId.Value).OrderBy(s => s.Name)) { StreetList.Add(street); } OnPropertyChanged(nameof(StreetList)); }
private void EditAddress() { if (RequestId == 0) { return; } var model = new EditAddressOnRequestDialogViewModel(RequestId); var view = new EditAddressOnRequestDialog(); view.DataContext = model; view.Owner = Application.Current.MainWindow; model.SetView(view); if (view.ShowDialog() != true) { return; } SelectedCity = CityList.FirstOrDefault(c => c.Id == model.SelectedCity.Id); SelectedStreet = StreetList.FirstOrDefault(s => s.Id == model.SelectedStreet.Id); SelectedHouse = HouseList.FirstOrDefault(h => h.Id == model.SelectedHouse.Id); SelectedFlat = FlatList.FirstOrDefault(f => f.Id == model.SelectedFlat.Id); _requestService.RequestChangeAddress(RequestId, model.SelectedFlat.Id); }
private void CompositionTarget_Rendering(object sender, System.EventArgs e) { DateTime end = DateTime.UtcNow; TimeSpan timeDiff = end - start; if (experimentStarted) { carTimeDiff = end - experimentTime; TimeOfCarLabel.Content = Convert.ToDouble(carTimeDiff.TotalMilliseconds / 1000.0); } StopWatchLabel.Content = Convert.ToDouble(timeDiff.TotalMilliseconds / 1000.0); if (!isStart) { routeList = new RouteList(this); trafficLights = new TrafficLightsList(this); streetList = new StreetList(this); ColorAllTrafficLights(); } else { ControlTrafficLights(); } if (counter == 30 || !isStart) //dodajemy nowy samochod kiedy mamy pewnosc, ze nie nalozy sie on na juz istniejaca elipse { isStart = true; Car newCar = new Car(); Rectangle rectangle = new Rectangle(); newCar.StartingRouteOfCar = routeList.routes[random.Next(0, routeList.routes.Count)]; newCar.CurrentRouteOfCar = newCar.StartingRouteOfCar; newCar.PostionX = newCar.CurrentRouteOfCar.StartPoint.X; newCar.PostionY = newCar.CurrentRouteOfCar.StartPoint.Y; rectangle.Height = 8; rectangle.Width = 8; rectangle.Fill = colours.solidColorBrushes[random.Next(0, colours.solidColorBrushes.Count)]; newCar.Vehicle = rectangle; newCar.Id = carIdSetter++; newCar.CurrentStreet = FindCurrentStreet(newCar); newCar.Direction = newCar.CurrentRouteOfCar.StartingDirection; if (newCar.StartingRouteOfCar.Id == 9 && timeDiff.TotalSeconds > 100 && !experimentStarted) { newCar.Vehicle.Fill = new SolidColorBrush() { Color = Color.FromRgb(255, 0, 102) }; experimentCarId = newCar.Id; experimentTime = DateTime.UtcNow; experimentStarted = true; } cars.Add(newCar); ExpWithoutAlgCanvas.Children.Add(newCar.Vehicle); Canvas.SetTop(newCar.Vehicle, newCar.PostionY); Canvas.SetLeft(newCar.Vehicle, newCar.PostionX); counter = 0; } else { counter++; } //testowe cars.ForEach(c => { if ((int)c.PostionX == (int)c.CurrentRouteOfCar.EndPoint.X && (int)c.PostionY == (int)c.CurrentRouteOfCar.EndPoint.Y) { carsToRemove.Add(c); if (c.Id == experimentCarId) { if (!isAlgorithm) { _mainWindow.TimeWithout.Content = Convert.ToDouble(carTimeDiff.TotalMilliseconds / 1000.0); this.Close(); _mainWindow.Show(); } else { _mainWindow.TimeWith.Content = Convert.ToDouble(carTimeDiff.TotalMilliseconds / 1000.0); this.Close(); _mainWindow.Show(); } } } }); carsToRemove.ForEach(c => { ExpWithoutAlgCanvas.Children.Remove(c.Vehicle); cars.Remove(c); }); carsToRemove.Clear(); cars.ForEach(car => { switch (car.CurrentRouteOfCar.Id) { case 0: if ((car.PostionY <= 320) || (car.PostionY > 320 && car.PostionY <= 326 && trafficLights.AllTraficLights[0].IsGreenLight) || car.PostionY > 326) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY += distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.South; } } break; case 1: if ((car.PostionY <= 320) || (car.PostionY > 320 && car.PostionY <= 326 && trafficLights.AllTraficLights[0].IsGreenLight) || (car.PostionY > 326 && car.PostionY < 330)) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY += distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.South; } } else if (car.PostionY >= 330) { car.CurrentRouteOfCar = routeList.routes[3]; } break; case 2: if ((car.StartingRouteOfCar.Id == 7 || car.StartingRouteOfCar.Id == 15) && car.PostionX > 549 && car.PostionX < 550) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 7); } else if (car.StartingRouteOfCar.Id == 22 && car.PostionX > 945) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 17); } else if (car.StartingRouteOfCar.Id == 23 && car.PostionX > 990) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 16); } else if (car.PostionX < 40 || (car.PostionX >= 40 && car.PostionX <= 45 && trafficLights.AllTraficLights[31].IsGreenLight) || (car.PostionX > 45 && car.PostionX <= 120) || (car.PostionX > 120 && car.PostionX <= 125 && trafficLights.AllTraficLights[29].IsGreenLight) || (car.PostionX > 125 && car.PostionX <= 167) || (car.PostionX > 167 && car.PostionX <= 172 && trafficLights.AllTraficLights[36].IsGreenLight) || (car.PostionX > 172 && car.PostionX <= 285) || (car.PostionX > 285 && car.PostionX <= 293 && trafficLights.AllTraficLights[37].IsGreenLight) || (car.PostionX > 293 && car.PostionX <= 493) || (car.PostionX > 493 && car.PostionX <= 499 && trafficLights.AllTraficLights[21].IsGreenLight) || (car.PostionX > 499 && car.PostionX <= 756) || (car.PostionX > 756 && car.PostionX <= 764 && trafficLights.AllTraficLights[14].IsGreenLight) || (car.PostionX > 764 && car.PostionX <= 930) || (car.PostionX > 930 && car.PostionX <= 935 && trafficLights.AllTraficLights[12].IsGreenLight) || car.PostionX > 935) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionX += distance; car.Vehicle.SetValue(Canvas.LeftProperty, car.PostionX); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.East; } } break; case 3: if (car.StartingRouteOfCar.Id == 14 && car.PostionX > 549 && car.PostionX < 550) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 7); } else if (car.PostionX >= 1030 || (car.PostionX < 1030 && car.PostionX >= 1025 && trafficLights.AllTraficLights[7].IsGreenLight) || (car.PostionX < 1025 && car.PostionX >= 808) || (car.PostionX < 808 && car.PostionX >= 803 && trafficLights.AllTraficLights[39].IsGreenLight) || (car.PostionX < 803 && car.PostionX >= 564) || (car.PostionX < 564 && car.PostionX >= 559 && trafficLights.AllTraficLights[5].IsGreenLight) || (car.PostionX < 559 && car.PostionX >= 323) || (car.PostionX < 323 && car.PostionX >= 318 && trafficLights.AllTraficLights[38].IsGreenLight) || (car.PostionX < 318 && car.PostionX >= 204) || (car.PostionX < 204 && car.PostionX >= 199 && trafficLights.AllTraficLights[40].IsGreenLight) || (car.PostionX < 199 && car.PostionX >= 154) || (car.PostionX < 154 && car.PostionX >= 149 && trafficLights.AllTraficLights[3].IsGreenLight) || (car.PostionX < 149 && car.PostionX >= 76) || (car.PostionX < 76 && car.PostionX >= 71 && trafficLights.AllTraficLights[1].IsGreenLight) || car.PostionX < 71) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionX -= distance; car.Vehicle.SetValue(Canvas.LeftProperty, car.PostionX); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.West; } } break; case 4: if (car.PostionY > 405 || (car.PostionY < 405 && car.PostionY > 400 && trafficLights.AllTraficLights[30].IsGreenLight) || car.PostionY < 400) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY -= distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.North; } } break; case 7: if ((car.PostionY <= 320 && car.PostionX == 50) || (car.PostionY > 320 && car.PostionY <= 326 && trafficLights.AllTraficLights[0].IsGreenLight && car.PostionX == 50) || (car.PostionY > 326 && car.PostionY < 370 && car.PostionX == 50)) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY += distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.South; } } else if (car.PostionY >= 370 && car.PostionX == 50) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 2); } else { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY -= distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.North; } } break; case 9: if ((car.PostionY <= 320) || (car.PostionY > 320 && car.PostionY <= 326 && trafficLights.AllTraficLights[0].IsGreenLight) || (car.PostionY > 326 && car.PostionY < 370)) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY += distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.South; } } else if (car.PostionY >= 370) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 2); } break; case 12: if ((car.PostionY <= 320) || (car.PostionY > 320 && car.PostionY <= 326 && trafficLights.AllTraficLights[4].IsGreenLight) || (car.PostionY > 326 && car.PostionY <= 370)) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY += distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.South; } } else if (car.PostionY > 370) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 2); } break; case 13: if ((car.PostionY <= 320) || (car.PostionY > 320 && car.PostionY <= 326 && trafficLights.AllTraficLights[4].IsGreenLight) || (car.PostionY > 326 && car.PostionY <= 330)) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY += distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.South; } } else if (car.PostionY > 330) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 3); } break; case 14: car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 3); break; case 15: car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 2); break; case 16: if (car.StartingRouteOfCar.Id == 20 && car.PostionY < 330) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 3); } else if (car.StartingRouteOfCar.Id == 21 && car.PostionY < 370) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 2); } else if ((car.PostionY > 760) || (car.PostionY <= 760 && car.PostionY > 755 && trafficLights.AllTraficLights[9].IsGreenLight) || (car.PostionY <= 755 && car.PostionY > 405) || (car.PostionY <= 405 && car.PostionY > 400 && trafficLights.AllTraficLights[8].IsGreenLight) || car.PostionY <= 400) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY -= distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.North; } } break; case 17: if (car.StartingRouteOfCar.Id == 18 && car.PostionY > 330) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 3); } else if (car.StartingRouteOfCar.Id == 19 && car.PostionY > 370) { car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 2); } else if ((car.PostionY <= 320) || (car.PostionY > 320 && car.PostionY <= 326 && trafficLights.AllTraficLights[0].IsGreenLight) || (car.PostionY > 326 && car.PostionY <= 700) || (car.PostionY > 700 && car.PostionY <= 703 && trafficLights.AllTraficLights[11].IsGreenLight) || car.PostionY > 703) { var orderOfCarsOnTheRoute = CalculateOrderOnRoute(car); if (!CheckIfThereIsACarAhead(car, orderOfCarsOnTheRoute)) { car.PostionY += distance; car.Vehicle.SetValue(Canvas.TopProperty, car.PostionY); car.CurrentStreet = FindCurrentStreet(car); car.Direction = Direction.South; } } break; case 18: car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 17); break; case 19: car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 17); break; case 20: car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 16); break; case 21: car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 16); break; case 22: car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 2); break; case 23: car.CurrentRouteOfCar = routeList.routes.Find(r => r.Id == 2); break; default: break; } }); }