public FileDetailViewModel(string name, IDataService dataService, IViewThreadExecutor viewThreadExecutor, IFileProcessor fileProcessor, IAccTransactionValidator validator) { Name = name; _dataService = dataService; _viewThreadExecutor = viewThreadExecutor; _fileProcessor = fileProcessor; _validator = validator; UploadCommand = new DelegateCommand(() => OnUploadData(), () => (Status==Status.NotUploaded) && (!IsUploading) ); ErrorList = new ObservableCollection<string>(); }
public AccountTransactionViewModel(IFileProcessorFactory processorFactory, IViewThreadExecutor viewThreadExecutor, IDataService dataService, IAccTransactionValidator validator) { var processorTable = processorFactory.ProcessorNames.ToDictionary(x => x, x => processorFactory.GetFileProcessor(x)); var details = processorFactory .ProcessorNames .Select(x => { var fileProcessor = processorFactory.GetFileProcessor(x); var allFileDetails = fileProcessor.GetAllFileNames() .Select(fileName => new FileDetailViewModel(fileName, dataService, viewThreadExecutor, fileProcessor, validator)) .ToArray(); return new ProcessorDetails(x, allFileDetails); }).ToList(); ProcessorDetails = new ListCollectionView(details); if(details.Count > 0) ProcessorDetails.MoveCurrentToPosition(0); }