Exemplo n.º 1
0
        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);
        }