Beispiel #1
0
 public JwtTokenService(
     GeldAppContext db,
     IOptions <AuthenticationSettings> authSettingOptions)
 {
     this.authSettings = authSettingOptions.Value;
     this.db           = db;
 }
Beispiel #2
0
        private void SeedDatabase(GeldAppContext db)
        {
            var cat1 = new Category("Ausgaben");
            var cat2 = new Category("Ausgaben");
            var cat3 = new Category("Ausgaben");

            cat1.Subcategories.Add(new Subcategory("Essen"));
            cat2.Subcategories.Add(new Subcategory("Trinken"));
            cat3.Subcategories.Add(new Subcategory("Naschen"));

            var sharedAccount = new Account("Shared", cat2);

            var hans = new User("Hans", "abc123")
            {
                RefreshToken = "refreshMe"
            };

            hans.AddAccount(new Account("Hans", cat1));
            hans.AddAccount(sharedAccount);
            db.Users.Add(hans);

            var petra = new User("Petra", "abc123");

            petra.AddAccount(new Account("Petra", cat3));
            petra.AddAccount(sharedAccount);
            db.Users.Add(petra);

            var admin = User.CreateAdmin("Admin", "abc123");

            db.Users.Add(admin);

            db.SaveChanges();
        }
        private async Task PreloadUserAsync(HttpContext context, GeldAppContext db)
        {
            var userIdClaim = context.User.FindFirst("userid")?.Value;

            if (userIdClaim == null)
            {
                return;
            }

            if (!long.TryParse(userIdClaim, out var userid) || userid <= 0)
            {
                throw new AuthenticationException($"Invalid claim: '{userIdClaim}'");
            }

            var user = await db.Users
                       .AsNoTracking()
                       .Include(i => i.UserAccounts)
                       .ThenInclude(ua => ua.Account)
                       .SingleOrDefaultAsync(u => u.Id == userid);

            if (user == null)
            {
                throw new AuthenticationException($"Unknown userid: {userid}");
            }

            context.Items.Add("currentUser", user);
        }
 public CreateExpenseCommandHandler(
     GeldAppContext db,
     IValidator <Database.Expense> expenseValidator)
 {
     this.db = db;
     this.expenseValidator = expenseValidator;
 }
Beispiel #5
0
 public ImportCsvCommandHandler(
     GeldAppContext db,
     IDkbCsvParser dkbCsvParser,
     IValidator <Database.Expense> expenseValidator)
 {
     this.db           = db;
     this.dkbCsvParser = dkbCsvParser;
 }
Beispiel #6
0
 public CategoryPredictionService(
     GeldAppContext db,
     IScheduler scheduler,
     ILogger <CategoryPredictionService> log)
 {
     this.db        = db;
     this.log       = log;
     this.scheduler = scheduler;
 }
Beispiel #7
0
        public static async Task <GeldAppContext> Create()
        {
            var options = new DbContextOptionsBuilder <GeldAppContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;
            var databaseContext = new GeldAppContext(options);

            databaseContext.Database.EnsureCreated();
            databaseContext.Users.Add(new User()
            {
                Id   = 1,
                Name = "hans",
            });

            await databaseContext.SaveChangesAsync();

            return(databaseContext);
        }
Beispiel #8
0
        private GeldAppContext GetTestDb()
        {
            DateTime D(int y, int m, int d) => new DateTime(y, m, d);

            var builder = new DbContextOptionsBuilder <GeldAppContext>();

            builder.UseInMemoryDatabase(Guid.NewGuid().ToString(), i => { });
            var db = new GeldAppContext(builder.Options);

            var account1 = new Account(1, "Ich");
            var account2 = new Account(2, "Helmut Kohl");

            db.Expenses.Add(new Database.Expense {
                Id = 1, Date = D(1, 1, 1), Account = account1, Amount = -1, Category = "Essen", Subcategory = "Pidser", Details = "Calzone"
            });
            db.Expenses.Add(new Database.Expense {
                Id = 2, Date = D(1, 1, 1), Account = account1, Amount = -2, Category = "Essen", Subcategory = "Coler", Details = "Coca Coler"
            });
            db.Expenses.Add(new Database.Expense {
                Id = 3, Date = D(1, 1, 2), Account = account1, Amount = -3, Category = "Auto", Subcategory = "Öl", Details = "Racing"
            });
            db.Expenses.Add(new Database.Expense {
                Id = 4, Date = D(2, 2, 1), Account = account1, Amount = -4, Category = "Auto", Subcategory = "Benzin", Details = "E10"
            });
            db.Expenses.Add(new Database.Expense {
                Id = 5, Date = D(2, 2, 1), Account = account1, Amount = 100, Category = "Gehalt", Subcategory = "Arbyte", Details = "", Type = ExpenseType.Revenue
            });
            db.Expenses.Add(new Database.Expense {
                Id = 6, Date = D(2, 1, 1), Account = account1, Amount = 1000.12M, Category = "Gehalt", Subcategory = "Schwarzgeld", Details = "", Type = ExpenseType.RegularRevenue
            });
            db.Expenses.Add(new Database.Expense {
                Id = 7, Date = D(3000, 1, 1), Account = account1, Amount = 1000000, Category = "Zocken", Subcategory = "Lotto", Details = "", Type = ExpenseType.Revenue
            });
            db.Expenses.Add(new Database.Expense {
                Id = 8, Date = D(1, 1, 1), Account = account2, Amount = -1, Category = "Essen", Subcategory = "Pidser", Details = "Calzone"
            });
            db.SaveChanges();

            return(db);
        }
 public GetUserSummaryQueryHandler(GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #10
0
 public LoginCommandHandler(GeldAppContext db, IJwtTokenService jwtTokenService)
 {
     this.db = db;
     this.jwtTokenService = jwtTokenService;
 }
        public async Task InvokeAsync(HttpContext context, GeldAppContext db)
        {
            await this.PreloadUserAsync(context, db);

            await this.next(context);
        }
 public DeleteExpenseCommandHandler(GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #13
0
 public GetCategoriesForAccountQueryHandler(GeldAppContext db)
 {
     this.db = db;
 }
 public GetTsvExportStreamQueryHandler(GeldAppContext db)
 {
     this.db = db;
 }
 public GetExpensesRelatedToImportedExpenseQueryHandler(
     GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #16
0
 public GetUnhandledImportedExpensesQueryHandler(GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #17
0
 public ChangePasswordCommandHandler(GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #18
0
 public LinkImportedExpenseCommandHandler(GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #19
0
 public DatabaseMigrator(GeldAppContext db, ILogger <DatabaseMigrator> log)
 {
     this.db  = db;
     this.log = log;
 }
Beispiel #20
0
 public CreateUserCommandHandler(GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #21
0
 public SqlQuery(GeldAppContext db)
 {
     this.db = db;
 }
 public DeleteCategoryCommandHandler(GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #23
0
 public CreateSubcategoryCommandHandler(GeldAppContext db)
 {
     this.db = db;
 }
Beispiel #24
0
 public GetExpenseByIdQueryHandler(GeldAppContext db)
 {
     this.db = db;
 }
 public TransactionBehavior(GeldAppContext db, ILogger <TransactionBehavior <TReq, TResp> > log)
 {
     this.db  = db;
     this.log = log;
 }