public override void Draw()
    {
        if (!vShopPacksDetailUpdated)
        {
          vShopCategoryInfo = MNDirect.GetVShopProvider().FindVShopCategoryById(vShopPackItem.CategoryId);
          vShopPacksDetailUpdated = true;
          shopPacksDetailToShow = MNDirect.GetVItemsProvider().FindGameVItemById(vShopPackItem.Delivery[0].VItemId);
        }

        if (vShopPackItem != null)
        {
          GUILayout.Label("Pack ID: " + vShopPackItem.Id);
          GUILayout.Label("Name: " + vShopPackItem.Name);
          GUILayout.Label("Category: " + vShopCategoryInfo.Name);

          GUILayout.Label("Items in pack: ");

          GUILayout.Label("Item name: " + shopPacksDetailToShow.Name);
          GUILayout.Label("Quantity: " + vShopPackItem.Delivery[0].Amount);
          GUILayout.Label("Price: $ " + (float)vShopPackItem.PriceValue/100);
          GUILayout.Label("");
          GUILayout.Label("Description: ");
          GUILayout.Label(vShopPackItem.Description);

          GUILayout.Toggle((vShopPackItem.Model & 1) != 0,"Is Hidden");
          GUILayout.Toggle((vShopPackItem.Model & 2) != 0,"Hold Sales");

          GUILayout.Label("Application Parametres");
          GUI.enabled = false;
          GUILayout.TextArea(vShopPackItem.AppParams);
          GUI.enabled = true;
        }
        else
        {
          GUILayout.Label(PPSDemoCommonInfo.InformationUpdatingMessage);
        }
    }
        public MNVShopProvider.VShopCategoryInfo[] GetVShopCategoryList()
        {
            MNTools.DLog("MNVShopProvider:GetVShopCategoryList");

              if (Application.platform == RuntimePlatform.Android) {
            List<object> deserializedArray = MNUnityCommunicator.Serializer.DeserializeArray(
              MNVShopProviderUnityClass.CallStatic<string>("getVShopCategoryList"),
              typeof(MNVShopProvider.VShopCategoryInfo));

            MNVShopProvider.VShopCategoryInfo[] resultArray = new MNVShopProvider.VShopCategoryInfo[deserializedArray.Count];

            for (int index = 0;index < deserializedArray.Count;index++) {
              resultArray[index] = (MNVShopProvider.VShopCategoryInfo)(deserializedArray[index]);
            }

            return resultArray;
              }
              else {
            return new MNVShopProvider.VShopCategoryInfo[0];
              }
        }
        public static MNVShopProvider.VShopCategoryInfo MNVShopProviderVShopCategoryInfoFromDictionary(IDictionary deserializedObject)
        {
            if (deserializedObject == null) {
            return null;
              }

              MNVShopProvider.VShopCategoryInfo typedResult = new MNVShopProvider.VShopCategoryInfo();

              typedResult.Id = Convert.ToInt32(deserializedObject["Id"]);
              typedResult.Name = (string)deserializedObject["Name"];
              typedResult.SortPos = Convert.ToInt32(deserializedObject["SortPos"]);

              return typedResult;
        }