Example #1
0
 public void AddParameters <T>(T obj, SqlSerializer.ParameterFlags flags = SqlSerializer.ParameterFlags.Default)
 {
     foreach (KeyValuePair <string, MappingInfo> keyValuePair in SqlSerializer.GetFieldMappings <T>())
     {
         MappingInfo mappingInfo = keyValuePair.Value;
         if ((flags & SqlSerializer.ParameterFlags.IdFieldsOnly) == SqlSerializer.ParameterFlags.IdFieldsOnly && mappingInfo.MappingAttribute.IsId && ((flags & SqlSerializer.ParameterFlags.ExcludeIdentityFields) == SqlSerializer.ParameterFlags.ExcludeIdentityFields && !mappingInfo.MappingAttribute.IsIdentity))
         {
             this._command.Parameters.AddWithValue("@" + mappingInfo.Name, mappingInfo.GetValue((object)obj));
         }
     }
 }
Example #2
0
 private static object Deserialize(IDataRecord reader, Type type, bool dateTimeAsUtc = false)
 {
     if (type == typeof(ExpandoObject))
     {
         ExpandoObject expandoObject             = new ExpandoObject();
         IDictionary <string, object> dictionary = (IDictionary <string, object>)expandoObject;
         for (int i = 0; i < reader.FieldCount; ++i)
         {
             dictionary.Add(reader.GetName(i), reader[i]);
         }
         return((object)expandoObject);
     }
     else
     {
         if (reader.GetFieldType(0) == type)
         {
             return(reader.GetValue(0));
         }
         object instance = Activator.CreateInstance(type);
         Dictionary <string, MappingInfo> fieldMappings = SqlSerializer.GetFieldMappings(type);
         for (int i = 0; i < reader.FieldCount; ++i)
         {
             if (fieldMappings.ContainsKey(reader.GetName(i)))
             {
                 MappingInfo mappingInfo = fieldMappings[reader.GetName(i)];
                 object      obj         = reader[i];
                 if (obj != null && obj != DBNull.Value)
                 {
                     if (obj is DateTime)
                     {
                         if (dateTimeAsUtc)
                         {
                             obj = (object)DateTime.SpecifyKind((DateTime)obj, DateTimeKind.Utc);
                         }
                     }
                     try
                     {
                         mappingInfo.SetValue(instance, obj);
                     }
                     catch (Exception ex)
                     {
                         throw new ArgumentException(string.Format("Failed to map Type: {0}", (object)type), mappingInfo.Name, ex);
                     }
                 }
             }
         }
         return(instance);
     }
 }
Example #3
0
        public List <TReturn> DeserializeMultiRecords <TObject, TReturn>(bool dateTimeAsUtc = false) where TObject : class, new()
        {
            List <TReturn> list = new List <TReturn>();

            using (this.OpenConnection())
            {
                SqlDataReader sqlDataReader = this._command.ExecuteReader();
                while (sqlDataReader.Read())
                {
                    list.Add(SqlSerializer.Deserialize <TObject, TReturn>((IDataRecord)sqlDataReader, dateTimeAsUtc));
                }
                sqlDataReader.Close();
            }
            return(list);
        }
Example #4
0
        public TReturn DeserializeSingleRecord <TObject, TReturn>(bool dateTimeAsUtc = false) where TObject : class, new()
        {
            TReturn @return = default(TReturn);

            using (this.OpenConnection())
            {
                SqlDataReader sqlDataReader = this._command.ExecuteReader(CommandBehavior.SingleRow);
                if (sqlDataReader.Read())
                {
                    @return = SqlSerializer.Deserialize <TObject, TReturn>((IDataRecord)sqlDataReader, false);
                }
                sqlDataReader.Close();
            }
            return(@return);
        }
Example #5
0
        public int ExecuteRowCount(string commandText, Parameter parameter, bool storedProcedure = false)
        {
            SqlSerializer sqlSerializer = this;
            string        commandText1  = commandText;

            Parameter[] parameters;
            if (parameter == null)
            {
                parameters = (Parameter[])null;
            }
            else
            {
                parameters = new Parameter[1] {
                    parameter
                }
            };
            int num = storedProcedure ? 1 : 0;

            return(sqlSerializer.ExecuteRowCount(commandText1, parameters, num != 0));
        }
Example #6
0
        public List <T> ExecuteScalarList <T>(string commandText, Parameter parameter = null, bool dateTimeAsUtc = false, bool storedProcedure = false)
        {
            SqlSerializer sqlSerializer = this;
            string        commandText1  = commandText;

            Parameter[] parameters;
            if (parameter == null)
            {
                parameters = (Parameter[])null;
            }
            else
            {
                parameters = new Parameter[1]
                {
                    parameter
                }
            };
            int num1 = dateTimeAsUtc ? 1 : 0;
            int num2 = storedProcedure ? 1 : 0;

            return(sqlSerializer.ExecuteScalarList <T>(commandText1, parameters, num1 != 0, num2 != 0));
        }
Example #7
0
        public List <T> DeserializeMultiRecords <T>(string commandText, Parameter parameter = null, bool dateTimeAsUtc = false, bool storedProcedure = false) where T : class, new()
        {
            SqlSerializer sqlSerializer = this;
            string        commandText1  = commandText;

            Parameter[] parameters;
            if (parameter == null)
            {
                parameters = (Parameter[])null;
            }
            else
            {
                parameters = new Parameter[1]
                {
                    parameter
                }
            };
            int num1 = dateTimeAsUtc ? 1 : 0;
            int num2 = storedProcedure ? 1 : 0;

            return(sqlSerializer.DeserializeMultiRecords <T, T>(commandText1, parameters, num1 != 0, num2 != 0));
        }
Example #8
0
        public object DeserializeSingleRecord(string commandText, Parameter parameter = null, bool dateTimeAsUtc = false, bool storedProcedure = false)
        {
            SqlSerializer sqlSerializer = this;
            string        commandText1  = commandText;

            Parameter[] parameters;
            if (parameter == null)
            {
                parameters = (Parameter[])null;
            }
            else
            {
                parameters = new Parameter[1]
                {
                    parameter
                }
            };
            int num1 = dateTimeAsUtc ? 1 : 0;
            int num2 = storedProcedure ? 1 : 0;

            return(sqlSerializer.DeserializeSingleRecord <ExpandoObject, object>(commandText1, parameters, num1 != 0, num2 != 0));
        }
Example #9
0
        public void DeserializeMultiSets(SetCollection sets, string commandText, Parameter parameter = null, bool dateTimeAsUtc = false, bool storedProcedure = false)
        {
            SqlSerializer sqlSerializer = this;
            SetCollection sets1         = sets;
            string        commandText1  = commandText;

            Parameter[] parameters;
            if (parameter == null)
            {
                parameters = (Parameter[])null;
            }
            else
            {
                parameters = new Parameter[1]
                {
                    parameter
                }
            };
            int num1 = dateTimeAsUtc ? 1 : 0;
            int num2 = storedProcedure ? 1 : 0;

            sqlSerializer.DeserializeMultiSets(sets1, commandText1, parameters, num1 != 0, num2 != 0);
        }
Example #10
0
 public static Dictionary <string, MappingInfo> GetFieldMappings <T>()
 {
     return(SqlSerializer.GetFieldMappings(typeof(T)));
 }
Example #11
0
 private static TReturn Deserialize <TObject, TReturn>(IDataRecord reader, bool dateTimeAsUtc = false) where TObject : class, new()
 {
     return((TReturn)SqlSerializer.Deserialize(reader, typeof(TObject), dateTimeAsUtc));
 }