public List <Movie> GetAllMovies(GrpcChannel _Channel) { List <Movie> movies = new List <Movie>(); if (_Channel != null) { var client = new Movies.MoviesClient(_Channel); var reply = client.GetAll(new GetAllMoviesRequest()); movies = reply.Movies.ToList(); } return(movies); }
public Movie GetMovieById(GrpcChannel _Channel, int id) { Movie movie = new(); if (_Channel != null) { var client = new Movies.MoviesClient(_Channel); var reply = client.GetByMovieId(new GetByMovieIdRequest { MovieId = id }); movie = reply.Movie; } return(movie); }
private void LoadMovies(object state) { _logger.LogInformation("Loading movies..."); var client = _httpClientFactory.CreateClient(); var moviesUploadRequest = new UploadMoviesRequest(); var now = DateTime.Now; var randomGen = new Random(now.Hour + now.Minute + now.Second); for (int i = 0; i < LoadLimit; i++) { var id = randomGen.Next(1, MaxMoviesLimit); var url = $"http://www.omdbapi.com/?i=tt{id:0000000}&apikey={_apiKey}"; var response = client.GetAsync(url).ConfigureAwait(false).GetAwaiter().GetResult(); if (!response.IsSuccessStatusCode) { _logger.LogError("Could not load information for movie with id = {0}, status code = {1}", id.ToString("0000000"), response.StatusCode); continue; } var result = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult(); var jsonObj = JObject.Parse(result); if (jsonObj["Type"]?.ToString() == "movie") { moviesUploadRequest.Movies.Add(new Movie { Title = jsonObj["Title"]?.ToString(), Description = jsonObj["Plot"]?.ToString(), Year = jsonObj.GetValue("Year").Value <int>() }); _logger.LogInformation(result); } } _logger.LogInformation("Loaded movies."); using (var channel = GrpcChannel.ForAddress(_moviesServiceAddress)) { var moviesClient = new Movies.MoviesClient(channel); moviesClient.UploadMovies(moviesUploadRequest); } _logger.LogInformation("Persisted movies to service."); }
private async Task LoadMoviesStreamAsync() { using (var channel = GrpcChannel.ForAddress(_moviesServiceAddress)) { var moviesClient = new Movies.MoviesClient(channel); using (var call = moviesClient.GetMoviesStream(new Empty())) { while (await call.ResponseStream.MoveNext(CancellationToken.None)) { var movie = call.ResponseStream.Current; if (!Movies.Contains(movie)) { //Movies.Add(movie); await Application.Current.Dispatcher.InvokeAsync(() => Movies.Add(movie)); //await Application.Current.Dispatcher.InvokeAsync(() => OnPropertyChanged(nameof(Movies))); } } } } }
public MovieClientWrapper(Movies.MoviesClient moviesClient) { _moviesClient = moviesClient; }