public static WorkshopResourceViewModel FromModel(WorkshopResourceModel model) { switch (model) { case ModResourceModel m: return(ModViewModel.FromModel(m)); case DrsResourceModel d: return(DrsViewModel.FromModel(d)); default: return(new WorkshopResourceViewModel(model)); } }
protected WorkshopResourceViewModel(WorkshopResourceModel model) { Model = model; Files = new ObservableCollection <FileViewModel>(model.Files.Select(FileViewModel.FromModel)); model.Files.CollectionChanged += Files_CollectionChanged; model.PropertyChanged += Model_PropertyChanged; DownloadingFilesView = CollectionViewSource.GetDefaultView(Files); DownloadingFilesView.Filter = o => { var m = ((FileViewModel)o).Model; return(m.Status == ResourceFileStatus.BeforeDownload || m.Status == ResourceFileStatus.Downloading || m.Status == ResourceFileStatus.Paused || m.Status == ResourceFileStatus.ChecksumFailed); }; }