private static void EqualsCodeBehavesAsExpected(Func <ExternalId, ExternalId, bool> equals) { foreach (var id in ExpectedOrder) { Assert.Equal(1, ExpectedOrder.Where(e => equals(e, id)).Count()); Assert.True(equals(id, ExternalId.Create(id.Scheme, id.Value))); } }
public void HashCodeBehavesAsExpected() { foreach (var identifier in ExpectedOrder) { Assert.Equal(1, ExpectedOrder.Where(e => e.GetHashCode() == identifier.GetHashCode()).Count()); Assert.Equal(identifier.GetHashCode(), ExternalId.Create(identifier.Scheme, identifier.Value).GetHashCode()); } }
public void OnSave(ChangeTracker tracker) { var entries = tracker.Entries <IExternalIdentifierBehaviour>(); foreach (var entry in entries) { var entity = entry.Entity; if (entry.State == EntityState.Added && !ExternalId.TryParse(entity.ExternalId, out _)) { entity.ExternalId = ExternalId.Create().ToString(); } } }
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity <Post>().HasData( new Post { Id = 1, ExternalId = ExternalId.Create(), CreatedAt = DateTime.Now - TimeSpan.FromSeconds(1337), Body = "First post!" }, new Post { Id = 2, ExternalId = ExternalId.Create(), CreatedAt = DateTime.Now - TimeSpan.FromSeconds(2400), Body = "Second post!" } ); }
public void CanSearchWithRequest() { var request = new SecuritySearchRequest(PagingRequest.First(20), "*", "FUTURE"); var searchResult = Context.SecurityMaster.Search(request); Assert.NotEmpty(searchResult.Documents); var securitytoFind = searchResult.Documents.First(); var identifierBundle = securitytoFind.Security.Identifiers; { var identifierSearch = new ExternalIdSearch(identifierBundle.Identifiers, ExternalIdSearchType.All); request = new SecuritySearchRequest(PagingRequest.All, "*", "FUTURE", identifierSearch); var singleSearchResult = Context.SecurityMaster.Search(request); Assert.NotEmpty(singleSearchResult.Documents); Assert.Single(singleSearchResult.Documents); Assert.Equal(singleSearchResult.Documents.Single().Security.UniqueId, securitytoFind.UniqueId); } { var identifierSearch = new ExternalIdSearch(identifierBundle.Identifiers.Concat(Enumerable.Repeat(ExternalId.Create("XXX", "YYY"), 1)), ExternalIdSearchType.Any); request = new SecuritySearchRequest(PagingRequest.All, "*", "FUTURE", identifierSearch); var singleSearchResult = Context.SecurityMaster.Search(request); Assert.NotEmpty(singleSearchResult.Documents); Assert.Single(singleSearchResult.Documents); Assert.Equal(singleSearchResult.Documents.Single().Security.UniqueId, securitytoFind.UniqueId); } }
public void CanDoMultipleBundleQuery() { var remoteSecuritySource = Context.SecuritySource; var collection = remoteSecuritySource.GetSecurities(new ExternalIdBundle(ExternalId.Create("BLOOMBERG_TICKER", "AAPL US Equity"), ExternalId.Create("BLOOMBERG_TICKER", "MSFT US Equity"))); Assert.Equal(2, collection.Count); }
public void CanDoSingleBundleQuery() { var remoteSecuritySource = Context.SecuritySource; var collection = remoteSecuritySource.GetSecurities(new ExternalIdBundle(ExternalId.Create("BLOOMBERG_TICKER", "AAPL US Equity"))); Assert.Equal(1, collection.Count); Assert.True(collection.First().Name.IndexOf("Apple", StringComparison.InvariantCultureIgnoreCase) >= 0); }