private void DrawCreatePromoCodeBody() { GUILayout.Label("Promo code(leave empty for random): ", GSStyles.NormalLabelText); _code = GUILayout.TextField(_code, GSStyles.TextField); GUILayout.Label("Max Claim Count(0 or empty for unlim): ", GSStyles.NormalLabelText); _maxClaimCount = GUILayout.TextField(_maxClaimCount, GSStyles.TextField); _maxClaimCount = Regex.Replace(_maxClaimCount, @"[^0-9]", ""); GUILayout.Label("Start date('dd/MM/yyyy HH:mm:ss' or 'dd/MM/yyy'): ", GSStyles.NormalLabelText); _startDate = GUILayout.TextField(_startDate, GSStyles.TextField); GUILayout.Label("End date('dd/MM/yyyy HH:mm:ss' or 'dd/MM/yyy'): ", GSStyles.NormalLabelText); _endDate = GUILayout.TextField(_endDate, GSStyles.TextField); DemoGuiUtils.DynamicRowFor(_data, "Custom data"); DemoGuiUtils.DrawButton("Create", () => { if (_loading) { return; } _loading = true; var builder = (_code == null || _code.Length > 0 ? PromoCodeBuilder.CreateWithCode(_code) : PromoCodeBuilder.CreateRandomCode()) .AddData(_data.ToDictionary(data => data.Key, data => data.Val)) .WithMaxClaimCount(Convert.ToUInt32(_maxClaimCount)); var startDate = ParseDate(_startDate); var endDate = ParseDate(_endDate); if (startDate.HasValue && endDate.HasValue) { Debug.LogFormat("{0} => {1}", startDate, endDate); builder.WithTimeLimit(startDate.Value, endDate.Value); } GetSocial.CreatePromoCode(builder, promoCode => { _loading = false; ShowFullInfo(promoCode); }, error => { _loading = false; ShowAlert("Create Promo Code", "Failed to create promo code: " + error.Message); _console.LogE(string.Format("Failed to create promo code: {0}", error.Message), showImmediately: false); } ); }, style: GSStyles.Button); DemoGuiUtils.DrawButton("Back", () => { _createPromoCode = false; }, style: GSStyles.Button); }
private void ShowMyPromoCode() { if (GetSocial.User.HasPrivateProperty(MyPromoCodeKey)) { ShowPromoCode(GetSocial.User.GetPrivateProperty(MyPromoCodeKey)); } else { GetSocial.CreatePromoCode(PromoCodeBuilder.CreateRandomCode().AddData(MyPromoCodeKey, "true"), promoCode => { GetSocial.User.SetPrivateProperty(MyPromoCodeKey, promoCode.Code, ShowMyPromoCode, error => _console.LogE(string.Format("Failed to set private property: {0}", error.Message), showImmediately: false)); }, error => _console.LogE(string.Format("Failed to create promo code: {0}", error.Message), showImmediately: false)); } }