public BookViewModel GetBookList() { BookViewModel viewModel = new Models.BookViewModel(); try { List <BookModel> bookList = new List <BookModel>(); IEnumerable <string> fileList = fileReader.GetAllFiles(); foreach (var file in fileList) { string fileFormat = fileReader.GetFileFormat(file).ToUpper(); context = factory.CreateContext(fileFormat); if (context != null) { string[] lines = fileReader.ReadTheFile(file); bookList.AddRange(context.ReadBook(lines)); } } viewModel.Books = bookList; viewModel.Errors = ErrorHandler.ErrorList; } catch (Exception e) { ErrorHandler.AddError(ErrorTypes.ER0, e); viewModel.Errors = ErrorHandler.ErrorList; } return(viewModel); }
public IBookReaderContext CreateContext(string fileType) { switch (fileType) { case "A": context = new BookReaderContext(new BookReaderA()); break; case "B": context = new BookReaderContext(new BookReaderB()); break; default: ErrorHandler.AddError(ErrorTypes.ER4, new Exception("Incorrect File format" + fileType)); break; } return(context); }