Beispiel #1
0
        public ActionResult LoadData(HotelsDeptSearchFilters searchFilters, int draw, int start, int length)
        {
            BookingSearchReq    BookingReq = new BookingSearchReq();
            HotelsDeptSearchRes BookingRes = new HotelsDeptSearchRes();

            BookingReq.AgentName     = searchFilters.AgentName;
            BookingReq.AgentCode     = searchFilters.AgentCode;
            BookingReq.BookingNumber = searchFilters.CNKReferenceNo;
            BookingReq.BookingName   = searchFilters.AgentTour;
            BookingReq.Status        = searchFilters.BookingStatus;
            BookingReq.DateType      = searchFilters.DateType;
            BookingReq.From          = searchFilters.From;
            BookingReq.To            = searchFilters.To;

            BookingReq.Start = start;
            if (length == 0)
            {
                length = 10;
            }
            BookingReq.Length = length;
            BookingRes        = hotelsProviders.GetHotelsByBookingDetails(BookingReq, token).Result;

            //Duration Details
            for (int i = 0; i < BookingRes.BookingsDetails.Count; i++)
            {
                int duration = Convert.ToInt32(BookingRes.BookingsDetails[i].Duration);
                BookingRes.BookingsDetails[i].Duration = duration + "N/" + (duration + 1) + "D";
            }

            //Rooming Details
            var rooms = "";

            for (int i = 0; i < BookingRes.BookingsDetails.Count; i++)
            {
                if (BookingRes.BookingsDetails[i].BookingRooms != null && BookingRes.BookingsDetails[i].BookingRooms.Count > 0)
                {
                    for (int j = 0; j < BookingRes.BookingsDetails[i].BookingRooms.Count; j++)
                    {
                        if (j > 0)
                        {
                            rooms = rooms + " , " + BookingRes.BookingsDetails[i].BookingRooms[j].ROOMNO + " x " + BookingRes.BookingsDetails[i].BookingRooms[j].SUBPROD;
                        }
                        else
                        {
                            rooms = BookingRes.BookingsDetails[i].BookingRooms[j].ROOMNO + " x " + BookingRes.BookingsDetails[i].BookingRooms[j].SUBPROD;
                        }

                        BookingRes.BookingsDetails[i].StrBookingRooms = rooms;
                    }
                }
            }

            return(Json(new
            {
                draw = draw,
                recordsTotal = BookingRes.HotelsTotalCount,
                recordsFiltered = BookingRes.HotelsTotalCount,
                data = BookingRes.BookingsDetails
            }));
        }
Beispiel #2
0
        public async Task <HotelsDeptSearchRes> GetHotelsByBookingDetails([FromBody] BookingSearchReq request)
        {
            var response = new HotelsDeptSearchRes();

            try
            {
                if (request != null)
                {
                    var result = await _hotelsRepository.GetHotelsByBookingDetails(request);

                    if (result != null && result.BookingsDetails.Count > 0)
                    {
                        response.ResponseStatus.Status = "Success";
                        response.HotelsTotalCount      = result.HotelsTotalCount;
                        response.BookingsDetails       = result.BookingsDetails.ToList();
                    }
                    else
                    {
                        response.ResponseStatus.Status       = "Success";
                        response.ResponseStatus.ErrorMessage = "No Records Found.";
                    }
                }
                else
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Booking details can not be blank.";
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An error occurs " + ex.Message;
            }
            return(response);
        }
Beispiel #3
0
        public async Task <HotelsDeptSearchRes> GetHotelsByBookingDetails(BookingSearchReq bookingGetReq, string ticket)
        {
            HotelsDeptSearchRes HotelsDeptSearchRes = new HotelsDeptSearchRes();

            HotelsDeptSearchRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceHotels:GetHotelsByBookingDetails"), bookingGetReq, typeof(HotelsDeptSearchRes), ticket);

            return(HotelsDeptSearchRes);
        }
