class ConfigPropertyServiceImpl implements ConfigPropertyService {

	@Override
	@Transactional
	public String deleteProperty(ConfigPropertyItem configPropertyItem, String user, String userMessage, String timeNow,
			boolean partOfRollbackOperation) {
		ConfigPropertyKey configPropertyKey = new ConfigPropertyKey();
		configPropertyKey.setApplication(configPropertyItem.getApplication());
		configPropertyKey.setProfile(activeProfile);
		configPropertyKey.setLabel(AdminConstants.LATEST);
		configPropertyKey.setCfkey(configPropertyItem.getConfigKey());

		ConfigProperty configProperty = new ConfigProperty();
		configProperty.setConfigKeyParams(configPropertyKey);
		configProperty.setValue(configPropertyItem.getConfigValue());

		ConfigPropertyAudit configPropertyAudit = new ConfigPropertyAudit();
		configPropertyAudit.setId(UUID.randomUUID().toString());
		configPropertyAudit.setCfkey(configPropertyKey.getCfkey());
		configPropertyAudit.setApplication(configPropertyKey.getApplication());
		configPropertyAudit.setProfile(configPropertyKey.getProfile());
		configPropertyAudit.setLabel(configPropertyKey.getLabel());
		configPropertyAudit.setOldvalue(configPropertyRepository.findByConfigKeyParams(configPropertyKey).getValue());
		configPropertyAudit.setModifiedBy(user);
		configPropertyAudit.setModifiedDate(timeNow);
		configPropertyAudit.setUserMessage(userMessage);
		configPropertyAudit.setSystemMessage("DELETE operation through API invocation");

		if (partOfRollbackOperation) {
			configPropertyAudit.setSystemMessage(AdminConstants.CONFIG_ROLLBACK_MSG);
		}
		configPropertyRepository.delete(configProperty);
		configPropertyAuditRepository.save(configPropertyAudit);

		return "Success";
	}

}