private static List <Geoname> CreateGeonameList(string xml)
        {
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml);
            if (doc.DocumentElement == null)
            {
                return(new List <Geoname>());
            }

            XmlNodeList root = doc.GetElementsByTagName("geonames");

            if (root.Count == 0)
            {
                return(new List <Geoname>());
            }

            XmlElement geonames = (XmlElement)root[0];

            List <Geoname> names = new List <Geoname>();

            foreach (XmlElement element in geonames.GetElementsByTagName("geoname"))
            {
                Geoname n = new Geoname(element);
                names.Add(n);
            }

            return(names);
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="placeName"></param>
        /// <param name="inGeonames"></param>
        /// <returns></returns>
        public Geoname GetBestFittingPlaceName(string placeName, List <Geoname> inGeonames)
        {
            Geoname retour = null;

            if (inGeonames != null)
            {
                if (String.IsNullOrEmpty(placeName))
                {
                    if (inGeonames != null)
                    {
                        retour = inGeonames.FirstOrDefault();
                    }
                }
                else if (inGeonames != null)
                {
                    int    bestLevensteinScore = 1000;
                    String cleanPlaceName      = RemoveWeirdCharToCompare(placeName);
                    foreach (Geoname iterator in inGeonames)
                    {
                        if (iterator.name != null)
                        {
                            int levensteinScore = LevenshteinDistance.Compute(cleanPlaceName, RemoveWeirdCharToCompare(iterator.name));
                            if (levensteinScore < bestLevensteinScore)
                            {
                                bestLevensteinScore = levensteinScore;
                                retour = iterator;
                            }
                        }
                    }
                }
            }
            return(retour);
        }
        public void Test_GeonameRestResponseAnalyser_GetBestFittingPlaceName_Return_Null_When_Called_With_Listgeoname_Null()
        {
            GeonameRestResponseAnalyser analyser = new GeonameRestResponseAnalyser();
            Geoname gname = analyser.GetBestFittingPlaceName("TEST", null);

            Assert.IsNull(gname);
        }
 public DetailViewModel()
 {
     Score           = new int();
     CountryOptions  = new List <Geoname>();
     SelectedGeoname = new Geoname();
     Task.Run(async() => await LoadData());
     TouchedCommand      = new Command(async() => await touched());
     LabelTouchedCommand = new Command(async() => await labeltouched());
 }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        public WebCamsTravelRootObject GetBestWebCam(string country, string capital)
        {
            WebCamsTravelRootObject retour = new WebCamsTravelRootObject();
            var geonameClient = new RestClient(_connectGeoNamesURL);
            //geonameClient.Authenticator = new HttpBasicAuthenticator(_webcamsTravelLogin, _webcamsTravelPwd);
            GeonameRestRequestGenerator geonameGenerator = new GeonameRestRequestGenerator();

            IRestResponse <HRGeoNameRootObject> geonameResponse = geonameClient.Execute <HRGeoNameRootObject>(geonameGenerator.Generate(capital, country, "jean.ecard"));
            GeonameRestResponseAnalyser         analyser        = new GeonameRestResponseAnalyser();//!Structure Map
            //!Tester null
            Geoname pCode    = analyser.GetBestFittingPlaceName(capital, geonameResponse.Data.geonames);
            double  parisLat = 0;
            double  parisLon = 0;

            if (pCode != null)
            {
                Double.TryParse(pCode.lat.Replace('.', ','), out parisLat);
                Double.TryParse(pCode.lng.Replace('.', ','), out parisLon);
            }

            //WEBCAMSTRAVEL
            var webCamClient = new RestClient(_connectWebcamsTravelsURL);

            webCamClient.Authenticator = new HttpBasicAuthenticator(_webcamsTravelLogin, _webcamsTravelPwd);

            WebCamsTravelRestRequestGenerator webcamGenerator = new WebCamsTravelRestRequestGenerator();

            var webCamRequest = webcamGenerator.Generate(parisLat, parisLon, country);
            // execute the request
            IRestResponse <WebCamsTravelRootObject> webcamsTravelResponse = webCamClient.Execute <WebCamsTravelRootObject>(webCamRequest);

            if (webcamsTravelResponse != null && webcamsTravelResponse.Data != null && webcamsTravelResponse.Data.result != null)
            {
                WebCamsTravelRestResponseAnalyser webcamsTravelAnalyser = new WebCamsTravelRestResponseAnalyser();
                Webcam bestWebCam = webcamsTravelAnalyser.GetBestFittingWebCam(webcamsTravelResponse.Data.result.webcams);
                if (bestWebCam != null && bestWebCam.player != null)
                {
                    retour.status         = "OK";
                    retour.result         = new Result();
                    retour.result.limit   = 0;
                    retour.result.offset  = 0;
                    retour.result.total   = 1;
                    retour.result.webcams = new List <Webcam>();
                    retour.result.webcams.Add(bestWebCam);
                }
                else
                {
                    retour.status        = "OK";
                    retour.result        = new Result();
                    retour.result.limit  = 0;
                    retour.result.offset = 0;
                    retour.result.total  = 0;
                }
            }
            return(retour);
        }
        public void Test_GeonameRestResponseAnalyser_GetBestFittingPlaceName_Return_Null_When_Called_With_Placename_Null()
        {
            GeonameRestResponseAnalyser analyser = new GeonameRestResponseAnalyser();
            List <Geoname> list = new List <Geoname>();

            list.Add(new Geoname());
            Geoname gname = analyser.GetBestFittingPlaceName(null, list);

            Assert.IsNull(gname);
        }