Beispiel #4
0
        public async Task <BookingSearchRes> GetBookingPositionPricingDetails(BookingSearchReq bookingGetReq, string ticket)
        {
            BookingSearchRes bookingGetRes = new BookingSearchRes();

            bookingGetRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceBooking:GetBookingPositionPricingDetails"), bookingGetReq, typeof(BookingSearchRes), ticket);

            return(bookingGetRes);
        }
        public async Task <IActionResult> GetBookings([FromBody] BookingSearchReq request)
        {
            var response = new BookingSearchRes();

            try
            {
                if (!ModelState.IsValid)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Request is not valid";
                    return(BadRequest(response.ResponseStatus));
                }
                else
                {
                    if (request != null)
                    {
                        var userdetails = Helpers.CreateToken.ReadToken(HttpContext);

                        var result = await _bookingRepository.GetBookings(request, userdetails);

                        if (result != null && result.Bookings.Count > 0)
                        {
                            response.ResponseStatus.Status = "Success";
                            response.Bookings = result.Bookings;
                        }
                        else
                        {
                            response.ResponseStatus.Status       = "Success";
                            response.ResponseStatus.ErrorMessage = "No Records Found.";
                            return(NotFound(response.ResponseStatus));
                        }
                    }
                    else
                    {
                        response.ResponseStatus.Status       = "Failure";
                        response.ResponseStatus.ErrorMessage = "Booking details can not be blank.";
                        return(BadRequest(response.ResponseStatus));
                    }
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An error occurs " + ex.Message.ToString();
                return(BadRequest(response.ResponseStatus));
            }
            return(Ok(response));
        }
        public async Task <BookingSearchRes> GetBookingRoomDetails([FromBody] BookingSearchReq request)
        {
            var response = new BookingSearchRes();

            try
            {
                response = await _bookingRepository.GetBookingRoomDetails(request);

                response.ResponseStatus.Status       = "Success";
                response.ResponseStatus.ErrorMessage = response != null ? "" : "No Records Found.";
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An Error Occurs :- " + ex.Message;
            }

            return(response);
        }
