private void OpenProductPage(ProductLookup product) { // TODO: Make dynamic (use XML config files in root of product) string path = ""; switch (product.name) { case "InventoryPro": path = "content/66801"; break; case "QuestSystemPro": path = "content/63460"; break; case "SciFiDesign": path = "content/55270"; break; case "LosPro": path = "content/55292"; break; default: break; } if (string.IsNullOrEmpty(path) == false) { UnityEditorInternal.AssetStore.Open(path); } }
private static void Initialize() { reviewIcon = AssetDatabase.LoadAssetAtPath <Texture>(ReviewIconUri); reviewIconEmpty = AssetDatabase.LoadAssetAtPath <Texture>(ReviewIconEmptyUri); votingThankYouScreen = AssetDatabase.LoadAssetAtPath <Texture>(VotingThankYouScreenUri); _forceShowVotingPage = false; _requestMailSignupForProduct = null; _requestingFeedbackOnProduct = null; _triedToSubmit = false; _installedProductNames = ProductRatingUtility.GetAllProducts(); }
public static void SubmitProduct(ProductLookup product) { using (var client = new WebClient()) { var values = new NameValueCollection(); values["rating"] = product.rating.ToString(); values["message"] = product.feedback; values["product_name"] = product.name; values["email_address"] = product.email; client.UploadValues(ProductWebRequestUri, values); } }
private void RateProduct(ProductLookup product, int rating) { _triedToSubmit = false; product.rating = rating; if (rating <= 3) { // Request feedback _requestingFeedbackOnProduct = product; } else { // Open asset store so the user can leave the review _requestMailSignupForProduct = product; OpenProductPage(product); } }
private void DrawFeedbackRequestForProduct(ProductLookup product) { EditorGUI.LabelField(new Rect(10, 10, position.width - 20f, 20), "Leave feedback for " + product.name + " (your rating: " + product.rating + "/5)"); EditorGUI.LabelField(new Rect(10, 30, position.width - 20f, 20), "Email:"); if (_triedToSubmit && string.IsNullOrEmpty(product.email)) { GUI.color = Color.red; } product.email = EditorGUI.TextField(new Rect(10, 50, position.width - 20f, EditorGUIUtility.singleLineHeight), product.email); GUI.color = Color.white; EditorGUI.LabelField(new Rect(10, 70, position.width - 20f, 20), "Message:"); product.feedback = EditorGUI.TextArea(new Rect(10, 90, position.width - 20f, 40), product.feedback); _subscribeToNewsletter = EditorGUI.Toggle(new Rect(position.width - 173f, 135f, 163f, EditorGUIUtility.singleLineHeight), "Subscribe to newsletter", _subscribeToNewsletter); var btnRect = new Rect(10f, 135f, 100f, EditorGUIUtility.singleLineHeight); if (GUI.Button(btnRect, "Cancel")) { _requestingFeedbackOnProduct = null; } btnRect.x += 110f; if (GUI.Button(btnRect, "Submit")) { _triedToSubmit = true; if (string.IsNullOrEmpty(product.email) == false) { _requestingFeedbackOnProduct = null; _requestMailSignupForProduct = null; _forceShowVotingPage = false; // Send data ProductRatingUtility.SubmitProduct(product); if (_subscribeToNewsletter) { string result; NewsletterEditorUtility.SubscribeToMailingList(product.email, out result); } } } }
private void DrawMailSignupRequestForProduct(ProductLookup product) { EditorGUI.LabelField(new Rect(10, 10, position.width - 20f, 40f), "Subscribe to the newsletter for new product\nannouncements, discounts, giveaways and more."); EditorGUI.LabelField(new Rect(10, 50, position.width - 20f, 20), "Email:"); if (_triedToSubmit && string.IsNullOrEmpty(product.email)) { GUI.color = Color.red; } product.email = EditorGUI.TextField(new Rect(10, 70, position.width - 20f, EditorGUIUtility.singleLineHeight), product.email); GUI.color = Color.white; var btnRect = new Rect(10f, 100f, 100f, EditorGUIUtility.singleLineHeight); if (GUI.Button(btnRect, "No thank you")) { _requestingFeedbackOnProduct = null; _requestMailSignupForProduct = null; } btnRect.x += 110f; if (GUI.Button(btnRect, "Subscribe")) { _triedToSubmit = true; if (string.IsNullOrEmpty(product.email) == false) { _requestingFeedbackOnProduct = null; _requestMailSignupForProduct = null; _forceShowVotingPage = false; if (_subscribeToNewsletter) { string result; NewsletterEditorUtility.SubscribeToMailingList(product.email, out result); } } } }