Пример #7
0
        public SimpleGeoName(Geoname geoname)
        {
            Id          = geoname.Id;
            Name        = geoname.Name;
            FCode       = geoname.Fcode;
            CountryCode = geoname.CountryCode;

            Children = new List <SimpleGeoName>();

            LocalNameES = geoname.AlternateNames().Where(x => x.Language == "es").LastOrDefault().Name;
            LocalNameEN = geoname.AlternateNames().Where(x => x.Language == "en").LastOrDefault().Name;
        }
Пример #8
0
        public SimpleGeoName(Geoname geoname)
        {
            Id = geoname.Id;
            Name = geoname.Name;
            FCode = geoname.Fcode;
            CountryCode = geoname.CountryCode;
            
            Children = new List<SimpleGeoName>();

            LocalNameES = geoname.AlternateNames().Where(x => x.Language == "es").LastOrDefault().Name;
            LocalNameEN = geoname.AlternateNames().Where(x => x.Language == "en").LastOrDefault().Name;
        }
Пример #9
0
        public async Task <List <Geoname> > Execute()
        {
            //Fake async
            await Task.Delay(10);

            List <Geoname> retour = new List <Geoname>();

            if (_country == "FRA" && _capital == "Paris")
            {
                Geoname geon = new Geoname();
                geon.name = "PARIS";
                geon.lat  = "10.0";
                geon.lng  = "10.0";
                retour.Add(geon);
            }
            return(retour);
        }
        public void Test_GeonameRestResponseAnalyser_GetBestFittingPlaceName_Return_Paris14_When_Called_With_Placename_ListOfParis()
        {
            GeonameRestResponseAnalyser analyser = new GeonameRestResponseAnalyser();
            List <Geoname> list  = new List <Geoname>();
            Geoname        gname = new Geoname();

            gname.name = "Roule sur Pars";
            list.Add(gname);
            gname      = new Geoname();
            gname.name = "Paris la vilette";
            list.Add(gname);
            gname      = new Geoname();
            gname.name = "Paris - 14";
            list.Add(gname);

            Geoname gnameresult = analyser.GetBestFittingPlaceName("Paris", list);

            Assert.IsNotNull(gnameresult);
            Assert.AreEqual("Paris - 14", gnameresult.name);
        }
