private async Task SyncLookupItem(string entityName)
        {
            var items = _crm.GetLookupItems(entityName);
            var ids = items.Select(t => t.Id);
            var existingIds = _dbContext.LookupItems
                .Where(t => t.EntityName == entityName)
                .Select(t => t.Id);

            _dbContext.RemoveRange(_dbContext.LookupItems.Where(t => t.EntityName == entityName && !ids.Contains(t.Id)));
            _dbContext.UpdateRange(items.Where(t => existingIds.Contains(t.Id)));
            await _dbContext.AddRangeAsync(items.Where(t => !existingIds.Contains(t.Id)));
            await _dbContext.SaveChangesAsync();
        }
예제 #2
0
        public void GetLookupItems_ReturnsMatchingOrderedByIdAscending()
        {
            var queryableCountries = MockCountries();

            _mockService.Setup(mock => mock.CreateQuery("dfe_country", _context))
            .Returns(queryableCountries);

            var result = _crm.GetLookupItems("dfe_country").ToList();

            result.Select(country => country.Value).Should().BeEquivalentTo(
                new object[] { "Country 1", "Country 2", "Country 3" },
                options => options.WithStrictOrdering());
            result.Select(country => country.EntityName).Should().OnlyContain(name => name == "dfe_country");
        }