Esempio n. 1
0
        public async Task LexicalaClient_AdvancedSearch_Sample_NotGreaterThanZero_NotInQueryString()
        {
            string response = await LoadResponseFromFile("Search_empty.json");

            _handlerMock.Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(),
                                                 ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(SetupOkResponseMessage(response));

            var searchRequest = new AdvancedSearchRequest
            {
                Language   = "xx",
                SearchText = "text",
                Sample     = 0
            };

            // ACT
            await _client.AdvancedSearchAsync(searchRequest);

            // ASSERT
            _handlerMock.Protected().Verify("SendAsync", Times.Once(),
                                            ItExpr.Is <HttpRequestMessage>(req =>
                                                                           req.RequestUri.ToString() == "http://www.tempuri.org/search?language=xx&text=text&source=global"
                                                                           ), ItExpr.IsAny <CancellationToken>());
        }
        private dynamic ComboInOperator(AdvancedSearchRequest item)
        {
            var          eo  = new ExpandoObject();
            OperatorName op  = (OperatorName)item.Operator.OperatorType;
            var          lst = new List <string>();

            try
            {
                JArray array = (JArray)item.Value;
                foreach (var ar in array)
                {
                    lst.Add(ar.Value <string>("value"));
                }
            }
            catch (Exception)
            {
                var obj = (JObject)item.Value;
                lst.Add(obj.Value <string>("value"));
            }


            eo.TryAdd <string, object>($"{formatQueryParameter(item.Attribute.AttributeName)}", lst);
            return(new
            {
                sql = $"{_prefix}[{item.Attribute.AttributeName}] in @{formatQueryParameter(item.Attribute.AttributeName)}",
                value = eo
            });
        }
        public void Search_ByExternalReference_Success()
        {
            PaymentCreateRequest request = BuildCreateRequest(true, "approved");
            Payment createdPayment       = client.Create(request);

            Thread.Sleep(3000);

            var searchRequest = new AdvancedSearchRequest
            {
                Limit     = 1,
                Offset    = 0,
                Sort      = "date_created",
                Criteria  = "desc",
                Range     = "date_created",
                BeginDate = DateTime.Now.Date,
                EndDate   = DateTime.Now.AddDays(1).AddMilliseconds(-1),
                Filters   = new Dictionary <string, object>
                {
                    ["external_reference"] = createdPayment.ExternalReference,
                },
            };
            ResultsResourcesPage <Payment> results = client.Search(searchRequest);

            Assert.NotNull(results);
            Assert.NotNull(results.Paging);
            Assert.Equal(1, results.Paging.Total);
            Assert.NotNull(results.Results);
            Assert.Equal(createdPayment.Id, results.Results.First().Id);
        }
        public SearchResponse AdvancedSearch(AdvancedSearchRequest request)
        {
            PublicServiceDAO publicDAO    = new PublicServiceDAO();
            List <apartment> searchResult = publicDAO.AdvancedSearch(request.date_from, request.date_to, request.no_king_beds, request.no_single_beds, request.no_extra_beds,
                                                                     request.pet_friendly, request.internet, request.air_conditioning, request.tv,
                                                                     request.kitchen, request.class_stars, request.balcony, request.accessible);

            return(new SearchResponse(searchResult.ToArray()));
        }
        private dynamic StringLikeOperatorStartWith(AdvancedSearchRequest item)
        {
            var          eo = new ExpandoObject();
            OperatorName op = (OperatorName)item.Operator.OperatorType;

            eo.TryAdd <string, object>($"{formatQueryParameter(item.Attribute.AttributeName)}", $"{item.Value}%");
            return(new
            {
                sql = $"{_prefix}[{item.Attribute.AttributeName}] LIKE @{formatQueryParameter(item.Attribute.AttributeName)}",
                value = eo
            });
        }
        private dynamic DateTimeNotEqualsOperator(AdvancedSearchRequest item)
        {
            var          eo = new ExpandoObject();
            OperatorName op = (OperatorName)item.Operator.OperatorType;

            eo.TryAdd <string, object>($"{formatQueryParameter(item.Attribute.AttributeName)}", item.Value);
            return(new
            {
                sql = $"{_prefix}[{item.Attribute.AttributeName}] <> @{formatQueryParameter(item.Attribute.AttributeName)}",
                value = eo
            });
        }
        private dynamic RadioEqualsOperator(AdvancedSearchRequest item)
        {
            var          eo   = new ExpandoObject();
            OperatorName op   = (OperatorName)item.Operator.OperatorType;
            var          data = (JObject)item.Value;

            eo.TryAdd <string, object>($"{formatQueryParameter(item.Attribute.AttributeName)}", data.Value <string>("value"));
            return(new
            {
                sql = $"{_prefix}[{item.Attribute.AttributeName}] = @{formatQueryParameter(item.Attribute.AttributeName)}",
                value = eo
            });
        }
        private dynamic DecimalBetweenOperator(AdvancedSearchRequest item)
        {
            var          eo = new ExpandoObject();
            OperatorName op = (OperatorName)item.Operator.OperatorType;

            eo.TryAdd <string, object>($"{formatQueryParameter(item.Attribute.AttributeName)}Value1", item.Value);
            eo.TryAdd <string, object>($"{formatQueryParameter(item.Attribute.AttributeName)}Value2", item.Value2);
            return(new
            {
                sql = $"{_prefix}[{item.Attribute.AttributeName}] between @{formatQueryParameter(item.Attribute.AttributeName)}Value1 and @{formatQueryParameter(item.Attribute.AttributeName)}Value2",
                value = eo
            });
        }
