private static FifthweekUser CreateUser(FifthweekDbContext databaseContext, Random random, UserId userId) { var user = UserTests.UniqueEntity(random); user.Id = userId.Value; databaseContext.Users.Add(user); return user; }
private void CreateUser(Random random, FifthweekDbContext databaseContext, UserId userId) { var creator = UserTests.UniqueEntity(random); creator.Id = userId.Value; databaseContext.Users.Add(creator); }
private static void PayCreatorUncommitted( FifthweekDbContext databaseContext, Random random, UserId sourceUserId, UserId destinationUserId, decimal amount) { AddUncommittedRecord(databaseContext, random, sourceUserId, destinationUserId, amount); }
private static TransactionReference AddCredit(FifthweekDbContext databaseContext, Random random, UserId userId, decimal amount) { var transactionReference = TransactionReference.Random(); AddAppendOnlyLedgerRecord(databaseContext, random, userId, null, -1.2m * amount, LedgerAccountType.Stripe, LedgerTransactionType.CreditAddition, transactionReference); AddAppendOnlyLedgerRecord(databaseContext, random, userId, null, amount, LedgerAccountType.FifthweekCredit, LedgerTransactionType.CreditAddition, transactionReference); AddAppendOnlyLedgerRecord(databaseContext, random, userId, null, (1.2m * amount) - amount, LedgerAccountType.SalesTax, LedgerTransactionType.CreditAddition, transactionReference); return(transactionReference); }
private async Task CreateUserAsync(FifthweekDbContext databaseContext, UserId userId) { var user = UserTests.UniqueEntity(this.random); user.Id = userId.Value; user.Email = userId.Value + "@test.com"; databaseContext.Users.Add(user); await databaseContext.SaveChangesAsync(); }
public static void Register() { Database.SetInitializer(new MigrateDatabaseToLatestVersion <FifthweekDbContext, Configuration>()); // This is to ensure the database is created on startup, before any commands occur that are wrapped in transactions. using (var db = new FifthweekDbContext()) { Trace.WriteLine("Starting with " + db.Users.Count() + " users."); } }
private static void PayCreator( FifthweekDbContext databaseContext, Random random, UserId sourceUserId, UserId destinationUserId, decimal amount) { AddAppendOnlyLedgerRecord(databaseContext, random, sourceUserId, destinationUserId, -amount, LedgerAccountType.FifthweekCredit, LedgerTransactionType.SubscriptionPayment); AddAppendOnlyLedgerRecord(databaseContext, random, null, destinationUserId, amount, LedgerAccountType.FifthweekRevenue, LedgerTransactionType.SubscriptionPayment); AddAppendOnlyLedgerRecord(databaseContext, random, null, destinationUserId, -0.7m * amount, LedgerAccountType.FifthweekRevenue, LedgerTransactionType.SubscriptionPayment); AddAppendOnlyLedgerRecord(databaseContext, random, destinationUserId, destinationUserId, 0.7m * amount, LedgerAccountType.FifthweekRevenue, LedgerTransactionType.SubscriptionPayment); }
private static List <AppendOnlyLedgerRecord> AddCredit(FifthweekDbContext databaseContext, DateTime timestamp, UserId userId, decimal amount, TransactionReference transactionReference = null) { var transactionType = amount < 0 ? LedgerTransactionType.CreditRefund : LedgerTransactionType.CreditAddition; var result = new List <AppendOnlyLedgerRecord>(); if (transactionReference == null) { transactionReference = TransactionReference.Random(); } result.Add(AddAppendOnlyLedgerRecord(databaseContext, timestamp, userId, null, -1.2m * amount, LedgerAccountType.Stripe, transactionType, transactionReference)); result.Add(AddAppendOnlyLedgerRecord(databaseContext, timestamp, userId, null, amount, LedgerAccountType.FifthweekCredit, transactionType, transactionReference)); result.Add(AddAppendOnlyLedgerRecord(databaseContext, timestamp, userId, null, (1.2m * amount) - amount, LedgerAccountType.SalesTax, transactionType, transactionReference)); return(result); }
private static List <AppendOnlyLedgerRecord> PayCreator( FifthweekDbContext databaseContext, Random random, UserId sourceUserId, UserId destinationUserId, decimal amount) { var result = new List <AppendOnlyLedgerRecord>(); var transactionReference = Guid.NewGuid(); result.Add(AddAppendOnlyLedgerRecord(databaseContext, random, sourceUserId, destinationUserId, -amount, LedgerAccountType.FifthweekCredit, LedgerTransactionType.SubscriptionPayment, transactionReference)); result.Add(AddAppendOnlyLedgerRecord(databaseContext, random, null, destinationUserId, amount, LedgerAccountType.FifthweekRevenue, LedgerTransactionType.SubscriptionPayment, transactionReference)); result.Add(AddAppendOnlyLedgerRecord(databaseContext, random, null, destinationUserId, -0.7m * amount, LedgerAccountType.FifthweekRevenue, LedgerTransactionType.SubscriptionPayment, transactionReference)); result.Add(AddAppendOnlyLedgerRecord(databaseContext, random, destinationUserId, destinationUserId, 0.7m * amount, LedgerAccountType.FifthweekRevenue, LedgerTransactionType.SubscriptionPayment, transactionReference)); return(result); }
private static void AddUncommittedRecord( FifthweekDbContext databaseContext, Random random, UserId subscriberId, UserId creatorId, decimal amount) { databaseContext.UncommittedSubscriptionPayments.Add( new UncommittedSubscriptionPayment( subscriberId.Value, creatorId.Value, Now.AddDays(random.Next(-100, 100)), Now.AddDays(random.Next(-100, 100)), amount, Guid.NewGuid())); }
private static void AddAppendOnlyLedgerRecord(FifthweekDbContext databaseContext, Random random, UserId accountOwnerId, UserId counterpartyId, decimal amount, LedgerAccountType ledgerAccountType, LedgerTransactionType transactionType) { databaseContext.AppendOnlyLedgerRecords.Add( new AppendOnlyLedgerRecord( Guid.NewGuid(), accountOwnerId == null ? Guid.Empty : accountOwnerId.Value, counterpartyId == null ? (Guid?)null : counterpartyId.Value, Now.AddDays(random.Next(-100, 100)), amount, ledgerAccountType, transactionType, Guid.NewGuid(), Guid.NewGuid(), null, null, null)); }
private static AppendOnlyLedgerRecord AddAppendOnlyLedgerRecord( FifthweekDbContext databaseContext, DateTime timestamp, UserId accountOwnerId, UserId counterpartyId, decimal amount, LedgerAccountType ledgerAccountType, LedgerTransactionType transactionType, TransactionReference transactionReference) { var item = new AppendOnlyLedgerRecord( Guid.NewGuid(), accountOwnerId == null ? Guid.Empty : accountOwnerId.Value, counterpartyId == null ? (Guid?)null : counterpartyId.Value, timestamp, amount, ledgerAccountType, transactionType, transactionReference.Value, Guid.NewGuid(), null, null, null); databaseContext.AppendOnlyLedgerRecords.Add(item); return(item); }
private static AppendOnlyLedgerRecord AddAppendOnlyLedgerRecord(FifthweekDbContext databaseContext, Random random, UserId accountOwnerId, UserId counterpartyId, decimal amount, LedgerAccountType ledgerAccountType, LedgerTransactionType transactionType, Guid transactionReference, bool save) { var record = new AppendOnlyLedgerRecord( Guid.NewGuid(), accountOwnerId == null ? Guid.Empty : accountOwnerId.Value, counterpartyId == null ? (Guid?)null : counterpartyId.Value, Now.AddDays(random.Next(-100, 100)), amount, ledgerAccountType, transactionType, transactionReference, Guid.NewGuid(), null, null, null); if (save) { databaseContext.AppendOnlyLedgerRecords.Add(record); } return record; }
public FifthweekRoleStore(FifthweekDbContext context) : base(context) { }
public FifthweekUserStore(FifthweekDbContext context) : base(context) { }
private static void AddCredit(FifthweekDbContext databaseContext, Random random, UserId userId, decimal amount) { AddAppendOnlyLedgerRecord(databaseContext, random, userId, null, -1.2m * amount, LedgerAccountType.Stripe, LedgerTransactionType.CreditAddition); AddAppendOnlyLedgerRecord(databaseContext, random, userId, null, amount, LedgerAccountType.FifthweekCredit, LedgerTransactionType.CreditAddition); AddAppendOnlyLedgerRecord(databaseContext, random, userId, null, (1.2m * amount) - amount, LedgerAccountType.SalesTax, LedgerTransactionType.CreditAddition); }