public override async Task <Confirming> ConfirmingIdentity(ConfirmingRequest request, ServerCallContext context) { var query = new GetAccountByIdQuery(request.Id.ToAccountId()); var account = await _mediator.Send(query, context.CancellationToken); if (account is null) { context.Status = new Status(StatusCode.NotFound, ElwarkExceptionCodes.AccountNotFound); return(new Confirming()); } if (account.GetIdentity(request.Identity.ToIdentityKey()) is EmailIdentityModel identity) { var confirmationId = await _mediator.Send( new SendConfirmationCommand(account.Id, identity.GetIdentity(), _language), context.CancellationToken ); return(new Confirming { Id = confirmationId.ToString() }); } context.Status = new Status(StatusCode.NotFound, ElwarkExceptionCodes.AccountNotFound); return(new Confirming()); }
public override async Task <Confirming> CreatingPassword(AccountId request, ServerCallContext context) { var query = new GetAccountByIdQuery(request.ToAccountId()); var account = await _mediator.Send(query, context.CancellationToken); if (account is null) { context.Status = new Status(StatusCode.NotFound, ElwarkExceptionCodes.AccountNotFound); return(new Confirming()); } if (account.IsPasswordAvailable()) { context.Status = new Status(StatusCode.InvalidArgument, ElwarkExceptionCodes.PasswordAlreadyCreated); return(new Confirming()); } var confirmationId = await _mediator.Send( new SendConfirmationCommand(account.Id, account.GetPrimaryEmail().GetIdentity(), _language), context.CancellationToken ); return(new Confirming { Id = confirmationId.ToString() }); }
public async Task <IActionResult> GetAccountById(int accountId) { var query = new GetAccountByIdQuery(accountId); var result = await Mediator.Send(query); return(result != null ? (IActionResult)Ok(result) : NotFound()); }
public async Task <ActionResult <string> > GetAccountByIdQuery(string id) { var query = new GetAccountByIdQuery(id); var result = await _mediator.Send(query); return(result != null ? (ActionResult <string>)Ok(result) : NotFound()); }
public async Task <ActionResult <Account> > Get(String id) { try { var query = new GetAccountByIdQuery(id); var result = await _mediator.Send(query); _logger.LogInformation("Get account by id " + id + " request"); return(result != null ? (ActionResult <Account>)Ok(result) : NotFound()); } catch (Exception e) { _logger.LogError("Error while processing Get account by id " + id + " request: " + e); return(NotFound()); } }
public async Task ShouldReturnTheAccount() { var name = "test1"; var account = new Account(name, AccountType.Checking, 0, new Currency("test", "TST")); await Fixture.AddAsync(account); var query = new GetAccountByIdQuery() { Id = account.Id }; var accountDto = await Fixture.SendAsync(query); accountDto.Name.Should().Be(name); accountDto.Id.Should().Be(account.Id); }
public async Task <Account> GetAccountById(GetAccountByIdQuery query, CancellationToken cancellationToken) { var conn = await Connect(); var streamName = query.AccountId.Value; Account _account = new Account(AccountId.With(streamName)); var streamEvents = conn.ReadStreamEventsForwardAsync(streamName, 0, 100, true, _adminCredentials).Result; foreach (var evt in streamEvents.Events) { var json = Encoding.UTF8.GetString(evt.Event.Data); var account = JsonConvert.DeserializeObject <AccountReadModel>(json); if (!string.IsNullOrEmpty(account.HolderName)) { _account.HolderName = account.HolderName; _account.Balance = account.Balance; } if (!string.IsNullOrEmpty(account.AccountState)) { _account.AccountState = account.AccountState; } if (!account.Amount.Equals(default(float))) { if (evt.Event.EventType.ToLower().Contains("withdraw")) { _account.Balance -= account.Amount; } if (evt.Event.EventType.ToLower().Contains("deposit")) { if (evt.Event.EventType.ToLower().Contains("cash")) { _account.Balance += account.Amount; } if (evt.Event.EventType.ToLower().Contains("check")) { var date = evt.Event.Created; var depositDate = date.AddDays(1); while (!(depositDate.DayOfWeek >= DayOfWeek.Monday && depositDate.DayOfWeek <= DayOfWeek.Friday)) { depositDate = depositDate.AddDays(1); } if (DateTime.UtcNow.Date >= depositDate.Date) { _account.Balance += account.Amount; } } } } if (!account.DailyWireTransferLimit.Equals(default(float))) { _account.DailyWireTransferLimit = account.DailyWireTransferLimit; } if (!account.OverDraftLimit.Equals(default(float))) { _account.OverDraftLimit = account.OverDraftLimit; } } conn.Close(); return(_account); }