public static void ReadHoldingFile(OpenFileDialog fileDialog) { EquityRepository equityRepo = new EquityRepository(); StockRepository stockRepo = new StockRepository(); equity_holding equity = new equity_holding(); AwaitForm waitForm = new AwaitForm(); Stream stream = null; String ErrorMessage; if ((stream = fileDialog.OpenFile()) != null) { using (stream) { // string ErrorMessage; string filename = fileDialog.FileName; string[] fileLines = File.ReadAllLines(filename); char[] delimiters = { '|' }; bool checkMonth = CheckCurrentMonth(fileLines, equityRepo, delimiters); if (checkMonth == false) { bool success = false; bool flag = true; for (int i = 1; i < fileLines.Length; i++) { string[] words = fileLines[i].Split(delimiters); DateTime date = DateTime.Parse(words[0]); if (words[1].Length == 4) { if (words[2] == "EQUITY") { string stockCode = words[1].ToUpper().Trim(); bool isExisted = stockRepo.CheckCurrentStock(stockCode); if (!isExisted) { stock stock = new stock(); stock.code = stockCode; equity.stock_id = stockRepo.SaveStock(stock, out ErrorMessage); } equity.stock_id = CheckStockCode(stockRepo, stockCode); equity.Code = words[1]; equity.Date = date; equity.Price = Decimal.Parse(words[4]); equity.Domestic_Insurance = Decimal.Parse(words[5]); equity.Domestic_Company = Decimal.Parse(words[6]); equity.Domestic_Pension_Fund = Decimal.Parse(words[7]); equity.Domestic_Bank = Decimal.Parse(words[8]); equity.Domestic_Individual = Decimal.Parse(words[9]); equity.Domestic_Mutual_Fund = Decimal.Parse(words[10]); equity.Domestic_Security = Decimal.Parse(words[11]); equity.Domestic_Foundation = Decimal.Parse(words[12]); equity.Domestic_Others = Decimal.Parse(words[13]); equity.Foreign_Insurance = Decimal.Parse(words[15]); equity.Foreign_Company = Decimal.Parse(words[16]); equity.Foreign_Pension_Fund = Decimal.Parse(words[17]); equity.Foreign_Bank = Decimal.Parse(words[18]); equity.Foreign_Individual = Decimal.Parse(words[19]); equity.Foreign_Mutual_Fund = Decimal.Parse(words[20]); equity.Foreign_Security = Decimal.Parse(words[21]); equity.Foreign_Foundation = Decimal.Parse(words[22]); equity.Foreign_Others = Decimal.Parse(words[23]); success = equityRepo.SaveEquity(equity, out ErrorMessage); if (!String.IsNullOrEmpty(ErrorMessage)) { MessageBox.Show(ErrorMessage); } if (flag) { waitForm.Show(); waitForm.Refresh(); } } } flag = false; } if (success) { waitForm.Close(); MessageBox.Show("Data berhasil disimpan"); } } else { MessageBox.Show("Data untuk bulan ini telah tersedia"); } } } }
public static void EditQuoteFile(OpenFileDialog fileDialog, DateTime date) { StockQuoteRepository quoteRepo = new StockQuoteRepository(); StockRepository stockRepo = new StockRepository(); stock_quotes quote; bool success = false; bool flag = true; String ErrorMessage; AwaitForm waitForm = new AwaitForm(); string fileName = fileDialog.FileName; Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); Workbook xlWorkbook = xlApp.Workbooks.Open(fileName); Worksheet xlWorksheet = xlWorkbook.Sheets[1]; Range xlRange = xlWorksheet.UsedRange; int rowCount = xlRange.Rows.Count; int colCount = xlRange.Columns.Count; if (xlRange[2, 2].Value2 != null) { for (int i = 2; i <= rowCount; i++) { string stockCode = xlRange[i, 1].Value2.ToString().ToUpper().Trim(); int stock_id = stockRepo.GetStockId(stockCode); if (stockCode.Length == 4) { bool isExisted = stockRepo.CheckCurrentStock(stockCode); if (!isExisted) { stock stock = new stock(); stock.code = stockCode; quote = new stock_quotes(); quote.stock_id = stockRepo.SaveStock(stock, out ErrorMessage); } quote = quoteRepo.FindStockQuoteByStockIdAndDate(stock_id, date); quote.quote_date = date.Date; quote.open = xlRange.Cells[i, 3].Value2 == 0 ? Decimal.Parse(xlRange.Cells[i, 2].Value2.ToString()) : Decimal.Parse(xlRange.Cells[i, 3].Value2.ToString()); quote.high = Decimal.Parse(xlRange.Cells[i, 4].Value2.ToString()); quote.low = Decimal.Parse(xlRange.Cells[i, 5].Value2.ToString()); quote.close = Decimal.Parse(xlRange.Cells[i, 6].Value2.ToString()); quote.volume = Decimal.Parse(xlRange.Cells[i, 7].Value2.ToString()) / 100; quote.value = Decimal.Parse(xlRange.Cells[i, 8].Value2.ToString()); quote.frequency = Decimal.Parse(xlRange.Cells[i, 9].Value2.ToString()); quote.foreign_sell = Decimal.Parse(xlRange.Cells[i, 10].Value2.ToString()) / 100; quote.foreign_buy = Decimal.Parse(xlRange.Cells[i, 11].Value2.ToString()) / 100; success = quoteRepo.UpdateStockQuote(quote, out ErrorMessage); if (!String.IsNullOrEmpty(ErrorMessage)) { MessageBox.Show(ErrorMessage); } if (flag) { waitForm.Show(); waitForm.Refresh(); } flag = false; } } if (success) { waitForm.Close(); MessageBox.Show("Data berhasil disimpan"); } } else { MessageBox.Show("File tidak memiliki data"); } }