public bool LoadUserDataFromCsv() { var result = false; try { if (!_context.Users.Any()) { string rootDirectoryPath = AppDomain.CurrentDomain.BaseDirectory; string pathFinalAccessFile = Path.Combine(rootDirectoryPath, "App_Data", ConfigurationReader.ReadAppConfig("CsvData.csv", "CsvData.csv")); using (var textReader = new StreamReader(pathFinalAccessFile)) { var users = CsvHelpers.ReadFileWithoutHeader <UserDto>(textReader, typeof(UserCsvMap)); if (users != null && users.Any()) { _context.Users.AddRange(_mapper.Map <IEnumerable <User> >(users)); _context.SaveChanges(); result = true; } } } } catch (Exception ex) { //Log error } return(result); }
public void Init() { var dir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); address = dir + @"\assets\books.csv"; helper = new CsvHelpers <Book>(); }
public void ReadFileTest() { var baseDir = AppDomain.CurrentDomain.BaseDirectory; var filePath = Path.Combine(baseDir, "TestFiles", "CSVTestData.csv"); var csvTestDataTextReader = new StreamReader(filePath); var data = CsvHelpers.ReadFile <FinancialTransaction>(csvTestDataTextReader, typeof(FinancialTransactionMapper)); Assert.IsTrue(data?.Count > 0 && data?[0].Id == 123); }
public void ReadFileTest() { var baseDir = AppDomain.CurrentDomain.BaseDirectory; var filePath = Path.Combine(baseDir, "TestFiles", "CsvData.csv"); var csvTestDataTextReader = new StreamReader(filePath, System.Text.Encoding.UTF8); var users = CsvHelpers.ReadFileWithoutHeader <UserDto>(csvTestDataTextReader, typeof(UserCsvMap)); Assert.IsTrue(users?.Count() > 0); }
public void WriteWithMapping(bool useDictionaryMapping = false) { var csvHelper = new CsvHelpers(Context.FileSystem, Context.Environment); if (useDictionaryMapping) { csvHelper.WriteRecords(ResultPath, People, DictionaryMap, Settings); } else { csvHelper.WriteRecords(ResultPath, People, ClassMap, Settings); } }
public void WriteNoMapping() { var csvHelper = new CsvHelpers(Context.FileSystem, Context.Environment); csvHelper.WriteRecords(ResultPath, People, Settings); }
public void Read() { var csvHelper = new CsvHelpers(Context.FileSystem, Context.Environment); csvHelper.ReadRecords <Person>(CsvFilePath, null, Settings); }
public List <FinancialTransaction> Calculate(Stream file, FileFormatEnum format) { List <FinancialTransaction> result = new List <FinancialTransaction>(); try { using (var textReader = new StreamReader(file)) { switch (format) { case FileFormatEnum.XML: result = XmlHelpers.ReadFile <Portfolio>(file)?.Trade; break; case FileFormatEnum.CSV: result = CsvHelpers.ReadFile <FinancialTransaction>(textReader, typeof(FinancialTransactionMapper)); break; default: break; } } using (var dbContext = new DatabaseContext()) { //Maybe save this list to cache is better solution - somthing like redis var companies = dbContext.Companies.Include(t => t.Currency).ToList(); var currentDate = Convert.ToDateTime(ConfigurationReader.ReadAppConfig("CurrentDate", "2016, 4, 1")); Parallel.ForEach(result, (FinancialTransactionItem) => { var company = companies.FirstOrDefault(t => t.Name == FinancialTransactionItem.Name.Trim()); if (company == null) { FinancialTransactionItem.Result = "Invalid Company Name"; } else { var expireDate = Convert.ToDateTime(FinancialTransactionItem.ExpiryDate); double yearOfExpiery = expireDate.YearsDiffrent(currentDate); CallPutFlag callPutFlag; if (!Enum.TryParse(FinancialTransactionItem.CallPutFlag, out callPutFlag)) { FinancialTransactionItem.Result = "Invalid Data"; } else { FinancialTransactionItem.Price = _blackScholes.CalculateBlackScholes(callPutFlag, company.StockPrice, FinancialTransactionItem.StrikePrice, yearOfExpiery, company.Currency.RiskFreeRate, company.Volatility); FinancialTransactionItem.Result = "Success"; } } }); } } catch (Exception ex) { result = new List <FinancialTransaction>(); log.Error($"Error occured in {this.GetType().FullName} - {MethodBase.GetCurrentMethod().Name}", ex); } return(result); }