/// <summary>
        ///
        /// </summary>
        /// <param name="sbStringBuilder"></param>
        /// <param name="value"></param>
        public void Serialize(TelegramBotCallbackDataStringBuilder sbStringBuilder, object value)
        {
            if (value == null)
            {
                sbStringBuilder.AppendEmptyValue();
                return;
            }

            var guid = Guid.Parse(value.ToString());

            sbStringBuilder.AppendValue(guid.ToString());
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sbStringBuilder"></param>
        /// <param name="value"></param>
        public void Serialize(TelegramBotCallbackDataStringBuilder sbStringBuilder, object value)
        {
            if (value == null)
            {
                sbStringBuilder.AppendEmptyValue();
                return;
            }

            var booleanValue = (bool)value;

            sbStringBuilder.AppendValue(booleanValue ? "1" : "0");
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sbStringBuilder"></param>
        /// <param name="value"></param>
        public void Serialize(TelegramBotCallbackDataStringBuilder sbStringBuilder, object value)
        {
            if (value == null)
            {
                sbStringBuilder.AppendEmptyValue();
                return;
            }

            var date          = (DateTime)value;
            var millisecounds = new DateTimeOffset(date).ToUnixTimeMilliseconds();

            sbStringBuilder.AppendValue(millisecounds.ToString());
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string Serialize <T>(T obj) where T : class
        {
            if (obj == null)
            {
                return(string.Empty);
            }

            var sbStringBuilder = new TelegramBotCallbackDataStringBuilder();
            var props           = obj.GetType().GetProperties().ToList();

            props.ForEach(f => SerializePropertyValue(f, obj, sbStringBuilder));

            return(sbStringBuilder.ToString());
        }
Exemple #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sbStringBuilder"></param>
        /// <param name="value"></param>
        public void Serialize(TelegramBotCallbackDataStringBuilder sbStringBuilder, object value)
        {
            var charValue = value as char?;

            if (charValue == null)
            {
                sbStringBuilder.AppendEmptyValue();
                return;
            }

            if (charValue.ToString() == ";")
            {
                throw new FormatException("Cannot convert value, don`t use semicolon (;) on value!");
            }

            sbStringBuilder.AppendValue(charValue.ToString());
        }
Exemple #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sbStringBuilder"></param>
        /// <param name="value"></param>
        public void Serialize(TelegramBotCallbackDataStringBuilder sbStringBuilder, object value)
        {
            var textValue = value as string;

            if (string.IsNullOrEmpty(textValue))
            {
                sbStringBuilder.AppendEmptyValue();
                return;
            }

            if (textValue.Contains(";"))
            {
                throw new FormatException("Cannot convert value, don`t use semicolon (;) on value!");
            }

            sbStringBuilder.AppendValue(textValue);
        }
Exemple #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sbStringBuilder"></param>
 /// <param name="value"></param>
 public void Serialize(TelegramBotCallbackDataStringBuilder sbStringBuilder, object value)
 {
     sbStringBuilder.AppendValue(value?.ToString());
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="sbStringBuilder"></param>
 /// <param name="value"></param>
 public void Serialize(TelegramBotCallbackDataStringBuilder sbStringBuilder, object value)
 {
     throw new NotImplementedException();
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="prop"></param>
        /// <param name="obj"></param>
        /// <param name="builder"></param>
        private static void SerializePropertyValue(PropertyInfo prop, object obj, TelegramBotCallbackDataStringBuilder builder)
        {
            var converter = TelegramBotCallbackDataConverterFactory.GetConverter(prop.PropertyType);

            converter.Serialize(builder, prop.GetValue(obj));
        }