public async Task <IList <CreditId> > GetCreditsForOrganisationNumber(OrganisationNumber organisationNumber) { var listOfCredits = new List <CreditId>(); using (var connection = new SqlConnection(ConnectionString)) { const string sql = "SELECT CreditId FROM CreditLookup WHERE OrganisationNumber = @organisationNumber"; await connection.OpenAsync(); using (var command = new SqlCommand(sql, connection)) { command.Parameters.AddWithValue("@organisationNumber", organisationNumber.Number); using (var reader = await command.ExecuteReaderAsync()) { while (reader.Read()) { listOfCredits.Add(CreditId.Parse(reader.GetGuid(0))); } } } } return(listOfCredits); }
public static async Task Main(string[] args) { // Plumbing -------------------------------------------- var serviceProvider = Bootstrapper.GetServiceProvider(); await serviceProvider.GetService <IEventStoreConnectionProvider>().Connect(); var commandMediator = serviceProvider.GetService <CommandMediator>(); var queryMediator = serviceProvider.GetService <QueryMediator>(); // ----------------------------------------------------- // Register a new application var applicationId = LoanApplicationId.NewId(); var organisationNumber = new OrganisationNumber("5561682518", Country.Sweden); var registerApplicationCommand = new RegisterLoanApplication(applicationId) { OrganisationNumber = organisationNumber, RequestedAmount = Money.Create(100000, Currency.SEK), VisitingAddress = new Address("Demogatan 1", string.Empty, "41420", "Göteborg", "Sverige", string.Empty) }; await commandMediator.MediateCommand(registerApplicationCommand); // Get data (Direct ES query) var loanApplicationView = await queryMediator.MediateQuery(new GetLoanApplicationById(applicationId)); Log.Information("loanApplicationView: {View}", JsonConvert.SerializeObject(loanApplicationView, Formatting.Indented, SerializerSettings)); // Approve application - Process + Builder await commandMediator.MediateCommand(new ApproveLoanApplication(applicationId)); // Get data again (Direct ES query) var loanApplicationView2 = await queryMediator.MediateQuery(new GetLoanApplicationById(applicationId)); Log.Information("loanApplicationView: {View}", JsonConvert.SerializeObject(loanApplicationView2, Formatting.Indented, SerializerSettings)); // Credits for org number (ReadModel) var credits = await queryMediator.MediateQuery(new GetCreditsByOrganisationNumber(organisationNumber)); // Get credit data (Direct ES query) var creditView = await queryMediator.MediateQuery(new GetCreditById(credits.FirstOrDefault())); Log.Information("creditView: {View}", JsonConvert.SerializeObject(creditView, Formatting.Indented, SerializerSettings)); // Register disbursement payout await commandMediator.MediateCommand(new RegisterDisbursementPayout(credits.FirstOrDefault(), Money.Create(100000, Currency.SEK))); // Get credit again data (Direct ES query) var creditView2 = await queryMediator.MediateQuery(new GetCreditById(credits.FirstOrDefault())); Log.Information("creditView: {View}", JsonConvert.SerializeObject(creditView2, Formatting.Indented, SerializerSettings)); }
public async Task AddCreditToLookup(CreditId creditId, OrganisationNumber organisationNumber) { using (var connection = new SqlConnection(ConnectionString)) { const string sql = "INSERT INTO CreditLookup (CreditId, OrganisationNumber, CreatedDate) VALUES (@creditId,@organisationNumber,@createdDate)"; await connection.OpenAsync(); using (var command = new SqlCommand(sql, connection)) { command.Parameters.AddWithValue("@creditId", (Guid)creditId); command.Parameters.AddWithValue("@organisationNumber", organisationNumber.Number); command.Parameters.AddWithValue("@createdDate", DateTimeOffset.Now); await command.ExecuteNonQueryAsync(); } } }
public async Task Add() { EnhetsregisteretInfo = await enhetsregisteretClient.GetEnhetInfo(OrganisationNumber.ToString()); AltInnSrrRights = await srrClient.AddRights(OrganisationNumber); }
public LoanApplicationRegistered(OrganisationNumber organisationNumber, Money requestedAmount) { OrganisationNumber = organisationNumber; RequestedAmount = requestedAmount; }
public CreditRegistered(OrganisationNumber organisationNumber, Money loanAmount) { OrganisationNumber = organisationNumber; LoanAmount = loanAmount; }
public GetCreditsByOrganisationNumber(OrganisationNumber organisationNumber) { OrganisationNumber = organisationNumber; }