private AccountState ApplyEvent(AccountCurrentBalanceUpdated occurred) { var adjustmentsObligation = new MaintenanceFee("AccountAdjustments", 0, ObligationStatus.Boarding); if (Obligations.ContainsKey("AccountAdjustments")) { adjustmentsObligation = Obligations["AccountAdjustments"]; } var trans = new FinancialTransaction(new Adjustment(occurred.CurrentBalance), occurred.CurrentBalance); adjustmentsObligation.PostTransaction(trans); return(new AccountState( AccountNumber, decimal.Parse(occurred.CurrentBalance.ToString()), AccountStatus, Obligations.Add(adjustmentsObligation.ObligationNumber, adjustmentsObligation), SimulatedFields, AuditLog.Add(new StateLog("AccountCurrentBalanceUpdated", "Boarding Adjustment", occurred.UniqueGuid(), occurred.OccurredOn())), OpeningBalance, Inventroy, UserName, LastPaymentAmount, LastPaymentDate)); }
public AddObligationToAccount(string accountNumber, MaintenanceFee maintenanceFee) { _RequestedOn = DateTime.Now; _UniqueGuid = Guid.NewGuid(); AccountNumber = accountNumber; MaintenanceFee = maintenanceFee; }
public ObligationAddedToAccount(string accountNumber, MaintenanceFee maintenanceFee, string message = "") { _UniqueGuid = Guid.NewGuid(); _OccurredOn = DateTime.Now; MaintenanceFee = maintenanceFee; AccountNumber = accountNumber; Message = message; }
/* Auxiliary methods */ public void GetObligationsForClient(string obligationsFilePath) { try { _log.Info($"Gonna try to open file {obligationsFilePath}"); if (File.Exists(obligationsFilePath)) { var readText = File.ReadAllLines(obligationsFilePath, Encoding.UTF8); _log.Info($"There are {readText.Length} obligations in {obligationsFilePath}"); foreach (var row in readText) { if (row.Length > 11) { var line = row.Split('\t'); var obligationNumber = line[0]; var accountNumber = new AccountNumber(line[1]); var typeOfObligation = line[2]; double openningBalance; double.TryParse(line[3], out openningBalance); var o = new MaintenanceFee(obligationNumber, openningBalance, ObligationStatus.Active); if (_obligationsInFile.ContainsKey(accountNumber)) { var obligations = _obligationsInFile[accountNumber]; obligations.Add(o); _obligationsInFile[accountNumber] = obligations; } else { var obligations = new List <MaintenanceFee>(); obligations.Add(o); _obligationsInFile[accountNumber] = obligations; } } } _log.Info($"Successfully processing file {obligationsFilePath}"); } else { throw new FileNotFoundException(obligationsFilePath); } } catch (Exception e) { _log.Error($"[GetObligationsForClient]: {e.Message} {e.StackTrace}"); Sender.Tell(new FailedToLoadObligations(e.Message)); } }