private void MergePlaylist(SearchSettings settings) {
VideoListItem ListItem;
MediaType ItemType;
foreach (LocalFileInfo item in files) {
ItemType = EditVideoBusiness.GetFileType(item.FileName);
ListItem = playlist.Where(v => string.Equals(v.FileName, item.FileName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
if (ListItem != null)
ListItem.FileExists = true;
else {
// Add file if it matches search settings.
if (!item.IsInDatabase && OrphanMatchesConditions(ItemType, item.FileName, settings)) {
// Add file to ListView.
playlist.Add(new VideoListItem() {
MediaId = null,
MediaType = ItemType,
Title = item.FileName,
FileName = item.FileName,
FileExists = true,
IsInDatabase = false
});
}
}
}
// Apply FileExists search filter.
SearchConditionSetting Cond = settings.ConditionFilters.FirstOrDefault(f => f.Field == FieldConditionEnum.FileExists && f.Value != BoolConditionEnum.None);
if (Cond != null)
playlist.RemoveAll(v => v.FileExists == (Cond.Value == BoolConditionEnum.No));
// Apply IsInDatabase search filter.
if (settings.IsInDatabase == false)
playlist.RemoveAll(v => v.IsInDatabase);
}