using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; namespace TelegramBotBase.Form { /// /// Base class for serializing buttons and data /// public class CallbackData { [JsonProperty("m")] public String Method { get; set; } [JsonProperty("v")] public String Value { get; set; } public CallbackData() { } public CallbackData(String method, String value) { this.Method = method; this.Value = value; } public static String Create(String method, String value) { return new CallbackData(method, value).Serialize(); } /// /// Serializes data to json string /// /// public String Serialize() { String s = ""; try { s = Newtonsoft.Json.JsonConvert.SerializeObject(this); } catch { } return s; } /// /// Deserializes data from json string /// /// /// public static CallbackData Deserialize(String data) { CallbackData cd = null; try { cd = Newtonsoft.Json.JsonConvert.DeserializeObject(data); return cd; } catch { } return null; } public static implicit operator string(CallbackData callbackData) => callbackData.Serialize(); } }