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 })); }
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); }
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); }
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); }
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); }