private static async Task <BankAccount> GetOwnBankAccount(ClubTreasurerContext context, string ownIban) { var account = await context.BankAccounts.FirstOrDefaultAsync(a => a.ID == ownIban); if (account != null) { return(account); } else { account = new BankAccount { ID = ownIban, Name = "Rugby Club Innsbruck" }; context.BankAccounts.Add(account); try { await context.SaveChangesAsync(); } catch (Exception ex) { var test = ex; } return(account); } }
private static async Task <BankTransactionCategory> GetOrCreateNewCategory(ClubTreasurerContext context, GeorgeTransaction transaction) { var category = await SearchByMultipleKeyword(context, transaction.Reference); if (category != null) { return(category); } else { category = await context.BankTransactionCategorys.FirstOrDefaultAsync(a => a.Name == "Undefined"); } if (category != null) { return(category); } else { category = new BankTransactionCategory() { Name = "Undefined", }; context.BankTransactionCategorys.Add(category); await context.SaveChangesAsync(); } return(category); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ClubTreasurerContext context, RoleManager <AppRole> roleManager, UserManager <AppUser> userManager, IOptions <RCIConfig> rciConfig) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseAuthentication(); IdentitySeed.Initialize(context, userManager, rciConfig, roleManager, Configuration).Wait(); //TODO: Delete after deployment //if (env.IsDevelopment()) //{ // app.Use(async (httpContext, next) => // { // var user = httpContext.User.Identity.Name; // DeveloperLogin(httpContext).Wait(); // await next.Invoke(); // }); //} app.UseMvc(); }
public static async Task <bool> SaveGeorgeTransactionsToDB(ClubTreasurerContext context, List <GeorgeTransaction> georgeTransactions) { List <BankTransaction> transactions = new List <BankTransaction>(); foreach (var transaction in georgeTransactions) { transactions.Add(new BankTransaction() { ID = transaction.ReferenceNumber, BookingDate = transaction.BookingDate, Amount = (decimal)(transaction.Amount.Value * Math.Pow(10.00, -transaction.Amount.Precision)), Reference = transaction.Reference, Account = await GetOrCreateNewAccount(context, transaction), TransactionCategory = await GetOrCreateNewCategory(context, transaction) }); } try { foreach (var transaction in transactions) { context.BankTransactions.AddIfNotExists(transaction, t => t.ID); } await context.SaveChangesAsync(); return(true); } catch (Exception ex) { //tried to add duplicate data var test = ex; return(false); } }
public static async Task <BankTransactionCategory> SearchByMultipleKeyword(ClubTreasurerContext context, string reference) { string[] keywords = reference.Split(','); var allCategories = await context.BankTransactionCategorys.Where(c => c.KeyWords != null).ToListAsync(); foreach (var category in allCategories) { if (category.KeyWords.Split(',').Any(s => reference.Contains(s, StringComparison.OrdinalIgnoreCase))) { return(category); } } return(null); }
public static async Task Initialize(ClubTreasurerContext context, UserManager <AppUser> userManager, IOptions <RCIConfig> rciConfig, RoleManager <AppRole> roleManager, IConfiguration configuration) { context.Database.EnsureCreated(); string adminRole = "Admin"; string adminDescription = "This is the administrator role"; var passwords = configuration.GetSection("Passwords"); var adminPassword = passwords.GetValue <string>("AdminPassword"); var adminEmail = rciConfig.Value.AdminEmailAddress; var adminFirstName = rciConfig.Value.AdminFirstName; var adminLastName = rciConfig.Value.AdminLastName;; if (await roleManager.FindByNameAsync(adminRole) == null) { await roleManager.CreateAsync(new AppRole(adminRole, adminDescription, DateTime.Now)); } if (await userManager.FindByEmailAsync(adminEmail) == null) { var user = new AppUser { UserName = $"{adminFirstName} {adminLastName} (Administrator)", FirstName = adminFirstName, LastName = adminLastName, Email = adminEmail, EmailConfirmed = true }; var result = await userManager.CreateAsync(user); if (result.Succeeded) { await userManager.AddPasswordAsync(user, adminPassword); await userManager.AddToRoleAsync(user, adminRole); await userManager.UpdateNormalizedEmailAsync(user); await userManager.UpdateNormalizedUserNameAsync(user); } } }
public IdCardModel(ClubTreasurerContext context, IOptions <RCIConfig> rciConfig) { _context = context; _rciConfig = rciConfig; }
public EditModel(ClubTreasurerContext context) { _context = context; }
private static async Task <BankAccount> GetOrCreateNewAccount(ClubTreasurerContext context, GeorgeTransaction transaction) { BankAccount account; if (transaction.PartnerAccount?.Iban == null) { //cash payment account = await GetOwnBankAccount(context, "AT722050303300000928"); if (account != null) { return(account); } } account = await context.BankAccounts.FirstOrDefaultAsync(a => a.ID == transaction.PartnerAccount.Iban); if (account != null) { return(account); } else { account = new BankAccount { ID = transaction.PartnerAccount.Iban, Name = transaction.PartnerName }; context.BankAccounts.Add(account); try { await context.SaveChangesAsync(); } catch (Exception ex) { var test = ex; } //try to assign it to a person var person = context.Persons.Where(p => p.FullName == transaction.PartnerName || p.FullNameReverse == transaction.PartnerName).FirstOrDefault(); if (person != null) { context.Attach(person).State = EntityState.Modified; if (person.BankAccounts == null) { person.BankAccounts = new List <BankAccount> { account }; await context.SaveChangesAsync(); } else { person.BankAccounts.Add(account); } } return(account); } }
public IndexModel(ClubTreasurerContext context) { _context = context; }
public CreateModel(ClubTreasurerContext context) { _context = context; }
public ImportModel(ClubTreasurerContext context) { _context = context; }
public DeleteModel(ClubTreasurerContext context) { _context = context; }
public DetailsModel(ClubTreasurerContext context) { _context = context; }
public EditModel(ClubTreasurerContext context, IMapper mapper) { _context = context; _mapper = mapper; }