Esempio n. 9
0
        private ResultsResourcesPage <AdvancedPayment> SearchByExternalReference(string externalReference)
        {
            var searchRequest = new AdvancedSearchRequest
            {
                Limit     = 10,
                Offset    = 0,
                Sort      = "date_created",
                Criteria  = "desc",
                Range     = "date_created",
                BeginDate = DateTime.Now.Date,
                EndDate   = DateTime.Now.AddDays(1).AddMilliseconds(-1),
                Filters   = new Dictionary <string, object>
                {
                    ["external_reference"] = externalReference,
                },
            };

            return(client.Search(searchRequest));
        }
Esempio n. 10
0
        public IList <FuelStation> Search(AdvancedSearchRequest filter)
        {
            _listResult = null;

            try
            {
                Connection.Open();
                _listResult = _fuelStationDa.Search(filter);
            }
            finally
            {
                if (Connection.State == ConnectionState.Open)
                {
                    Connection.Close();
                }
            }

            return(_listResult);
        }
        private dynamic MultiCheckboxEqualsOperator(AdvancedSearchRequest item)
        {
            var          eo = new ExpandoObject();
            OperatorName op = (OperatorName)item.Operator.OperatorType;

            if (item.Value.GetType() == typeof(JObject))
            {
                var jObj = (JObject)item.Value;
                eo.TryAdd <string, object>($"{formatQueryParameter(item.Attribute.AttributeName)}", jObj.Value <string>("value"));
            }
            else
            {
                eo.TryAdd <string, object>($"{formatQueryParameter(item.Attribute.AttributeName)}", item.Value);
            }

            return(new
            {
                sql = $"{_prefix}[{item.Attribute.AttributeName}] = @{formatQueryParameter(item.Attribute.AttributeName)}",
                value = eo
            });
        }
Esempio n. 12
0
        public Response Search(AdvancedSearchRequest request)
        {
            try
            {
                _listResult = _repository.Search(request);
                var numberItems = _listResult.Count;

                if (numberItems == 0)
                {
                    _response = new Response
                    {
                        IsSuccess   = true,
                        NumberItems = numberItems,
                        //Obsolete = _listResult,
                        StatusResponse = new StatusResponse
                        {
                            Status    = 404,
                            Message   = Default.LblHttpStatusCode404,
                            Timestamp = DateTimeOperations.FormatTimeStamp()
                        }
                    };

                    return(_response);
                }

                _response = new Response
                {
                    IsSuccess   = true,
                    NumberItems = numberItems,
                    //Obsolete = request.SortedBy.HasValue ? Sorting.Sort(_listResult, request.SortedBy.Value) : _listResult,
                    StatusResponse = new StatusResponse
                    {
                        Status  = 200,
                        Message = Default.LblHttpStatusCode200
                    }
                };
            }
            catch (Exception exception)
            {
                var exceptionLog = new ExceptionLog
                {
                    ApplicationName = $"{ConfigurationManager.AppSettings["SolutionName"]} - {ConfigurationManager.AppSettings["UserFuelServices"]}",
                    Message         = exception.Message
                };

                var exceptionRepository = new ExceptionLogRepository("MetadataConnection");
                var exceptionId         = exceptionRepository.Add(exceptionLog);

                _response = new Response
                {
                    IsSuccess = false,
                    //Obsolete = null,
                    StatusResponse = new StatusResponse
                    {
                        Status    = 500,
                        Message   = Default.LblHttpStatusCode500,
                        Timestamp = DateTimeOperations.FormatTimeStamp()
                    }
                };
            }

            return(_response);
        }
