Example #1
0
        public async Task CreateAsync_VerifyNewMovieIdEvenWithNoGenres()
        {
            var          mockTMDBapi    = new Mock <ITMDBapi>();
            var          title          = "Avenger's Endgame";
            SearchMovies searchmovies   = new SearchMovies();
            Movie        Movie          = CommonTestFunctions.GetSampleMovie();
            var          expectedResult = 1;
            int          result;

            mockTMDBapi.Setup(y => y.FetchMovieAsync(title)).ReturnsAsync(searchmovies);

            var service = new CreateService(DbAccess, mockTMDBapi.Object);

            result = await service.CreateAsync(Movie);

            using (var newcontext = new MarksMoviesContext(Options))
            {
                Assert.AreEqual(result, expectedResult);

                Movie movie = newcontext.Movie.Include(m => m.Genres).SingleAsync <Movie>().Result;
                Assert.IsNotNull(movie);
                Assert.AreEqual(1, movie.ID);
                Assert.AreEqual("Avenger's Endgame", movie.Title);
                Assert.AreEqual(2019, movie.Year);
                Assert.AreEqual(Rating.PG13, movie.Rating);
                Assert.AreEqual(DiscType.UHD_Bluray, movie.MediaType);
                Assert.AreEqual(299534, movie.TMDB_ID);
                Assert.IsNotNull(movie.Genres);
                Assert.AreEqual(0, movie.Genres.Count);
            }
        }
        private async Task LoadSearchMoviesAsync()
        {
            try
            {
                if (_genreResults == null)
                {
                    _genreResults = await _arcTMDbApiService.GetGenresAsync();
                }

                var moviesByTitle = await _arcTMDbApiService.GetMoviesByTitleAsync(SearchTerm, ++_page);

                if (moviesByTitle != null)
                {
                    foreach (var movieDetails in moviesByTitle.Results)
                    {
                        movieDetails.GenreNames = GenreUtility.GetGenreNames(movieDetails.GenreIds, _genreResults);
                        SearchMovies.Add(movieDetails);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Example #3
0
 public EditModel(WebEditService Service)
 {
     _service       = Service;
     SearchMovies   = new SearchMovies();
     SearchTV       = new SearchTV();
     Movie          = new Movie();
     SelectedGenres = new List <GenreType>();
 }
Example #4
0
 public CreateModel(WebCreateService Service)
 {
     _service               = Service;
     Movie                  = new Movie();
     SearchMovies           = new SearchMovies();
     MovieOrTVShowSelection = MovieOrTVShow.Movie;
     SearchTV               = new SearchTV();
 }
        private async Task ExecuteSearchCommand()
        {
            try
            {
                _page = 0;
                SearchMovies.Clear();

                await LoadSearchMoviesAsync();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Example #6
0
 /**
  * Constructor
  * */
 public VM_MovieRootFrame() : base()
 {
     List          = new DisplayMovies();
     Detail        = new MovieDetail();
     Search        = new SearchMovies();
     Comments      = new DisplayComments();
     CommentDetail = new AddComment();
     MessengerInstance.Register <STATE>(this, "state_changed", StateChangedAck);
     MessengerInstance.Register <User>(this, "SessionUser", SetSessionUser);
     OpenCreateMovie = new RelayCommand(() => GoToAddMovie());
     MessengerInstance.Send("VM_MovieRootFrame", "Context");
     if (SessionUser != null)
     {
         Comments      = new DisplayComments();
         CommentDetail = new AddComment();
     }
 }
Example #7
0
        public static async void Bot_OnMessageReceived(object sender, MessageEventArgs e)
        {
            var message = e.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }

            string name    = $"{message.From.FirstName} {message.From.LastName}";
            int    user_id = message.From.Id;

            Console.WriteLine($"id:{user_id} Name:{user_id} отправил '{message.Text}'");

            string instruction =
                @"Самое время разобраться с функциями бота!

Поиск фильма - поиск фильма по названию.
Поиск сериала - поиск сериала по названию.
Поиск фильма по жанру - поиск фильма по выбранному жанру.
Популярное - получить топ фильмов за сегодня. Обновляется каждый день.
Избранное - просмотреть список избранных фильмов/сериалов. 
Добавить в избранное - добавить фильм/сериал в избранное.
Удалить из избранного - удалить фильм/сериал из избранного.

Бот предназначен для русскогоязычного комьюнити, но запросы можно задавать как на английском, так и на русском языках!

Почему не находит фильм/сериал?
   1. В введенном Вами названии содержится ошибка. 
   2. Фильма/сериала с запрашиваемым названием не существует.
   3. Введенное Вами сообщение не является названием фильма.
      
Как очистить весь список избранного?
Введите в чат 'Clear'

Чтобы получить инструкицию по использованию бота, введите 'help'.

Удачи!
                            ";

            if (status.ContainsKey(user_id))
            {
                if (message.Text == "/start" || message.Text.ToLower() == "help")
                {
                    await Bot.SendTextMessageAsync(message.From.Id, instruction);

                    status[user_id] = "Основное меню";
                }
                if (message.Text == "/movie_search" || message.Text == "Поиск фильма")
                {
                    status[user_id] = "/movie_search";
                }
                if (message.Text == "/tv_series_search" || message.Text == "Поиск сериала")
                {
                    status[user_id] = "/tv_series_search";
                }
                if (message.Text == "/search_movies_by_genre" || message.Text == "Поиск фильма по жанру")
                {
                    status[user_id] = "/search_movies_by_genre";
                }
                if (message.Text == "Популярное")
                {
                    status[user_id] = "Популярное";
                }
                if (message.Text == "/favorites" || message.Text == "Избранное")
                {
                    status[user_id] = "/favorites";
                }
                if (message.Text == "Добавить в избранное")
                {
                    status[user_id] = "Добавить в избранное";
                }
                if (message.Text == "Удалить из избранного")
                {
                    status[user_id] = "Удалить из избранного";
                }
                else if (message.Text == "Основное меню")
                {
                    status[user_id] = "Основное меню";
                }
            }
            else
            {
                if (message.Text != null)
                {
                    if (message.Text == "/start" || message.Text.ToLower() == "help")
                    {
                        await Bot.SendTextMessageAsync(message.From.Id, instruction);

                        Favorites favorites = new Favorites();
                        favorites._id          = user_id;
                        favorites.featuredfims = new List <string>();
                        var json = JsonSerializer.Serialize <Favorites>(favorites);
                        var data = new StringContent(json, Encoding.UTF8, "application/json");
                        await client.PostAsync("https://localhost:44393/api/proanimaFilms/", data);

                        status.Add(user_id, "Основное меню");
                    }
                    else if (message.Text == "/movie_search" || message.Text == "Поиск фильма")
                    {
                        status.Add(user_id, "/movie_search");
                    }
                    else if (message.Text == "/tv_series_search" || message.Text == "Поиск сериала")
                    {
                        status.Add(user_id, "/tv_series_search");
                    }
                    else if (message.Text == "/search_movies_by_genre" || message.Text == "Поиск фильма по жанру")
                    {
                        status.Add(user_id, "/search_movies_by_genre");
                    }
                    else if (message.Text == "Популярное")
                    {
                        status.Add(user_id, "Популярное");
                    }
                    else if (message.Text == "/favorites" || message.Text == "Избранное")
                    {
                        status.Add(user_id, "/favorites");
                    }
                    else if (message.Text == "Добавить в избранное")
                    {
                        status.Add(user_id, "Добавить в избранное");
                    }
                    else if (message.Text == "Удалить из избранного")
                    {
                        status.Add(user_id, "Удалить из избранного");
                    }
                    else if (message.Text == "Основное меню")
                    {
                        status.Add(user_id, "Основное меню");
                    }
                    else
                    {
                        status.Add(user_id, "Основное меню");
                        await Bot.SendTextMessageAsync(message.From.Id, "Пожалуйста, введите запрос заново или введите правильный запрос!");
                    }
                }
            }

            if (status[user_id] == "Основное меню")
            {
                var menu_replyKeyboard = new ReplyKeyboardMarkup(new[]
                {
                    new[]
                    {
                        new KeyboardButton("Поиск фильма"),
                        new KeyboardButton("Поиск сериала")
                    },
                    new[]
                    {
                        new KeyboardButton("Поиск фильма по жанру"),
                        new KeyboardButton("Популярное")
                    },
                    new[]
                    {
                        new KeyboardButton("Избранное"),
                    }
                });
                await Bot.SendTextMessageAsync(message.Chat.Id, ". . .", replyMarkup : menu_replyKeyboard);
            }

            try
            {
                if (status[user_id] == "/movie_search") //Поиск фильмов
                {
                    if (message.Text == "/movie_search" || message.Text == "Поиск фильма")
                    {
                        await Bot.SendTextMessageAsync(message.From.Id, "Введите название фильма, который хотите найти.");
                    }

                    else if (message.Text != "/movie_search" || message.Text != "Поиск фильма")
                    {
                        string movie = message.Text.ToLower();
                        HttpResponseMessage response = await client.GetAsync("https://localhost:44393/api/proanimaFilms/" + movie);

                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();

                        SearchMovies movies = JsonSerializer.Deserialize <SearchMovies>(responseBody);

                        int max_popularity = 0;
                        for (int i = 1; i < movies.results.Count - 1; i++)
                        {
                            if (movies.results[max_popularity].popularity > movies.results[i].popularity)
                            {
                                continue;
                            }
                            else
                            {
                                max_popularity = i;
                            }
                        }

                        string title       = $"{movies.results[max_popularity].title}";
                        string overview    = $"{movies.results[max_popularity].overview}";
                        string poster_path = $"{image_path}{movies.results[max_popularity].poster_path}";
                        int    id          = movies.results[max_popularity].id;

                        string[] words_int_the_title = movie.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                        string   movie_path          = $"{basic_movie_path}{id}{"-"}{words_int_the_title}";

                        await Bot.SendTextMessageAsync(message.Chat.Id, title);

                        await Bot.SendPhotoAsync(message.Chat.Id, poster_path, overview);

                        var inlineKeyboard = new InlineKeyboardMarkup(new[]
                        {
                            new[]
                            {
                                InlineKeyboardButton.WithUrl($"Перейти по ссылке на '{movie}'", movie_path)
                            }
                        });
                        await Bot.SendTextMessageAsync(message.Chat.Id, points, replyMarkup : inlineKeyboard);
                    }
                }

                else if (status[user_id] == "/tv_series_search") //Поиск сериалов
                {
                    if (message.Text == "/tv_series_search" || message.Text == "Поиск сериала")
                    {
                        await Bot.SendTextMessageAsync(message.From.Id, "Введите название сериала, который хотите найти.");
                    }

                    else if (message.Text != "/tv_series_search" || message.Text != "Поиск сериала")
                    {
                        string tv_series             = message.Text.ToLower();
                        HttpResponseMessage response = await client.GetAsync("https://localhost:44393/api/proanimaFilms/tvshow/" + tv_series);

                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();

                        SearchTVshows tv_seriess = JsonSerializer.Deserialize <SearchTVshows>(responseBody);

                        int max_popularity = 0;
                        for (int i = 1; i < tv_seriess.results.Count - 1; i++)
                        {
                            if (tv_seriess.results[max_popularity].popularity > tv_seriess.results[i].popularity)
                            {
                                continue;
                            }
                            else
                            {
                                max_popularity = i;
                            }
                        }

                        string title       = $"{tv_seriess.results[max_popularity].name}";
                        string overview    = $"{tv_seriess.results[max_popularity].overview}";
                        string poster_path = $"{image_path}{tv_seriess.results[max_popularity].poster_path}";
                        int    id          = tv_seriess.results[max_popularity].id;

                        string[] words_int_the_name = tv_series.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                        string   tv_series_path     = $"{basic_tvshows_path}{id}{"-"}{words_int_the_name}";

                        await Bot.SendTextMessageAsync(message.Chat.Id, title);

                        await Bot.SendPhotoAsync(e.Message.Chat.Id, poster_path, overview);

                        var inlineKeyboard = new InlineKeyboardMarkup(new[]
                        {
                            new[]
                            {
                                InlineKeyboardButton.WithUrl($"Перейти по ссылке на '{tv_series}'", tv_series_path)
                            }
                        });
                        await Bot.SendTextMessageAsync(message.Chat.Id, points, replyMarkup : inlineKeyboard);
                    }
                }
            }
            catch (Exception) { await Bot.SendTextMessageAsync(message.Chat.Id, "Ничего не найдено. Возможно, в введенном Вами запросе допущена ошибка. Пожалуйста, введите запрос заново."); };

            try
            {
                if (status[user_id] == "/search_movies_by_genre") //Поиск фильмов по жанрам
                {
                    if (genre_status.ContainsKey("search_movies_by_genre"))
                    {
                        if (message.Text == "/search_movies_by_genre" || message.Text == "Поиск фильма по жанру")
                        {
                            genre_status["search_movies_by_genre"] = "0";
                        }
                    }
                    else
                    {
                        genre_status.Add("search_movies_by_genre", "0");
                    }

                    var replyKeyboard = new ReplyKeyboardMarkup(new[]
                    {
                        new[]
                        {
                            new KeyboardButton("Боевик"),
                            new KeyboardButton("Приключения"),
                            new KeyboardButton("Мультфильм"),
                            new KeyboardButton("Комедия")
                        },
                        new[]
                        {
                            new KeyboardButton("Криминал"),
                            new KeyboardButton("Документальный"),
                            new KeyboardButton("Драма"),
                            new KeyboardButton("Семейный")
                        },
                        new[]
                        {
                            new KeyboardButton("Фэнтези"),
                            new KeyboardButton("История"),
                            new KeyboardButton("Ужасы"),
                            new KeyboardButton("Детектив")
                        },
                        new[]
                        {
                            new KeyboardButton("Мелодрама"),
                            new KeyboardButton("Фантастика"),
                            new KeyboardButton("Триллер"),
                            new KeyboardButton("Военный")
                        },
                        new[]
                        {
                            new KeyboardButton("Основное меню")
                        }
                    });
                    await Bot.SendTextMessageAsync(message.Chat.Id, ". . .", replyMarkup : replyKeyboard);

                    if (message.Text == "Боевик")
                    {
                        genre_status["search_movies_by_genre"] = "Боевик";
                        int_genre    = 28;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Приключения")
                    {
                        genre_status["search_movies_by_genre"] = "Приключения";
                        int_genre    = 12;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Мультфильм")
                    {
                        genre_status["search_movies_by_genre"] = "Мультфильм";
                        int_genre    = 16;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Комедия")
                    {
                        genre_status["search_movies_by_genre"] = "Комедия";
                        int_genre    = 35;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Криминал")
                    {
                        genre_status["search_movies_by_genre"] = "Криминал";
                        int_genre    = 80;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Документальный")
                    {
                        genre_status["search_movies_by_genre"] = "Документальный";
                        int_genre    = 99;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Драма")
                    {
                        genre_status["search_movies_by_genre"] = "Драма";
                        int_genre    = 18;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Семейный")
                    {
                        genre_status["search_movies_by_genre"] = "Семейный";
                        int_genre    = 10751;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Фэнтези")
                    {
                        genre_status["search_movies_by_genre"] = "Фэнтези";
                        int_genre    = 14;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "История")
                    {
                        genre_status["search_movies_by_genre"] = "История";
                        int_genre    = 36;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Ужасы")
                    {
                        genre_status["search_movies_by_genre"] = "Ужасы";
                        int_genre    = 27;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Детектив")
                    {
                        genre_status["search_movies_by_genre"] = "Детектив";
                        int_genre    = 9648;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Мелодрама")
                    {
                        genre_status["search_movies_by_genre"] = "Мелодрама";
                        int_genre    = 10749;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Фантастика")
                    {
                        genre_status["search_movies_by_genre"] = "Фантастика";
                        int_genre    = 878;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Триллер")
                    {
                        genre_status["search_movies_by_genre"] = "Триллер";
                        int_genre    = 53;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    if (message.Text == "Военный")
                    {
                        genre_status["search_movies_by_genre"] = "Военный";
                        int_genre    = 10752;
                        string_genre = genre_status["search_movies_by_genre"];
                    }
                    Console.WriteLine(user_id + string_genre);

                    if (genre_status["search_movies_by_genre"] != "0" && message.Text == string_genre)
                    {
                        HttpResponseMessage response = await client.GetAsync("https://localhost:44393/api/proanimaFilms/genre/" + int_genre);

                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();

                        SearchMoviesByGenre movies_by_genre = JsonSerializer.Deserialize <SearchMoviesByGenre>(responseBody);

                        int n = 1;
                        for (int i = 0; i < movies_by_genre.results.Count; i++, n++)
                        {
                            moviesbygenre[n] = movies_by_genre.results[i].title;
                        }

                        string _moviesbygenre = " ";
                        foreach (KeyValuePair <int, string> keyValue in moviesbygenre)
                        {
                            _moviesbygenre += $"\n {keyValue.Key} - {keyValue.Value} \n";
                        }
                        await Bot.SendTextMessageAsync(message.Chat.Id, _moviesbygenre);

                        await Bot.SendTextMessageAsync(message.Chat.Id, $"Выберите номер фильма, который хотите просмотреть.");
                    }

                    if (message.Text != "/search_movies_by_genre" && message.Text != "Поиск фильма по жанру" && message.Text != string_genre)
                    {
                        int int_number = Convert.ToInt32(message.Text);

                        if (int_number > 0 && int_number <= 20)
                        {
                            foreach (int number in moviesbygenre.Keys)
                            {
                                if (int_number == number)
                                {
                                    HttpResponseMessage response = await client.GetAsync("https://localhost:44393/api/proanimaFilms/" + moviesbygenre[number]);

                                    response.EnsureSuccessStatusCode();
                                    string responseBody = await response.Content.ReadAsStringAsync();

                                    SearchMovies movies = JsonSerializer.Deserialize <SearchMovies>(responseBody);

                                    int max_popularity = 0;
                                    for (int i = 1; i < movies.results.Count - 1; i++)
                                    {
                                        if (movies.results[max_popularity].popularity > movies.results[i].popularity)
                                        {
                                            continue;
                                        }
                                        else
                                        {
                                            max_popularity = i;
                                        }
                                    }

                                    string title       = $"{movies.results[max_popularity].title}";
                                    string overview    = $"{movies.results[max_popularity].overview}";
                                    string poster_path = $"{image_path}{movies.results[max_popularity].poster_path}";
                                    int    id          = movies.results[max_popularity].id;

                                    string[] words_int_the_title = moviesbygenre[number].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                                    string   movie_path          = $"{basic_movie_path}{id}{"-"}{words_int_the_title}";

                                    await Bot.SendTextMessageAsync(message.Chat.Id, title);

                                    await Bot.SendPhotoAsync(e.Message.Chat.Id, poster_path, overview);

                                    var inlineKeyboard = new InlineKeyboardMarkup(new[]
                                    {
                                        new[]
                                        {
                                            InlineKeyboardButton.WithUrl($"Перейти по ссылке на '{moviesbygenre[number]}'", movie_path)
                                        }
                                    });
                                    await Bot.SendTextMessageAsync(message.Chat.Id, points, replyMarkup : inlineKeyboard);
                                }
                            }
                        }
                        else
                        {
                            await Bot.SendTextMessageAsync(message.Chat.Id, "Вы ввели номер, которого нет в списке.Попытайтесь заново!");
                        }
                    }
                }


                if (status[user_id] == "Популярное")
                {
                    HttpResponseMessage response = await client.GetAsync("https://localhost:44393/api/proanimaFilms/popular");

                    response.EnsureSuccessStatusCode();
                    string responseBody = await response.Content.ReadAsStringAsync();

                    SearchMovies popular_movies = JsonSerializer.Deserialize <SearchMovies>(responseBody);

                    if (message.Text == "Популярное")
                    {
                        await Bot.SendTextMessageAsync(message.Chat.Id, $"Список популярных фильмов. Обновляется каждый день.");

                        string popular = " ";
                        int    j       = 1;
                        for (int i = 0; i < popular_movies.results.Count; i++, j++)
                        {
                            popular += $"\n {j} - {popular_movies.results[i].title} \n";
                        }
                        await Bot.SendTextMessageAsync(message.Chat.Id, popular);

                        await Bot.SendTextMessageAsync(message.Chat.Id, $"Выберите номер фильма, который хотите просмотреть.");
                    }

                    if (message.Text != "Популярное")
                    {
                        int int_number = Convert.ToInt32(message.Text);

                        if (int_number > 0 && int_number <= 20)
                        {
                            HttpResponseMessage response1 = await client.GetAsync("https://localhost:44393/api/proanimaFilms/" + popular_movies.results[int_number - 1].title);

                            response1.EnsureSuccessStatusCode();
                            string responseBody1 = await response1.Content.ReadAsStringAsync();

                            SearchMovies movies = JsonSerializer.Deserialize <SearchMovies>(responseBody1);

                            int max_popularity = 0;
                            for (int i = 1; i < movies.results.Count - 1; i++)
                            {
                                if (movies.results[max_popularity].popularity > movies.results[i].popularity)
                                {
                                    continue;
                                }
                                else
                                {
                                    max_popularity = i;
                                }
                            }

                            string title       = $"{movies.results[max_popularity].title}";
                            string overview    = $"{movies.results[max_popularity].overview}";
                            string poster_path = $"{image_path}{movies.results[max_popularity].poster_path}";
                            int    id          = movies.results[max_popularity].id;

                            string[] words_int_the_title = popular_movies.results[int_number - 1].title.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                            string   movie_path          = $"{basic_movie_path}{id}{"-"}{words_int_the_title}";

                            await Bot.SendTextMessageAsync(message.Chat.Id, title);

                            await Bot.SendPhotoAsync(e.Message.Chat.Id, poster_path, overview);

                            var inlineKeyboard = new InlineKeyboardMarkup(new[]
                            {
                                new[]
                                {
                                    InlineKeyboardButton.WithUrl($"Перейти по ссылке на '{popular_movies.results[int_number-1].title}'", movie_path)
                                }
                            });
                            await Bot.SendTextMessageAsync(message.Chat.Id, points, replyMarkup : inlineKeyboard);
                        }
                        else
                        {
                            await Bot.SendTextMessageAsync(message.Chat.Id, "Вы ввели номер, которого нет в списке. Попытайтесь заново!");
                        }
                    }
                }
            }
            catch (Exception) { await Bot.SendTextMessageAsync(message.Chat.Id, "Введите, пожалуйста, число!"); };

            if (status[user_id] == "/favorites") //Вывод избранных фильмов пользователя
            {
                var favorites_replyKeyboard = new ReplyKeyboardMarkup(new[]
                {
                    new[]
                    {
                        new KeyboardButton("Добавить в избранное"),
                        new KeyboardButton("Избранное"),
                        new KeyboardButton("Удалить из избранного")
                    },
                    new[]
                    {
                        new KeyboardButton("Основное меню")
                    }
                });
                await Bot.SendTextMessageAsync(message.Chat.Id, ". . .", replyMarkup : favorites_replyKeyboard);

                HttpResponseMessage response = await client.GetAsync("https://localhost:44393/api/proanimaFilms/featured/films/" + user_id);

                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();

                Favorites favorites = JsonSerializer.Deserialize <Favorites>(responseBody);

                if (favorites.featuredfims.Count == 0)
                {
                    await Bot.SendTextMessageAsync(message.Chat.Id, "У вас нет избранных фильмов.");
                }
                else
                {
                    await Bot.SendTextMessageAsync(message.Chat.Id, "Список избранных фильмов:");

                    string _featuredfims = " ";
                    foreach (string film in favorites.featuredfims)
                    {
                        _featuredfims += $"\n {film} \n";
                    }
                    await Bot.SendTextMessageAsync(message.Chat.Id, _featuredfims);
                }
            }

            if (status[user_id] == "Добавить в избранное") //Добавить фильм в избранное
            {
                if (message.Text == "Добавить в избранное")
                {
                    await Bot.SendTextMessageAsync(message.Chat.Id, "Введите название фильма, который хотите добавить в избранное.");
                }

                else
                {
                    HttpResponseMessage response = await client.GetAsync("https://localhost:44393/api/proanimaFilms/featured/films/" + user_id);

                    response.EnsureSuccessStatusCode();
                    string responseBody = await response.Content.ReadAsStringAsync();

                    Favorites favorites = JsonSerializer.Deserialize <Favorites>(responseBody);

                    favorites.featuredfims.Add(message.Text);
                    var json = JsonSerializer.Serialize <Favorites>(favorites);
                    Console.WriteLine(json);
                    var data = new StringContent(json, Encoding.UTF8, "application/json");
                    await client.PutAsync("https://localhost:44393/api/proanimaFilms/" + user_id, data);

                    await Bot.SendTextMessageAsync(message.Chat.Id, "Готово!");

                    await Bot.SendTextMessageAsync(message.Chat.Id, "Введите название фильма, который также хотите добавить в избранное.");
                }
            }

            if (status[user_id] == "Удалить из избранного") //Удалить фильм из избранного
            {
                if (message.Text == "Удалить из избранного")
                {
                    await Bot.SendTextMessageAsync(message.Chat.Id, "Введите название фильма, который хотите удалить из избранного. Если вы хотите очистить весь список избранных фильмов, введите 'Clear'.");
                }

                else
                {
                    HttpResponseMessage response = await client.GetAsync("https://localhost:44393/api/proanimaFilms/featured/films/" + user_id);

                    response.EnsureSuccessStatusCode();
                    string responseBody = await response.Content.ReadAsStringAsync();

                    Favorites favorites = JsonSerializer.Deserialize <Favorites>(responseBody);

                    if (message.Text.ToLower() == "clear")
                    {
                        favorites.featuredfims.Clear();
                        var json = JsonSerializer.Serialize <Favorites>(favorites);
                        Console.WriteLine(json);
                        var data = new StringContent(json, Encoding.UTF8, "application/json");
                        await client.PutAsync("https://localhost:44393/api/proanimaFilms/" + user_id, data);

                        await Bot.SendTextMessageAsync(message.Chat.Id, "Список избранных фильмов очищен.");

                        status[user_id] = "Основное меню";
                        return;
                    }

                    if (favorites.featuredfims.Contains(message.Text))
                    {
                        favorites.featuredfims.Remove(message.Text);
                        var json = JsonSerializer.Serialize <Favorites>(favorites);
                        Console.WriteLine(json);
                        var data = new StringContent(json, Encoding.UTF8, "application/json");
                        await client.PutAsync("https://localhost:44393/api/proanimaFilms/" + user_id, data);

                        await Bot.SendTextMessageAsync(message.Chat.Id, "Готово!");

                        await Bot.SendTextMessageAsync(message.Chat.Id, "Возможно, вы хотите удалить еще какой-то фильм? Введите его название.");
                    }

                    else
                    {
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Введенное вами название отсутствует в избранном! Возможно, вы допустили ошибку при вводе. Попытайтесь еще раз.");
                    }
                }
            }
        }