private void Merge(DataModel.Project dbProject, IEnumerable <ExternalUrl> externalUrls) { foreach (var item in dbProject.ExternalUrls ?? new List <DataModel.ProjectExternalUrl>()) { var remoteItem = externalUrls?.FirstOrDefault(x => x.Id.HasValue && x.Id == item.ExternalUrlId); if (remoteItem == null) { _context.ExternalUrls.Remove(item.ExternalUrl); } else { item.ExternalUrl.DisplayName = remoteItem.DisplayName; item.ExternalUrl.Url = remoteItem.Url; item.ExternalUrl.Version++; } } foreach (var item in externalUrls?.Where(x => x.Id == null) ?? new List <ExternalUrl>()) { dbProject.ExternalUrls.Add(AbstractionsConverter.ToProjectExternalUrl(item)); } }