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())); }