public ActionResult Index(SearchCriteriaViewModel searchcriteria)
        {
            if (ModelState.IsValid)
            { searchcriteria.Passengers=new List<Passenger> ();
                for (int i = 0; i < searchcriteria.RoomOneAdults ; i++)
                {
                    searchcriteria.Passengers.Add(new Passenger(RoomDetail.GuestType.ADULT, 30, "", "", 1));

                }
                for (int i = 0; i < searchcriteria.RoomOneChildren; i++)
                {
                    searchcriteria.Passengers.Add(new Passenger(RoomDetail.GuestType.CHILD, 11, "", "", 1));

                }
                for (int i = 0; i < searchcriteria.RoomOneInfants; i++)
                {
                    searchcriteria.Passengers.Add(new Passenger(RoomDetail.GuestType.CHILD, 2, "", "", 1));

                }

                Session["SearchCriteria"] = searchcriteria;

                return RedirectToAction("Index", "result");
            }

            else
            {   //if page is not validated then it will remain on same view.

                return View(searchcriteria);
            }
        }
        public ActionResult Index(FormCollection form)
        {
            SearchCriteriaViewModel searchcriteria = new SearchCriteriaViewModel();
            //When user enter search criteria, page will be validated by its model class data annotations, like required, datatype etc.
            //If all data is valid  , it will put it into Session and take user to wait page.
            searchcriteria.CheckInDate = DateTime.Parse (form["CheckInDate"]);
            searchcriteria.CheckOutDate = DateTime.Parse(form["CheckOutDate"]);
            searchcriteria.DestinationCode = form["DestinationCode"];
            searchcriteria.CountryCode = form["CountryCode"];
            searchcriteria.HotelCodes = form["HotelCodes"];
            searchcriteria.NumberOfRooms = int.Parse (form["NumberOfRooms"]);
            searchcriteria.StarRatingSearch = int.Parse(form["StarRatingSearch"]);
            searchcriteria.RoomOneAdults = int.Parse(form["RoomOneAdults"]);
            searchcriteria.RoomOneChildren = int.Parse(form["RoomOneChildren"]);
            searchcriteria.RoomOneInfants = int.Parse(form["RoomOneInfants"]);
            if (ModelState.IsValid)
            {

                Session["SearchCriteria"] = searchcriteria;

                return RedirectToAction("Index", "result");
            }

            else
            {   //if page is not validated then it will remain on same view.

                return View(searchcriteria);
            }
        }
        public ActionResult Index(FormCollection form,SearchCriteriaViewModel searchcriteria )
        {
            try
            {
                string[] type = form["pas.type"].Split(',');
                string[] age = form["pas.age"].Split(',');
                string[] name = form["pas.name"].Split(',');
                string[] surname = form["pas.surname"].Split(',');
                string[] roomId = form["pas.roomId"].Split(',');

                HotelApiClient client = new HotelApiClient();
                ConfirmRoom confirmRoom = new ConfirmRoom();
                confirmRoom.details = new List<RoomDetail>();
                for (int i = 0; i < type.Count(); i++)
                    confirmRoom.details.Add(new RoomDetail((com.hotelbeds.distribution.hotel_api_sdk.helpers.RoomDetail.GuestType)Enum.Parse(typeof(com.hotelbeds.distribution.hotel_api_sdk.helpers.RoomDetail.GuestType), type[i]), int.Parse(age[i]), name[i], surname[i], int.Parse(roomId[i])));

                string rateKey = (string)Session["ratekey"];
                BookingCheck bookingCheck = new BookingCheck();
                bookingCheck.addRoom(rateKey, confirmRoom);
                CheckRateRQ checkRateRQ = bookingCheck.toCheckRateRQ();

                if (checkRateRQ != null)
                {
                    CheckRateRS responseRate = client.doCheck(checkRateRQ);
                    if (responseRate != null && responseRate.error == null)
                    {
                        com.hotelbeds.distribution.hotel_api_sdk.helpers.Booking booking = new com.hotelbeds.distribution.hotel_api_sdk.helpers.Booking();
                        booking.createHolder("Rosetta", "Pruebas");
                        booking.clientReference = "SDK Test";
                        booking.remark = "***SDK***TESTING";

                        booking.addRoom(rateKey, confirmRoom);
                        BookingRQ bookingRQ = booking.toBookingRQ();
                        if (bookingRQ != null)
                        {
                            BookingRS responseBooking = client.confirm(bookingRQ);

                            if (responseBooking != null && responseBooking.error == null && responseBooking.booking != null)

                                ViewBag.BookingRef = responseBooking.booking.reference;

                        }
                        else
                        {
                            if (responseRate.error != null)
                            {
                                ViewBag.Error = responseRate.error.message;

                            }
                        }
                    }
                }

                return View(searchcriteria);
            }
            catch (Exception exp)
            { return Content(exp.Message); }
        }