Пример #11
0
        public override async void Init(object initData)
        {
            base.Init(initData);
            PageModelHelper                  = new PageModelHelper();
            PageModelHelper.Visualizar       = false;
            PageModelHelper.ActivityRunning  = true;
            PageModelHelper.CuidadorExibicao = false;
            Cidade   = new Geoname();
            Familiar = new Familiar();


            var x = new HttpClient();
            var b = await x.GetStringAsync("http://www.geonames.org/childrenJSON?geonameId=3469034");

            var o = JsonConvert.DeserializeObject <RootObject>(b);

            ListaEstados = new ObservableCollection <Geoname>(o.geonames);
            PageModelHelper.Visualizar      = true;
            PageModelHelper.ActivityRunning = false;
            Familiar = initData as Familiar;
        }
Пример #12
0
        public ActionResult Weather([Bind(Include = "Name, Country, County")] Geoname geoname, string screenName, int locationID)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var model   = new HomeIndexViewModel();
                    var service = new WeatherService();
                    model.Weathers = service.FindWeathers(geoname, screenName, locationID);


                    return(View("Weather", model));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(String.Empty, ex.Message);
            }

            return(View("Error"));
        }
Пример #13
0
        /// <summary>
        /// Get the Best approching placeName in the world
        /// </summary>
        /// <param name="placeName">Place name to search</param>
        /// <param name="inGeonames">A List of GeoName object</param>
        /// <returns>The most approching GeoName null if can not be found</returns>
        public Geoname GetBestFittingPlaceName(string placeName, List <Geoname> inGeonames)
        {
            Geoname retour = null;

            if (!String.IsNullOrEmpty(placeName) && inGeonames != null && inGeonames.Count > 0)
            {
                int    bestLevensteinScore = INITIAL_BEST_LEVENSTEIN_SCORE;
                String cleanPlaceName      = RemoveWeirdCharToCompare(placeName);
                foreach (Geoname iterator in inGeonames)
                {
                    if (iterator.name != null)
                    {
                        int levensteinScore = LevenshteinDistance.Compute(cleanPlaceName, RemoveWeirdCharToCompare(iterator.name));
                        if (levensteinScore < bestLevensteinScore)
                        {
                            bestLevensteinScore = levensteinScore;
                            retour = iterator;
                        }
                    }
                }
            }
            return(retour);
        }
