public async Task <ServiceResponse <GetCharacterDto> > UpdateCharacter(UpdateCharacterDto character) { var serviceResponse = new ServiceResponse <GetCharacterDto>(); try { var newCharacter = characters.FirstOrDefault(c => c.Id == character.Id && c.User.Id == GetUserId()); foreach (var prop in newCharacter.GetType().GetProperties()) { prop.SetValue(newCharacter, character.GetType().GetProperty(prop.Name)?.GetValue(character)); } var returnValue = _mapper.Map <GetCharacterDto>(newCharacter); serviceResponse.Data = returnValue; } catch (Exception e) { serviceResponse.Message = e.Message; serviceResponse.Success = false; } return(serviceResponse); }
public async Task <ServiceResponse <GetCharacterDto> > UpdateCharacter(UpdateCharacterDto character) { var serviceResponse = new ServiceResponse <GetCharacterDto>(); try { var newCharacter = await _context.Characters.FirstOrDefaultAsync(c => c.Id == character.Id && c.User.Id == GetUserId()); if (newCharacter != null) { foreach (var prop in newCharacter.GetType().GetProperties()) { prop.SetValue(newCharacter, character.GetType().GetProperty(prop.Name)?.GetValue(character)); } await _context.SaveChangesAsync(); var returnValue = _mapper.Map <GetCharacterDto>(newCharacter); serviceResponse.Data = returnValue; } else { serviceResponse.Message = "no such character"; serviceResponse.Success = false; } } catch (Exception e) { serviceResponse.Message = e.Message; serviceResponse.Success = false; } return(serviceResponse); }