Exemple #1
0
        /// <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));
                }
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
        }
Exemple #6
0
        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);
            });
        }
Exemple #7
0
        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));
            }
        }
Exemple #8
0
        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");
        }
Exemple #9
0
        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;
            }
        }
Exemple #11
0
        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");
                }
            }
        }
Exemple #12
0
        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);
        }
Exemple #15
0
 public City GetNode(string label)
 {
     return(Cities.FirstOrDefault(x => x.Name.Equals(label)));
 }
Exemple #16
0
 /// <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));
 }