예제 #1
0
        [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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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());
            }
        }