public async Task <IActionResult> Edit(int id, [Bind("ID,CreatedDateTime,Bank,Branch,Account,FromDate,ToDate,AvailableBalance,AvailableBalanceDate,LedgerBalance,LedgerBalanceDate")] StatementDetails statementDetails) { if (id != statementDetails.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(statementDetails); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!StatementDetailsExists(statementDetails.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); } return(View(statementDetails)); }
public async Task <IActionResult> Create([Bind("ID,CreatedDateTime,Bank,Branch,Account,FromDate,ToDate,AvailableBalance,AvailableBalanceDate,LedgerBalance,LedgerBalanceDate")] StatementDetails statementDetails) { if (ModelState.IsValid) { _context.Add(statementDetails); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(statementDetails)); }
// // GET: /Finance/Welcome/ public IActionResult Welcome(string name, int numTimes = 1) { var statement = new Statement(); var statementDetails = new StatementDetails(); var transactionDetailsList = new List <Transaction>(); var uploads = Path.Combine(_environment.WebRootPath, "uploads"); var fileUploadedPath = Path.Combine(uploads, "Export20170424235704.csv"); using (var streamReader = System.IO.File.OpenText(fileUploadedPath)) { while (!streamReader.EndOfStream) { var line = streamReader.ReadLine(); if (line.Contains("Created date")) { statementDetails.CreatedDateTime = ExtractDateTime(line); } else if (line.Contains("Bank") && line.Contains("Branch")) { var bankBranchDetails = line.Split(';'); statementDetails.Bank = int.Parse(Regex.Replace(bankBranchDetails[0], @"\D", "")); statementDetails.Branch = int.Parse(Regex.Replace(bankBranchDetails[1], @"\D", "")); statementDetails.Account = Regex.Replace(bankBranchDetails[2], "Account", ""); } else if (line.Contains("From date")) { var date = Regex.Replace(line, @"\D", ""); statementDetails.FromDate = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture); } else if (line.Contains("To date")) { var date = Regex.Replace(line, @"\D", ""); statementDetails.ToDate = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture); } else if (line.Contains("Avail Bal")) { var balance = CalculateAvailAndLedgBal(line); statementDetails.AvailableBalance = Convert.ToDecimal(balance.FirstOrDefault().Replace(".", ",")); var date = balance.LastOrDefault(); statementDetails.AvailableBalanceDate = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture); } else if (line.Contains("Ledger Balance")) { var balance = CalculateAvailAndLedgBal(line); statementDetails.LedgerBalance = Convert.ToDecimal(balance.FirstOrDefault().Replace(".", ",")); var date = balance.LastOrDefault(); statementDetails.LedgerBalanceDate = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture); } else { var data = line.Split(new[] { ',' }); if (DateTime.TryParse(data[0], out DateTime result)) { transactionDetailsList.Add(new Transaction() { Date = result, UniqueId = int.Parse(data[1]), TransactionType = data[2], ChequeNumber = data[3], Payee = data[4], Memo = data[5], Amount = Convert.ToDecimal(data[6].Replace(".", ",")) }); } } } statement.StatementDetails = statementDetails; statement.Transactions = transactionDetailsList; } DirectoryInfo di = new DirectoryInfo(uploads); foreach (FileInfo file in di.GetFiles()) { file.Delete(); } return(View(statement)); }
private void AddAdditionalDetailstoFinancials(string companyId, StatementDetails bs, CompanyFinancials cfToAdd, StatementType st) { cfToAdd.Statement = st; cfToAdd.FYear = bs.Fyear; cfToAdd.SimId = companyId; }
private async Task <CompanyFinancials> ObtainReportedNumbers(string companyId, string apiKey, string statementType, StatementDetails sd) { CompanyFinancials cfToAdd; try { using (var wc = new WebClient()) { var urlToUse = UrlTemplate.Replace(@"{API-KEY}", apiKey) .Replace(@"{companyId}", companyId) .Replace(@"{statementType}", statementType) .Replace(@"{periodType}", sd.Period) .Replace(@"{financialYear}", sd.Fyear.ToString()); string data = ""; _logger.LogTrace($"Starting to fetch {sd} for {companyId}"); data = await wc.DownloadStringTaskAsync(urlToUse); cfToAdd = await Task.Run(() => JsonConvert.DeserializeObject <CompanyFinancials>(data)); _logger.LogTrace($"Completed data download for {sd} => {companyId}; Number of records {cfToAdd.Values.Count}"); //cfToAdd = JsonConvert.DeserializeObject<CompanyFinancials>(data); } return(cfToAdd); } catch (Exception ex) { _logger.LogCritical($"Exception in DownloadReportableItems::ObtainReportedNumbers\n{ex.Message}"); if (ex.InnerException != null) { _logger.LogCritical(ex.InnerException.Message); } return(null); } }