Esempio n. 1
0
        public PrefundingAccountData getPrefundingAccountData(ReviewFilter filter)
        {
            if (filter == null)
            {
                return(null);
            }
            try
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                var request = new RestRequest(ResourcePath + "/prefunding-account", Method.POST);

                request.RequestFormat    = DataFormat.Json;
                serializer.MaxJsonLength = int.MaxValue;
                string json = serializer.Serialize(filter);
                request.AddParameter("application/json", json, ParameterType.RequestBody);
                var          response    = RestClient.ExecuteTaskAsync(request);
                RestResponse queryResult = (RestResponse)response.Result;
                bool         valid       = ValidateResponse(queryResult);

                JavaScriptSerializer Serializer = new JavaScriptSerializer();
                Serializer.MaxJsonLength = int.MaxValue;
                PrefundingAccountData data = Serializer.Deserialize <PrefundingAccountData>(queryResult.Content);
                return(data);
            }
            catch (Exception e)
            {
                logger.Error("Unable to retrieve Prefunding Account Data from server.", e);
                return(null);
            }
        }
Esempio n. 2
0
        //TODO: genericrepo voor MongoDB
        //*** GET -------------------------------------------------------------
        public async Task <IEnumerable <Review> > GetAll(ReviewFilter filter = null)
        {
            try
            {
                var result = new List <Review>();
                if (filter == null || filter.FlightId == null && filter.Subject == null && filter.DateOfCreation == null)
                {
                    //var result = await context.Reviews.Aggregate().Lookup<Review, Author, Review>(context.Authors, aut => aut.UserId, d => d.UserId, aut => aut.Author);
                    result = await context.Reviews.Find(FilterDefinition <Review> .Empty).ToListAsync <Review>();
                }
                else
                {
                    result = await context.Reviews.Find(filter.ToFilterDefinition())
                             .SortBy(d => d.DateOfCreation).ThenBy(d => d.Subject)
                             .ToListAsync <Review>();
                }

                foreach (Review review in result)
                {
                    review.Flight = context.Flights.AsQueryable().Where(fl => fl.FlightId == review.FlightId).FirstOrDefault();
                    review.Author = context.Authors.AsQueryable().Where(aut => aut.UserId == review.UserId).FirstOrDefault();
                }

                return(result);
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
Esempio n. 3
0
        public static ProductReviewModelList GetProductReviewModel(ReviewFilter reviewFilter)
        {
            using (var client = new LandauPortalWebAPI())
            {
                var reviews = client.ProductReviews.GetAllByProduct(reviewFilter.Code, reviewFilter.PageNumber, reviewFilter.Size);

                ProductReviewModelList productReviewModelList = new ProductReviewModelList();
                productReviewModelList.List = reviews.Results.Select(s => new ProductReviewModel()
                {
                    Comments  = s.Comments,
                    FirstName = s.FirstName,
                    LastName  = s.LastName,
                    Rating    = s.Rating ?? 0,
                    EntryDate = (DateTimeOffset)s.EntryDate
                }).ToList();

                PaginationModel pagination = new PaginationModel();
                pagination.CurrentPage = reviews.Pagination.CurrentPage ?? 0;
                pagination.PageCount   = reviews.Pagination.TotalPages ?? 0;
                pagination.PageSize    = reviews.Pagination.PageSize ?? 0;
                pagination.TotalCount  = reviews.Pagination.TotalCount ?? 0;

                productReviewModelList.Pagination = pagination;
                productReviewModelList.Average    = reviews.Average ?? 0;
                return(productReviewModelList);
            }
        }
Esempio n. 4
0
        public async Task <IActionResult> Index([FromQuery] ReviewFilter reviewFilter)
        {
            var filter = new ReviewFilter();

            {
                filter.Subject        = reviewFilter.Subject;
                filter.FlightId       = reviewFilter.FlightId;
                filter.DateOfCreation = reviewFilter.DateOfCreation;
            }
            return(Ok(await repo.GetAll(filter)));
        }
Esempio n. 5
0
        public async Task <IActionResult> Index([FromQuery(Name = "ReviewFilter")] ReviewFilter reviewFilter = null)
        {
            var filter = new ReviewFilter()
            {
                Subject        = reviewFilter.Subject,
                RestaurantId   = reviewFilter.RestaurantId,
                DateOfCreation = reviewFilter.DateOfCreation
            };

            return(Ok(await reviewRepo.GetAll(filter)));
        }
Esempio n. 6
0
        public List <SettlementEvolutionChartData> getSettlementEvolutionChartDatas(ReviewFilter filter)
        {
            if (filter == null)
            {
                return(null);
            }
            //Kernel.Util.FileUtil.buildTimeMeasurementFile();
            try
            {
                //Console.Out.WriteLine(" ---------------- Evolution Chart Measures of " + DateTime.Now + " -------------");
                //Console.Out.WriteLine();
                //DateTime begin = DateTime.Now;
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                var request = new RestRequest(ResourcePath + "/settlement-evolution-chart", Method.POST);
                request.RequestFormat    = DataFormat.Json;
                serializer.MaxJsonLength = int.MaxValue;
                string json = serializer.Serialize(filter);
                request.AddParameter("application/json", json, ParameterType.RequestBody);

                //DateTime chartrequest = DateTime.Now;

                var          response    = RestClient.ExecuteTaskAsync(request);
                RestResponse queryResult = (RestResponse)response.Result;
                bool         valid       = ValidateResponse(queryResult);

                //Console.Out.WriteLine("                 Chart data request " + (DateTime.Now - chartrequest));
                //Console.Out.WriteLine();
                JavaScriptSerializer Serializer = new JavaScriptSerializer();
                Serializer.MaxJsonLength = int.MaxValue;

                //DateTime chartSerialisation = DateTime.Now;
                List <SettlementEvolutionChartData> datas = Serializer.Deserialize <List <SettlementEvolutionChartData> >(queryResult.Content);

                //Console.Out.WriteLine("             Chart data serialization " + (DateTime.Now - chartSerialisation));

                //Console.Out.WriteLine();
                //Console.Out.WriteLine();

                //Console.Out.WriteLine("             Total Chart duration " + (DateTime.Now - begin));
                //Console.Out.WriteLine();
                //Console.Out.WriteLine(" --------------- End Evolution Chart -------------");
                //Console.Out.WriteLine();
                //Console.Out.WriteLine();
                //Kernel.Util.FileUtil.closeTimeMeasurementFile();

                return(datas);
            }
            catch (Exception e)
            {
                logger.Error("Unable to retrieve Settlement Evolution Datas from server.", e);
                return(null);
            }
        }
        public void FillFilter(ReviewFilter filter)
        {
            if (filter == null)
            {
                filter = new ReviewFilter();
            }

            /*if (this.Scheme != null)
             * {
             *  filter.schemeIdOids.Add(this.Scheme.oid.Value);
             * }
             * filter.startDateTime = this.StartDatePicker.SelectedDate;
             * filter.endDateTime = this.EndDatePicker.SelectedDate;*/
        }
Esempio n. 8
0
        public ActionResult ReviewsPagination(string productId, int pageNumber)
        {
            var model = new DetailModel();

            ReviewFilter reviewFilter = new ReviewFilter();

            reviewFilter.Code       = productId;
            reviewFilter.PageNumber = pageNumber;
            reviewFilter.Size       = PAGE_REVIEW_SIZE;

            model.ProductReviews = DetailManager.GetProductReviewModel(reviewFilter);

            return(PartialView("~/Views/Partials/Detail/_ReviewsPaginationPartial.cshtml", model));
        }
Esempio n. 9
0
        public List <AgeingBalanceData> getAgeingBalanceDatas(ReviewFilter filter)
        {
            if (filter == null)
            {
                return(null);
            }

            //Kernel.Util.FileUtil.buildTimeMeasurementFile();
            //Console.Out.WriteLine(" ---------------- Ageing "+( filter.details ?"Details" : "")+" Measures of "+DateTime.Now +" -------------");
            //DateTime begin = DateTime.Now;
            try
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                var request = new RestRequest(ResourcePath + "/ageing-balance", Method.POST);
                request.RequestFormat    = DataFormat.Json;
                serializer.MaxJsonLength = int.MaxValue;
                string json = serializer.Serialize(filter);
                request.AddParameter("application/json", json, ParameterType.RequestBody);
                var response = RestClient.ExecuteTaskAsync(request);

                //DateTime requesttime = DateTime.Now;
                RestResponse queryResult = (RestResponse)response.Result;
                bool         valid       = ValidateResponse(queryResult);
                //Console.Out.WriteLine("             Ageing "+( filter.details ?"Details" : "")+" server quering duration " + (DateTime.Now - requesttime));
                //Console.Out.WriteLine();
                JavaScriptSerializer Serializer = new JavaScriptSerializer();
                Serializer.MaxJsonLength = int.MaxValue;

                //DateTime serialization = DateTime.Now;
                List <AgeingBalanceData> datas = Serializer.Deserialize <List <AgeingBalanceData> >(queryResult.Content);
                //Console.Out.WriteLine("             Ageing "+( filter.details ?"Details" : "")+" serialisation duration " + (DateTime.Now - serialization));
                //Console.Out.WriteLine();
                //Console.Out.WriteLine("             Total Duration Ageing "+( filter.details ?"Details " : " ")+ (DateTime.Now - begin));
                //Console.Out.WriteLine();
                //Console.Out.WriteLine();


                //Console.Out.WriteLine(" ------------End Ageing "+( filter.details ?"Details" : "")+" Measure -------------");
                //Console.Out.WriteLine();
                //Console.Out.WriteLine();
                //Kernel.Util.FileUtil.closeTimeMeasurementFile();
                return(datas);
            }
            catch (Exception e)
            {
                logger.Error("Unable to retrieve Ageing Balance Datas from server.", e);
                return(null);
            }
        }
Esempio n. 10
0
 public void FillFilter(ReviewFilter filter)
 {
     if (filter == null)
     {
         filter = new ReviewFilter();
     }
     foreach (BfcItem scheme in this.Schemes)
     {
         filter.schemeIdOids.Add(scheme.oid.Value);
     }
     foreach (BfcItem pml in this.Pmls)
     {
         filter.pmlIdOids.Add(pml.oid.Value);
     }
 }
Esempio n. 11
0
        public async Task <IActionResult> Index(ReviewFilter filter, int page)
        {
            var seller = await HttpContext.GetMemberAsync();

            filter.SellerId = seller.Id;

            var reviews = await _reviewService.GetQuery(filter).ToPageableAsync(page, _appSettings.PageDefaultSize);

            var model = new ReviewListModel
            {
                Filter = filter
            };

            await _appService.PrepareModelAsync(model, reviews);

            return(View(model));
        }
Esempio n. 12
0
 public void FillFilter(ReviewFilter filter)
 {
     if (filter == null)
     {
         filter = new ReviewFilter();
     }
     foreach (BfcItem scheme in this.Schemes)
     {
         filter.schemeIdOids.Add(scheme.oid.Value);
     }
     foreach (BfcItem platform in this.Platforms)
     {
         filter.platformIdOids.Add(platform.oid.Value);
     }
     filter.startDateTime = this.StartDatePicker.SelectedDate;
     filter.endDateTime   = this.EndDatePicker.SelectedDate;
 }
 private void UpdateSettlementEvolutionChart(ReviewFilter filter = null)
 {
     try
     {
         getReviewBrowser().Form.SettlementEvolutionForm.IsChartBussy = true;
         if (filter == null)
         {
             filter = getReviewBrowser().Form.GetFilter();
         }
         List <SettlementEvolutionChartData> datas = getReviewService().getSettlementEvolutionChartDatas(filter);
         getReviewBrowser().Form.SettlementEvolutionForm.DisplayChart(datas);
         getReviewBrowser().Form.SettlementEvolutionForm.IsChartBussy = false;
     }
     catch (Exception) {
         getReviewBrowser().Form.SettlementEvolutionForm.IsChartBussy = false;
     }
 }
 private void AgeingBalanceSearchDetail()
 {
     try
     {
         getReviewBrowser().Form.AgeingBalanceForm.IsDetailGridBussy = true;
         ReviewFilter fil    = getReviewBrowser().Form.GetFilter();
         ReviewFilter filter = new ReviewFilter();
         filter.details          = true;
         filter.memberBankIdOids = fil.memberBankIdOids;
         filter.schemeIdOids     = fil.schemeIdOids;
         List <AgeingBalanceData> datas = getReviewService().getAgeingBalanceDatas(filter);
         getReviewBrowser().Form.DisplayDetails(datas);
         getReviewBrowser().Form.AgeingBalanceForm.IsDetailGridBussy = false;
     }
     catch (Exception)
     {
         getReviewBrowser().Form.AgeingBalanceForm.IsDetailGridBussy = false;
     }
 }
Esempio n. 15
0
        private DetailModel GetDetailModelFromProduct(String productId, BreadcrumbModel bc, bool buildNavigation = true)
        {
            DetailModel model;

            if (!String.IsNullOrEmpty(productId))
            {
                model = DetailManager.GetModel(this.CurrentBrand, productId);

                model.Breadcrumb = bc;

                //search for default category size containing default color
                model.ProductDetail.DefaultCategorySize = model.ColorsAndSizes.ProductCategorySizes.Count > 0 ? model.ColorsAndSizes.ProductCategorySizes[0] : null;
                foreach (var aSizeCategory in model.ColorsAndSizes.AvailableColorsPerSizeCategory)
                {
                    var match = aSizeCategory.Value.Find(c => c.ColorCode == model.ProductDetail.DefaultColorCode);

                    if (match != null)
                    {
                        model.ProductDetail.DefaultCategorySize = aSizeCategory.Key;
                        break;
                    }
                }

                ReviewFilter reviewFilter = new ReviewFilter();
                reviewFilter.Code       = productId;
                reviewFilter.PageNumber = 1;
                reviewFilter.Size       = PAGE_REVIEW_SIZE;
                model.ProductReviews    = DetailManager.GetProductReviewModel(reviewFilter);

                if (buildNavigation)
                {
                    BuildProductsNavigation(productId, bc, model);
                }
            }
            else
            {
                model = new DetailModel();
            }

            return(model);
        }
Esempio n. 16
0
        public ReviewFilter GetFilter()
        {
            ReviewFilter filter = new ReviewFilter();

            foreach (BfcItem bank in this.MemberBanks)
            {
                filter.memberBankIdOids.Add(bank.oid.Value);
            }
            if (this.TabControl.SelectedIndex == 0)
            {
                this.PrefundingAccountForm.FillFilter(filter);
            }
            else if (this.TabControl.SelectedIndex == 1)
            {
                this.SettlementEvolutionForm.FillFilter(filter);
            }
            else if (this.TabControl.SelectedIndex == 2)
            {
                this.AgeingBalanceForm.FillFilter(filter);
            }
            return(filter);
        }
Esempio n. 17
0
        public async Task <IList <Review> > QueryReview(ReviewFilter filter)
        {
            var requestIDs = new DataTable();

            requestIDs.Columns.Add("Val");

            if (filter.RequestIDs?.Any() ?? false)
            {
                foreach (var id in filter.RequestIDs)
                {
                    requestIDs.Rows.Add(id);
                }
            }

            var param = new DynamicParameters();

            param.Add("RequestIDs", requestIDs.AsTableValuedParameter("dbo.BigIntType"));

            var mapper = new ReviewMapper();

            return((await SqlMapper.QueryAsync(_unitOfWork.Connection,
                                               "QueryReview",
                                               new[]
            {
                typeof(Review),
                typeof(ReviewLineItem)
            },
                                               obj =>
            {
                var review = obj[0] as Review;
                var lineItem = obj[1] as ReviewLineItem;

                return mapper.Map(review, lineItem);
            },
                                               param,
                                               splitOn: "ID,LineItemID",
                                               commandType: CommandType.StoredProcedure,
                                               transaction: _unitOfWork.Transaction)).Distinct().ToList());
        }
Esempio n. 18
0
        //** GET ---------------------------
        public async Task <IEnumerable <Review> > GetAll(ReviewFilter filter = null)
        {
            try
            {
                if (filter == null || filter.RestaurantId == null && filter.Subject == null &&
                    filter.DateOfCreation == null)
                {
                    var result = await context.Reviews.Find(FilterDefinition <Review> .Empty).ToListAsync <Review>();

                    return(result);
                }
                else
                {
                    return(await context.Reviews.Find(filter.ToFilterDefinition())
                           .SortBy(d => d.DateOfCreation).ThenBy(d => d.Subject)
                           .ToListAsync <Review>());
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
Esempio n. 19
0
        public async Task <IActionResult> PrepareProductDetailsView(Product product, int page)
        {
            var seller = await HttpContext.GetSellerAsync();

            var customer = await HttpContext.GetMemberAsync();

            var model = new ProductModel();
            await _appService.PrepareModelAsync(model, product);

            var reviewFilter = new ReviewFilter
            {
                Approved  = true,
                SellerId  = seller.Id,
                ProductId = product.Id
            };
            var reviewEvaluation = await _reviewService.EvaluateAsync(reviewFilter);

            model.ReviewListModel = new ReviewListModel
            {
                Filter     = reviewFilter,
                Evaluation = reviewEvaluation
            };
            model.ReviewEvaluation = reviewEvaluation;

            if (customer != null)
            {
                model.IsAddedToCart = await _cartService.GetQuery(new CartFilter { CustomerId = customer.Id, SellerId = seller.Id, ProductId = product.Id, Type = CartType.Cart }).AnyAsync();

                model.IsAddedToWishlist = await _cartService.GetQuery(new CartFilter { CustomerId = customer.Id, SellerId = seller.Id, ProductId = product.Id, Type = CartType.Wishlist }).AnyAsync();
            }

            var reviews = await _reviewService.GetQuery(reviewFilter).ToPageableAsync(page, _appSettings.PageDefaultSize);

            await _appService.PrepareModelAsync(model.ReviewListModel, reviews);

            return(View("ProductDetails", model));
        }
        public override OperationState Search()
        {
            getReviewBrowser().Form.IsBussy = true;
            Kernel.Application.Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background,
                                                                          new Action(() =>
            {
                try
                {
                    ReviewFilter filter = getReviewBrowser().Form.GetFilter();
                    if (getReviewBrowser().Form.TabControl.SelectedIndex == 0)
                    {
                        PrefundingAccountData data = getReviewService().getPrefundingAccountData(filter);
                        getReviewBrowser().Form.Display(data);
                    }
                    else if (getReviewBrowser().Form.TabControl.SelectedIndex == 1)
                    {
                        List <SettlementEvolutionData> datas = getReviewService().getSettlementEvolutionDatas(filter);
                        getReviewBrowser().Form.Display(datas);
                        UpdateSettlementEvolutionChart(filter);
                    }
                    else if (getReviewBrowser().Form.TabControl.SelectedIndex == 2)
                    {
                        List <AgeingBalanceData> datas = getReviewService().getAgeingBalanceDatas(filter);
                        getReviewBrowser().Form.DisplayTotal(datas);
                    }
                    getReviewBrowser().Form.IsBussy = false;
                }
                catch (Exception)
                {
                    getReviewBrowser().Form.IsBussy = false;
                }
                finally { getReviewBrowser().Form.IsBussy = false; }
            }));

            return(OperationState.CONTINUE);
        }
 public ReviewsController(ReviewFilter businessware)
 {
     _businessware = businessware;
 }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public AvailabilityRQ toAvailabilityRQ()
        {
            try
            {
                AvailabilityRQ availabilityRQ = new AvailabilityRQ();
                availabilityRQ.language = this.language;
                availabilityRQ.stay     = new Stay(checkIn, checkOut, shiftDays, true);

                if (rooms != null && rooms.Count > 0)
                {
                    availabilityRQ.occupancies = new List <Occupancy>();
                    for (int i = 0; i < rooms.Count; i++)
                    {
                        Occupancy occupancy = new Occupancy();
                        occupancy.adults   = rooms[i].adults;
                        occupancy.children = rooms[i].children;
                        occupancy.rooms    = rooms[i].numberOfRooms;

                        if (rooms[i].details != null && rooms[i].details.Count > 0)
                        {
                            occupancy.paxes = new List <Pax>();
                            Pax[] paxes = new Pax[rooms[i].details.Count];
                            for (int d = 0; d < rooms[i].details.Count; d++)
                            {
                                Pax pax = new Pax();
                                pax.type    = (rooms[i].details[d].getType() == RoomDetail.GuestType.ADULT) ? SimpleTypes.HotelbedsCustomerType.AD : SimpleTypes.HotelbedsCustomerType.CH;
                                pax.age     = rooms[i].details[d].getAge();
                                pax.name    = rooms[i].details[d].getName();
                                pax.surname = rooms[i].details[d].getSurname();
                                paxes[d]    = pax;
                            }
                            occupancy.paxes.AddRange(paxes);
                        }
                        availabilityRQ.occupancies.Add(occupancy);
                    }
                }
                // Linea 224 Availability.java
                if (withinThis != null)
                {
                    GeoLocation geolocation = new GeoLocation();
                    geolocation.unit = UnitMeasure.UnitMeasureType.km;
                    if (withinThis.GetType() == typeof(Circle))
                    {
                        Circle circle = (Circle)withinThis;
                        geolocation.latitude  = circle.latitude;
                        geolocation.longitude = circle.longitude;
                        geolocation.radius    = circle.radiusInKilometers;
                    }
                    else if (withinThis.GetType() == typeof(Square))
                    {
                        Square square = (Square)withinThis;
                        geolocation.latitude           = square.northEastLatitude;
                        geolocation.longitude          = square.northEastLongitude;
                        geolocation.secondaryLatitude  = square.southWestLatitude;
                        geolocation.secondaryLongitude = square.southWestLongitude;
                    }
                    availabilityRQ.geolocation = geolocation;
                }

                if (!String.IsNullOrEmpty(destination))
                {
                    Destination dest = new Destination();
                    dest.code = destination;
                    if (zone != null)
                    {
                        dest.zone = zone.Value;
                    }
                    availabilityRQ.destination = dest;
                }

                if (matchingKeywords != null && matchingKeywords.Count > 0)
                {
                    availabilityRQ.keywords = new KeywordsFilter(matchingKeywords.ToList <int>(), keywordsMatcher.Equals(Matcher.ALL));// matchingKeywords.ToList();
                }

                if (includeHotels != null && includeHotels.Count > 0 && excludeHotels != null && excludeHotels.Count > 0)
                {
                    foreach (int e in excludeHotels)
                    {
                        includeHotels.RemoveAll(i => i == e);
                    }
                }

                if (includeHotels != null && includeHotels.Count > 0)
                {
                    HotelsFilter hotelsFilter = new HotelsFilter();
                    hotelsFilter.included = true;
                    hotelsFilter.hotel    = includeHotels;
                    hotelsFilter.type     = (useGiataCodes) ? SimpleTypes.HotelCodeType.GIATA : SimpleTypes.HotelCodeType.HOTELBEDS;
                    availabilityRQ.hotels = hotelsFilter;
                }
                else if (excludeHotels != null && excludeHotels.Count > 0)
                {
                    HotelsFilter hotelsFilter = new HotelsFilter();
                    hotelsFilter.included = false;
                    hotelsFilter.hotel    = excludeHotels;
                    hotelsFilter.type     = (useGiataCodes) ? SimpleTypes.HotelCodeType.GIATA : SimpleTypes.HotelCodeType.HOTELBEDS;
                    availabilityRQ.hotels = hotelsFilter;
                }

                if (includeBoards != null && includeBoards.Count > 0)
                {
                    Boards boardFilter = new Boards();
                    boardFilter.included  = true;
                    boardFilter.board     = includeBoards;
                    availabilityRQ.boards = boardFilter;
                }

                else if (excludeBoards != null && excludeBoards.Count > 0)
                {
                    Boards boardFilter = new Boards();
                    boardFilter.included  = false;
                    boardFilter.board     = excludeBoards;
                    availabilityRQ.boards = boardFilter;
                }


                if (includeRoomCodes != null && includeRoomCodes.Count > 0)
                {
                    Rooms roomFilter = new Rooms();
                    roomFilter.included  = true;
                    roomFilter.room      = includeRoomCodes;
                    availabilityRQ.rooms = roomFilter;
                }
                else if (excludeRoomCodes != null && excludeRoomCodes.Count > 0)
                {
                    Rooms roomFilter = new Rooms();
                    roomFilter.included  = false;
                    roomFilter.room      = excludeRoomCodes;
                    availabilityRQ.rooms = roomFilter;
                }

                availabilityRQ.dailyRate = dailyRate;

                if (ofTypes != null && ofTypes.Count > 0)
                {
                    availabilityRQ.accommodations = new List <SimpleTypes.AccommodationType>();
                    availabilityRQ.accommodations.AddRange(ofTypes);
                }

                List <ReviewFilter> reviewsFilter = new List <ReviewFilter>();
                if (hbScoreHigherThan != null || hbScoreLowerThan != null || numberOfHBReviewsHigherThan != null)
                {
                    ReviewFilter reviewFilter = new ReviewFilter();
                    if (hbScoreLowerThan.HasValue)
                    {
                        reviewFilter.maxRate = hbScoreLowerThan.Value;
                    }
                    if (hbScoreHigherThan.HasValue)
                    {
                        reviewFilter.minRate = hbScoreHigherThan.Value;
                    }
                    if (numberOfHBReviewsHigherThan.HasValue)
                    {
                        reviewFilter.minReviewCount = numberOfHBReviewsHigherThan.Value;
                    }
                    reviewFilter.type = SimpleTypes.ReviewsType.HOTELBEDS;
                    reviewsFilter.Add(reviewFilter);
                }

                if (tripAdvisorScoreHigherThan != null || tripAdvisorScoreLowerThan != null || numberOfTripAdvisorReviewsHigherThan != null)
                {
                    ReviewFilter reviewFilter = new ReviewFilter();
                    if (tripAdvisorScoreLowerThan.HasValue)
                    {
                        reviewFilter.maxRate = tripAdvisorScoreLowerThan.Value;
                    }
                    if (tripAdvisorScoreHigherThan.HasValue)
                    {
                        reviewFilter.minRate = tripAdvisorScoreHigherThan.Value;
                    }
                    if (numberOfTripAdvisorReviewsHigherThan.HasValue)
                    {
                        reviewFilter.minReviewCount = numberOfTripAdvisorReviewsHigherThan.Value;
                    }
                    reviewFilter.type = SimpleTypes.ReviewsType.TRIPDAVISOR;
                    reviewsFilter.Add(reviewFilter);
                }

                if (reviewsFilter.Count > 1)
                {
                    availabilityRQ.reviews = reviewsFilter;
                }

                if (limitHotelsTo != null || maxCategory != null || minCategory != null || limitRoomsPerHotelTo != null || limitRatesPerRoomTo != null || ratesLowerThan != null ||
                    ratesHigherThan != null || packaging != null || payed != null)
                {
                    Filter filter = new Filter();
                    if (maxCategory.HasValue)
                    {
                        filter.maxCategory = maxCategory.Value;
                    }
                    if (minCategory.HasValue)
                    {
                        filter.minCategory = minCategory.Value;
                    }
                    if (packaging.HasValue)
                    {
                        filter.packaging = packaging.Value;
                    }
                    if (limitHotelsTo.HasValue)
                    {
                        filter.maxHotels = limitHotelsTo.Value;
                    }
                    if (limitRoomsPerHotelTo.HasValue)
                    {
                        filter.maxRooms = limitRoomsPerHotelTo.Value;
                    }
                    if (limitRatesPerRoomTo.HasValue)
                    {
                        filter.maxRatesPerRoom = limitRatesPerRoomTo.Value;
                    }
                    if (ratesLowerThan.HasValue)
                    {
                        filter.maxRate = ratesLowerThan.Value;
                    }
                    if (ratesHigherThan.HasValue)
                    {
                        filter.minRate = ratesHigherThan.Value;
                    }
                    if (payed.HasValue)
                    {
                        switch (payed.Value)
                        {
                        case Pay.AT_HOTEL:
                            filter.paymentType = SimpleTypes.ShowDirectPaymentType.AT_HOTEL;
                            break;

                        case Pay.AT_WEB:
                            filter.paymentType = SimpleTypes.ShowDirectPaymentType.AT_WEB;
                            break;

                        case Pay.INDIFFERENT:
                            filter.paymentType = SimpleTypes.ShowDirectPaymentType.BOTH;
                            break;
                        }
                    }
                    availabilityRQ.filter = filter;
                }

                availabilityRQ.Validate();

                return(availabilityRQ);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Esempio n. 23
0
 public async Task <ActionResult <ListResponse <ReviewResponse> > > GetReviewsListAsync([FromQuery] ReviewFilter review, [FromQuery] ListOptions options, [FromServices] ListQuery <ReviewResponse, ReviewFilter> query) =>
 await query.RunAsync(review, options);