예제 #1
0
        private bool ByMemberName(out object?result, string memberName)
        {
            var value = _getter(_item, memberName);

            result = DBNullHelper.FromDb(value);
            return(true);
        }
예제 #2
0
        public void FromDb_BoxedInteger_ShouldStaySame()
        {
            object input = 1;
            object o     = DBNullHelper.FromDb(input);

            Assert.Equal(input, o);
        }
예제 #3
0
        public void FromDb_NonNullString_ShouldStaySame()
        {
            object input = "xyz";
            object o     = DBNullHelper.FromDb(input);

            Assert.AreEqual(input, o);
        }
예제 #4
0
        public void ToDb_BoxedInteger_ShouldStaySame()
        {
            var    input = 1;
            object o     = DBNullHelper.ToDb(input);

            Assert.AreEqual(input, o);
        }
예제 #5
0
        public void FromDb_NullReference_ShouldBeNull()
        {
            object input = null;
            // ReSharper disable ConditionIsAlwaysTrueOrFalse
            object o = DBNullHelper.FromDb(input);

            // ReSharper restore ConditionIsAlwaysTrueOrFalse
            Assert.IsNull(o);
        }
예제 #6
0
        public void ToDb_NullReference_ShouldBecomeDBNull()
        {
            object input = null;
            // ReSharper disable ConditionIsAlwaysTrueOrFalse
            object o = DBNullHelper.ToDb(input);

            // ReSharper restore ConditionIsAlwaysTrueOrFalse
            Assert.AreEqual(DBNull.Value, o);
        }
예제 #7
0
        public void ToDb_NullNullableInteger_ShouldBecomeDBNull()
        {
            int?value = null;
            // ReSharper disable ExpressionIsAlwaysNull
            object input = value;
            object o     = DBNullHelper.ToDb(input);

            // ReSharper enable ExpressionIsAlwaysNull
            Assert.AreEqual(DBNull.Value, o);
        }
예제 #8
0
        public List <LastTrack> GetCurrentTracksList()
        {
            DbConnection     dbConnection = _MasterDB.MasterDBConnection;
            List <LastTrack> lastTracks   = null;

            using (var qry = dbConnection.CreateCommand())
            {
                qry.CommandText = Queries.QRY_ON_AIR;
                StringBuilder sb = new StringBuilder();

                using (DbDataReader edr = qry.ExecuteReader(CommandBehavior.SequentialAccess))
                {
                    lastTracks = new List <LastTrack>();
                    while (edr.Read())
                    {
                        int       i  = 0;
                        LastTrack lt = new LastTrack();
                        lt.ID         = DBNullHelper.SafeGetString(edr, i++);
                        lt.created_at = edr.GetDateTime(i++);
                        lt.FolderPath = DBNullHelper.SafeGetString(edr, i++).Replace('/', '\\');
                        lt.Title      = DBNullHelper.SafeGetString(edr, i++);
                        lt.Artist     = DBNullHelper.SafeGetString(edr, i++);
                        lt.ImagePath  = edr.GetString(i++).Replace('/', '\\');
                        lt.BPM        = (
                            (double)(DBNullHelper.SafeGetInt32(edr, i++, 0))
                            / 100).ToString("0.00", CultureInfo.InvariantCulture);

                        lt.Rating      = DBNullHelper.SafeGetInt32(edr, i++, 0);
                        lt.ReleaseYear = (edr.IsDBNull(i) ? (int?)null : edr.GetInt32(i));
                        i++;
                        lt.ReleaseDate = DBNullHelper.SafeGetString(edr, i++);
                        lt.Length      = TimeSpan.FromSeconds(edr.GetInt32(i++)).ToString(@"mm\:ss", CultureInfo.InvariantCulture);
                        lt.ColorID     = (edr.IsDBNull(i) ? (int?)null : edr.GetInt32(i));
                        i++;
                        lt.TrackComment = DBNullHelper.SafeGetString(edr, i++);
                        lt.ColorName    = DBNullHelper.SafeGetString(edr, i++);
                        lt.AlbumName    = DBNullHelper.SafeGetString(edr, i++);
                        lt.LabelName    = DBNullHelper.SafeGetString(edr, i++);
                        lt.GenreName    = DBNullHelper.SafeGetString(edr, i++);
                        lt.KeyName      = DBNullHelper.SafeGetString(edr, i++);
                        lt.RemixerName  = DBNullHelper.SafeGetString(edr, i++);
                        lt.Message      = DBNullHelper.SafeGetString(edr, i++);

                        lastTracks.Add(lt);
                    }
                }
            }

            return(lastTracks);
        }
예제 #9
0
        private static T MapTo <T>(this IDataRecord record, DbConfig config)
        {
            var convention = config.MappingConvention;
            var setters    = FastReflection.Instance.GetSettersForType <T>();
            var result     = Activator.CreateInstance <T>();

            for (var i = 0; i < record.FieldCount; i++)
            {
                var columnName = convention.FromDb(record.GetName(i));
                if (!setters.TryGetValue(columnName, out var setter))
                {
                    continue;
                }
                var val = DBNullHelper.FromDb(record.GetValue(i));
                setter(result, val);
            }
            return(result);
        }
예제 #10
0
    /// <summary>
    /// Builder method - adds a name/value pair as parameter
    /// </summary>
    /// <param name="name">the parameter name</param>
    /// <param name="value">the parameter value</param>
    /// <returns>the same CommandBuilder instance</returns>
    public CommandBuilder WithParameter(string name, object?value)
    {
        IDbDataParameter p;

        if (Command.Parameters.Contains(name))
        {
            p       = Command.Parameters[name];
            p.Value = DBNullHelper.ToDb(value);
        }
        else
        {
            p = Command.CreateParameter();
            p.ParameterName = name;
            p.Value         = DBNullHelper.ToDb(value);
            Command.Parameters.Add(p);
        }
        return(this);
    }
예제 #11
0
 public override object?GetValue(int i)
 => DBNullHelper.ToDb(Getters[Properties[i].Name](_enumerator.Current));
예제 #12
0
        public void FromDb_DBNullValue_ShouldBeNull()
        {
            object o = DBNullHelper.FromDb(DBNull.Value);

            Assert.IsNull(o);
        }
예제 #13
0
        public void ToDb_DBNullValue_ShouldStayDBNull()
        {
            object o = DBNullHelper.ToDb(DBNull.Value);

            Assert.AreEqual(DBNull.Value, o);
        }
예제 #14
0
        public void IsNull_ValueType_ShouldBeFalse()
        {
            int i = 0;

            Assert.IsFalse(DBNullHelper.IsNull(i));
        }
예제 #15
0
        public void IsNull_NonNullObject_ShouldBeFalse()
        {
            object o = new object();

            Assert.IsFalse(DBNullHelper.IsNull(o));
        }
예제 #16
0
 public void IsNull_DBNullValue_ShouldBeTrue()
 {
     Assert.IsTrue(DBNullHelper.IsNull(DBNull.Value));
 }
예제 #17
0
        public void IsNull_NullObject_ShouldBeTrue()
        {
            object o = null;

            Assert.IsTrue(DBNullHelper.IsNull(o));
        }
예제 #18
0
        public void IsNull_NullNullableValue_ShouldBeTrue()
        {
            int?i = null;

            Assert.IsTrue(DBNullHelper.IsNull(i));
        }
예제 #19
0
        public void IsNull_NonNullNullableValue_ShouldBeFalse()
        {
            int?i = 0;

            Assert.IsFalse(DBNullHelper.IsNull(i));
        }