Business.EditPlaylistBusiness.MergePlaylist C# (CSharp) Метод

MergePlaylist() приватный Метод

Merges the list of files in the folder with the data coming from the database.
private MergePlaylist ( SearchSettings settings ) : void
settings DataAccess.SearchSettings The filters to apply to the data.
Результат void
        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);
        }