/// <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); } } } }
public ManifestFileItem Clone() { var newItem = new ManifestFileItem(); newItem.UpdateBy(this); return(newItem); }
/// <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); }