public static async Task <string> ShowRezult(string type, string question, Find.Sh sh) { DataBase dataBase = new DataBase(); string content = ""; try { question.Replace(' ', '+'); string url = $"https://api.themoviedb.org/3/search/{type}?api_key={Find.Search.API_key}&query={question}"; if ((content = dataBase.Search(question, type, sh)) == null) { if (type == "movie") { Find.AnswerMovie rez = await Find.Search.GetRezaltAsync <Find.AnswerMovie>(url); Find.Genres genres = await Find.Search.GetRezaltAsync <Find.Genres>($"https://api.themoviedb.org/3/genre/movie/list?api_key={Find.Search.API_key}&language=en-US"); dataBase.Insert($"insert into Search_History(Text_Of_Search,Type,User_search) values('{question}','{type}','vlad')"); for (int o = 0; o < rez.results.Count; o++) { string genrez = ""; for (int q = 0; q < rez.results[o].genre_ids.Length; q++) { genrez += rez.results[o].genre_ids[q].ToString(); genrez += ","; } dataBase.Insert($"Insert into Content (Genre_ids,Popularity,Vote_count,Backdrop_path,Original_language,Vote_average,Overview," + $"Poster_path,Adult,Release_date,Original_title,Title,Video) values" + $"('{genrez}',{rez.results[o].popularity.ToString(CultureInfo.CreateSpecificCulture("en-US"))},{rez.results[o].vote_count},'{rez.results[o].backdrop_path}','{rez.results[o].original_language}'" + $",{rez.results[o].vote_average.ToString(CultureInfo.CreateSpecificCulture("en-US"))}, '{rez.results[o].overview.Replace("’", "").Replace("'", "")}','{rez.results[o].poster_path}'," + $"{(rez.results[o].adult ? 1 : 0)},'{rez.results[o].release_date}','{rez.results[o].original_title.Replace("’", "").Replace("'", "")}','{rez.results[o].title.Replace("’", "").Replace("'", "")}',{(rez.results[o].video ? 1 : 0)})"); dataBase.Insert($"insert into Content_Answer(Search_Id,Content_Id) values((select top(1) Id from Search_History where Text_Of_Search='{question}' and Type='{type}'),(select top(1) Id from Content where Original_title='{rez.results[o].original_title}'))"); } for (int g = 0; g < genres.genres.Count; g++) { try { dataBase.Insert($"Insert into Genres(Id,Name) values('{genres.genres[g].id}','{genres.genres[g].name}')"); } catch (Exception) { } } content = sh(rez, null, genres); } else { Find.AnswerTV reza = await Find.Search.GetRezaltAsync <Find.AnswerTV>(url); Find.Genres genress = await Find.Search.GetRezaltAsync <Find.Genres>($"https://api.themoviedb.org/3/genre/tv/list?api_key={Find.Search.API_key}&language=en-US"); dataBase.Insert($"insert into Search_History(Text_Of_Search,Type,User_search) values('{question}','{type}','vlad')"); for (int o = 0; o < reza.results.Count; o++) { string genrez = "", countries = ""; for (int q = 0; q < reza.results[o].genre_ids.Length; q++) { genrez += reza.results[o].genre_ids[q].ToString(); genrez += ","; } for (int q = 0; q < reza.results[o].origin_country.Length; q++) { countries += reza.results[o].origin_country[q].ToString(); countries += ","; } dataBase.Insert($"Insert into Content(Genre_ids,Popularity,Vote_count,Backdrop_path,Original_language,Vote_average," + $"Overview,Poster_path,Original_name,Name,Origin_country,First_air_date)" + $" values('{genrez}',{reza.results[o].popularity.ToString(CultureInfo.CreateSpecificCulture("en-US"))}," + $"{reza.results[o].vote_count},'{reza.results[o].backdrop_path}','{reza.results[o].original_language}'," + $"{reza.results[o].vote_average.ToString(CultureInfo.CreateSpecificCulture("en-US"))}," + $"'{reza.results[o].overview.Replace("’", "").Replace("'", "")}','{reza.results[o].poster_path}','{reza.results[o].original_name.Replace("’", "").Replace("'", "")}','{reza.results[o].name.Replace("’", "").Replace("'", "")}','{countries}','{reza.results[o].first_air_date}')"); dataBase.Insert($"insert into Content_Answer(Search_Id,Content_Id) values((select top(1) Id from Search_History where Text_Of_Search='{question}' and Type='{type}'),(select top(1) Id from Content where Original_name='{reza.results[o].original_name}'))"); } for (int g = 0; g < genress.genres.Count; g++) { try { dataBase.Insert($"Insert into Genres(Id,Name) values('{genress.genres[g].id}','{genress.genres[g].name}')"); } catch (Exception) { } } content = sh(null, reza, genress); } } } catch (Exception e) { IKernel kernel = new StandardKernel(); ModuleLoader.Load(kernel, LoggerType.File); DIExperiment dI = kernel.Get <DIExperiment>(); dI.UseLogger(e.Message); } return(content); }
public string Search(string question, string type, Find.Sh sh) { string rezalts = null; DataTable dataTable = new DataTable("dataBase"); DataTable dataTable1 = new DataTable("dataBase"); SqlCommand sqlCommand = sqlConnection.CreateCommand(); sqlCommand.CommandText = $"select Id,Genre_ids,Popularity,Vote_count,Backdrop_path,Original_language,Vote_average,Overview," + $"Poster_path,Adult,Release_date,Original_title,Title,Video,Original_name,Name,Origin_country,First_air_date from Content where Id=any(select Content_Id from Content_Answer where Search_Id=(select top(1) Id from Search_History where Type='{type}' and Text_Of_Search='{question}'))"; SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); sqlDataAdapter.Fill(dataTable); SqlCommand sqlCommand1 = sqlConnection.CreateCommand(); sqlCommand1.CommandText = $"select * from Genres"; SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(sqlCommand1); sqlDataAdapter1.Fill(dataTable1); if (type == "movie") { Find.AnswerMovie rez = new Find.AnswerMovie(); rez.results = new List <Find.Movie>(); Find.Genres genress = new Find.Genres(); genress.genres = new List <Find.Genres.genre>(); for (int u = 0; u < dataTable1.Rows.Count; u++) { Find.Genres.genre genre = new Find.Genres.genre(); genre.id = (int)dataTable1.Rows[u].ItemArray[0]; genre.name = (string)dataTable1.Rows[u].ItemArray[1]; genress.genres.Add(genre); } for (int r = 0; r < dataTable.Rows.Count; r++) { rez.results.Add(new Find.Movie()); rez.results[r].adult = (bool)dataTable.Rows[r].ItemArray[9]; rez.results[r].video = (bool)dataTable.Rows[r].ItemArray[13]; rez.results[r].vote_average = (float)(double)dataTable.Rows[r].ItemArray[6]; rez.results[r].vote_count = (int)dataTable.Rows[r].ItemArray[3]; rez.results[r].title = (string)dataTable.Rows[r].ItemArray[12]; rez.results[r].release_date = (string)dataTable.Rows[r].ItemArray[10]; rez.results[r].poster_path = (string)dataTable.Rows[r].ItemArray[8]; rez.results[r].popularity = (float)(double)dataTable.Rows[r].ItemArray[2]; rez.results[r].overview = (string)dataTable.Rows[r].ItemArray[7]; rez.results[r].original_title = (string)dataTable.Rows[r].ItemArray[11]; rez.results[r].original_language = (string)dataTable.Rows[r].ItemArray[5]; rez.results[r].id = (int)dataTable.Rows[r].ItemArray[0]; rez.results[r].backdrop_path = (string)dataTable.Rows[r].ItemArray[4]; string str = ""; int e = 0; List <int> vs = new List <int>(); for (int i = 0; i < dataTable.Rows[r].ItemArray[1].ToString().Length; i++) { while (i != dataTable.Rows[r].ItemArray[1].ToString().Length) { if (dataTable.Rows[r].ItemArray[1].ToString()[i] == ',') { break; } str += dataTable.Rows[r].ItemArray[1].ToString()[i]; i++; } vs.Add(Convert.ToInt32(str)); str = ""; } rez.results[r].genre_ids = vs.ToArray(); } rez.total_results = rez.results.Count; if (dataTable.Rows.Count != 0) { rezalts = sh(rez, null, genress); } } else { Find.AnswerTV rez = new Find.AnswerTV(); rez.results = new List <Find.TV>(); Find.Genres genress = new Find.Genres(); genress.genres = new List <Find.Genres.genre>(); for (int u = 0; u < dataTable1.Rows.Count; u++) { Find.Genres.genre genre = new Find.Genres.genre(); genre.id = (int)dataTable1.Rows[u].ItemArray[0]; genre.name = (string)dataTable1.Rows[u].ItemArray[1]; genress.genres.Add(genre); } for (int r = 0; r < dataTable.Rows.Count; r++) { rez.results.Add(new Find.TV()); rez.results[r].original_name = (string)dataTable.Rows[r].ItemArray[14]; rez.results[r].name = (string)dataTable.Rows[r].ItemArray[15]; rez.results[r].vote_average = (float)(double)dataTable.Rows[r].ItemArray[6]; rez.results[r].vote_count = (int)dataTable.Rows[r].ItemArray[3]; rez.results[r].first_air_date = (string)dataTable.Rows[r].ItemArray[17]; rez.results[r].poster_path = (string)dataTable.Rows[r].ItemArray[8]; rez.results[r].popularity = (float)(double)dataTable.Rows[r].ItemArray[2]; rez.results[r].overview = (string)dataTable.Rows[r].ItemArray[7]; rez.results[r].original_language = (string)dataTable.Rows[r].ItemArray[5]; rez.results[r].id = (int)dataTable.Rows[r].ItemArray[0]; rez.results[r].backdrop_path = (string)dataTable.Rows[r].ItemArray[4]; string str = "", str1 = ""; int e = 0; List <int> vs = new List <int>(); List <string> vs1 = new List <string>(); for (int i = 0; i < dataTable.Rows[r].ItemArray[1].ToString().Length; i++) { while (i != dataTable.Rows[r].ItemArray[1].ToString().Length) { if (dataTable.Rows[r].ItemArray[1].ToString()[i] == ',') { break; } str += dataTable.Rows[r].ItemArray[1].ToString()[i]; i++; } vs.Add(Convert.ToInt32(str)); str = ""; } rez.results[r].genre_ids = vs.ToArray(); for (int i = 0; i < dataTable.Rows[r].ItemArray[16].ToString().Length; i++) { while (i != dataTable.Rows[r].ItemArray[16].ToString().Length) { if (dataTable.Rows[r].ItemArray[16].ToString()[i] == ',') { break; } str1 += dataTable.Rows[r].ItemArray[16].ToString()[i]; i++; } vs1.Add(str1); str1 = ""; } rez.results[r].origin_country = vs1.ToArray(); } rez.total_results = rez.results.Count; if (dataTable.Rows.Count != 0) { rezalts = sh(null, rez, genress); } } return(rezalts); }