Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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.");
        }
Esempio n. 4
0
        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)));
                        }
                    }
                }
            }
        }
Esempio n. 5
0
 public MovieClientWrapper(Movies.MoviesClient moviesClient)
 {
     _moviesClient = moviesClient;
 }