async public Task <object> Handle(SearchyRequest searchyRequest, bool lookup = false, string searchPhrase = null) { //var qry = i18NService.Currencies.List() // .Where(c => string.IsNullOrWhiteSpace(searchPhrase) ? true : c.Code.ToLower().Contains(searchPhrase.ToLower())).AsQueryable(); //if (lookup) //{ // IDictionary<string, string> dict = qry.OrderBy(c => c.Code) // .ToDictionary(c => c.Code, c => c.Code); // return dict; //} //var result = qry // .Search(searchyRequest.Conditions) // .ToList(); //return Task.FromResult(new SearchyResponse<Currency> //{ // Result = result, // TotalCount = result.Count //}); return(null); }
public void TestSearchyRequestEquality3() { var sr1 = new SearchyRequest(); sr1.Conditions.Add( new SearchyCondition(new SearchyFilter { Field = "Id", Rule = SearchyRule.EqualsTo, ValueDecimal = 5 })); var sr2 = new SearchyRequest(); sr2.Conditions.Add(new SearchyCondition(new SearchyFilter { Field = "Id", Rule = SearchyRule.EqualsTo, ValueDecimal = 5 })); var result = sr1 == sr2; Assert.IsTrue(result); }
public void TestSearchyRequestEquality4() { var sr1 = new SearchyRequest("Id", SearchyRule.EqualsTo, new string[] { "ss" }); var sr2 = new SearchyRequest("Id", SearchyRule.EqualsTo, new string[] { "ss" }); var result = sr1 == sr2; Assert.IsTrue(result); }
public void TestSearchyRequestEquality2() { //int? x = 5; var sr1 = new SearchyRequest("Id", SearchyRule.EqualsTo, 5.0); var sr2 = new SearchyRequest("Id", SearchyRule.EqualsTo, 5.0); var result = sr1 == sr2; Assert.IsTrue(result); }
async public Task <object> Handle(SearchyRequest request, bool lookup = false, string searchPhrase = null) { //await Task.Delay(TimeSpan.FromMilliseconds(500)); var result = FakeEmployees.Data.AsQueryable().Search(request.Conditions, request.Sorts, request.PageSize, request.PageIndex); return(new SearchyResponse <Employee> { Result = result, TotalCount = FakeEmployees.Data.AsQueryable().Search(request.Conditions).Count() }); }
async public Task TestMethod1() { var req = new SearchyRequest() { Conditions = new List <SearchyCondition>() { new SearchyCondition() { Filters = new List <SearchyFilter>() { new SearchyFilter() { Field = "HAWB", Rule = SearchyRule.Contains, ValueString = "2020" } } } }, PageIndex = 0, PageSize = 12, Sorts = new List <SearchySort>() { new SearchySort() { Field = "ID", Sort = SearchySortOrder.DEC } } }; using (var connection = new SqliteConnection("Data Source=./Data/TestDb.db")) { await connection.OpenAsync(); //await connection.Add(bag); //bag.Description = "ttt"; //await connection.Update(bag); var bags = await connection.Count <LegacyParcel>(req.Conditions); // var bag1 = await connection.One<LegacyParcel>(20); //var condition = new SearchyCondition(); //condition.Filters.Add(new SearchyFilter("Id", SearchyRule.EqualsTo, 1)); //condition.Filters.Add(new SearchyFilter("Description", SearchyRule.StartsWith, "f")); //var selectedBags = await connection.All<Bag>(condition); } }
async public Task <object> Handle(SearchyRequest searchyRequest, bool lookup = false, string searchPhrase = null) { IDictionary <string, string> result = new Dictionary <string, string>() { { "1", "Text1" }, { "2", "Text2" }, { "3", "Text3" }, { "4", "Text4" }, { "5", "Text5" }, }; return(result); }
public void TestSearchyRequestSerialization() { var sr1 = new SearchyRequest("Id", SearchyRule.EqualsTo, "s"); //var sr2 = new SearchyRequest("ID", SearchyRule.EqualsTo, "s"); //var sr2 = Newtonsoft.Json.JsonConvert.SerializeObject(sr1); //var sr3 = System.Text.Json.JsonSerializer.Serialize(sr1); //var result = sr1 == sr2; //Assert.IsTrue(result); var filters = new List <SearchyFilter>(); var condition = new SearchyCondition(filters); }
public void TestSearchyRequestEquality() { object x = 7.1; object y = 7.1; object zz = null; string zzd = (string)zz; var result1 = x.Equals(y); var sr1 = new SearchyRequest("Id", SearchyRule.EqualsTo, "s"); var sr2 = new SearchyRequest("ID", SearchyRule.EqualsTo, "s"); var result = sr1 == sr2; Assert.IsTrue(result); }
public void TestFilterSerialization() { var filter = new SearchyFilter() { Field = "CreatedOn", Rule = SearchyRule.EqualsTo, ValueDateTimeArray = new DateTime[] { DateTime.Now, DateTime.UtcNow } }; var searchRequest = new SearchyRequest(filter.ToString()); //var filterDeserialized = new SearchyFilter(Uri.UnescapeDataString(filter.ToString())); var filter2 = new SearchyFilter { Field = "CreatedOn", Rule = SearchyRule.EqualsTo, ValueDateTimeArray = new DateTime[] { DateTime.Now } }; var filter2Deserialized = new SearchyFilter(Uri.UnescapeDataString(filter2.ToString())); }
public void TestMethod1() { var sr = new SearchyRequest(); var srStr = sr.ToString(); var sr2 = new SearchyRequest(new SearchyCondition("Id", SearchyRule.GreaterThan, "kjkjhg...&")); sr2.Conditions.First().Filters.Add(new SearchyFilter("FirstName", SearchyRule.EqualsTo, null)); sr2.Sorts.Add(new SearchySort("Id", SearchySortOrder.ASC)); sr2.Sorts.Add(new SearchySort("Name:2")); var srStr2 = sr2.ToString(); var sr3 = new SearchyRequest(); sr3.PageSize = 0; var srStr3 = sr3.ToString(); var sr4 = new SearchyRequest(); sr4.Sorts.Add(new SearchySort("Date", SearchySortOrder.DEC)); sr4.CountRows = true; var srStr4 = sr4.ToString(); var srnew = new SearchyRequest("filter=Id:1:testvalue"); var sres = new SearchyResponse <string>(); sres.Result = new List <string> { "val1", "val2" }; ISearchyResponse <object> sresDown = sres; }
async public Task <object> Handle(SearchyRequest searchyRequest, bool lookup = false, string searchPhrase = null) { var qry = dbContext. Set <Country>(). AsNoTracking(). Where(c => string.IsNullOrWhiteSpace(searchyRequest.SearchPhrase) || EF.Functions.ILike(c.Name, $"%{searchyRequest.SearchPhrase}%")); if (searchyRequest.Format == 0) { return(await qry. Select(i => new CountrySearch { Code = i.Id, Capital = i.Capital, CurrencyCode = i.CurrencyCode, CurrencyName = i.CurrencyName, IsoCode3 = i.IsoCode3, IsoNumber = i.IsoNumber, Languages = i.Languages, Name = i.Name, Phone = i.Phone, PostCodeFormat = i.PostCodeFormat, PostCodeRegex = i.PostCodeRegex, Tld = i.Tld }). ToSearchyResponseAsync(searchyRequest)); } else if (searchyRequest.Format == 1) { return(await qry. OrderBy(c => c.Name). ToDictionaryAsync(searchyRequest, c => c.Id, c => c.Name)); } return(null); }
async Task <IActionResult> ExecuteHandler(HandlerInfo handlerInfo, string key, object body = null, bool lookup = false) { var handlerInstance = await serviceProvider.GetHandlerInstance(handlerInfo); if (handlerInfo.NormalizedInterfaceType == typeof(ISearchyHandler)) { var searchyRequest = new SearchyRequest(Request.QueryString.Value); var result = await handlerInstance.Invoke(searchyRequest, lookup, null); if (lookup) { return(StatusCode(206, result)); } return(Ok(result)); } else if (handlerInfo.NormalizedInterfaceType == typeof(IQueryHandler)) { var result = await handlerInstance.Invoke(); return(Ok(result)); } else if (handlerInfo.NormalizedInterfaceType == typeof(IQueryHandler <>)) { var request = Request.Query.GetInstance(handlerInfo.ArgumentTypes[0]); var result = await handlerInstance.Invoke(request); return(Ok(result)); } else if (handlerInfo.NormalizedInterfaceType == typeof(IQueryHandler <,>)) { object keyParam; try { keyParam = key.ConvertValueToType(handlerInfo.ArgumentTypes[0]); } catch (Exception ex) { throw new BadInputFormatException(ex); } var request = Request.Query.GetInstance(handlerInfo.ArgumentTypes[1]); var result = await handlerInstance.Invoke(keyParam, request); return(Ok(result)); } else if (handlerInfo.NormalizedInterfaceType == typeof(ICommandHandler)) { var result = await handlerInstance.Invoke(); return(HandleResult(result)); } else if (handlerInfo.NormalizedInterfaceType == typeof(ICommandHandler <>)) { object typedParam; try { typedParam = JsonConvert.DeserializeObject(body.ToString(), handlerInfo.ArgumentTypes[0]); } catch (Exception ex) { throw new BadInputFormatException(ex); } if (!await ValidateInput(typedParam)) { return(BadRequest(ModelState)); } var result = await handlerInstance.Invoke(typedParam); return(HandleResult(result)); } else if (handlerInfo.NormalizedInterfaceType == typeof(ICommandHandler <,>)) { object typedParam; object keyParam; try { keyParam = key.ConvertValueToType(handlerInfo.ArgumentTypes[0]); typedParam = JsonConvert.DeserializeObject(body.ToString(), handlerInfo.ArgumentTypes[1]); } catch (Exception ex) { throw new BadInputFormatException(ex); } if (!await ValidateInput(typedParam)) { return(BadRequest(ModelState)); } var result = await handlerInstance.Invoke(keyParam, typedParam); return(HandleResult(result)); } else if (handlerInfo.NormalizedInterfaceType == typeof(IGetHandler <>)) { object keyParam; try { keyParam = key.ConvertValueToType(handlerInfo.ArgumentTypes[0]); } catch (Exception ex) { throw new BadInputFormatException(ex); } var result = await handlerInstance.Invoke(keyParam, lookup); if (result == null) { return(NotFound()); } if (lookup) { return(StatusCode(206, result)); } return(HandleResult(result)); } else if (handlerInfo.NormalizedInterfaceType == typeof(IDeleteHandler <>)) { object keyParam; try { keyParam = key.ConvertValueToType(handlerInfo.ArgumentTypes[0]); } catch (Exception ex) { throw new BadInputFormatException(ex); } var result = await handlerInstance.Invoke(keyParam); return(Accepted()); } else { return(NotFound()); } }
async public static Task <SearchyResponse <TEntity> > ToSearchyResponseAsync <TEntity>(this IQueryable <TEntity> query, SearchyRequest searchyRequest) { return(new SearchyResponse <TEntity> { Result = await query.Search(searchyRequest.Conditions, searchyRequest.Sorts, searchyRequest.PageSize, searchyRequest.PageIndex).ToListAsync(), TotalCount = searchyRequest.CountRows ? await query.Search(searchyRequest.Conditions).CountAsync() : 0 }); }
async public static Task <IDictionary <string, string> > ToDictionaryAsync <TEntity>(this IQueryable <TEntity> query, SearchyRequest searchyRequest, Func <TEntity, string> keySelector, Func <TEntity, string> valueSelector = null) { return(await query. Search(searchyRequest.Conditions). ToDictionaryAsync(keySelector, valueSelector ?? keySelector)); }
async public Task TestMethod1() { var req = new SearchyRequest() { Conditions = new List <SearchyCondition>() { new SearchyCondition() { Filters = new List <SearchyFilter>() { new SearchyFilter() { Field = "Number", Rule = SearchyRule.Contains, ValueString = "65456456" } } } }, PageIndex = 0, PageSize = 12, Sorts = new List <SearchySort>() { new SearchySort() { Field = "ID", Sort = SearchySortOrder.DEC } } }; var validReq = new SearchyRequest() { Conditions = new List <SearchyCondition>() { new SearchyCondition() { Filters = new List <SearchyFilter>() { new SearchyFilter() { Field = "Description", Rule = SearchyRule.Contains, ValueString = "update" } } } }, PageIndex = 0, PageSize = 12, Sorts = new List <SearchySort>() { new SearchySort() { Field = "Id", Sort = SearchySortOrder.ASC } } }; var invalidReq = new SearchyRequest() { Conditions = new List <SearchyCondition>() { new SearchyCondition() { Filters = new List <SearchyFilter>() { new SearchyFilter() { Field = "NOTAVALIDFIELD", Rule = SearchyRule.Contains, ValueString = "65456456" } } } }, PageIndex = 0, PageSize = 12, Sorts = new List <SearchySort>() { new SearchySort() { Field = "ID", Sort = SearchySortOrder.ASC } } }; var bag = new Bag { Number = "1", Description = "test bag 1", Entity = "XYZ", TS = DateTime.UtcNow, }; using (var connection = new SqliteConnection("Data Source=./Data/TestDb.db")) { await connection.OpenAsync(); await connection.Delete <Bag>("Bags"); await connection.Add(bag); bag.Number = "2"; await connection.Add(bag); bag.Number = "3"; await connection.Add(bag); var bags = await connection.All <Bag>(); Assert.AreEqual(3, bags.Count()); var bagsEither1Or2 = await connection.All <Bag>(new List <SearchyCondition>() { new SearchyCondition(nameof(Bag.Number), SearchyRule.EqualsTo, "1"), new SearchyCondition(nameof(Bag.Number), SearchyRule.EqualsTo, "2") }); Assert.AreEqual(2, bagsEither1Or2.Count()); Assert.IsTrue(bagsEither1Or2.Where(x => x.Number == "3").FirstOrDefault() == null); bag.Description = "some update"; await connection.Update(bag); var validData = await connection.All <Bag>(validReq.Conditions, validReq.Sorts, validReq.PageSize, validReq.PageIndex); var exceptionCatched = false; try { var data = await connection.All <Bag>(invalidReq.Conditions, invalidReq.Sorts, invalidReq.PageSize, invalidReq.PageIndex); } catch (DeeBeeColumnNameException) { exceptionCatched = true; } Assert.IsTrue(exceptionCatched); } }
public async Task <object> Handle(SearchyRequest searchyRequest, bool lookup = false, string searchPhrase = null) { return(searchyRequest.ToString()); }
async public Task <object> Handle(SearchyRequest searchyRequest, bool lookup = false, string searchPhrase = null) { var user = requestContext.User; return(new SearchyResponse <CarDto>()); }