List <ImportResult <Item> > ImportFromItem(IEnumerable <Item> itemsToImport, bool executeSave) { var results = new List <ImportResult <Item> >(); if (executeSave) { _itemRepository.Begin(); } foreach (var item in itemsToImport) { var r = new ImportResult <Item>(item); results.Add(r); if (item.Id != Guid.Empty) { r.InternalExcludedReasons.Add("Item already present in database."); continue; } if (ExcludeItemsWithDuplicateName) { var existing = _itemRepository.GetByName(item.Name, ConsiderCaseWhenComparingNames); if (existing.Any()) { r.InternalExcludedReasons.Add("Item with same name exists."); continue; } } if (executeSave) { try { _itemRepository.Save(item); } catch (Exception e) { r.InternalExcludedReasons.Add("Exception on save: " + e.Message); } } r.Imported = true; } if (executeSave) { _itemRepository.End(); } return(results); }