Пример #1
0
        /// <summary>
        /// Search Booking
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public async Task <List <Booking> > SearchBooking(SearchBookingModel search)
        {
            var sql = @"SELECT * FROM [flightbooking].[dbo].[vwbookingdetails]
                        WHERE pnr = @pnr or firstname= @fname or lastname = @lname or flight_number = @fn
                        or departure_city_code = @dcc or arrival_city_code = @acc
                        or departure_city_name = @dcn or arrival_city_name = @acn or convert(date,booking_date)  = @bdate";

            using (var db = dbManager.GetOpenConnection())
            {
                var results = await db.QueryAsync <Booking>(new CommandDefinition(sql, new
                {
                    pnr = search.PNR,
                    fname = search.FirstName,
                    lname = search.LastName,
                    fn = search.FlightNumber,
                    dcc = search.DepartureCityCode,
                    acc = search.ArrivalCityCode,
                    dcn = search.DepartureCityName,
                    acn = search.ArrivalCityName,
                    bdate = search.BookingDate
                }));

                if (results != null && results.Count() > 0)
                {
                    return(results.ToList());
                }
                else
                {
                    return(null);
                }
            }
        }
        public void BookingController_SEARCHBOOKING_IS_NOT_NUll()
        {
            //Arrange
            var mockRepository            = new Mock <IBookingManager>();
            SearchBookingModel moqdata    = new SearchBookingModel();
            List <Booking>     returnData = new List <Booking>();

            returnData.Add(new Booking()
            {
                DepartureCityCode = "DXB",
                ArrivalCityCode   = "DEL",
                FlightNumber      = "101",
            });

            mockRepository.Setup(x => x.SearchBooking(moqdata)).ReturnsAsync(returnData);
            var controller = new BookingsController(mockRepository.Object);

            //Act
            var result        = controller.SearchBooking(moqdata);
            var contentResult = result.Result as OkNegotiatedContentResult <List <Booking> >;

            //Assert
            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(contentResult.Content.Count, 1);
            Assert.AreEqual(contentResult.Content[0].DepartureCityCode, "DXB");
        }
        public async Task <IHttpActionResult> SearchBooking(SearchBookingModel booking)
        {
            var result = await bookingManager.SearchBooking(booking);

            if (result != null && result.Count > 0)
            {
                return(Ok(result));
            }
            else
            {
                return(NotFound());
            }
        }
        public void BookingController_SEARCHBOOKING_IS_NOT_NUll_NOT_FOUND()
        {
            //Arrange
            var mockRepository            = new Mock <IBookingManager>();
            SearchBookingModel moqdata    = new SearchBookingModel();
            List <Booking>     returnData = new List <Booking>();

            mockRepository.Setup(x => x.SearchBooking(moqdata)).ReturnsAsync(returnData);
            var controller = new BookingsController(mockRepository.Object);

            //Act
            var result        = controller.SearchBooking(moqdata);
            var contentResult = result.Result as NotFoundResult;

            //Assert
            Assert.IsInstanceOfType(contentResult, typeof(NotFoundResult));
        }