public static bool CheckLocation(string input)
        {
            //make first letter upper
            input = input.First().ToString().ToUpper() + input.Substring(1);

            List <City> filteredCities = FireBaseDatabase.SelectCitytBy("name", input);

            if (filteredCities != null && filteredCities.Count > 0)
            {
                return(true);
            }

            List <Country> filteredCountries = FireBaseDatabase.SelectCountryBy("name", input);

            if (filteredCountries != null && filteredCountries.Count > 0)
            {
                return(true);
            }

            List <State> filteredStates = FireBaseDatabase.SelectStateBy("name", input);

            if (filteredStates != null && filteredStates.Count > 0)
            {
                return(true);
            }

            List <Continent> filteredContinents = FireBaseDatabase.SelectContinentBy("name", input);

            if (filteredContinents != null && filteredContinents.Count > 0)
            {
                return(true);
            }

            return(false);
        }
示例#2
0
        public void WriteException(Exception ex)
        {
            string output = $"{DateTime.Now} - ERROR - {ex.Message}{Environment.NewLine}{ex.StackTrace}";

            Debug.LogError(output);

            FireBaseDatabase.AddUniqueString(FireBaseSavePaths.ExceptionLocation(), output);
        }
示例#3
0
 void Awake()
 {
     if (instance)
     {
         GameObject.Destroy(this);
     }
     else
     {
         instance = this;
     }
     FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(URL);
     mDatabase = FirebaseDatabase.DefaultInstance.RootReference;
 }
        public void SaveDailyChallenge(int score)
        {
            var entry = new ScoreEntry()
            {
                User  = UserManager.UserID,
                Score = score,
                Date  = DateTime.Now.ToString()
            };

            var jsonValue = JsonUtility.ToJson(entry);

            FireBaseDatabase.AddUniqueJSON(FireBaseSavePaths.DailyChallengeLocation(DateTime.Now), jsonValue);
        }
        public static string UpdateDatasetTags(string input)
        {
            try
            {
                List <Blog> blogs = FireBaseDatabase.SelectAllBlogs();
                Dataset.UpdateBlogsTags(blogs);
            }catch (Exception e)
            {
                return(e.Message);
            }

            return("Dataset Updated!");
        }
        public void SaveScore(string chapter, int level, int star, int score, GameResult result)
        {
            var entry = new LevelScoreEntry()
            {
                Chapter = chapter,
                Level   = level,
                Star    = star,
                Date    = DateTime.Now.ToString(),
                Result  = result,
                Score   = score,
                User    = UserManager.UserID
            };

            var jsonValue = JsonUtility.ToJson(entry);

            FireBaseDatabase.AddUniqueJSON(FireBaseSavePaths.ScoreLocation(chapter, level, star), jsonValue);
        }
