/** * 2011 Foxykeep (http://datadroid.foxykeep.com) * <p> * Licensed under the Beerware License : <br /> * As long as you retain this notice you can do whatever you want with this stuff. If we meet some * day, and you think this stuff is worth it, you can buy me a beer in return */ package com.foxykeep.datadroidpoc.data.operation; import com.foxykeep.datadroid.exception.ConnectionException; import com.foxykeep.datadroid.exception.DataException; import com.foxykeep.datadroid.network.NetworkConnection; import com.foxykeep.datadroid.network.NetworkConnection.ConnectionResult; import com.foxykeep.datadroid.requestmanager.Request; import com.foxykeep.datadroid.service.RequestService.Operation; import com.foxykeep.datadroidpoc.config.WSConfig; import com.foxykeep.datadroidpoc.data.factory.PhoneAddEditFactory; import com.foxykeep.datadroidpoc.data.model.Phone; import com.foxykeep.datadroidpoc.data.requestmanager.PoCRequestFactory; import android.content.Context; import android.os.Bundle; import java.util.HashMap; public final class CrudSyncPhoneAddEditOperation implements Operation { public static final String PARAM_USER_ID = "com.foxykeep.datadroidpoc.extra.userId"; public static final String PARAM_PHONE = "com.foxykeep.datadroidpoc.extra.phone"; @Override public Bundle execute(Context context, Request request) throws ConnectionException, DataException { HashMap<String, String> params = new HashMap<String, String>(); Phone phone = (Phone) request.getParcelable(PARAM_PHONE); params.put(WSConfig.WS_CRUD_PHONE_ADD_EDIT_PROPERTY_USER_UDID, request.getString(PARAM_USER_ID)); params.put(WSConfig.WS_CRUD_PHONE_ADD_EDIT_PROPERTY_ID, String.valueOf(phone.serverId)); params.put(WSConfig.WS_CRUD_PHONE_ADD_EDIT_PROPERTY_NAME, phone.name); params.put(WSConfig.WS_CRUD_PHONE_ADD_EDIT_PROPERTY_MANUFACTURER, phone.manufacturer); params.put(WSConfig.WS_CRUD_PHONE_ADD_EDIT_PROPERTY_ANDROID_VERSION, phone.androidVersion); params.put(WSConfig.WS_CRUD_PHONE_ADD_EDIT_PROPERTY_SCREEN_SIZE, String.valueOf(phone.screenSize)); params.put(WSConfig.WS_CRUD_PHONE_ADD_EDIT_PROPERTY_PRICE, String.valueOf(phone.price)); NetworkConnection networkConnection = new NetworkConnection(context, WSConfig.WS_CRUD_PHONE_ADD_EDIT_URL); networkConnection.setParameters(params); ConnectionResult result = networkConnection.execute(); Phone serverPhone = PhoneAddEditFactory.parseResult(result.body); Bundle bundle = new Bundle(); bundle.putParcelable(PoCRequestFactory.BUNDLE_EXTRA_PHONE_ADD_EDIT_DATA, serverPhone); return bundle; } }