示例#1
0
        //public static void addMetaData()  // Add the movie to the database?
        //{
        //    bool confirmed = false;
        //    while (!confirmed)
        //    {
        //        Console.WriteLine("\n  Add Movie metadata to MovieTable? Y or N ");
        //        string YorN = Console.ReadKey().Key.ToString().ToUpper();
        //        while (YorN != "Y") { CycleThuFolders(MovieDirPath());}
        //        Console.Write("\n\n  Hit any key for Main Menu"); Console.ReadKey();
        //        Program.AppMainMenu();
        //    }
        //}

        // One by one, use folder names to derive movie name then prompt user if correct movie
        public static object CycleThuFolders(string movieDir)
        {
            List <string> folderNames = GetFolders.GetFolderNames(movieDir);

            //cycle through folderNames by hitting API then checking of good reponse
            foreach (string name in folderNames)
            {
                string newname = name;
                Console.WriteLine("\n  Looking up movie: {0}", name);
                ResponseStrings OMDBResponse = OMDBWebRequest.GetOMDBWebRequest(name);
                while (OMDBResponse.Response == "False")
                {
                    //OMDBResponse.newname = name;
                    OMDBResponse = EditTitleLoop.TitleNotFound(name);
                }
                ;

                string          mTitle        = OMDBResponse.Title;
                string          mYear         = OMDBResponse.Year;
                string          mActors       = OMDBResponse.Actors;
                ResponseStrings OMDBResponse2 = EditTitleLoop.CorrectMovie(mTitle, mYear, mActors, name, OMDBResponse);
                AddMovie2Database(OMDBResponse2, movieDir);
            }
            return(null);
        }
示例#2
0
        public static ResponseStrings GetOMDBWebRequest(string name)
        {
            var webClient = new WebClient();

            byte[]          OMDBRequest  = webClient.DownloadData(string.Format("http://www.omdbapi.com/?t={0}&apikey=3ab1833e&plot=full", name));
            var             jsonString   = System.Text.Encoding.UTF8.GetString(OMDBRequest);
            ResponseStrings OMDBResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <ResponseStrings>(jsonString);

            return(OMDBResponse);
        }
示例#3
0
        //if title not found in API, direct user to edit title
        public static ResponseStrings TitleNotFound(string name)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write("  \'{0}\'", name);
            Console.ResetColor();
            Console.Write(" was not found.\n");

            ResponseStrings OMDBResponse = EditTitle();

            return(OMDBResponse);
        }
示例#4
0
        // Insert Proprties of object holing OMDB API resonse
        // This dyanmially builds the SQL and uses Reflection and parameterization of object to avoid SQL Injection
        public static void InsertOBDMData(SQLiteConnection mDBconn, ResponseStrings OMDBResponse2)
        {
            SQLiteCommand mDBcmd  = mDBconn.CreateCommand();
            string        cmdText = @"INSERT INTO MovieTable  (";
            string        keyText = "";
            string        valText = "";
            //create dictionary
            var OMDBDict = BuildDB.ObjectToDictionary(OMDBResponse2);

            //set up for creating sql command text
            mDBcmd.CommandType = CommandType.Text;
            for (int index = 0; index < OMDBDict.Count - 2; index++)
            {
                var    item    = OMDBDict.ElementAt(index);
                var    itemKey = item.Key;
                string itemVal = item.Value.ToString();

                if (index < OMDBDict.Count - 3)
                {
                    keyText += itemKey + ", ";
                    valText += "@" + itemKey + ", ";  //"=" + itemKey +
                    mDBcmd.Parameters.Add("@" + itemKey, DbType.AnsiString).Value = itemVal;
                    Console.WriteLine(" Added to Database: " + itemKey + " = " + itemVal);
                }
                else
                {
                    keyText += itemKey + " )";
                    valText += "@" + itemKey + " )";  //"=" + itemKey +
                    mDBcmd.Parameters.Add("@" + itemKey, DbType.AnsiString).Value = itemVal;
                    Console.WriteLine(" Added to Database: " + itemKey + " = " + itemVal);
                }
            }
            cmdText += keyText + " VALUES (" + valText + ";";
            try
            {
                mDBcmd.CommandText = cmdText;
                mDBconn.Open();
                mDBcmd.ExecuteNonQuery();
            }
            catch (System.Data.SqlClient.SqlException sx)
            {
                Console.Write(sx); //TODO:  improve SQL error handling
            }
            finally
            {
                mDBconn.Close();
                Console.WriteLine("\n Movie data insertion complete: " + OMDBResponse2.Title + "\n");
            }
        }
示例#5
0
        //if user needs to correct the movie title
        public static ResponseStrings EditTitle()
        {
            Console.WriteLine("\n  Please enter the correct movie title:  ");
            Console.WriteLine();
            string          name         = Console.ReadLine();
            ResponseStrings OMDBResponse = OMDBWebRequest.GetOMDBWebRequest(name);
            string          mTitle       = OMDBResponse.Title;
            string          mYear        = OMDBResponse.Year;
            string          mActors      = OMDBResponse.Actors;

            CorrectMovie(mTitle, mYear, mActors, name, OMDBResponse);
            Console.WriteLine(OMDBResponse.Title, "EditTitleMethod");

            return(OMDBResponse);
        }
示例#6
0
        //TEST Method to make List from API object properties
        static List <String> GetOMDBPropertyName(ResponseStrings OMDBReponse)
        {
            List <string> OMDResponseNames = new List <string>();
            string        label;
            Type          t = OMDBReponse.GetType();

            PropertyInfo[] props = t.GetProperties();
            foreach (var prop in props)
            {
                label = prop.Name;
                if (prop.GetIndexParameters().Length == 0)
                {
                    OMDResponseNames.Add(label);
                }
            }
            return(OMDResponseNames);
        }
示例#7
0
 private static bool AddMovie2Database(ResponseStrings OMDBResponse2, string movieDir)
 {
     //bool confirmed = false;
     //while (!confirmed)
     {
         Console.WriteLine("\n  Add Movie metadata to MovieTable? Y or N ");
         string YorN = Console.ReadKey().Key.ToString().ToUpper();
         if (YorN == "Y")
         {
             DBCommands.InsertOBDMData(DBCommands.CreateConnection(), OMDBResponse2); return(true);
         }                                                                                                          // dynamically update table with omdResponse values
         else
         {
             Console.WriteLine("\n|n  OK, on to next movie . . .\n"); return(false);
         }
     }
 }
示例#8
0
        //Show sample of returned API data for user verification
        public static ResponseStrings CorrectMovie(string mTitle, string mYear, string mActors, string name, ResponseStrings OMDBResponse)
        {
            Console.WriteLine("\n\tMovie found:\n\t  Title: {0}\n\t  Year: {1}\n\t  Actors: {2}\n", mTitle, mYear, mActors);
            Console.WriteLine("\n\tDoes this look like the correct movie?  Y or N ");

            ConsoleKeyInfo readKey;
            bool           check = false;

            do
            {
                readKey = Console.ReadKey(true);
                check   = !((readKey.Key == ConsoleKey.Y) || (readKey.Key == ConsoleKey.N));
            } while (check);
            switch (readKey.Key)
            {
            case ConsoleKey.Y: break;

            case ConsoleKey.N:
                OMDBResponse = EditTitle();
                //mTitle = OMDBResponse.Title;
                //mYear = OMDBResponse.Year;
                //mActors = OMDBResponse.Actors;
                //Console.WriteLine("CorrectMovieMethod");
                //CorrectMovie(mTitle, mYear, mActors, name, OMDBResponse);
                break;
            }
            return(OMDBResponse);
        }