private void Merge(DataModel.Introduction dbItem, IEnumerable <ExternalUrl> newExternalUrls)
        {
            if (newExternalUrls == null)
            {
                newExternalUrls = new List <ExternalUrl>();
            }

            var toRemove = dbItem.ExternalUrls.Where(eu => !newExternalUrls.Any(x => eu.ExternalUrlId == x.Id)).ToList();

            foreach (var item in toRemove)
            {
                dbItem.ExternalUrls.Remove(item);

                _context.ExternalUrls.Remove(item.ExternalUrl);
                _context.IntroductionExternalUrls.Remove(item);
            }

            var toAdd = newExternalUrls.Where(x => x.Id == null);

            foreach (var item in toAdd)
            {
                dbItem.ExternalUrls.Add(AbstractionsConverter.ToIntroductionExternalUrl(item));
            }

            var toUpdate = newExternalUrls.Where(x => x.Id.HasValue);

            foreach (var item in toUpdate)
            {
                var upd = dbItem.ExternalUrls.FirstOrDefault(x => x.ExternalUrlId == item.Id.Value);

                upd.ExternalUrl.DisplayName = item.DisplayName;
                upd.ExternalUrl.Url         = item.Url;
                upd.ExternalUrl.Version++;
            }
        }