public bool Set <TValue>(TUser Entity, UserColumnType ColumnType, TValue Value) { var param1 = Expression.Parameter(Helper.ClassType, "p1"); var param2 = Expression.Parameter(typeof(TValue), "p2"); var member = Helper.GetMemberAccess(param1, ColumnType); if (member == null) { return(false); } Expression <Action <TUser, TValue> > lambda; if (member.Type == param2.Type) { lambda = Expression.Lambda <Action <TUser, TValue> >(Expression.Assign(member, param2), param1, param2); } else { lambda = Expression.Lambda <Action <TUser, TValue> >(Expression.Assign(member, Expression.Convert(param2, member.Type)), param1, param2); } lambda.Compile().Invoke(Entity, Value); return(true); //var prop = Helper.Get(ColumnType); //if (prop == null) return false; //prop.SetValue(Entity, Value, null); //return true; }
public object Get(TUser Entity, UserColumnType ColumnType) { return(Get <object>(Entity, ColumnType)); //var prop = Helper.Get(ColumnType); //if (prop == null) return null; //return prop.GetValue(Entity, null); }
public T Get <T>(TUser Entity, UserColumnType ColumnType) { var param = Expression.Parameter(Helper.ClassType, "p"); var member = Helper.GetMemberAccess(param, ColumnType); if (member == null) { return(default(T)); } var ttype = typeof(T); Expression <Func <TUser, T> > lambda; if (member.Type == ttype) { lambda = Expression.Lambda <Func <TUser, T> >(member, param); } else { lambda = Expression.Lambda <Func <TUser, T> >(Expression.Convert(member, typeof(T)), param); } return(lambda.Compile().Invoke(Entity)); //var val = Get(Entity, ColumnType); //if (val == null) return default(T); //return (T)val; }
public bool Set <TValue>(EfUser Entity, UserColumnType ColumnType, TValue Value) { switch (ColumnType) { case UserColumnType.Application: Entity.Application = Value.CType <EfApplication>(); break; case UserColumnType.UserID: Entity.UserID = Value.CType <int>(); break; case UserColumnType.Username: Entity.Username = Value.CType <string>(); break; case UserColumnType.Email: Entity.Email = Value.CType <string>(); break; case UserColumnType.IsAnonymous: Entity.IsAnonymous = Value.CType <bool>(); break; case UserColumnType.Password: Entity.Password = Value.CType <string>(); break; case UserColumnType.PasswordFormat: Entity.PasswordFormat = Value.CType <int>(); break; case UserColumnType.PasswordSalt: Entity.PasswordSalt = Value.CType <string>(); break; case UserColumnType.PasswordQuestion: Entity.PasswordQuestion = Value.CType <string>(); break; case UserColumnType.PasswordAnswer: Entity.PasswordAnswer = Value.CType <string>(); break; case UserColumnType.IsApproved: Entity.IsApproved = Value.CType <bool>(); break; case UserColumnType.CreateOn: Entity.CreateOn = Value.CType <DateTime>(); break; case UserColumnType.LastLoginDate: Entity.LastLoginDate = Value.CType <DateTime>(); break; case UserColumnType.LastActivityDate: Entity.LastActivityDate = Value.CType <DateTime>(); break; case UserColumnType.LastPasswordChangedDate: Entity.LastPasswordChangedDate = Value.CType <DateTime>(); break; case UserColumnType.LastLockoutDate: Entity.LastLockoutDate = Value.CType <DateTime>(); break; case UserColumnType.FailedPasswordAttemptCount: Entity.FailedPasswordAttemptCount = Value.CType <int>(); break; case UserColumnType.FailedPasswordAttemptWindowStart: Entity.FailedPasswordAttemptWindowStart = Value.CType <DateTime>(); break; case UserColumnType.FailedPasswordAnswerAttemptCount: Entity.FailedPasswordAnswerAttemptCount = Value.CType <int>(); break; case UserColumnType.FailedPasswordAnswerAttemptWindowStart: Entity.FailedPasswordAnswerAttemptWindowStart = Value.CType <DateTime>(); break; case UserColumnType.Comment: Entity.Comment.CType <string>(); break; case UserColumnType.IsLockedOut: Entity.Status = Value.CType <bool>() ? (byte)2 : (byte)1; break; default: return(false); } return(true); }
public T Get <T>(EfUser Entity, UserColumnType ColumnType) { switch (ColumnType) { case UserColumnType.Application: return(Entity.Application.CType <T>()); case UserColumnType.UserID: return(Entity.UserID.CType <T>()); case UserColumnType.Username: return(Entity.Username.CType <T>()); case UserColumnType.Email: return(Entity.Email.CType <T>()); case UserColumnType.IsAnonymous: return(Entity.IsAnonymous.CType <T>()); case UserColumnType.Password: return(Entity.Password.CType <T>()); case UserColumnType.PasswordFormat: return(Entity.PasswordFormat.CType <T>()); case UserColumnType.PasswordSalt: return(Entity.PasswordSalt.CType <T>()); case UserColumnType.PasswordQuestion: return(Entity.PasswordQuestion.CType <T>()); case UserColumnType.PasswordAnswer: return(Entity.PasswordAnswer.CType <T>()); case UserColumnType.IsApproved: return(Entity.IsApproved.CType <T>()); case UserColumnType.CreateOn: return(Entity.CreateOn.CType <T>()); case UserColumnType.LastLoginDate: return(Entity.LastLoginDate.CType <T>()); case UserColumnType.LastActivityDate: return(Entity.LastActivityDate.CType <T>()); case UserColumnType.LastPasswordChangedDate: return(Entity.LastPasswordChangedDate.CType <T>()); case UserColumnType.LastLockoutDate: return(Entity.LastLockoutDate.CType <T>()); case UserColumnType.FailedPasswordAttemptCount: return(Entity.FailedPasswordAttemptCount.CType <T>()); case UserColumnType.FailedPasswordAttemptWindowStart: return(Entity.FailedPasswordAttemptWindowStart.CType <T>()); case UserColumnType.FailedPasswordAnswerAttemptCount: return(Entity.FailedPasswordAnswerAttemptCount.CType <T>()); case UserColumnType.FailedPasswordAnswerAttemptWindowStart: return(Entity.FailedPasswordAnswerAttemptWindowStart.CType <T>()); case UserColumnType.Comment: return(Entity.Comment.CType <T>()); case UserColumnType.IsLockedOut: return((Entity.Status == 2).CType <T>());; default: return(default(T)); } }
public object Get(EfUser Entity, UserColumnType ColumnType) { return(Get <object>(Entity, ColumnType)); }