private void ReadCSVFiles()
        {
            try
            {
                Restaurants = new Dictionary<string, RestaurantsCustomersGeoplaceEntity>();
                UserProfiles = new Dictionary<string, RestaurantCustomersUserProfileEntity>();
                Rating_finals = new Dictionary<string, RestaurantsAndCustomersRating_finalEntity>();

                #region Reading geoplaces2.csv

                TextFieldParser restaurantsParser = new TextFieldParser(Properties.Settings.Default["geoplaces2Path"].ToString());
                restaurantsParser.TextFieldType = FieldType.Delimited;
                restaurantsParser.SetDelimiters(",");
                restaurantsParser.ReadFields();
                while (!restaurantsParser.EndOfData)
                {
                    //Processing row
                    RestaurantsCustomersGeoplaceEntity entity = new RestaurantsCustomersGeoplaceEntity();
                    string[] fields = restaurantsParser.ReadFields();
                    double latitude;
                    double longtitude;
                    fields[1] = fields[1].Replace('.', ',');
                    fields[2] = fields[2].Replace('.', ',');
                    double.TryParse(fields[1], out latitude);
                    double.TryParse(fields[2], out longtitude);

                    entity.ID = fields[0];
                    entity.Latitutde = latitude;
                    entity.Longtitude = longtitude;
                    entity.The_geom_meter = fields[3];
                    entity.Name = fields[4];
                    entity.Address = fields[5];
                    entity.City = fields[6];
                    entity.State = fields[7];
                    entity.Country = fields[8];
                    //ToDo Change fax type to numeric one
                    entity.Fax = fields[9];
                    entity.Zip = fields[10];
                    entity.ParseAlcoholString(fields[11]);

                    Restaurants.Add(fields[0], entity);
                }
                restaurantsParser.Close();

                #endregion

                #region Reading user profiles

                TextFieldParser userProfilesParser = new TextFieldParser(Properties.Settings.Default["userProfilePath"].ToString());
                userProfilesParser.TextFieldType = FieldType.Delimited;
                userProfilesParser.SetDelimiters(",");
                userProfilesParser.ReadFields();
                while (!userProfilesParser.EndOfData)
                {
                    //Processing row
                    try
                    {

                        RestaurantCustomersUserProfileEntity entity = new RestaurantCustomersUserProfileEntity();
                        string[] fields = userProfilesParser.ReadFields();
                        int weightInput;
                        int birthYearInput;
                        double heightInput;
                        Int32.TryParse(fields[16], out weightInput);
                        Int32.TryParse(fields[10], out birthYearInput);
                        double.TryParse(fields[18].Replace('.',','), out heightInput);
                        fields[5] = fields[5].Replace(' ', '_');
                        fields[5] = fields[5].Replace('-', '_');
                        fields[4] = fields[4].Replace(' ', '_');
                        fields[4] = fields[4].Replace('-', '_');
                        fields[6] = fields[6].Replace(' ', '_');
                        fields[6] = fields[6].Replace('-', '_');
                        fields[8] = fields[8].Replace(' ', '_');
                        fields[8] = fields[8].Replace('-', '_');
                        fields[7] = fields[7].Replace(' ', '_');
                        fields[7] = fields[7].Replace('-', '_');
                        fields[12] = fields[12].Replace(' ', '_');
                        fields[12] = fields[12].Replace('-', '_');
                        fields[11] = fields[11].Replace(' ', '_');
                        fields[11] = fields[11].Replace('-', '_');
                        fields[13] = fields[13].Replace(' ', '_');
                        fields[13] = fields[13].Replace('-', '_');
                        fields[14] = fields[14].Replace(' ', '_');
                        fields[14] = fields[14].Replace('-', '_');

                        entity.ID = fields[0];
                        entity.Name = string.Format("User {0}", fields[0]);
                        entity.Weight = weightInput;
                        entity.BirthYear = birthYearInput;
                        entity.Height = heightInput;
                        entity.Activity = fields[14] != "?" ? (activity)Enum.Parse(typeof(activity), fields[14]) : activity.missing;
                        entity.Ambience = fields[6] != "?" ?(ambience)Enum.Parse(typeof(ambience), fields[6]): ambience.missing;
                        entity.Budget = fields[17] != "?" ? (budget)Enum.Parse(typeof(budget), fields[17]): budget.missing;
                        entity.Color = fields[15] != "?" ?(color)Enum.Parse(typeof(color), fields[15]): color.missing;
                        entity.Dress_preference = fields[5] != "?" ? (dress_preference)Enum.Parse(typeof(dress_preference), fields[5]) : dress_preference.missing;
                        entity.Drink_level = fields[4] != "?" ? (drink_level)Enum.Parse(typeof(drink_level), fields[4]) : drink_level.missing;
                        entity.Hijos = fields[9] != "?" ? (hijos)Enum.Parse(typeof(hijos), fields[9]) : hijos.missing;
                        entity.Interest = fields[11] != "?" ? (interest)Enum.Parse(typeof(interest), fields[11]) : interest.missing;
                        entity.Marital_status = fields[8] != "?" ? (marital_status)Enum.Parse(typeof(marital_status), fields[8]) : marital_status.missing;
                        entity.Personality = fields[12] != "?" ? (personality)Enum.Parse(typeof(personality), fields[12]): personality.missing;
                        entity.Religion = fields[13] != "?" ? (religion)Enum.Parse(typeof(religion), fields[13]) : religion.missing;
                        entity.Smoker = fields[4] == "false" ? false : true;
                      // entity.Transport = (transport)Enum.Parse(typeof(transport), fields[7]);

                        UserProfiles.Add(fields[0], entity);
                    }
                    catch (Exception ex)
                    {
                        
                        throw ex;
                    }
                }

                #endregion

                #region Reading ratings

                TextFieldParser ratingsParser = new TextFieldParser(Properties.Settings.Default["rating_finalPath"].ToString());
                ratingsParser.TextFieldType = FieldType.Delimited;
                ratingsParser.SetDelimiters(",");
                ratingsParser.ReadFields();
                while (!ratingsParser.EndOfData)
                {
                    int rating;
                    int food_rating;
                    int service_rating;
                    
                    //Processing row
                    RestaurantsAndCustomersRating_finalEntity entity = new RestaurantsAndCustomersRating_finalEntity();
                    string[] fields = ratingsParser.ReadFields();
                    entity.UserID = fields[0];
                    entity.PlaceID = fields[1];

                    entity.ID = fields[0] + fields[1];
                    Int32.TryParse(fields[2], out rating);
                    entity.Rating = rating;
                    Int32.TryParse(fields[3], out food_rating);
                    entity.Food_Rating = food_rating;
                    Int32.TryParse(fields[4], out service_rating);
                    entity.Service_Rating = service_rating;

                    Rating_finals.Add(entity.ID,entity);
                }

                #endregion

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void GenerateRatings()
        {
            Rating_finals = new Dictionary<string, RestaurantsAndCustomersRating_finalEntity>();

            RestaurantsAndCustomersRating_finalEntity entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "10";
            entity.PlaceID = "l1";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "10";
            entity.PlaceID = "l3";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "10";
            entity.PlaceID = "l4";  
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "20";
            entity.PlaceID = "l2";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "20";
            entity.PlaceID = "l3";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "20";
            entity.PlaceID = "l5";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "30";
            entity.PlaceID = "l1";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "30";
            entity.PlaceID = "l2";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "30";
            entity.PlaceID = "l3";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "30";
            entity.PlaceID = "l5";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "40";
            entity.PlaceID = "l2";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);

            entity = new RestaurantsAndCustomersRating_finalEntity();
            entity.UserID = "40";
            entity.PlaceID = "l5";
            Rating_finals.Add(entity.UserID + entity.PlaceID, entity);
        }