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));
        }
Exemple #2
0
 public AddObligationToAccount(string accountNumber, MaintenanceFee maintenanceFee)
 {
     _RequestedOn   = DateTime.Now;
     _UniqueGuid    = Guid.NewGuid();
     AccountNumber  = accountNumber;
     MaintenanceFee = maintenanceFee;
 }
Exemple #3
0
 public ObligationAddedToAccount(string accountNumber, MaintenanceFee maintenanceFee, string message = "")
 {
     _UniqueGuid    = Guid.NewGuid();
     _OccurredOn    = DateTime.Now;
     MaintenanceFee = maintenanceFee;
     AccountNumber  = accountNumber;
     Message        = message;
 }
Exemple #4
0
        /* 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));
            }
        }