Exemple #1
0
        public async Task <IStatusCodeActionResult> UpdateAsync([FromRoute] Guid id, ClientDetailsUpdateRequest model)
        {
            if (id == Guid.Empty)
            {
                throw new NotFoundHttpResponseException();
            }

            model.MoratoriumId = id;

            await _moneyAdviserGateway.UpdateClientWithDetailsAsync(model);

            return(Ok());
        }
        public async Task UpdateClientWithDetailsAsync(ClientDetailsUpdateRequest model)
        {
            var breathingSpace = await _client.For <Ntt_breathingspacemoratorium>()
                                 .Key(model.MoratoriumId)
                                 .Select(m => new
            {
                m._ntt_debtorid_value,
                m._ntt_breathingspacestatusid_value
            })
                                 .FindEntryAsync();

            if (breathingSpace == null)
            {
                throw new NotFoundHttpResponseException();
            }

            var bsStatus = breathingSpace.GetMoratoriumStatus();

            if (bsStatus != MoratoriumStatus.Active && bsStatus != MoratoriumStatus.Draft)
            {
                throw new ConflictHttpResponseException();
            }

            var result = await _client.For <Ntt_breathingspacedebtor>()
                         .Key(breathingSpace._ntt_debtorid_value)
                         .Set(new
            {
                ntt_firstname   = model.FirstName,
                ntt_lastname    = model.LastName,
                ntt_middlename  = model.MiddleName ?? string.Empty,
                ntt_dateofbirth = model.DateOfBirth
            })
                         .UpdateEntryWithLogsAsync(_logger);

            await _auditService.PerformAuditing(_auditContext.ToAuditDetail(result.ToAuditDictionary()));
        }