public static int NextRequestSerial(this PassbookDB db) { var activesMax = db.ActiveRequests.GetMaxSerial(); var inactivsMax = db.InactiveRequests.GetMaxSerial(); return(Math.Max(activesMax, inactivsMax) + 1); }
internal static SoaRowsRepo1 CreateInMemoryShard(this MonthShardPassbookDB monthDb) { var moRepo = monthDb.GetSoaRepo(); var pbkDB = new PassbookDB(monthDb.BankAccountId, new MemoryStream(), monthDb.CurrentUser); return(new SoaRowsRepo1(moRepo.BaseBalance, moRepo.BaseDate, pbkDB)); }
internal static SoaRowsRepo1 CreateFileBasedShard(this MonthShardPassbookDB monthDb, DateTime day1) { var moRepo = monthDb.GetSoaRepo(); var dbPath = Path.Combine(monthDb.GetShardsDir(), GetFilename(day1)); var pbkDB = new PassbookDB(monthDb.BankAccountId, dbPath, monthDb.CurrentUser); return(new SoaRowsRepo1(moRepo.BaseBalance, moRepo.BaseDate, pbkDB)); }
public static void ToBankTransaction(this PassbookDB pbk, RequestedChequeDTO chq, DateTime clearedDate, SoaRowsRepo1 txnsRepo) { //txnsRepo.Withdraw(clearedDate, req.Payee, req.Purpose, req.Amount.Value, chq.ChequeNumber.ToString()); var dto = ToClearedTransaction(chq, clearedDate); txnsRepo.UpsertAndUpdateBalances(dto); //pbk.InactiveCheques.Insert(chq); pbk.ActiveCheques.Delete(chq); }
public void Createsmetafornewaccounts() { var db = new PassbookDB(2, new MemoryStream(), ""); var meta = db.Metadata; db.GetSoaRepo().Deposit(DateTime.Now, "", "", 1, ""); meta.HasName("Acct_2").Should().BeTrue(); meta.HasName("Acct2_BaseDate").Should().BeTrue(); meta.HasName("Acct2_BaseBalance").Should().BeTrue(); }
public static DateTime NextRequestDate(this PassbookDB db) { var repo = db.ActiveRequests; if (!repo.Any()) { return(DateTime.Now); } return(repo.GetAll().Max(_ => _.RequestDate)); }
public static void ToPreparedCheque(this PassbookDB pbk, FundRequestDTO req, int chequeNumber, DateTime chequeDate) { //if (ChequeExists(chequeNumber, pbk)) return; pbk.ActiveCheques.Insert(new RequestedChequeDTO { Request = req, ChequeNumber = chequeNumber, ChequeDate = chequeDate, }); pbk.InactiveRequests.Insert(req); pbk.ActiveRequests.Delete(req); }
public void Createsdefaultbankacctifnoaccountsyet() { var db = new PassbookDB(1, new MemoryStream(), ""); db.AccountNames.Should().HaveCount(1); var meta = db.Metadata; meta.HasName("Acct_1").Should().BeTrue(); var repo = db.GetSoaRepo(); meta.HasName("Acct1_BaseDate").Should().BeTrue(); meta.HasName("Acct1_BaseBalance").Should().BeTrue(); }
public static IEnumerable <string> GetPayees(this PassbookDB db) => db.ActiveRequests.GetPayees() .Concat(db.InactiveRequests.GetPayees()) .GroupBy(_ => _) .Select(g => g.First());
public static bool HasRequestSerial(this PassbookDB db, int serialNum) => db.ActiveRequests.HasRequestSerial(serialNum) || db.InactiveRequests.HasRequestSerial(serialNum);
private SoaRowsRepo1 CreateSUT(DateTime baseDate, decimal baseBalance) { var db = new PassbookDB(1, new MemoryStream(), ""); return(db.GetSoaRepo(baseBalance, baseDate)); }
public SoaRowsRepo1(decimal baseBalance, DateTime baseDate, PassbookDB db) : base(db.RepoKey, db) { BaseBalance = baseBalance; BaseDate = baseDate; }
//todo: implem this //private static bool ChequeExists(int chequeNumber, PassbookDB pbk) //{ // //var exists = pbk.InactiveCheques // throw new NotImplementedException(); //} public static void ToIssuedCheque(this PassbookDB pbk, RequestedChequeDTO cheque, string issuedTo, DateTime issuedDate) { cheque.IssuedTo = issuedTo; cheque.IssuedDate = issuedDate; pbk.ActiveCheques.Update(cheque); }