Пример #1
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);
        }
Пример #2
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());
            }
        }
Пример #3
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));
        }
Пример #4
0
        public async Task <IActionResult> PutVideoRentalItemRenter(long id, RenterItem renterItem)
        {
            var videoRentalItem = await _context.VideoRentalItems.FindAsync(id);

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

            string renterId = videoRentalItem.RenterId;

            using (var httpClient = new HttpClient())
            {
                var json        = JsonConvert.SerializeObject(renterItem);
                var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
                using (var response = await httpClient.PutAsync(path + renterId, httpContent))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();
                }
            }

            return(NoContent());
        }