Example #1
0
        /// <summary>
        /// Read the object from parameter
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sid"></param>
        /// <param name="parameterName"></param>
        /// <returns></returns>
        public static T ReadObject <T>(string sid, string parameterName)
        {
            try
            {
                TransParameterAccessor tpa = DataAccessor.CreateInstance <TransParameterAccessor>();
                string base64Encoded       = tpa.GetParameterBySidAndName(sid, parameterName);

                base64Encoded = Unmask(sid, parameterName, base64Encoded);

                if (typeof(T) != typeof(int) &&
                    typeof(T) != typeof(long) &&
                    typeof(T) != typeof(decimal) &&
                    typeof(T) != typeof(float) &&
                    typeof(T) != typeof(double) &&
                    typeof(T) != typeof(bool) &&
                    typeof(T) != typeof(string))
                {
                    int length = Convert.ToInt32(base64Encoded.Substring(0, 4), 16);
                    base64Encoded = base64Encoded.Substring(4);
                    using (MemoryStream input = new MemoryStream(Convert.FromBase64String(base64Encoded)))
                    {
                        using (GZipStream zipStream = new GZipStream(input, CompressionMode.Decompress))
                        {
                            byte[] uncompressed = new byte[length];
                            int    read         = zipStream.Read(uncompressed, 0, uncompressed.Length);
                            if (read == uncompressed.Length)
                            {
                                BinaryFormatter bf = new BinaryFormatter();
                                using (MemoryStream ms = new MemoryStream(uncompressed))
                                {
                                    return((T)bf.Deserialize(ms));
                                }
                            }
                        }
                    }
                }
                return((T)Convert.ChangeType(base64Encoded, typeof(T)));
            }
            catch
            {
                return(default(T));
            }
        }
Example #2
0
        /// <summary>
        /// Save the object with parameter
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sid"></param>
        /// <param name="parameterName"></param>
        /// <param name="obj"></param>
        public static void SaveObject <T>(string sid, string parameterName, T obj)
        {
            obj = Mask <T>(sid, parameterName, obj);
            string base64Encoded = null;

            if (typeof(T) == typeof(int) ||
                typeof(T) == typeof(long) ||
                typeof(T) == typeof(decimal) ||
                typeof(T) == typeof(float) ||
                typeof(T) == typeof(double) ||
                typeof(T) == typeof(bool))
            {
                base64Encoded = obj.ToString();
            }
            else if (typeof(T) != typeof(string))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    BinaryFormatter bf = new BinaryFormatter();
                    bf.Serialize(ms, obj);

                    using (MemoryStream dest = new MemoryStream())
                    {
                        byte[] buffer = ms.ToArray();
                        using (GZipStream zipStream = new GZipStream(dest, CompressionMode.Compress))
                        {
                            zipStream.Write(buffer, 0, buffer.Length);
                            zipStream.Close();
                        }
                        base64Encoded = string.Format("{0:X4}{1}", buffer.Length, Convert.ToBase64String(dest.ToArray()));
                    }
                }
            }
            else
            {
                base64Encoded = obj as string;
            }

            TransParameterAccessor tpa = DataAccessor.CreateInstance <TransParameterAccessor>();

            tpa.SetParameter(sid, parameterName, base64Encoded);
        }
Example #3
0
        public static void DeleteSecurityKey(string sid)
        {
            TransParameterAccessor tpa = DataAccessor.CreateInstance <TransParameterAccessor>();

            tpa.DeleteSecurityKey(sid);
        }