示例#1
0
        public Order Post([FromBody] Order order)
        {
            if (order == null)
            {
                return(null);
            }

            // Call ProductApi to get the food ordered
            RestClient c = new RestClient();

            //desktop-661danr
            c.BaseUrl = new Uri("http://desktop-661danr:19081/SFCinema/TicketsApi/api/tickets/getbytitle");
            var requestTicket = new RestRequest(order.Movie.ToString(), Method.GET);

            var responseTicket = c.Execute <Ticket>(requestTicket);
            var orderedTicket  = responseTicket.Data;

            if (order.TicketQuantity <= orderedTicket.TicketsLeft)
            {
                orderedTicket.TicketsLeft = orderedTicket.TicketsLeft - order.TicketQuantity;

                c.BaseUrl = new Uri("http://desktop-661danr:19081/SFCinema/TicketsApi/api/tickets");
                var updateTicketRequest = new RestRequest("", Method.PUT);
                updateTicketRequest.AddJsonBody(orderedTicket);
                var updateTicketResponse = c.Execute(updateTicketRequest);

                if (updateTicketResponse.IsSuccessful)
                {
                    order.Price = order.TicketQuantity * orderedTicket.Price;

                    c.BaseUrl = new Uri("http://desktop-661danr:19081/SFCinema/FoodApi/api/food/getbyname");
                    var requestFood = new RestRequest(order.Food.ToString(), Method.GET);

                    var responseFood = c.Execute <Food>(requestFood);
                    var orderedFood  = responseFood.Data;

                    if (order.FoodQuantity <= orderedFood.AmountLeft)
                    {
                        orderedFood.AmountLeft = orderedFood.AmountLeft - order.FoodQuantity;

                        c.BaseUrl = new Uri("http://desktop-661danr:19081/SFCinema/FoodApi/api/food");
                        var updateFoodRequest = new RestRequest("", Method.PUT);
                        updateFoodRequest.AddJsonBody(orderedFood);
                        var updateFoodResponse = c.Execute(updateFoodRequest);

                        if (updateFoodResponse.IsSuccessful)
                        {
                            order.Price = order.Price + order.FoodQuantity * orderedFood.Price;
                            return(_repo.Add(order));
                        }
                    }

                    return(_repo.Add(order));
                }
            }
            return(null);
        }
示例#2
0
 public Cinema Add(Cinema cinema)
 {
     return(_cinemaRepository.Add(cinema));
 }