Esempio n. 1
0
 public VideoRentalItemRenter(VideoRentalItemRenter videoRentalItemRenter)
 {
     this.Id          = videoRentalItemRenter.Id;
     this.Title       = videoRentalItemRenter.Title;
     this.Genre       = videoRentalItemRenter.Genre;
     this.ReleaseYear = videoRentalItemRenter.ReleaseYear;
     this.Duration    = videoRentalItemRenter.Duration;
     this.Language    = videoRentalItemRenter.Language;
     this.Rating      = videoRentalItemRenter.Rating;
     this.IsRented    = videoRentalItemRenter.IsRented;
 }
Esempio n. 2
0
 public VideoRentalItem(VideoRentalItemRenter VideoRentalItemRenter)
 {
     this.Id          = VideoRentalItemRenter.Id;
     this.Title       = VideoRentalItemRenter.Title;
     this.Genre       = VideoRentalItemRenter.Genre;
     this.ReleaseYear = VideoRentalItemRenter.ReleaseYear;
     this.Duration    = VideoRentalItemRenter.Duration;
     this.Language    = VideoRentalItemRenter.Language;
     this.Rating      = VideoRentalItemRenter.Rating;
     this.RenterId    = VideoRentalItemRenter.Renter.Id.ToString();
     this.IsRented    = VideoRentalItemRenter.IsRented;
 }
Esempio n. 3
0
        public async Task <ActionResult <dynamic> > GetVideoRentalItemRenter(long id)
        {
            var videoRentalItem = await _context.VideoRentalItems.FindAsync(id);

            if (videoRentalItem == null)
            {
                string message = $"Video rental item with id {id} does not exist!";
                return(NotFound(message));
            }

            if (videoRentalItem.RenterId == null)
            {
                string message = $"Video rental item with id {id} does not have a renter.";
                return(BadRequest(message));
            }

            RenterItem renter = null;

            try
            {
                using (var httpClient = new HttpClient())
                {
                    using (var response = await httpClient.GetAsync(path + videoRentalItem.RenterId))
                    {
                        string apiResponse = await response.Content.ReadAsStringAsync();

                        renter = JsonConvert.DeserializeObject <RenterItem>(apiResponse);
                    }
                }
            }
            catch (Exception exception) {
                System.Diagnostics.Debug.WriteLine(exception);
                return(videoRentalItem);
            }

            renter.Id = long.Parse(videoRentalItem.RenterId);
            VideoRentalItemRenter videoRentalItemRenter = new VideoRentalItemRenter(videoRentalItem);

            videoRentalItemRenter.Renter = renter;

            return(videoRentalItemRenter);
        }
Esempio n. 4
0
        public async Task <ActionResult <IEnumerable <dynamic> > > GetVideoRentalItemsRenter(bool filter = true)
        {
            if (filter)
            {
                var videoRentalItems = await _context.VideoRentalItems.ToListAsync();

                List <Object> videoRentalItemsRenters = new List <Object>();
                foreach (var item in videoRentalItems)
                {
                    RenterItem renter = null;
                    try
                    {
                        using (var httpClient = new HttpClient())
                        {
                            using (var response = await httpClient.GetAsync(path + item.RenterId))
                            {
                                string apiResponse = await response.Content.ReadAsStringAsync();

                                renter = JsonConvert.DeserializeObject <RenterItem>(apiResponse);
                            }
                        }

                        VideoRentalItemRenter itemWithRenter = new VideoRentalItemRenter(item);
                        itemWithRenter.Renter = renter;
                        videoRentalItemsRenters.Add(itemWithRenter);
                    }
                    catch (Exception exception) {
                        System.Diagnostics.Debug.WriteLine(exception);
                        videoRentalItemsRenters.Add(item);
                    }
                }
                return(videoRentalItemsRenters);
            }
            else
            {
                return(await _context.VideoRentalItems.ToListAsync());
            }
        }
Esempio n. 5
0
        public async Task <ActionResult <VideoRentalItemRenter> > PostVideoRentalItemRenter(VideoRentalItemRenter videoRentalItemRenter)
        {
            VideoRentalItem videoRentalItem = new VideoRentalItem(videoRentalItemRenter);

            _context.VideoRentalItems.Add(videoRentalItem);

            if (VideoRentalItemExists(videoRentalItem.Id))
            {
                return(BadRequest("Error: An item with the same key already exists!"));
            }

            RenterItem   renterItem   = videoRentalItemRenter.Renter;
            RenterItemId renterItemId = new RenterItemId(renterItem);

            try
            {
                using (var httpClient = new HttpClient())
                {
                    var json        = JsonConvert.SerializeObject(renterItemId);
                    var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
                    using (var response = await httpClient.PostAsync(path, httpContent))
                    {
                        string apiResponse = await response.Content.ReadAsStringAsync();
                    }
                }
            }
            catch (Exception exception) {
                System.Diagnostics.Debug.WriteLine(exception);
                return(StatusCode(503));
            }
            videoRentalItem.Id = videoRentalItem.Id;
            await _context.SaveChangesAsync();

            videoRentalItemRenter.Id = videoRentalItem.Id;
            return(StatusCode(201, videoRentalItemRenter));
        }