Example #1
0
        private static void SuggestPerfumeMenu()
        {
            Console.Clear();

            Dictionary <String, int> RequestedAccords = new Dictionary <String, int>();

            RequestedAccords.Add("", 0);
            AcceptedInputs.Clear();
            AcceptedInputs = AcceptedInputs.Concat(PerfumeFinder.GetKnownAccords()).ToList();

            while (RequestedAccords.Keys.ToList().Except(AcceptedInputs).Count() != 0)
            {
                RequestedAccords.Clear();
                Console.WriteLine("---- Suggest Me A Perfume ----\n");
                Console.WriteLine("From this menu, program can suggest to you the closest perfume for your given accords.");
                Console.WriteLine("\nExample input : whiskey:82,citrus:70");
                Console.Write("\nEnter your accord selections : ");

                Input = Console.ReadLine();
                Console.Clear();

                try
                {
                    foreach (String accord_data in Input.Split(','))
                    {
                        RequestedAccords.Add(accord_data.Split(':')[0], Int32.Parse(accord_data.Split(':')[1]));
                    }
                }
                catch (Exception ex)
                {
                    if (ex is ArgumentNullException || ex is FormatException || ex is IndexOutOfRangeException)
                    {
                        RequestedAccords.Add("", 0);
                        continue;
                    }
                    throw;
                }
            }

            Perfume SuggestedPerfume = PerfumeFinder.SuggestPerfumeByRequestedAccords(RequestedAccords);

            Console.WriteLine("---- Suggest Me A Perfume ----\n");
            Console.WriteLine("The program suggest you this perfume !");
            Console.WriteLine($"\n{SuggestedPerfume.Info()}");

            Console.Write("\n -------------------------------------------");
            Console.Write("\n|...Press any key to go back to main menu...|");
            Console.Write("\n -------------------------------------------\n");

            Console.ReadKey();

            Scene = MainMenu;
        }
Example #2
0
        public static void Start()
        {
            ProgramRun = true;
            Scene      = MainMenu;

            PerfumeFinder.Initialize("data/parfume-data.txt");

            while (ProgramRun)
            {
                Scene();
            }
        }
Example #3
0
        private static void InformationMenu()
        {
            Console.Clear();
            Console.WriteLine("---- Information About Perfume Dataset ----\n");
            Console.WriteLine("From this menu, you can see some information about dataset that program uses.");
            Console.WriteLine($"\nTotal number of perfumes : {PerfumeFinder.FindPerfumeAmountTotal()}");
            Console.WriteLine($"Total number of perfumes for men : {PerfumeFinder.FindPerfumeAmountByGender(EGender.Men)}");
            Console.WriteLine($"Total number of perfumes for women: {PerfumeFinder.FindPerfumeAmountByGender(EGender.Women)}");
            Console.WriteLine($"Total number of perfumes for women and men: {PerfumeFinder.FindPerfumeAmountByGender(EGender.Both)}");
            Console.WriteLine($"Perfume amount for each accord : ");
            PerfumeFinder.ConsoleWritePerfumeAmountForEachAccord();

            Console.Write("\n -------------------------------------------");
            Console.Write("\n|...Press any key to go back to main menu...|");
            Console.Write("\n -------------------------------------------\n");

            Console.ReadKey();

            Scene = MainMenu;
        }
Example #4
0
        private static void FindByNameMenu()
        {
            Console.Clear();

            Console.WriteLine("---- Find Perfume by Name ----\n");
            Console.WriteLine("From this menu, you can enter name of your perfume and it will show it's properties.");
            Console.WriteLine("If you don't know the exact name of it, you can write down as much as you can remember.\nProgram will show the possible ones.");
            Console.Write("\nEnter the name of your perfume : ");

            Input = Console.ReadLine();
            Console.Clear();

            PerfumeFinder.FindPerfumesByName(Input);
            PerfumeFinder.ConsoleWriteFoundPerfumes();

            Console.Write("\n -------------------------------------------");
            Console.Write("\n|...Press any key to go back to main menu...|");
            Console.Write("\n -------------------------------------------\n");

            Console.ReadKey();

            Scene = MainMenu;
        }
Example #5
0
        private static void FilterByAccordsMenu()
        {
            Boolean Include_mode;

            Console.Clear();
            Input = "";
            AcceptedInputs.Clear();
            AcceptedInputs.Add("0");
            AcceptedInputs.Add("1");

            while (!AcceptedInputs.Contains(Input))
            {
                Console.WriteLine("---- Filter and Find Perfumes by Accords ----\n");
                Console.WriteLine("From this menu, you can enter the accords that you want in your perfume.");
                Console.WriteLine("Depending on your filter mode selection, program will show you the perfumes filtered by your desired accords!");
                Console.WriteLine("\nFilter modes :");
                Console.WriteLine("0 : Show perfumes that doesn't includes specified accords.");
                Console.WriteLine("1 : Show perfumes that does includes specified accords.");

                Input = Console.ReadLine();
                Console.Clear();
            }

            Include_mode = Input == "1";


            List <String> RequestedAccordIndexes = new List <string> {
                ""
            };

            AcceptedInputs.Clear();
            for (int i = 0; i < PerfumeFinder.FindKnownAccordsAmount(); ++i)
            {
                AcceptedInputs.Add(i.ToString());
            }

            while (RequestedAccordIndexes.Except(AcceptedInputs).Count() != 0)
            {
                Console.WriteLine("---- Filter and Find Perfumes by Accords ----\n");
                Console.WriteLine("From this menu, you can enter the accords that you want in your perfume.");
                Console.WriteLine("Depending on your filter mode selection, program will show you the perfumes filtered by your desired accords!");
                Console.WriteLine("\nKnown Accords :");
                PerfumeFinder.ConsoleWriteKnownAccords();
                Console.WriteLine("\nExample input for loved, vanilla, woody, smoky accords : 5,24,15,33");
                Console.Write("Enter the indexes of desired accords : ");

                Input = Console.ReadLine();
                RequestedAccordIndexes = new List <String>(Input.Split(','));

                Console.Clear();
            }

            PerfumeFinder.FindPerfumesByAccords(PerfumeFinder.FindAccordsByIndexes(RequestedAccordIndexes), Include_mode);
            PerfumeFinder.ConsoleWriteFoundPerfumes();

            Console.Write("\n -------------------------------------------");
            Console.Write("\n|...Press any key to go back to main menu...|");
            Console.Write("\n -------------------------------------------\n");

            Console.ReadKey();

            Scene = MainMenu;
        }