Beispiel #1
0
        public async Task <Pet> UpdatePetAsync(PetUpdateRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            PetTableModel table = null;

            if (request.Id.HasValue)
            {
                table = await _petDataAccess.GetPetByIdAsync(request.Id.Value)
                        .ConfigureAwait(false);
            }
            else if (request.Code.HasValue)
            {
                table = await _petDataAccess.GetPetByCodeAsync(request.Code.Value)
                        .ConfigureAwait(false);
            }

            table = _petMapper.MapUpdateRequestToTable(request, table);
            await _petDataAccess.UpdatePetAsync(table);

            var updatedTable = await _petDataAccess.GetPetByIdAsync(table.Id)
                               .ConfigureAwait(false);

            return(_petMapper.MapPetTableToPet(updatedTable, false));
        }