public async Task <BSCreationResponse> CreateBreathingSpace(CreateBreathingSpace moratorium, Guid organisationId) { var payload = moratorium.ToDictionary(_options, organisationId, _auditContext.GenerateActionParameters()); var dynamicsResponse = await _client.ExecuteActionAsSingleAsync("ntt_BSSAPIMAMoratoriumCreate", payload); var result = JsonSerializer.Deserialize <BSCreationResponse>(dynamicsResponse["Response"].ToString()); var contentDict = payload; contentDict.Add("ntt_BSSAPIMAMoratoriumCreate", true); await _auditService.PerformAuditing(_auditContext.ToAuditDetail(contentDict)); return(result); }
public async Task <BSCreationResponse> CreateBreathingSpace(CreateBreathingSpace moratorium) { var debtsCount = moratorium.Debts?.Count ?? 0; var adHocDebtsCount = moratorium.AdHocDebts?.Count ?? 0; if (debtsCount + adHocDebtsCount == 0) { throw new UnprocessableEntityHttpResponseException("There must be one (1) eligible debt per breathing space"); } var organisationId = GetOrganisationId(); var result = await _moneyAdviserGateway.CreateBreathingSpace(moratorium, organisationId); return(result); }