public void GetPickListItems_ReturnsMatchingOrderedByIdAscending() { var initialTeacherTrainingYears = MockInitialTeacherTrainingYears(); _mockService.Setup(mock => mock.GetPickListItemsForAttribute("contact", "dfe_ittyear")) .Returns(initialTeacherTrainingYears); var result = _crm.GetPickListItems("contact", "dfe_ittyear").ToList(); result.Select(year => year.Value).Should().BeEquivalentTo(new object[] { "2010", "2011", "2012" }, options => options.WithStrictOrdering()); result.Select(year => year.EntityName).Should().OnlyContain(name => name == "contact"); result.Select(year => year.AttributeName).Should().OnlyContain(name => name == "dfe_ittyear"); }
private async Task SyncPickListItem(string entityName, string attributeName) { var items = _crm.GetPickListItems(entityName, attributeName); var ids = items.Select(t => t.Id); var existingIds = _dbContext.PickListItems .Where(t => t.EntityName == entityName && t.AttributeName == attributeName) .Select(t => t.Id); _dbContext.RemoveRange(_dbContext.PickListItems.Where(t => t.EntityName == entityName && t.AttributeName == attributeName && !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(); }