public async Task <Guid> CreateClientWithDetailsAsync(ClientDetailsCreateRequest model, Guid organisationId)
        {
            var dynamicsDebtorModel = new Ntt_breathingspacedebtor
            {
                ntt_firstname   = model.FirstName,
                ntt_lastname    = model.LastName,
                ntt_middlename  = model.MiddleName,
                ntt_dateofbirth = model.DateOfBirth
            };

            var debtorResult = await _client.For <Ntt_breathingspacedebtor>()
                               .Set(dynamicsDebtorModel)
                               .InsertEntryWithLogsAsync(_logger);

            var moneyAdviser = await _client.For <inss_moneyadviserorganisation>()
                               .Key(organisationId)
                               .FindEntryAsync();

            var moratorium = new Ntt_breathingspacemoratorium
            {
                ntt_ManagingMoneyAdviserOrganisationId = moneyAdviser
            };

            var moratoriumResult = await _client.For <Ntt_breathingspacemoratorium>()
                                   .Set(moratorium)
                                   .InsertEntryWithLogsAsync(_logger);

            await _client.For <Ntt_breathingspacedebtor>()
            .Key(debtorResult.Ntt_breathingspacedebtorid.Value)
            .LinkEntryWithLogsAsync(_logger, moratoriumResult, "Ntt_breathingspacedebtor_ntt_breathingspacemoratorium_debtorid");

            await _auditService.PerformAuditing(_auditContext.ToAuditDetail(dynamicsDebtorModel.ToAuditDictionary()));

            return(moratoriumResult.ntt_breathingspacemoratoriumid.Value);
        }
Exemplo n.º 2
0
        public async Task <IStatusCodeActionResult> CreateAsync(ClientDetailsCreateRequest model)
        {
            var organisationId = GetOrganisationId();
            var id             = await _moneyAdviserGateway.CreateClientWithDetailsAsync(model, organisationId);

            return(Ok(id));
        }