Esempio n. 13
0
        public Task <SearchResponse> AdvancedSearchAsync(AdvancedSearchRequest searchRequest)
        {
            if (searchRequest.Language?.Length != 2)
            {
                throw new ArgumentException($"Invalid language code provided ({searchRequest.Language}), a valid language code is two characters");
            }

            if (string.IsNullOrEmpty(searchRequest.SearchText))
            {
                throw new ArgumentException("SearchText cannot be empty");
            }

            // build the querystring based on provided search request params
            StringBuilder queryStringBuilder = new StringBuilder($"{Search}?language={searchRequest.Language}&text={searchRequest.SearchText}");

            queryStringBuilder.Append("&source=" + searchRequest.Source);

            if (searchRequest.Analyzed)
            {
                queryStringBuilder.Append("&analyzed=true");
            }
            if (searchRequest.Monosemous)
            {
                queryStringBuilder.Append("&monosemous=true");
            }
            if (searchRequest.Polysemous)
            {
                queryStringBuilder.Append("&polysemous=true");
            }
            if (searchRequest.Morph)
            {
                queryStringBuilder.Append("&morph=true");
            }
            if (!string.IsNullOrEmpty(searchRequest.Pos))
            {
                queryStringBuilder.Append("&pos=" + searchRequest.Pos);
            }
            if (!string.IsNullOrEmpty(searchRequest.Number))
            {
                queryStringBuilder.Append("&number=" + searchRequest.Number);
            }
            if (!string.IsNullOrEmpty(searchRequest.Gender))
            {
                queryStringBuilder.Append("&gender=" + searchRequest.Gender);
            }
            if (!string.IsNullOrEmpty(searchRequest.Subcategorization))
            {
                queryStringBuilder.Append("&subcategorization=" + searchRequest.Subcategorization);
            }

            // pagination - only append if values are other than default values
            if (searchRequest.Page > 1)
            {
                queryStringBuilder.Append("&page=" + searchRequest.Page);
            }
            if (searchRequest.PageLength != 10 && searchRequest.PageLength > 0 && searchRequest.PageLength <= 30)
            {
                queryStringBuilder.Append("&page-length=" + searchRequest.PageLength);
            }
            if (searchRequest.Sample > 0)
            {
                queryStringBuilder.Append("&sample=" + searchRequest.Sample);
            }

            return(ExecuteSearch(queryStringBuilder.ToString(), searchRequest.ETag));
        }
 public Response Get(AdvancedSearchRequest request)
 {
     return(_fuelStationBr.Search(request));
 }
        internal IList <FuelStation> Search(AdvancedSearchRequest filter)
        {
            Command = new SqlCommand
            {
                Connection  = (SqlConnection)Connection,
                CommandType = CommandType.StoredProcedure,
                CommandText = "Operation.Search"
            };

            if (!string.IsNullOrEmpty(filter.IdStation))
            {
                var paramOpc = new SqlParameter
                {
                    ParameterName = "@IdStation",
                    DbType        = DbType.String,
                    Value         = filter.IdStation
                };

                Command.Parameters.Add(paramOpc);
            }

            if (!string.IsNullOrEmpty(filter.ZipCode))
            {
                var paramOpc = new SqlParameter
                {
                    ParameterName = "@ZipCode",
                    DbType        = DbType.String,
                    Value         = filter.ZipCode
                };

                Command.Parameters.Add(paramOpc);
            }

            var param = new SqlParameter
            {
                ParameterName = "@LowestNPrices",
                DbType        = DbType.Int32,
                Value         = filter.LowestNPrices
            };

            Command.Parameters.Add(param);

            param = new SqlParameter
            {
                ParameterName = "@NDaysOldPrices",
                DbType        = DbType.Int32,
                Value         = filter.NDaysOldPrices
            };

            Command.Parameters.Add(param);

            param = new SqlParameter
            {
                ParameterName = "@ShowAllOnNoPrices",
                DbType        = DbType.Boolean,
                Value         = filter.ShowAllOnNoPrices
            };

            Command.Parameters.Add(param);

            param = new SqlParameter
            {
                ParameterName = "@Product",
                DbType        = DbType.Boolean,
                Value         = filter.ProductName
            };

            Command.Parameters.Add(param);

            param = new SqlParameter
            {
                ParameterName = "@SupplierID",
                DbType        = DbType.Boolean,
                Value         = filter.SupplierId
            };

            Command.Parameters.Add(param);

            Populate((SqlDataReader)Command.ExecuteReader());

            return(_listResult);
        }
        public SearchResponse AdvancedSearch(AdvancedSearchRequest request)
        {
            apartment ap = new apartment();

            return(new SearchResponse(new apartment[] { ap }));
        }
 public ComplexAdvancedSearchRequest(AdvancedSearchRequest searchRequest, string prefix, Dictionary <string, object> additional)
 {
     this._searchRequest       = searchRequest;
     this._prefix              = prefix;
     this._AdditionalCondition = additional;
 }
        public async Task <IActionResult> AdvancedSearch([FromBody] AdvancedSearchRequest request)
        {
            var result = new List <AdvancedQuerySearchResponse>();

            return(this.Ok(result));
        }
        private dynamic getFieldQuery(AdvancedSearchRequest item)
        {
            OperatorName op = (OperatorName)item.Operator.OperatorName;

            switch (op)
            {
            case OperatorName.ComboEquals:
                return(ComboEqualsOperator(item));

            case OperatorName.ComboIn:
                return(ComboInOperator(item));

            case OperatorName.DateTimeBetween:
                return(DateTimeBetweenOperator(item));

            case OperatorName.DateTimeEquals:
                return(DateTimeEqualsOperator(item));

            case OperatorName.DateTimeGreaterThan:
                return(DateTimeGreaterThanOperator(item));

            case OperatorName.DateTimeGreaterThanOrEquals:
                return(DateTimeGreaterThanOrEqualsOperator(item));

            case OperatorName.DateTimeIn:
                return(DateTimeInOperator(item));

            case OperatorName.DateTimeLessThan:
                return(DateTimeLessThanOperator(item));

            case OperatorName.DateTimeLessThanOrEquals:
                return(DateTimeLessThanOrEqualsOperator(item));

            case OperatorName.DateTimeNotEquals:
                return(DateTimeNotEqualsOperator(item));

            case OperatorName.DecimalBetween:
                return(DecimalBetweenOperator(item));

            case OperatorName.DecimalEquals:
                return(DecimalEqualsOperator(item));

            case OperatorName.DecimalGreaterThan:
                return(DecimalGreaterThanOperator(item));

            case OperatorName.DecimalGreaterThanOrEquals:
                return(DecimalGreaterThanOrEqualsOperator(item));

            case OperatorName.DecimalIn:
                return(DecimalInOperator(item));

            case OperatorName.DecimalLessThan:
                return(DecimalLessThanOperator(item));

            case OperatorName.DecimalLessThanOrEquals:
                return(DecimalLessThanOrEqualsOperator(item));

            case OperatorName.DecimalNotEquals:
                return(DecimalNotEqualsOperator(item));

            case OperatorName.IntegerBetween:
                return(IntegerBetweenOperator(item));

            case OperatorName.IntegerEquals:
                return(IntegerEqualsOperator(item));

            case OperatorName.IntegerGreaterThan:
                return(IntegerGreaterThanOperator(item));

            case OperatorName.IntegerGreaterThanOrEquals:
                return(IntegerGreaterThanOrEqualsOperator(item));

            case OperatorName.IntegerIn:
                return(IntegerInOperator(item));

            case OperatorName.IntegerLessThan:
                return(IntegerLessThanOperator(item));

            case OperatorName.IntegerLessThanorEquals:
                return(IntegerLessThanorEqualsOperator(item));

            case OperatorName.IntegerNotEquals:
                return(IntegerNotEqualsOperator(item));

            case OperatorName.MultiCheckboxEquals:
                return(MultiCheckboxEqualsOperator(item));

            case OperatorName.MultiCheckboxIn:
                return(MultiCheckboxInOperator(item));

            case OperatorName.StringEquals:
                return(StringEqualsOperator(item));

            case OperatorName.StringGreaterThan:
                return(StringGreaterThanOperator(item));

            case OperatorName.StringIn:
                return(StringInOperator(item));

            case OperatorName.StringLessThan:
                return(StringLessThanOperator(item));

            case OperatorName.StringLike:
                return(StringLikeOperator(item));

            case OperatorName.StringNotEquals:
                return(StringNotEqualsOperator(item));

            case OperatorName.RadioEquals:
                return(RadioEqualsOperator(item));

            case OperatorName.StringLikeStartWith:
                return(StringLikeOperatorStartWith(item));

            case OperatorName.IsNull:
                return(StringIsNull(item));

            case OperatorName.IsNotNull:
                return(StringIsNotNull(item));

            default:
                return("");
            }
        }