Exemplo n.º 1
0
        /// <summary>
        /// Обновление манифеста набором файлов. Новые будут добавлены, старые обновлены.
        /// </summary>
        /// <param name="newItems">Новые данные для обновления</param>
        public void UpdateBy(IEnumerable <IManifestFileItem> newItems)
        {
            if (newItems == null)
            {
                return;
            }

            ManifestFileItem curentItem = null;

            if (FilesCount() == 0)
            {
                AddItems(newItems);
            }
            else
            {
                foreach (var newItem in newItems)
                {
                    curentItem = GetItemByFileName(newItem.FileName);
                    if (curentItem != null)
                    {
                        curentItem.UpdateBy(newItem);
                    }
                    else
                    {
                        this.AddItem(newItem);
                    }
                }
            }
        }
Exemplo n.º 2
0
        public ManifestFileItem Clone()
        {
            var newItem = new ManifestFileItem();

            newItem.UpdateBy(this);

            return(newItem);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Добавление нового файла в манифест
        /// </summary>
        /// <param name="item">Данные о файле</param>
        /// <exception cref="NullReferenceException">При передаче пустой ссылки</exception>
        public void AddItem(IManifestFileItem item)
        {
            if (item == null)
            {
                throw new NullReferenceException("Попытка добавления информации о файле в манифест по пустой ссылке");
            }

            ManifestFileItem newItem = new ManifestFileItem();

            newItem.UpdateBy(item);

            AddItem(newItem);
        }