/**
   * Post và Update lại Product Shown Image
   *
   * @param listProductShownImg
   * @return
   */
  public static BatchActionResult postAndUpdate(
      Context context, ArrayList<ProductShownImg> listProductShownImg) {
    BatchActionResult batchResult = new BatchActionResult(0, 0); // tính thành công, thất bại

    for (ProductShownImg psi : listProductShownImg) {

      boolean isSuccess = false; // đánh dấu đã thành công, không thêm thất bại

      // kiểm tra Product Shown vs Image đã Upload
      ProductShown productShown = psi.getProductShow(context);
      Image image = psi.getImage(context);
      if (productShown.getUploadStatus() == UploadStatus.UPLOADED
          && image.getUploadStatus() == UploadStatus.UPLOADED) {

        PostProductShownImgWSResult ppsiResult =
            ProductShownImgWS.post(psi, productShown.getServerId(), image.getServerId());
        if (ppsiResult.getStatus() == BaseWSResult.STATUS_SUCCESS
            || ppsiResult.getStatus() == BaseWSResult.STATUS_DUPLICATE) {

          ProductShownImgData.update_UploadStatus_ServerId_byId(
              context, psi.get_id(), UploadStatus.UPLOADED, ppsiResult.getProductShown_ImageID());

          isSuccess = true;
        }
      }

      if (isSuccess) batchResult.addSuccess(1);
      else batchResult.addFail(1);
    }
    return batchResult;
  }
  private long savePSImage() {

    String latitude = new LocationService(this).getLatitude() + "";
    String longitude = new LocationService(this).getLongitude() + "";

    // -----save image------
    Image image = new Image();

    String filePath = mUriImage.getPath();
    image.setFileName(FileUtil.getFileName(filePath));
    image.setFilePath(filePath);
    image.setLatitude(latitude);
    image.setLongitude(longitude);

    image.setSessionCode(DatabaseUtil.getCodeGenerationByTime());
    image.setCreateBy(UserPref.getUserPrefId(this));
    image.setCreateAt(Calendar.getInstance());
    image.setUploadStatus(UploadStatus.WAITING_UPLOAD);

    // -----save Attendance image------
    ProductShownImg psi = new ProductShownImg();

    psi.setProductShownId(mProductShown.get_id());

    psi.setSessionCode(DatabaseUtil.getCodeGenerationByTime());
    psi.setCreateBy(UserPref.getUserPrefId(this));
    psi.setCreateAt(Calendar.getInstance());
    psi.setUploadStatus(UploadStatus.WAITING_UPLOAD);

    return ProductShownImgData.add(this, image, psi);
  }