示例#7
0
 void OnApplicationQuit()
 {           // Singleton: Ensure that the instance is destroyed when the game is stopped in the editor.
     instance = null;
 }
        public static string GetResponse(string input)
        {
            input = input.ToLower();

            List <string> tags     = input.Split(' ').ToList();
            string        location = input.Split(' ')[0].ToLower();

            tags.Remove(location);
            tags = TextProcessor.PreprocessTags(tags);


            List <JObject>          placesNERtemp = new List <JObject>();
            ConcurrentBag <JObject> placesNER     = new ConcurrentBag <JObject>();

            if (location != null)
            {
                Destination destination = FireBaseDatabase.GetDestinationRelationship(location);

                List <Blog> blogs = FireBaseDatabase.SelectBlogsBy("locationName", location);

                if ((blogs == null || blogs.Count == 0) && destination != null)
                {
                    if (destination.Country.Count > 1)
                    {
                        List <string> countries = FireBaseDatabase.FilterDestinationsByBlogs(destination.Country, tags);
                        if (countries.Count > 0)
                        {
                            return(JsonConvert.SerializeObject(countries));
                        }
                        else
                        {
                            return("error");
                        }
                    }
                    else
                    if (destination.State.Count > 1)
                    {
                        List <string> states = FireBaseDatabase.FilterDestinationsByBlogs(destination.State, tags);
                        if (states.Count > 0)
                        {
                            return(JsonConvert.SerializeObject(states));
                        }
                        else
                        {
                            List <string> cities = FireBaseDatabase.FilterDestinationsByBlogs(destination.City, tags);
                            if (cities.Count > 0)
                            {
                                return(JsonConvert.SerializeObject(cities));
                            }
                            else
                            {
                                return("error");
                            }
                        }
                    }
                    else
                    if (destination.City.Count > 1)
                    {
                        List <string> cities = FireBaseDatabase.FilterDestinationsByBlogs(destination.City, tags);
                        if (cities.Count > 0)
                        {
                            return(JsonConvert.SerializeObject(cities));
                        }
                        else
                        {
                            return("error");
                        }
                    }
                }

                List <Blog> filteredBlogsTags;
                if (blogs != null)
                {
                    filteredBlogsTags = FireBaseDatabase.FilterBlogsBy(tags, blogs);


                    if (filteredBlogsTags != null && filteredBlogsTags.Count != 0)
                    {
                        blogs = filteredBlogsTags;
                    }
                    else
                    {
                        return(null);
                    }


                    string response = "";

                    string text = "";

                    List <string> contentBlogs = new List <string>();

                    var watch = System.Diagnostics.Stopwatch.StartNew();
                    Parallel.For <JObject>(0, blogs.Count, () => new JObject(), (i, loop, data) =>
                    {
                        string places;
                        lock (Lock)
                        {
                            text = Crawler.ReadTextFrom(blogs[(int)i].BlogLink);
                            text = TextProcessor.Preprocess(text);
                        }
                        places = RestAPICaller.GetPlacesNER(text, destination);
                        data   = (JObject)JsonConvert.DeserializeObject(places);

                        return(data);
                    },
                                           (x) => placesNER.Add(x)
                                           );

                    watch.Stop();
                    var elapsedMs = watch.ElapsedMilliseconds;
                    System.IO.File.WriteAllText(@"Time.txt", elapsedMs.ToString());

                    placesNERtemp = placesNER.ToList();
                    placesNERtemp.Add((JObject)JsonConvert.DeserializeObject("{\"destination\":\"" + destination + "\"}"));
                    response = RestAPICaller.GetPlacesNERFinal(JsonConvert.SerializeObject(placesNERtemp));


                    return(response);
                }
                else
                {
                    return("No Blogs with location!");
                }
            }
            else
            {
                return("No location!");
            }
        }
        public static string ExtractParagraphs(string input)
        {
            input = input.ToLower();
            string [] splittedInput = input.Split('-');
            string    location      = splittedInput[0];
            string    place         = splittedInput[1];
            string    typeInput     = splittedInput[2];
            string    response      = "";

            List <Blog> blogs = FireBaseDatabase.SelectBlogsBy("locationName", location);


            if (blogs == null || blogs.Count == 0)
            {
                blogs = FireBaseDatabase.SelectBlogsBy("locationName", place);
            }

            if (blogs != null)
            {
                List <string> filters = new List <string>();
                filters.Add(typeInput);

                List <Blog> filteredBlogsTags = FireBaseDatabase.FilterBlogsBy(filters, blogs);

                string        text;
                List <string> paragrpahs = new List <string>();

                if (filteredBlogsTags != null && filteredBlogsTags.Count != 0)
                {
                    blogs = filteredBlogsTags;
                }
                else
                {
                    return("There is nothing matching your preferences...");
                }
                Parallel.For <string>(0, blogs.Count, () => "", (i, loop, data) =>
                {
                    lock (Lock)
                    {
                        text = Crawler.ReadTextFrom(blogs[(int)i].BlogLink);
                        text = Regex.Replace(text, @"((\n[A-Z a-z]+,)\s([A-Z a-z]+,)*\s*([A-Z a-z]+)\n)", "\n");
                        text = TextProcessor.Preprocess(text);
                    }

                    string json = RestAPICaller.GetParagraphs(text, place);
                    if (!json.All(x => !char.IsLetter(x)))
                    {
                        //response = json.Replace("\"", "");
                        data += json + "\n\n";
                    }


                    return(data);
                },
                                      (x) => paragrpahs.Add(x)

                                      );

                foreach (string paragrpah in paragrpahs)
                {
                    response += paragrpah;
                }
            }

            return(response);
        }