Пример #14
0
        private void GetChildren(SimpleGeoName sg, Geoname g)
        {
            Path.Push(sg);
            CurrentLevel--;
            try
            {
                foreach (var n in g.Children(GeoNamesDataStyle.Full))
                {
                    ItemCount++;
                    UpdateCounterUI();

                    var nsg = new SimpleGeoName(n);
                    sg.Children.Add(nsg);
                    if (CurrentLevel >= 0)
                    {
                        GetChildren(nsg, n);
                    }
                }
            }
            catch {}
            CurrentLevel++;
            Path.Pop();
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public async Task <List <Geoname> > Execute()
        {
            if (_clientProvider != null && _restRequestGenerator != null && _restResponseAnalyser != null)
            {
                List <Geoname> retour = new List <Geoname>();
                _clientProvider.ConnectionURL = _connectGeoNamesURL;
                var geonameClient = _clientProvider.CreateRestClient();

                var           request  = _restRequestGenerator.Generate(Capital, Country, _geonameKey);
                IRestResponse response = await geonameClient.ExecuteGetTaskAsync(request);

                HRGeoNameRootObject result = JsonConvert.DeserializeObject <HRGeoNameRootObject>(response.Content);
                if (result != null && _restResponseAnalyser != null)
                {
                    Geoname fittingGeoname = _restResponseAnalyser.GetBestFittingPlaceName(Capital, result.geonames);
                    retour.Add(fittingGeoname);
                }
                return(retour);
            }
            else
            {
                throw new Exception(HRCountriesServicesSolution.Constant.GEONAME.REST_CLIENT_NOT_INITIALIZED);
            }
        }
Пример #16
0
 public override void AddGeoname(Geoname geoname)
 {
     _context.Geonames.Add(geoname);
 }
Пример #17
0
        public override void RemoveGeoname(int id)
        {
            Geoname geoname = _context.Geonames.Find(id);

            _context.Geonames.Remove(geoname);
        }
Пример #18
0
 public static IList <Geoname> Children(this Geoname geoname, string SelectedUsername = "******")
 {
     return(GeoNamesOrgWebservice.Children(geoname, SelectedUsername));
 }
Пример #19
0
 public static IList <Geoname> Children(this Geoname geoname)
 {
     return(GeoNamesOrgWebservice.Children(geoname, "ffmcoder"));
 }
 public static IList <Geoname> Children(Geoname geoname, string username)
 {
     return(Children(geoname.GeonameId, username, GeoNamesDataStyle.Full));
 }
Пример #21
0
        private void GetChildren(SimpleGeoName sg, Geoname g)
        {
            Path.Push(sg);
            CurrentLevel--;
            try
            {
                foreach (var n in g.Children(GeoNamesDataStyle.Full))
                {
                    ItemCount++;
                    UpdateCounterUI();

                    var nsg = new SimpleGeoName(n);
                    sg.Children.Add(nsg);
                    if (CurrentLevel >= 0)
                    {
                        GetChildren(nsg, n);
                    }
                }
            }
            catch{}
            CurrentLevel++;
            Path.Pop();
        }
        public override async void Init(object initData)
        {
            base.Init(initData);
            Cuidador             = new Cuidador();
            SelectedTipoCuidador = new TipoCuidador();
            ValidacaoCuidador    = new ValidacaoCuidador();
            oHorario             = new PageModelHelper
            {
                ActivityRunning   = true,
                Visualizar        = false,
                VisualizarTermino = false,
                NovoCuidador      = false,
                NovoCadastro      = false,
                CuidadorExibicao  = true
            };
            var x = initData as Tuple <Cuidador, App>;

            if (x != null)
            {
                Cuidador = x.Item1;
                if (x.Item2 != null)
                {
                    app = x.Item2;
                }
            }
            oHorario.NovoCuidador     = Cuidador?.Id == null;
            oHorario.NovoCadastro     = Cuidador?.Id == null;
            oHorario.CuidadorExibicao = Cuidador?.Id != null;
            if (oHorario.NovoCuidador)
            {
                oHorario.BoasVindas = "Tirar foto";
                NovoCuidador        = true;
                ConTelefone         = new ConTelefone {
                    Id = Guid.NewGuid().ToString()
                };
                ConCelular = new ConCelular {
                    Id = Guid.NewGuid().ToString()
                };
                ConEmail = new ConEmail {
                    Id = Guid.NewGuid().ToString()
                };
                ContatoEmergencia = new ContatoEmergencia {
                    Id = Guid.NewGuid().ToString()
                };
            }
            else
            {
                NovoCuidador        = false;
                oHorario.BoasVindas = "Alterar foto";
            }
            Cidade = new Geoname();
            //Cuidador = initData as Cuidador;
            await GetData();

            if (Cuidador?.CuiFoto != null)
            {
                CuidadorFoto = ImageSource.FromStream(() => new MemoryStream(Cuidador.CuiFoto));
            }
            var n = new HttpClient();
            var b = await n.GetStringAsync("http://www.geonames.org/childrenJSON?geonameId=3469034");

            var o = JsonConvert.DeserializeObject <RootObject>(b);

            ListaEstados = new ObservableCollection <Geoname>(o.geonames);

            oHorario.ActivityRunning = false;
            oHorario.Visualizar      = true;
        }
Пример #23
0
 public abstract void Add(Geoname geoname);
Пример #24
0
 public abstract void Delete(Geoname geoname);
 public abstract void Update(Geoname geoname);
 public abstract void Delete(Geoname geoname);
 public abstract void Add(Geoname geoname);
Пример #28
0
 public override void UpdateGeoname(Geoname geoname)
 {
     _context.Entry(geoname).State = EntityState.Modified;
 }
Пример #29
0
 public abstract void Update(Geoname geoname);