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);
        }
Beispiel #2
0
        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);
        }