protected override WebResponse <Party> EntityFind(Party entity) { var search = SearchBuilder.CreateSearch(); var searchCriteria = search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Name", SearchCondition.Equals, entity.Details.Name); if (!string.IsNullOrWhiteSpace(entity.Details.Role)) { searchCriteria.AddCriteria("Role", SearchCondition.Equals, entity.Details.Role); } var results = Client.Search <Party>(search); if (results.IsValid) { var se = results.Message.FirstOrDefault(); // Call again to get the ETag for the update return(Client.Get <Party>(se.ToMdmKey())); } return(new WebResponse <Party> { Code = results.Code, IsValid = results.IsValid, Fault = results.Fault }); }
protected override Search CreateSearch() { var search = SearchBuilder.CreateSearch().NotMultiPage().NoMaxPageSize(); search.SearchOptions.OrderBy = "orderby"; return(search); }
private IDictionary <string, List <MdmId> > BuildCommodityInstrumentTypeLookups() { var search = SearchBuilder.CreateSearch(); var webResponse = Client.Search <CommodityInstrumentType>(search); if (!webResponse.IsValid) { throw new Exception(String.Format("Unable to obtain search results for CommodityInstrumentType: {0}", webResponse.Fault.Message)); } var dictionary = new Dictionary <string, List <MdmId> >(); foreach (var result in webResponse.Message) { MdmId adcCommodityId = result.Identifiers.FirstOrDefault(x => x.SystemName == "ADC"); if (adcCommodityId != null) { string adcCommodity = AdcCommodity(adcCommodityId.Identifier); if (!dictionary.ContainsKey(adcCommodity)) { dictionary.Add(adcCommodity, new List <MdmId>()); } MdmId nexusId = result.Identifiers.First(x => x.IsMdmId); dictionary[adcCommodity].Add(nexusId); } } return(dictionary); }
private void OnIsActiveChanged(object sender, EventArgs eventArgs) { if (this.isActive) { Search search = SearchBuilder.CreateSearch(); var context = MyRegion(this.regionManager.Regions).Context as Tuple <int, DateTime?, string>; search.AsOf = context.Item2; string field; switch (context.Item3) { case "Location": field = "Parent.Id"; break; default: field = context.Item3 + ".Id"; break; } if (field.Contains("|")) { search.SearchFields.Combinator = SearchCombinator.Or; var fields = field.Split(new[] { '|' }); foreach (string f in fields) { search.AddSearchCriteria(SearchCombinator.And) .AddCriteria(f, SearchCondition.NumericEquals, context.Item1.ToString()); } } else { search.AddSearchCriteria(SearchCombinator.And) .AddCriteria(field, SearchCondition.NumericEquals, context.Item1.ToString()); } this.entityService.ExecuteAsyncSearch <Location>( this.search = search, response => { IList <Location> searchResults = response; this.Locations = new ObservableCollection <LocationViewModel>( searchResults.Select( x => new LocationViewModel( new EntityWithETag <Location>(x, null), this.eventAggregator)).OrderBy(y => y.Name)); }, this.eventAggregator, false); return; } this.Locations = new ObservableCollection <LocationViewModel>(); }
public void find_by_lessthan() { var search = SearchBuilder.CreateSearch(SearchCombinator.And); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Balance", SearchCondition.LessThan, "120", true); var result = new QueryFactory().CreateQuery(search); Assert.AreEqual("(Balance < 120)", result); }
public void find_by_equality_isnumeric() { var search = SearchBuilder.CreateSearch(SearchCombinator.And); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Balance", SearchCondition.Equals, "120", true); var result = new QueryFactory().CreateQuery(search); Assert.AreEqual("(Balance = 120)", result); }
public void find_by_equality() { var search = SearchBuilder.CreateSearch(SearchCombinator.And); search.AddSearchCriteria(SearchCombinator.Or) .AddCriteria("Name", SearchCondition.Equals, "TestParty"); var result = new QueryFactory().CreateQuery(search); Assert.AreEqual("(Name = \"TestParty\")", result); }
public void find_party_by_name_and_faxnumber() { var search = SearchBuilder.CreateSearch(SearchCombinator.And); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Name", SearchCondition.Equals, "TestParty") .AddCriteria("FaxNumber", SearchCondition.Equals, "01302555555"); var result = new QueryFactory().CreateQuery(search); Assert.AreEqual("(Name = \"TestParty\" And FaxNumber = \"01302555555\")", result); }
public void find_party_by_two_wildcards_anded() { var search = SearchBuilder.CreateSearch(SearchCombinator.And); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Name", SearchCondition.Contains, "Test") .AddCriteria("Name", SearchCondition.Contains, "Party"); var result = new QueryFactory().CreateQuery(search); Assert.AreEqual("(Name.Contains(\"Test\") And Name.Contains(\"Party\"))", result); }
public void KeysForSameSearchButDifferentEntitiesAreDifferent() { var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Name", SearchCondition.Equals, "bing", true); var key1 = search.ToKey <Person>(); var key2 = search.ToKey <Party>(); Assert.AreNotEqual(key1, key2); }
protected static void Establish_context() { client = new HttpClient(); Search search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.Or).AddCriteria( "x", SearchCondition.Equals, Guid.NewGuid().ToString()); content = HttpContentExtensions.CreateDataContract(search); }
public void KeysForSameSearchAreTheSame() { var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("TargetPerson.Id", SearchCondition.Equals, "1", true) .AddCriteria("PartyAccountabilityType", SearchCondition.Equals, "PartyRole", false); var key1 = search.ToKey <PartyRole>(); var key2 = search.ToKey <PartyRole>(); Assert.AreEqual(key1, key2); }
public void KeysForDifferentVersionsAreDifferent() { var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("TargetSourceSystem.Id", SearchCondition.Equals, "1", true) .AddCriteria("SourceSystemType", SearchCondition.Equals, "SourceSystem", false); var key1 = search.ToKey <int>(); var key2 = search.ToKey <int>(2); Assert.AreNotEqual(key1, key2); }
public void KeyIsNotAffectedByUrlEncoding() { var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("TargetPerson.Id", SearchCondition.Equals, "1", true) .AddCriteria("PartyAccountabilityType", SearchCondition.Equals, "PartyRole", false); var key1 = search.ToKey <PartyRole>(); var urlEncodedKey = HttpUtility.UrlEncode(key1); Assert.AreEqual(key1, urlEncodedKey); }
public void CreateOrMappingSearch() { var expected = new Search { SearchFields = { Combinator = SearchCombinator.Or }, SearchOptions = { IsMappingSearch = true }, }; var candidate = SearchBuilder.CreateSearch(SearchCombinator.Or, true); this.Check(expected, candidate); }
public void KeyIsNotAffectedByUrlEncoding() { var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("TargetSourceSystem.Id", SearchCondition.Equals, "1", true) .AddCriteria("SourceSystemType", SearchCondition.Equals, "SourceSystem", false); var key1 = search.ToKey <int>(); var urlEncodedKey = HttpUtility.UrlEncode(key1); Assert.AreEqual(key1, urlEncodedKey); }
public void CreateAndSearch() { var expected = new Search { SearchFields = { Combinator = SearchCombinator.And }, SearchOptions = { IsMappingSearch = false }, }; var candidate = SearchBuilder.CreateSearch(); this.Check(expected, candidate); }
public void find_party_with_two_search_criteria() { var search = SearchBuilder.CreateSearch(SearchCombinator.Or); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Name", SearchCondition.Equals, "Test") .AddCriteria("FaxNumber", SearchCondition.Contains, "01302"); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Name", SearchCondition.Equals, "Bob") .AddCriteria("FaxNumber", SearchCondition.Contains, "01942"); var result = new QueryFactory().CreateQuery(search); Assert.AreEqual("(Name = \"Test\" And FaxNumber.Contains(\"01302\")) Or (Name = \"Bob\" And FaxNumber.Contains(\"01942\"))", result); }
protected static void Establish_context() { entity1 = Script.PartyData.CreateBasicEntityWithOneMapping(); client = new HttpClient(); Search search = SearchBuilder.CreateSearch(isMappingSearch: true); search.AddSearchCriteria(SearchCombinator.And).AddCriteria( "MappingValue", SearchCondition.Equals, entity1.Mappings[0].MappingValue).AddCriteria( "System.Name", SearchCondition.Equals, "Endur"); content = HttpContentExtensions.CreateDataContract(search); }
private Search BuildNameSearch() { var search = SearchBuilder.CreateSearch(); search.AsOf = this.AsOf; if (!string.IsNullOrEmpty(this.NameSearch)) { search.AddSearchCriteria(SearchCombinator.And) .AddCriteria(this.SelectedMenuItem.SearchKey, SearchCondition.Contains, this.NameSearch); } return(search); }
protected static void Establish_context() { entity1 = ExchangeData.CreateBasicEntityWithOneMapping(); entity2 = ExchangeData.CreateBasicEntityWithOneMapping(); client = new HttpClient(); Search search = SearchBuilder.CreateSearch(isMappingSearch: true); search.AddSearchCriteria(SearchCombinator.Or).AddCriteria( "MappingValue", SearchCondition.Equals, entity1.Mappings[0].MappingValue).AddCriteria( "MappingValue", SearchCondition.Equals, entity2.Mappings[0].MappingValue); content = HttpContentExtensions.CreateDataContract(search); }
private WebResponse <Portfolio> EntityFind(Portfolio entity) { if (entity == null) { return(new WebResponse <Portfolio> { IsValid = false }); } var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("PortfolioType", SearchCondition.Equals, entity.Details.PortfolioType, false) .AddCriteria("Name", SearchCondition.Equals, entity.Details.Name, false); var results = Client.Search <Portfolio>(search); if (results.IsValid) { var se = results.Message.FirstOrDefault(); // Call again to get the ETag for the update return(Client.Get <Portfolio>(se.ToMdmKey())); } if (results.Fault.Message.Contains("Unable to connect to the remote server")) { // Try again Thread.Sleep(30000); this.logger.WarnFormat( "Try again for Portfolio: {0}-{1}", entity.Details.PortfolioType, entity.Details.Name); results = this.Client.Search <Portfolio>(search); if (results.IsValid) { var se = results.Message.FirstOrDefault(); // Call again to get the ETag for the update return(this.Client.Get <Portfolio>(se.ToMdmKey())); } } return(new WebResponse <Portfolio> { Code = results.Code, IsValid = results.IsValid, Fault = results.Fault }); }
/// <summary> /// Create a mapping search. /// </summary> /// <param name="systemName">System name to use</param> /// <param name="identifier">Identifier to use</param> /// <returns>A new mapping search</returns> public static Search MappingSearch(this string systemName, string identifier = null) { var search = SearchBuilder.CreateSearch(isMappingSearch: true); search.SearchOptions.ResultsPerPage = null; search.SearchOptions.MultiPage = false; search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("System.Name", SearchCondition.Equals, systemName); if (!string.IsNullOrEmpty(identifier)) { search.SearchFields.Criterias[0].AddCriteria("Mapping", SearchCondition.Equals, identifier); } return(search); }
private Search BuildMappingSearch() { var search = SearchBuilder.CreateSearch(SearchCombinator.Or, true); search.AsOf = this.AsOf; if (this.ShouldAddMappingValueSearchCriteria()) { this.AddMappingValueSearchCriteria(search); } if (this.ShouldAddMdmIdSearchCriteria()) { this.AddMdmIdSearchCriteria(search); } return(search); }
public void SearchKeysAreReversible() { var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("TargetPerson.Id", SearchCondition.Equals, "1", true) .AddCriteria("PartyAccountabilityType", SearchCondition.Equals, "PartyRole", false); var key1 = search.ToKey <PartyRole>(); var candidate = key1.ToSearch <PartyRole>(); Assert.AreEqual(candidate.SearchFields.Combinator, SearchCombinator.And); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[0].Field, "TargetPerson.Id"); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[1].Field, "PartyAccountabilityType"); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[0].Condition, SearchCondition.Equals); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[1].Condition, SearchCondition.Equals); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[0].ComparisonValue, "1"); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[1].ComparisonValue, "PartyRole"); }
public void ServiceInvokedOnFirstCall() { // Arrange var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("A", SearchCondition.Equals, "34", false); this.searchResult = new PagedWebResponse <IList <SourceSystem> >(); this.mdmService.Setup(x => x.Search(search)).Returns(this.searchResult); // Act var result = this.cacheService.Search(search); // Assert Assert.AreEqual(this.searchResult, result); this.mdmService.Verify(x => x.Search(search), Times.AtMostOnce()); }
public void SearchKeysForHigherVersionsAreReverisble() { var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("TargetSourceSystem.Id", SearchCondition.Equals, "1", true) .AddCriteria("SourceSystemType", SearchCondition.Equals, "SourceSystem", false); var key1 = search.ToKey <int>(2); var candidate = key1.ToSearch <int>(); Assert.AreEqual(candidate.SearchFields.Combinator, SearchCombinator.And); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[0].Field, "TargetSourceSystem.Id"); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[1].Field, "SourceSystemType"); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[0].Condition, SearchCondition.Equals); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[1].Condition, SearchCondition.Equals); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[0].ComparisonValue, "1"); Assert.AreEqual(candidate.SearchFields.Criterias[0].Criteria[1].ComparisonValue, "SourceSystem"); }
public void InvalidResponseIsReturned() { // Arrange var search = SearchBuilder.CreateSearch(); search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("A", SearchCondition.Equals, "34", false); this.searchResult = new PagedWebResponse <IList <SourceSystem> > { IsValid = false }; this.mdmService.Setup(x => x.Search(search)).Returns(this.searchResult); // Act var result = this.cacheService.Search(search); // Assert Assert.AreEqual(this.searchResult, result); }
public void DifferContentHasDifferentSerialization() { var searchA = SearchBuilder.CreateSearch(); searchA.AddSearchCriteria(SearchCombinator.And) .AddCriteria("A", SearchCondition.Equals, "34", true) .AddCriteria("B", SearchCondition.Equals, "Test"); var searchB = SearchBuilder.CreateSearch(); searchB.AddSearchCriteria(SearchCombinator.And) .AddCriteria("A", SearchCondition.Equals, "34", false) .AddCriteria("B", SearchCondition.Equals, "Test"); var expected = searchA.DataContractSerialize(); var candidate = searchB.DataContractSerialize(); Assert.AreNotEqual(expected, candidate); }
public void SearchForEntity() { Search search = SearchBuilder.CreateSearch(); search.AsOf = this.AsOf; search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Name", SearchCondition.Contains, this.EntitySearchText); search.SearchOptions.OrderBy = "Name"; this.entityService.ExecuteAsyncSearch <Broker>( search, response => { IList <Broker> searchResults = response; this.Brokers = new ObservableCollection <SelectorViewModel>( searchResults.Select(x => new SelectorViewModel(x.MdmId().Value, x.Details.Name)) .OrderBy(y => y.Name)); }, this.eventAggregator); }