/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (Barcode != null)
         {
             hashCode = hashCode * 59 + Barcode.GetHashCode();
         }
         if (Name != null)
         {
             hashCode = hashCode * 59 + Name.GetHashCode();
         }
         if (Brand != null)
         {
             hashCode = hashCode * 59 + Brand.GetHashCode();
         }
         if (Ingredients != null)
         {
             hashCode = hashCode * 59 + Ingredients.GetHashCode();
         }
         if (Package != null)
         {
             hashCode = hashCode * 59 + Package.GetHashCode();
         }
         if (Serving != null)
         {
             hashCode = hashCode * 59 + Serving.GetHashCode();
         }
         if (Categories != null)
         {
             hashCode = hashCode * 59 + Categories.GetHashCode();
         }
         if (Nutrients != null)
         {
             hashCode = hashCode * 59 + Nutrients.GetHashCode();
         }
         if (DietLabels != null)
         {
             hashCode = hashCode * 59 + DietLabels.GetHashCode();
         }
         if (DietFlags != null)
         {
             hashCode = hashCode * 59 + DietFlags.GetHashCode();
         }
         if (PackagingPhotos != null)
         {
             hashCode = hashCode * 59 + PackagingPhotos.GetHashCode();
         }
         if (Allergens != null)
         {
             hashCode = hashCode * 59 + Allergens.GetHashCode();
         }
         if (BrandList != null)
         {
             hashCode = hashCode * 59 + BrandList.GetHashCode();
         }
         if (Countries != null)
         {
             hashCode = hashCode * 59 + Countries.GetHashCode();
         }
         if (CountryDetails != null)
         {
             hashCode = hashCode * 59 + CountryDetails.GetHashCode();
         }
         if (PalmOilIngredients != null)
         {
             hashCode = hashCode * 59 + PalmOilIngredients.GetHashCode();
         }
         if (IngredientList != null)
         {
             hashCode = hashCode * 59 + IngredientList.GetHashCode();
         }
         if (HasEnglishIngredients != null)
         {
             hashCode = hashCode * 59 + HasEnglishIngredients.GetHashCode();
         }
         if (Minerals != null)
         {
             hashCode = hashCode * 59 + Minerals.GetHashCode();
         }
         if (Traces != null)
         {
             hashCode = hashCode * 59 + Traces.GetHashCode();
         }
         if (Vitamins != null)
         {
             hashCode = hashCode * 59 + Vitamins.GetHashCode();
         }
         if (Description != null)
         {
             hashCode = hashCode * 59 + Description.GetHashCode();
         }
         if (Keywords != null)
         {
             hashCode = hashCode * 59 + Keywords.GetHashCode();
         }
         return(hashCode);
     }
 }