[Route("GetProductSRPHotelDetails")]//GetProductSRPHotelDetails public async Task <ProductSRPHotelGetRes> GetProductSRPHotelDetails([FromBody] ProductSRPHotelGetReq request) { var response = new ProductSRPHotelGetRes(); try { if (request != null) { response = await _productRepository.GetProductSRPHotelDetails(request); if (response == null) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "An error."; } } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Product 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 <OpsBookingSummaryGetRes> GetOpsBookingSummary(ProductSRPHotelGetReq productSearchReq, string ticket) { OpsBookingSummaryGetRes productHotelGetRes = new OpsBookingSummaryGetRes(); productHotelGetRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceOperations:GetOpsBookingSummary"), productSearchReq, typeof(OpsBookingSummaryGetRes), ticket); return(productHotelGetRes); }
public async Task <ProductSRPHotelGetRes> GetProductSRPHotelDetails(ProductSRPHotelGetReq productSRPSearchReq, string ticket) { ProductSRPHotelGetRes productSRPHotelGetRes = new ProductSRPHotelGetRes(); productSRPHotelGetRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceProduct:GetProductSRPHotelDetails"), productSRPSearchReq, typeof(ProductSRPHotelGetRes), ticket); return(productSRPHotelGetRes); }
public async Task <ProductSRPHotelGetRes> GetProductSRPHotelDetails(ProductSRPHotelGetReq request) { ProductSRPHotelGetRes response = new ProductSRPHotelGetRes() { ProductSRPRouteInfo = new List <ProductSRPRouteInfo>(), QRFID = request.QRFID, ResponseStatus = new ResponseStatus() }; try { var resQuote = await _MongoContext.mQuote.FindAsync(a => a.QRFID == request.QRFID).Result.FirstOrDefaultAsync(); if (resQuote != null) { var accomres = new mPosition(); var position = _MongoContext.mPosition.AsQueryable().Where(x => x.QRFID == request.QRFID && x.ProductType == "Hotel" && x.IsDeleted == false).ToList(); if (position != null && position.Count > 0) { if (resQuote.RoutingInfo != null && resQuote.RoutingInfo.Count > 0) { var prodidlist = position.Select(a => a.ProductID).ToList(); FilterDefinition <mProducts_Lite> filter; filter = Builders <mProducts_Lite> .Filter.Empty; filter = filter & Builders <mProducts_Lite> .Filter.Where(a => prodidlist.Contains(a.VoyagerProduct_Id)); var resultProdSRP = await _MongoContext.mProducts_Lite.Find(filter).ToListAsync(); int day = 0; int prevnight = 0; foreach (var Route in resQuote.RoutingInfo.Where(a => a.Nights > 0)) { if (day == 0) { day = 1; } else { day = prevnight + day; } response.ProductSRPRouteInfo.Add(new ProductSRPRouteInfo { DayNo = day, Day = "Day " + day.ToString(), Duration = Route.Nights, RoutingDaysID = resQuote.RoutingDays.Where(a => a.Days == "Day " + day.ToString()).FirstOrDefault().RoutingDaysID, FromCityId = Route.FromCityID, FromCity = Route.FromCityName, ToCityId = Route.ToCityID, ToCity = Route.ToCityName, }); prevnight = Route.Nights; } foreach (var item in response.ProductSRPRouteInfo) { accomres = position.Where(a => a.RoutingDaysID == item.RoutingDaysID).FirstOrDefault(); item.ProductSRPDetails = resultProdSRP.Where(a => a.VoyagerProduct_Id == accomres.ProductID).Select(a => new ProductSRPDetails { Address = a.Address, BdgPriceCategory = a.BdgPriceCategory, Chain = a.Chain, CityName = a.CityName, CountryName = a.CountryName, DefaultSupplier = a.DefaultSupplier, HotelImageURL = a.HotelImageURL, HotelType = a.HotelType, Location = a.Location, PostCode = a.PostCode, ProdDesc = a.ProdDesc, ProdName = a.ProdName, ProductCode = a.ProductCode, ProductType = a.ProductType, StarRating = a.StarRating, Street = a.Street, VoyagerProduct_Id = a.VoyagerProduct_Id, ProductType_Id = a.ProductType_Id, Rooms = a.Rooms }).FirstOrDefault(); if (accomres != null) { item.ProdId = accomres.ProductID; } } response.ResponseStatus.Status = "Success"; } else { response.ResponseStatus.ErrorMessage = "RoutingInfo not exists in mQuote."; response.ResponseStatus.Status = "Error"; } } else { response.ResponseStatus.ErrorMessage = "QRFID not exists in mPosition."; response.ResponseStatus.Status = "Error"; } } else { response.ResponseStatus.ErrorMessage = "QRFID not exists in mQuote."; response.ResponseStatus.Status = "Error"; } } catch (Exception) { throw; } return(response); }
public IActionResult GetUsersByRole(string SalesPerson, string CostingOfficer, string ProdAccountant, string FileHandler, string QRFID, string ModuleName, string BookingNumber) { try { UserDetailsViewModel model = new UserDetailsViewModel(); UserByRoleGetRes response = new UserByRoleGetRes(); UserByRoleGetReq request = new UserByRoleGetReq(); request.RoleName = new List <string>() { "Sales Officer", "Costing Officer", "Product Accountant", "Groups", "Operations_Management" }; response = loginProviders.GetUsersByRole(request, token).Result; model.SalesOfficerList = response.Users.Where(a => a.UserRole == "Sales Officer").ToList(); model.CostingOfficerList = response.Users.Where(a => a.UserRole == "Costing Officer").ToList(); model.ProductAccountantList = response.Users.Where(a => a.UserRole == "Product Accountant").ToList(); //model.FileHandlerList = response.Users.Where(a => a.UserRole == "Groups" || a.UserRole == "Operations_Management").Distinct().ToList(); //model.FileHandlerList.ForEach(a => { a.UserRole = ""; a.UserRoleId = ""; }); //model.FileHandlerList = model.FileHandlerList.Distinct().ToList(); var FileHandlerList = response.Users.Where(a => a.UserRole == "Groups" || a.UserRole == "Operations_Management").Select(a => a.Email).Distinct().ToList(); FileHandlerList.ForEach(a => model.FileHandlerList.Add(new UserDetails() { Email = a })); model.SalesOfficer = SalesPerson; model.CostingOfficer = CostingOfficer; model.ProductAccountant = ProdAccountant; model.FileHandler = FileHandler; CompanyOfficerGetRes officerGetRes = new CompanyOfficerGetRes(); CompanyOfficerGetReq officerGetReq = new CompanyOfficerGetReq(); if (ModuleName == "ops") { ProductSRPHotelGetReq BookingReq = new ProductSRPHotelGetReq() { QRFID = BookingNumber }; OpsBookingSummaryGetRes BookingRes = operationsProviders.GetOpsBookingSummary(BookingReq, token).Result; if (BookingRes != null) { model.ContactPersonID = BookingRes.OpsBookingSummaryDetails.ContactId; model.EmailAddress = BookingRes.OpsBookingSummaryDetails.ContactEmail; model.MobileNo = BookingRes.OpsBookingSummaryDetails.ContactTel; officerGetReq.CompanyId = BookingRes.OpsBookingSummaryDetails.AgentId; } } else { NewQuoteViewModel quoteModel = new NewQuoteViewModel(); quoteModel.QRFID = QRFID; cOCommonLibrary.GetCOTourInfoHeader(ref quoteModel, token); model.ContactPersonID = quoteModel.COHeaderViewModel.ContactPersonID; model.EmailAddress = quoteModel.COHeaderViewModel.EmailAddress; model.MobileNo = quoteModel.COHeaderViewModel.MobileNo; officerGetReq.CompanyId = quoteModel.COHeaderViewModel.AgentID; } officerGetReq.UserRole = ""; officerGetRes = agentProviders.GetCompanyContacts(officerGetReq, token).Result; model.ContactPersonList = officerGetRes.ContactDetails; model.ContactPersonList.ForEach(a => a.FIRSTNAME = a.CommonTitle + " " + a.FIRSTNAME + " " + a.LastNAME); return(PartialView("_ChangeUserForQuote", model)); } catch (Exception ex) { return(View()); } }