public async Task <string> GiveTemporaryCapital([FromBody][NotNull] GiveTemporaryCapitalRequest request) { request.RequiredNotNull(nameof(request)); var account = await _accountManagementService.EnsureAccountValidAsync(request.AccountId .RequiredNotNullOrWhiteSpace(nameof(request.AccountId))); var amount = await _accuracyService.ToAccountAccuracy( request.Amount.RequiredGreaterThan(0, nameof(request.Amount)), account.BaseAssetId, nameof(GiveTemporaryCapital)); return(await _accountManagementService.StartGiveTemporaryCapital( request.EventSourceId.RequiredNotNullOrWhiteSpace(nameof(request.EventSourceId)), account.Id, amount, request.Reason.RequiredNotNullOrWhiteSpace(nameof(request.Reason)), request.Comment, request.AdditionalInfo )); }