Beispiel #7
0
        public async Task <BookingSearchRes> GetBookings(BookingSearchReq request, UserCookieDetail userdetails)
        {
            common.GetUserCompanyType(ref userdetails);
            var System = _MongoContext.mSystem.AsQueryable().FirstOrDefault(); //.Where(a => Users.Company_Id == a.CoreCompany_Id)

            FilterDefinition <mBookings> filter;

            filter = Builders <mBookings> .Filter.Empty;
            bool            OnAndAfter = false;
            IFormatProvider culture    = new CultureInfo("en-US", true);
            DateTime        dateValue;

            if (request.OnAndAfter)
            {
                OnAndAfter = true;
            }

            //filter = filter & Builders<mBookings>.Filter.Where(f => f.ISEHSupp == true);
            if (userdetails.Company_Id.ToString().ToLower() != System.CoreCompany_Id.ToString().ToLower())
            {
                if ((userdetails.IsAgent ?? false))
                {
                    filter = filter & Builders <mBookings> .Filter.Regex(x => x.AgentId, new BsonRegularExpression(new Regex(userdetails.Company_Id.Trim(), RegexOptions.IgnoreCase)));
                }
                else if ((userdetails.IsSupplier ?? false))
                {
                    filter = filter & Builders <mBookings> .Filter.Where(f => f.Suppliers.Contains("," + userdetails.Company_Id + ","));
                }
            }
            if (request.AgentCode != null)
            {
                //filter = filter & Builders<mBookings>.Filter.Where(f => request.AgentCode == f.AgentCode);
                filter = filter & Builders <mBookings> .Filter.Regex(x => x.AgentCode, new BsonRegularExpression(new Regex(request.AgentCode.Trim(), RegexOptions.IgnoreCase)));
            }
            if (request.AgentReference != null)
            {
                filter = filter & Builders <mBookings> .Filter.Where(f => f.CUSTREF.Contains(request.AgentReference));
            }
            if (request.Status != null)
            {
                filter = filter & Builders <mBookings> .Filter.Where(f => f.StatusDesc.Contains(request.Status));

                //filter = filter & Builders<mBookings>.Filter.Regex(x => x.StatusDesc.Contains(request.Status), new BsonRegularExpression(new Regex(request.Status.Trim(), RegexOptions.IgnoreCase)));
            }
            if (request.StartDate != null)
            {
                if (DateTime.TryParseExact(request.StartDate, "yyyy-MM-dd",
                                           CultureInfo.InvariantCulture,
                                           DateTimeStyles.None,
                                           out dateValue))
                {
                    if (OnAndAfter || request.EndDate != null)
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.DEPARTUREDATE >= Convert.ToDateTime(request.StartDate));
                    }
                    else
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.DEPARTUREDATE == Convert.ToDateTime(request.StartDate));
                    }
                }
                else
                {
                    throw new System.ArgumentException(string.Format("StartDate must be in yyyy-MM-dd date format ", "StartDate"));
                }
            }
            if (request.EndDate != null)
            {
                if (DateTime.TryParseExact(request.EndDate, "yyyy-MM-dd",
                                           CultureInfo.InvariantCulture,
                                           DateTimeStyles.None,
                                           out dateValue))
                {
                    if (request.StartDate != null)
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.DEPARTUREDATE <= Convert.ToDateTime(request.EndDate));
                    }
                    else if (OnAndAfter)
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.ARRIVALDATE >= Convert.ToDateTime(request.EndDate));
                    }
                    else
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.ARRIVALDATE == Convert.ToDateTime(request.EndDate));
                    }
                }
                else
                {
                    throw new System.ArgumentException(string.Format("EndDate must be in yyyy-MM-dd date format ", "EndDate"));
                }
            }
            if (request.UpdateDate != null)
            {
                if (DateTime.TryParseExact(request.UpdateDate, "yyyy-MM-dd",
                                           CultureInfo.InvariantCulture,
                                           DateTimeStyles.None,
                                           out dateValue))
                {
                    if (OnAndAfter)
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.MODIDT >= Convert.ToDateTime(request.UpdateDate));
                    }
                    else
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.MODIDT == Convert.ToDateTime(request.UpdateDate));
                    }
                }
                else
                {
                    throw new System.ArgumentException(string.Format("UpdateDate must be in yyyy-MM-dd date format ", "UpdateDate"));
                }
            }

            if (request.GoAheadDate != null)
            {
                DateTime?GoAhdDate = null;
                if (DateTime.TryParseExact(request.GoAheadDate, "yyyy-MM-dd",
                                           CultureInfo.InvariantCulture,
                                           DateTimeStyles.None,
                                           out dateValue))
                {
                    GoAhdDate = dateValue;
                    if (OnAndAfter)
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.BookingGoAheadDT >= GoAhdDate);
                    }
                    else
                    {
                        filter = filter & Builders <mBookings> .Filter.Where(f => f.BookingGoAheadDT == GoAhdDate);
                    }
                }
                else
                {
                    throw new System.ArgumentException(string.Format("Go-Ahead must be in yyyy-MM-dd date format ", "Go-Ahead"));
                }
            }

            var result = await _MongoContext.mBookings.Find(filter).Project(p => new BookingList
            {
                AgentCode          = p.AgentCode,
                Agentontact        = p.AgentContactEmail,
                AgentName          = p.AgentName,
                AgentReference     = p.CUSTREF,
                EndDate            = Convert.ToDateTime(p.ARRIVALDATE.ToString()).ToString("yyyy-MM-dd"),
                BookedDate         = Convert.ToDateTime(p.CreaDT.ToString()).ToString("yyyy-MM-dd"),
                StartDate          = Convert.ToDateTime(p.DEPARTUREDATE.ToString()).ToString("yyyy-MM-dd"),
                UpdateDate         = Convert.ToDateTime(p.MODIDT.ToString()).ToString("yyyy-MM-dd"),
                BookingReference   = p.BookingNumber,
                Duration           = Convert.ToString(p.Duration),
                Status             = p.Status,
                StatusDesc         = p.StatusDesc,
                GoAheadDate        = (p.BookingGoAheadDT == null) ? "" : Convert.ToDateTime(p.BookingGoAheadDT.ToString()).ToString("yyyy-MM-dd"),
                FileHandler        = p.Operator,
                FileHandlerContact = p.OperatorEmail,
                Priority           = p.PRIORITYDesc
            }).ToListAsync();

            result = result.OrderByDescending(p => p.BookingReference).ToList();

            var res = new BookingSearchRes();

            if (result.Count() > 0)
            {
                res.Bookings = result;
            }
            return(res);
        }