public virtual bool Update(User user) { if (!EnsureUserId(user)) { return(false); } IQueryNode condition = (QField)ResolveFieldName("Id") == new QConst(user.Id); var userRow = DataManager.Load(new Query(UserSourceName, condition)); if (userRow == null) { return(false); } var userProps = user.GetType().GetProperties(); foreach (var prop in userProps) { if (user.IsChanged(prop.Name)) { string key = ResolveFieldName(prop.Name); object value = prop.GetValue(user, null); if (userRow.Table.Columns.Contains(key) && !userRow.Table.Columns[key].AutoIncrement) { userRow[key] = value ?? DBNull.Value; } } } DataManager.Update(userRow); return(true); }
protected void SetUserProps(User user, IDictionary data) { var userProps = user.GetType().GetProperties(); foreach (var prop in userProps) { string key = ResolveFieldName(prop.Name); if (data.Contains(key)) { object value = data[key]; if (value == DBNull.Value) { value = null; } prop.SetValue(user, value, null); } } }
public virtual void Create(User user) { DataRow userRow = DataManager.Create(UserSourceName); var userProps = user.GetType().GetProperties(); foreach (var prop in userProps) { if (user.IsChanged(prop.Name)) { string key = ResolveFieldName(prop.Name); object value = prop.GetValue(user, null); if (userRow.Table.Columns.Contains(key) && !userRow.Table.Columns[key].AutoIncrement) { userRow[key] = value ?? DBNull.Value; } } } DataManager.Update(userRow); }
public virtual void Create(User user) { DataRow userRow = DataManager.Create(UserSourceName); var userProps = user.GetType().GetProperties(); foreach (var prop in userProps) if (user.IsChanged(prop.Name)) { string key = ResolveFieldName(prop.Name); object value = prop.GetValue(user, null); if (userRow.Table.Columns.Contains(key) && !userRow.Table.Columns[key].AutoIncrement) userRow[key] = value ?? DBNull.Value; } DataManager.Update(userRow); }
protected void SetUserProps(User user, IDictionary data) { var userProps = user.GetType().GetProperties(); foreach (var prop in userProps) { string key = ResolveFieldName(prop.Name); if (data.Contains(key)) { object value = data[key]; if (value == DBNull.Value) value = null; prop.SetValue(user, value, null); } } }
public virtual bool Update(User user) { if (!EnsureUserId(user)) return false; IQueryNode condition = (QField)ResolveFieldName("Id") == new QConst(user.Id); var userRow = DataManager.Load(new Query(UserSourceName, condition)); if (userRow == null) return false; var userProps = user.GetType().GetProperties(); foreach (var prop in userProps) if (user.IsChanged(prop.Name)) { string key = ResolveFieldName(prop.Name); object value = prop.GetValue(user, null); if (userRow.Table.Columns.Contains(key) && !userRow.Table.Columns[key].AutoIncrement) userRow[key] = value ?? DBNull.Value; } DataManager.Update(userRow); return true; }