/// <summary> /// В этом закрытом методе заполняются списки Cities, Directions данными из файла input.txt /// </summary> void Filling() { if (Lines != null) { foreach (var line in Lines) { var split = line.Replace(" ", string.Empty).Replace("\"", string.Empty).Split('→'); City cityFrom = new City(split.First()); City cityTo = new City(split.Last()); if (!Cities.Any(c => c.Name == cityFrom.Name)) { Cities.Add(cityFrom); } if (!Cities.Any(c => c.Name == cityTo.Name)) { // здесь указывется что данный город не является точкой отсчета т.к. он является пунктом назначения на данном этапе cityTo.IsNotRoot = true; Cities.Add(cityTo); } else { //этот город был пунктом откправления но в данном случае он является пунктом назначения Cities.FirstOrDefault(c => c.Name == cityTo.Name).IsNotRoot = true; } Directions.Add(new Direction(cityFrom, cityTo)); } } }
public async Task OnGet(int?id) { try { var cities = await _weatherService.GetCitiesAsync(); Cities = cities.Select(c => new CityWeatherInfoViewModel { CityId = c.CityId, Name = c.Name, TempDay = c.TempDay, TempNight = c.TempNight, WeatherComment = c.WeatherComment }).ToList(); } catch (WeatherGrabberUnavailableException) { ServiceStatus = "Сервис с данными о погоде недоступен"; } if (id != null) { SelectedCity = Cities.FirstOrDefault(c => c.CityId == id.Value); } }
private string GetCityFullName(string city) { var fromCity = Cities.FirstOrDefault(w => w.Name.ToLower().Equals(city.ToLower())); var fullName = fromCity == null ? "" : fromCity.FullName; return(fullName); }
public void LoadCurrents(AbsolutePlace place) { var countries = namazApi.GetCountries(); countries.ForEach(c => Countries.Add(c)); if (!string.IsNullOrWhiteSpace(place.Country?.UlkeID) && Countries.Any()) { var selectedCnt = Countries.FirstOrDefault(c => c.UlkeID == place.Country?.UlkeID); SelectedCountry = selectedCnt; var cities = namazApi.GetCities(selectedCnt.UlkeID); cities.ForEach(c => Cities.Add(c)); if (!string.IsNullOrWhiteSpace(place.City?.SehirID)) { var selectedCity = Cities.FirstOrDefault(c => c.SehirID == place.City?.SehirID); SelectedCity = selectedCity; var towns = namazApi.GetTowns(selectedCity.SehirID); towns.ForEach(i => Towns.Add(i)); if (!string.IsNullOrWhiteSpace(place.Town?.IlceID)) { var selectedTown = Towns.FirstOrDefault(t => t.IlceID == place.Town?.IlceID); SelectedTown = SelectedTown; } else { var cityCenter = towns.FirstOrDefault(t => t.IlceAdi == selectedCity.SehirAdi); SelectedTown = cityCenter; } } } }
private static async Task <List <LocationDTO> > ApplyAStarAlgorithm() { var finalCitiesList = new List <LocationDTO>(); AStarCity currentCity = null; var originCity = GetOriginCity(); if (originCity != null) { originCity.Visited = true; Cities.FirstOrDefault(x => x.City.Id == originCity.City.Id).Visited = true; finalCitiesList.Add(GetLocation(originCity)); currentCity = originCity; } else { finalCitiesList = null; return(null); } while (AreNotVisitedCities()) { var unvisitedCities = GetUnvisitedIntermediateCities(); var scoredUnvisitedCities = await GetScores(currentCity, unvisitedCities); if (scoredUnvisitedCities.Any(x => x.Score == 0) && _timeImportanceCoeficient < 99) { ResetAlgorithm(); finalCitiesList.Clear(); finalCitiesList.Add(GetLocation(originCity)); _timeImportanceCoeficient++; } else if (!scoredUnvisitedCities.Any(x => x.Score == 0)) { var highestScoredCity = GetHighestScoredCity(scoredUnvisitedCities); //set highestScoredCity to visited Cities.FirstOrDefault(x => x.City.Id == highestScoredCity.City.City.Id).Visited = true; finalCitiesList.Add(GetLocation(highestScoredCity.City)); currentCity = highestScoredCity.City; } else { NoRouteFound = true; return(null); } } var destinationCity = GetDestinationCity(); if (destinationCity != null) { finalCitiesList.Add(GetLocation(destinationCity)); } else { finalCitiesList = null; } return(finalCitiesList); }
private async Task GetFlights() { var timetables = await FlightService.GetAirportFlights(CurrentAirport.codeIataAirport, Constants.FlightTypeDeparture); timetables.ForEach(item => { item.arrival.City = Cities.FirstOrDefault(c => c.codeIataCity == item.arrival.iataCode)?.nameCity ?? "City not found"; item.departure.City = Cities.FirstOrDefault(c => c.codeIataCity == item.departure.iataCode)?.nameCity ?? "City not found"; Timetables.Add(item); }); }
public void ExcuteCityListEnglishViewCommand() { var listWindow = new Categories(NameTypes.City); listWindow.ShowDialog(); if (listWindow.DialogResult != null && (bool)listWindow.DialogResult) { LoadCities(); SelectedCity = Cities.FirstOrDefault(c => c.Display.Equals(listWindow.TxtCategoryName.Text)); } }
public async Task LoadUniversities(string country, string city, string toFind) { string json; string countryId = Countries.FirstOrDefault(x => x.Value == country).Key; string cityId = Cities.FirstOrDefault(x => x.Value == city).Key; HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.vk.com/method/database.getUniversities?country_id=" + countryId + "&city_id=" + cityId + "&need_all=1&count=10000&q=" + toFind); WebResponse response = await Task.Factory.FromAsync <WebResponse>(request.BeginGetResponse, request.EndGetResponse, null); using (StreamReader reader = new StreamReader(response.GetResponseStream())) { json = await reader.ReadLineAsync(); } SimpleVKJSonParser parser = new SimpleVKJSonParser(json); Universities = parser.ParseToDictionary("id", "title"); }
public static string TryGuessCanton(string postalCode, string city) { if (!string.IsNullOrWhiteSpace(postalCode)) { //Try to guess the canton using the postal code XmlNode node = Cities.FirstOrDefault(n => n.Attributes["PostalCode"].Value == postalCode); //if an element with the given postal code is found return the corresponding canton return(node?.Attributes["Canton"]?.Value); } if (!string.IsNullOrWhiteSpace(city)) { //else try to guess the canton using the city XmlNode node = Cities.FirstOrDefault(n => string.Equals(n.Attributes["City"].Value, city, StringComparison.OrdinalIgnoreCase)); return(node?.Attributes["Canton"]?.Value); } return(string.Empty); }
private async void LoadDataCities() { var scheduleBussines = new ScheduleBussines(); var result = await scheduleBussines.GetCities(); var fromid = SettingConfiguration.GetIntValue("CityId"); if (result != null) { foreach (var item in result.Where(O => O.Id != fromid).ToList()) { Cities.Add(item); } } if (Cities.Where(O => O.Id != fromid).Count() == 1) { var city = Cities.FirstOrDefault(); this.ToId = city.Id; } }
private void CheckAndClean() { // Cities with empty regions var cityWithEmptyRegion = Cities.FirstOrDefault(city => string.IsNullOrWhiteSpace(city.RegionId) || city.RegionId.All(ch => ch == '0')); if (cityWithEmptyRegion != null) { throw new Exception($"There is '{cityWithEmptyRegion}' city with empty Region"); } // Countries with no regions for (int i = Countries.Count - 1; i >= 0; i--) { Country country = Countries[i]; var region = Regions.FirstOrDefault(r => country.Id.Equals(r.CountryId)); if (region == null) { Countries.RemoveAt(i); Console.WriteLine($"'{country.Name}' has no regions and was deleted"); } } }
async Task SaveLeague() { IsBusy = true; if (String.IsNullOrWhiteSpace(SelectedSport.Name) || String.IsNullOrWhiteSpace(SelectedSport.Id)) { UserDialogs.Instance.Alert("Please Select a Sport", "Wrong Input"); } else if (String.IsNullOrWhiteSpace(SelectedLeagueType.Name) || String.IsNullOrWhiteSpace(SelectedLeagueType.Id)) { UserDialogs.Instance.Alert("Please Select a League Type", "Wrong Input"); } else if (String.IsNullOrWhiteSpace(LeagueName)) { UserDialogs.Instance.Alert("Please enter a Name", "Wrong Input"); } else if (selectedStartDate > selectedEndDate) { UserDialogs.Instance.Alert("Start date can't be larger than End date", "Wrong Input"); } else { var token = Newtonsoft.Json.JsonConvert.DeserializeObject <Token>(Settings.Token); var organizerCity = Cities.FirstOrDefault(c => c.Id == token.Organizer.CityRefId); var createLeagueDto = new CreateLeagueDto { Name = LeagueName, Description = Description, LeagueType = SelectedLeagueType, Organizer = token.Organizer, Requirements = Requirements, RecLeagueEnd = SelectedEndDate, RecLeagueStart = SelectedStartDate, Sport = SelectedSport, City = organizerCity }; var response = await OrganizerService.CreateLeague(createLeagueDto, token.AuthToken); if (response.Success) { ClearAddOrganizerPage(); await Navigation.PopAsync(); Leagues = new ObservableCollection <League>(response.Leagues); var notificator = DependencyService.Get <IToastNotificator>(); var options = new NotificationOptions() { Title = "Success", Description = "League has been Added", }; var result = await notificator.Notify(options); } else { UserDialogs.Instance.Alert("An error occured while adding the league!", "Error"); } } IsBusy = false; }
private City LoadCity(int id) { return(Cities.FirstOrDefault(c => c.Id == id)); }
public ActionResult <List <ChartItem> > Total(TotalReportRequest req) { var opStr = "$" + req.Operation.ToString().ToLower(); int year = 0, period = 0; if (req.Period != "all") { var split = req.Period.Split('-'); year = int.Parse(split[0]); period = int.Parse(split[1]); } City city = null; if (req.City != null) { city = Cities.FirstOrDefault(c => c.Id == req.City); } var agg = db.Aggregate <ElecBill>(); if (year != 0) { agg = agg.Match(b => b.Year == year && b.Period == period); } if (city != null) { agg = agg.Match(b => b.CityId == city.Id); } var report = new List <ChartItem>(); if (req.BasedOn == TotalReportRequest.BasedOnEnum.Period) { var grouping = new BsonDocument { { _ID, new BsonDocument { { YEAR, "$" + YEAR }, { PERIOD, "$" + PERIOD } } } }; grouping.AddRange(new BsonDocument { { VALUE, new BsonDocument { { opStr, "$" + req.Field } } } }); var agg2 = agg.Group(grouping).Sort(new BsonDocument { { _ID + "." + YEAR, -1 }, { _ID + "." + PERIOD, -1 } }); foreach (var item in agg2.ToEnumerable()) { report.Add(new ChartItem { Text = $"سال {item[_ID][YEAR].AsInt32} دوره {item[_ID][PERIOD].AsInt32}", Value = GetValue(item[VALUE]) }); } } else if (req.BasedOn == TotalReportRequest.BasedOnEnum.Subscribers) { var fb = Builders <Subscriber> .Filter; var filter = fb.Empty; if (city != null) { filter = fb.Eq(s => s.City, city.Id); } var citiesDic = Cities.ToDictionary(c => c.Id, c => c.Name); var subscribers = db.Find(filter).Project(s => new { s.City, s.ElecSub.ElecSubsNum, s.Name }) .ToEnumerable() .Where(s => citiesDic.ContainsKey(s.City)) .ToDictionary(s => s.ElecSubsNum); var grouping = new BsonDocument { { _ID, "$" + SUBSNUM } }; grouping.AddRange(new BsonDocument { { VALUE, new BsonDocument { { opStr, "$" + req.Field } } } }); var agg2 = agg.Group(grouping).Sort(new BsonDocument { { VALUE, -1 } }); var res = agg2.Limit(100).ToEnumerable(); foreach (var item in res) { int subsNum = item[_ID].AsInt32; if (subscribers.ContainsKey(subsNum)) { report.Add(new ChartItem { Text = subscribers[subsNum].Name, Value = GetValue(item[VALUE]) }); } } } else { var grouping = new BsonDocument { { _ID, "$" + CITYID } }; grouping.AddRange(new BsonDocument { { VALUE, new BsonDocument { { opStr, "$" + req.Field } } } }); var agg2 = agg.Group(grouping).Sort(new BsonDocument { { VALUE, -1 } }); foreach (var item in agg2.ToEnumerable()) { var cid = item[_ID].AsObjectId; City c = db.FindById <City>(cid.ToString()); if (c != null) { report.Add(new ChartItem { Text = c.Name, Value = GetValue(item[VALUE]) }); } } } return(report); }
public City GetNode(string label) { return(Cities.FirstOrDefault(x => x.Name.Equals(label))); }
/// <summary> /// Найти город. /// </summary> /// <param name="name">Название города.</param> /// <returns>Город.</returns> public City Find(string name) { return(Cities.FirstOrDefault(c => c.Name == name)); }
private static AStarCity GetOriginCity() { return(Cities.FirstOrDefault(x => x.IsOrigin)); }
private static AStarCity GetDestinationCity() { return(Cities.FirstOrDefault(x => x.IsDestination)); }