Esempio n. 1
0
        /// <summary>
        /// Adds a distance instance to the distances list in the DataSource
        /// </summary>
        /// <param name="distance"></param>
        public void AddDistance(DistanceStruct distance)
        {
            if (IsDistanceExist(distance) == true)
            {
                return;
            }

            m_xamlImp.AddDistance(distance);
        }
Esempio n. 2
0
        /// <summary>
        /// Returns true if a distance between two addresses of DistanceStruct object was found in the DataSource
        /// </summary>
        /// <param name="distanceTarget">Distance object to be checked</param>
        /// <returns></returns>
        public static bool IsDistanceExist(DistanceStruct distanceTarget)
        {
            foreach (DistanceStruct distance in m_xamlImp.GetAllDistances())
            {
                if (distance == distanceTarget)
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 3
0
        private void SearchButton_Click(object sender, RoutedEventArgs e)
        {
            int            smallestDistance = 999;
            int            count            = filmList.Count - 1;
            DistanceStruct distanceList     = new DistanceStruct();
            String         word1            = NameTextBox.Text;
            int            constraint1      = convertLength(cmbLength.Text);
            String         constraint2      = cmbGenre.Text;
            int            constraint3      = convertRating(cmbRating.Text);



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

            LoadFilmList();
            for (int i = 0; i < filmList.Count - 1; i++)
            {
                int ratingInt = convertRating(filmList[i].sfilmRating);
                int lengthInt = convertLength(filmList[i].sfilmLength);
                if (constraint2 == filmList[i].sFilmGenre &&
                    constraint3 <= ratingInt &&
                    constraint1 >= lengthInt)
                {
                    String word2 = filmList[i].sFilmName;                     // grabs film name from list of movies
                    word2 = word2.ToLower();
                    word1 = word1.ToLower();
                    int distance = EditDistance(word1, word2, word1.Length, word2.Length);                     // O(m*n)

                    if (distance < smallestDistance)
                    {
                        smallestDistance       = distance;
                        distanceList.sFilmName = word2;                         // store the smallest distance found
                        distanceList.sDistance = distance;
                        closestDistances.Add(word2);
                    }
                    if (distance == 0 || count == 0)
                    {
                        break;
                    }
                    count -= 1;
                }
            }

            StringBuilder message = new StringBuilder();

            foreach (String movie in closestDistances)
            {
                message.AppendLine(movie + "\n");
            }
            MessageBox.Show(message.ToString());
        }
Esempio n. 4
0
        /// <summary>
        /// Returns true if a distance between two addresses was found in the DataSource
        /// </summary>
        /// <param name="originAddress">Origin address</param>
        /// <param name="destinationAddress">Destination address</param>
        /// <returns></returns>
        public static bool IsDistanceExist(AddressStruct originAddress, AddressStruct destinationAddress)
        {
            DistanceStruct distanceTarget = new DistanceStruct(originAddress, destinationAddress, 0);

            foreach (DistanceStruct distance in m_xamlImp.GetAllDistances())
            {
                if (distance == distanceTarget)
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 5
0
        /// <summary>
        /// Returns the distance between two addresses if found in the DataSource. Returns -1 if not found
        /// </summary>
        /// <param name="originAddress">Origin address</param>
        /// <param name="destinationAddress">Destination address</param>
        /// <returns></returns>
        public static double GetDistanceFromDataSource(AddressStruct originAddress,
                                                       AddressStruct destinationAddress)
        {
            DistanceStruct distanceTarget = new DistanceStruct(originAddress, destinationAddress, 0);

            foreach (DistanceStruct distance in m_xamlImp.GetAllDistances())
            {
                if (distance == distanceTarget)
                {
                    return(distance.Distance);
                }
            }

            return(-1);
        }
Esempio n. 6
0
 //Distances
 public void AddDistance(DistanceStruct distance)
 {
     DataSource.DistancesList.Add(distance);
     DataSource.DistancesList.Sort((d1, d2) => d1.OriginAddress.CompareTo(d2.OriginAddress));
     SaveDistancesList(DataSource.DistancesList);
 }