public StaticTypeLeoVisitor(DictBase <T> handler, AlgorithmKind kind, bool liteMode = false, bool strictMode = false) { _handler = handler ?? throw new ArgumentNullException(nameof(handler)); _algorithmKind = kind; SourceType = typeof(T); LiteMode = liteMode; _lazyMemberHandler = MemberHandler.Lazy(() => new MemberHandler(_handler, SourceType), liteMode); _validationContext = strictMode ? new CorrectContext <T>(this, true) : null; }
private static void SetBelongsToForeignKey(IDbObject obj, object subobj, object foreignKey) { MemberHandler belongsTo = ModelContext.GetInstance(subobj.GetType()).Info.GetBelongsTo(obj.GetType()); if (belongsTo != null) { var to = belongsTo.GetValue(subobj) as IBelongsTo; if (to != null) { to.ForeignKey = foreignKey; } } }
public override void ProcessLazyLoad(UpdateStatementBuilder builder, MemberHandler m, object value, Type type) { object v; if (_LoadedColumns.TryGetValue(m.Name, out v)) { if (!NotEqual(value, v)) { return; } } base.ProcessLazyLoad(builder, m, value, type); }
private void GenerateSetValue(TypeDefinition type, MemberHandler member, TypeReference memberType) { var method = new MethodDefinition("SetValue", CtMethodAttr, _handler.VoidType); method.Parameters.Add(new ParameterDefinition("obj", ParameterAttributes.None, _handler.ObjectType)); method.Parameters.Add(new ParameterDefinition("value", ParameterAttributes.None, _handler.ObjectType)); var processor = new IlBuilder(method.Body); processor.LoadArg(1).Cast(_model).LoadArg(2).CastOrUnbox(memberType, _handler); processor.SetMember(member, _handler); processor.Return(); processor.Append(); type.Methods.Add(method); }
public void UpdateUserDataTest() { MemberHandler memberHandler = new MemberHandler(GetTestMemberList()); Dictionary <string, string> testData = new Dictionary <string, string>(); testData.Add("MemberId", "zxc1"); testData.Add("Password", "zxc123"); testData.Add("MemberName", "John"); testData.Add("Sexuality", "女"); testData.Add("Phone", "0321654987"); testData.Add("Birthday", "10/10/1999"); Assert.IsTrue(memberHandler.UpdateUserData("asd5", testData)); Assert.IsFalse(memberHandler.UpdateUserData("zxc2", testData)); }
private static KeyValue GetKeyValue(ObjectInfo oi, MemberHandler fi) { if (fi.Is.BelongsTo) { Type type = fi.MemberType.GetGenericArguments()[0]; MemberHandler handler = (oi.HandleType == type) ? oi.KeyMembers[0] : ModelContext.GetInstance(type).Info.KeyMembers[0]; return(new KeyValue(fi.Name, null, handler.MemberType)); } if (fi.Is.LazyLoad) { return(new KeyValue(fi.Name, null, fi.MemberType.GetGenericArguments()[0])); } return(new KeyValue(fi.Name, null, fi.MemberType)); }
protected void ProcessDateTime(MemberHandler m) { _b.asp("TextBox", _id).attr("Columns", 23); if (m.Is.CreatedOn || m.Is.UpdatedOn) { _b.attr("Enabled", "False"); } else { _b.attr("onclick", "getDateString(this, oCalendarEn)"); } _b.end.over(); }
protected void ProcessEnum(MemberHandler m) { Type t = m.MemberType; _b.asp("DropDownList", _id); foreach (string s in Enum.GetNames(t)) { object e = Enum.Parse(t, s); string text = StringHelper.EnumToString(e); _b.tag("asp:ListItem").attr("Text", text).attr("Value", s).end.over(); } _b.end.over(); }
protected override void OnRemoveItem(T item) { var ctx = ModelContext.GetInstance(typeof(T)); if (!ctx.IsNewObject(item)) { Type ot = Owner.GetType(); MemberHandler mh = ctx.Info.GetBelongsTo(ot); var o = (IBelongsTo)mh.GetValue(item); o.ForeignKey = null; o.ForeignKeyChanged(); _removedValues.Add(item); } }
protected void registerBtn_Click(object sender, EventArgs e) { if (nameTxt.Text == "") { errorLb.Text = "Name must be filled"; } else if (emailTxt.Text == "") { errorLb.Text = "Email must be filled"; } else if (MemberHandler.checkEmailExist(emailTxt.Text)) { errorLb.Text = "Email already exist"; } else if (passwordTxt.Text == "") { errorLb.Text = "Password must be filled"; } else if (repasswordTxt.Text != passwordTxt.Text) { errorLb.Text = "Confirm password must exactly same as password"; } else if (!maleRb.Checked && !femaleRb.Checked) { errorLb.Text = "Gender must be chosen"; } else if (dobTxt.Text == "") { errorLb.Text = "Birth date must be filled"; } else if (!imageValidation()) { errorLb.Text = "Image extension must be .jpg or .png"; } else if (phoneNumberTxt.Text == "") { errorLb.Text = "Phone number must be filled"; } else if (addressTxt.Text == "") { errorLb.Text = "Address must be filled"; } else { createMember(); saveImages(); Response.Redirect("Homepage.aspx"); } }
protected void ProcessString(MemberHandler m) { int iml = m.MaxLength; _b.asp("TextBox", _id); if (iml > 0) { _b.attr("MaxLength", iml).attr("Columns", iml > 60 ? 60 : iml); } else { _b.attr("TextMode", "MultiLine").attr("Columns", 60).attr("Rows", 10); } _b.end.over(); }
public void CreateNewMemberTest() { MemberHandler memberHandler = new MemberHandler(GetTestMemberList()); Dictionary <string, string> testData = new Dictionary <string, string>(); testData.Add("MemberId", "zxc1"); testData.Add("Password", "zxc123"); testData.Add("MemberName", "zxc1"); testData.Add("Sexuality", "女"); testData.Add("Phone", "0321654987"); testData.Add("Birthday", "10/10/1999"); Assert.IsTrue(memberHandler.CreateNewMember(testData)); testData["MemberId"] = "asd1"; Assert.IsFalse(memberHandler.CreateNewMember(testData)); }
public StaticTypeObjectVisitor(ObjectCallerBase handler, Type targetType, ObjectVisitorOptions options) { _options = options?.Clone() ?? ObjectVisitorOptions.Default; _handler = handler ?? throw new ArgumentNullException(nameof(handler)); SourceType = targetType ?? throw new ArgumentNullException(nameof(targetType)); _objectOwnInfo = ObjectOwn.Of(targetType); _lazyMemberHandler = MemberHandler.Lazy(_handler, SourceType, _options.LiteMode); _correctnessContext = _options.StrictMode ? new CorrectnessContext(this, true) : null; LazyPropertyNodes = RootNode.New(_handler, _options.Clone(x => x.Repeatable = RpMode.NON_REPEATABLE)); }
private static void ProcessMember(MemberAdapter m, IList <MemberHandler> members) { if (((!m.HasAttribute <ExcludeAttribute>(false) && !m.HasAttribute <HasOneAttribute>(false)) && (!m.HasAttribute <HasManyAttribute>(false) && !m.HasAttribute <HasAndBelongsToManyAttribute>(false))) && (!m.HasAttribute <BelongsToAttribute>(false) && !m.HasAttribute <LazyLoadAttribute>(false))) { var member = MemberHandler.NewObject(m); if (member.Is.Key) { members.Add(member); } else { members.Add(member); } } }
private static void CheckMemberCast(MemberHandler member, object value, StringBuilder text) { if (value == DBNull.Value && member.Is.AllowNull) { return; } if (member.MemberType.IsEnum && value is Int32) { return; } if (member.MemberType != value.GetType()) { text.AppendFormat("The type of member [{0}] is [{1}] but the type in Database of it is [{2}]\n", member.Name, member.MemberType, value.GetType()); } }
public static LeoVerifyResult Valid(MemberHandler handler, List <CorrectValueRule> rules) { var len = rules.Count; var failures = new List <LeoVerifyFailure>(); var nameOfExecutedRules = new List <string>(); for (var i = 0; i < len; i++) { var valueRule = rules[i]; var value = valueRule.GetValue(handler); ValidCore(value, valueRule, failures, nameOfExecutedRules); } return(MakeResult(failures, nameOfExecutedRules)); }
private static Type GetType(MemberHandler fh) { if (fh.Is.BelongsTo) { var ctx = ModelContext.GetInstance(fh.MemberType.GetGenericArguments()[0]); if (ctx.Info.KeyMembers != null && ctx.Info.KeyMembers.Length == 1) { return(ctx.Info.KeyMembers[0].MemberType); } } else if (fh.Is.LazyLoad) { return(fh.MemberType.GetGenericArguments()[0]); } return(fh.MemberType); }
private static string GetCrossTableName(MemberHandler f, string unmappedMainTableName, string unmappedSlaveTableName) { string crossTableName; if (!string.IsNullOrEmpty(f.CrossTableName)) { crossTableName = f.CrossTableName; } else { crossTableName = (unmappedMainTableName.CompareTo(unmappedSlaveTableName) > 0) ? (unmappedSlaveTableName + "_" + unmappedMainTableName) : (unmappedMainTableName + "_" + unmappedSlaveTableName); } return(NameMapper.Instance.Prefix + crossTableName); }
public InstanceVisitor(ObjectCallerBase <T> handler, ObjectVisitorOptions options) { _options = options?.Clone() ?? ObjectVisitorOptions.Default; _handler = handler ?? throw new ArgumentNullException(nameof(handler)); SourceType = typeof(T); GenericHistoricalContext = _options.Repeatable ? new HistoricalContext <T>(_options.AlgorithmKind) : null; _objectOwnInfo = ObjectOwn.Of <T>(); _lazyMemberHandler = MemberHandler.Lazy(_handler, SourceType, _options.LiteMode); _correctnessContext = _options.StrictMode ? new CorrectnessContext <T>(this, true) : null; LazyPropertyNodes = RootNode.New(_handler, _options); }
private string GetName(MemberHandler f) { if (f.Is.LazyLoad) { return(f.Name); } if (f.Is.HasOne || f.Is.HasMany) { var oi1 = ObjectInfoFactory.Instance.GetInstance(f.MemberType.GetGenericArguments()[0]); var mh = oi1.GetBelongsTo(_type); if (mh == null) { throw new DataException("HasOne/HasMany and BelongsTo must be paired."); } return(mh.Name); } if (f.Is.HasAndBelongsToMany) { var oi1 = ObjectInfoFactory.Instance.GetInstance(f.MemberType.GetGenericArguments()[0]); var mh = oi1.GetHasAndBelongsToMany(_type); if (mh == null) { throw new DataException("HasOne/HasMany and BelongsTo must be paired."); } return(mh.Name); } if (f.Is.BelongsTo) { var oi1 = ObjectInfoFactory.Instance.GetInstance(f.MemberType.GetGenericArguments()[0]); foreach (MemberHandler member in oi1.RelationMembers) { if (member.Is.HasOne || member.Is.HasMany) { var type = member.MemberType.GetGenericArguments()[0]; if (type == _type) { return(f.Name); } } } throw new DataException("BelongsTo and HasOne/HasMany must be paired."); } throw new ApplicationException("Impossiable!"); }
public ActionResult Login(MemberModel model) { var member = MemberHandler.GetMember(model.EmailAddress, model.Password); if (member != null) { Session[Constants.AppUserKeyName] = PublicUser.GetCurrentUser(member); var mongoCart = CartHandler.GetCart(member.MemberId); var sessionCart = (Cart)Session[Constants.CartKeyName]; if (sessionCart != null && sessionCart.Items != null && sessionCart.Items.Count > 0) { if (mongoCart != null && mongoCart.Items != null && mongoCart.Items.Count > 0) { foreach (var sessionItem in sessionCart.Items) { var mongoItem = mongoCart.Items.Find(p => p.ProductId == sessionItem.ProductId); if (mongoItem != null) { mongoItem.ProductCount = sessionItem.ProductCount; } else { mongoCart.Items.Add(sessionItem); } } } else { mongoCart = sessionCart; } } Session[Constants.CartKeyName] = null; mongoCart.MemberId = member.MemberId; CartHandler.SaveCart(mongoCart); return(RedirectToAction("Index", "Home", new { area = "" })); } ViewBag.LoginError = "Username and password does not match."; return(View()); }
private void ProcessString(MemberHandler m, object value) { if (m.MaxLength < 256 && m.MaxLength > 0) { _html.input.id(_id).name(_name).type("text"); int size = m.MaxLength > 100 ? 100 : m.MaxLength; _html.attr("maxlength", m.MaxLength).attr("size", size); if (value != null) { _html.value(value); } _html.end.over(); } else { string s = (value == null) ? "" : value.ToString(); _html.tag("textarea").id(_id).name(_name).attr("cols", 50).attr("rows", 5).include(s).end.over(); } }
internal IWrappedCollection CreateWrapper(object list) { if (list is IList && (CollectionItemType == null || !_isCollectionItemTypeNullableType)) return new CollectionWrapper<object>((IList)list); if (_genericWrapperType == null) { _genericWrapperType = ReflectionUtils.MakeGenericType(typeof(CollectionWrapper<>), CollectionItemType); ConstructorInfo genericWrapperConstructor = _genericWrapperType.GetConstructor(new[] { _genericCollectionDefinitionType }); #if !PocketPC && !SILVERLIGHT _genericWrapperCreator = LateBoundDelegateFactory.CreateMethodHandler(genericWrapperConstructor); #else _genericWrapperCreator = (target, args) => genericWrapperConstructor.Invoke(new[] { args[0] }); #endif } return (IWrappedCollection)_genericWrapperCreator(null, list); }
private void GenerateNewMember(MemberHandler pi, ILBuilder processor) { processor.LoadArg(1); ConstructorInfo ci1; var ft = pi.MemberType; if (pi.Is.HasOne || pi.Is.HasMany || pi.Is.HasAndBelongsToMany) { ci1 = ft.GetConstructor(new Type[] { typeof(DbObjectSmartUpdate), typeof(string), typeof(string) }); if (string.IsNullOrEmpty(pi.OrderByString)) { processor.LoadString("Id"); } else { processor.LoadString(pi.OrderByString); } } else { ci1 = ft.GetConstructor(new Type[] { typeof(DbObjectSmartUpdate), typeof(string) }); } if (pi.Is.HasOne || pi.Is.HasMany) { processor.LoadString(GetBelongsToColumnName(pi)); } else if (pi.Is.HasAndBelongsToMany) { processor.LoadString(GetHasManyAndBelongsToColumnName(pi)); } else { processor.LoadString(pi.Name); } processor.NewObj(ci1); }
private void ProcessHasAndBelongsToMany(IDbObject obj, MemberHandler f, ILazyLoading ho) { object obj2 = ho.Read(); if (obj2 != null) { Util.TryEnumerate(obj2, RelationSave); } var relations = (IHasAndBelongsToManyRelations)ho; foreach (object obj3 in relations.SavedNewRelations) { SetManyToManyRelation(f.MemberType.GetGenericArguments()[0], Handler.GetKeyValue(obj), obj3); } foreach (object obj4 in relations.RemovedRelations) { RemoveManyToManyRelation(f.MemberType.GetGenericArguments()[0], Handler.GetKeyValue(obj), obj4); } }
public InstanceVisitor(DictBase <T> handler, T instance, AlgorithmKind kind, bool repeatable, bool liteMode = false, bool strictMode = false) { _handler = handler ?? throw new ArgumentNullException(nameof(handler)); _instance = instance; _algorithmKind = kind; _handler.SetInstance(_instance); SourceType = typeof(T); GenericHistoricalContext = repeatable ? new HistoricalContext <T>(kind) : null; LiteMode = liteMode; _lazyMemberHandler = MemberHandler.Lazy(() => new MemberHandler(_handler, SourceType), liteMode); _validationContext = strictMode ? new CorrectContext <T>(this, true) : null; }
private void GenerateGetValue(TypeDefinition type, MemberHandler member, TypeReference memberType) { var method = new MethodDefinition("GetValue", CtMethodAttr, _handler.ObjectType); method.Parameters.Add(new ParameterDefinition("obj", ParameterAttributes.None, _handler.ObjectType)); var processor = new IlBuilder(method.Body); processor.DeclareLocal(_handler.ObjectType); processor.LoadArg(1).Cast(_model); processor.GetMember(member, _handler); if (member.MemberInfo.MemberType.IsValueType) { processor.Box(memberType); } processor.SetLoc(0); processor.LoadLoc(0); processor.Return(); processor.Append(); type.Methods.Add(method); }
protected void btnShow_Click(object sender, EventArgs e) { fld = cboSearch.SelectedValue.ToString(); txt = txtSearch.Text; A_Handler = new MemberHandler(); sql = "select * from " + Tbl_Name + " where " + fld + " like '" + txt + "%' "; //Grid1.DataSource = A_Handler.GetMemberList(sql); //Grid1.DataBind(); SqlDataSource1.SelectCommand = sql; SqlDataSource1.DataBind(); if (Grid1.Rows.Count > 0) { lblRec.Text = "Total Records : " + Grid1.Rows.Count.ToString(); } else { lblRec.Text = "Record Not Found..."; } }
public static LeoVerifyResult ValidOne(MemberHandler handler, List <CorrectValueRule> rules, string name) { if (rules is null || !rules.Any()) { return(LeoVerifyResult.Success); } var valueRule = rules.FirstOrDefault(r => r.Name == name); if (valueRule is null) { return(LeoVerifyResult.Success); } var failures = new List <LeoVerifyFailure>(); var nameOfExecutedRules = new List <string>(); ValidCore(valueRule.GetValue(handler), valueRule, failures, nameOfExecutedRules); return(MakeResult(failures, nameOfExecutedRules)); }
protected override void DoLoad() { if (RelationName == null) { return; } object key = Owner.Context.Info.KeyMembers[0].GetValue(Owner); m_Value = DbEntry.GetObject <T>(CK.K[RelationName] == key, _order); if (m_Value != null) { var ctx0 = ModelContext.GetInstance(typeof(T)); MemberHandler mh = ctx0.Info.GetBelongsTo(Owner.GetType()); if (mh != null) { var ll = (ILazyLoading)mh.GetValue(m_Value); ll.Write(Owner, true); } } }
internal IWrappedCollection CreateWrapper(object list) { if (list is IList && (CollectionItemType == null || !_isCollectionItemTypeNullableType)) { return(new CollectionWrapper <object>((IList)list)); } if (_genericWrapperType == null) { _genericWrapperType = ReflectionUtils.MakeGenericType(typeof(CollectionWrapper <>), CollectionItemType); ConstructorInfo genericWrapperConstructor = _genericWrapperType.GetConstructor(new[] { _genericCollectionDefinitionType }); #if !PocketPC _genericWrapperCreator = LateBoundDelegateFactory.CreateMethodHandler(genericWrapperConstructor); #else _genericWrapperCreator = (target, args) => genericWrapperConstructor.Invoke(new[] { args[0] }); #endif } return((IWrappedCollection)_genericWrapperCreator(null, list)); }
internal IWrappedDictionary CreateWrapper(object dictionary) { if (dictionary is IDictionary) return new DictionaryWrapper<object, object>((IDictionary)dictionary); if (_genericWrapperType == null) { _genericWrapperType = ReflectionUtils.MakeGenericType(typeof(DictionaryWrapper<,>), DictionaryKeyType, DictionaryValueType); ConstructorInfo genericWrapperConstructor = _genericWrapperType.GetConstructor(new[] { _genericCollectionDefinitionType }); #if !PocketPC && !SILVERLIGHT _genericWrapperCreator = LateBoundDelegateFactory.CreateMethodHandler(genericWrapperConstructor); #else _genericWrapperCreator = (target, args) => genericWrapperConstructor.Invoke(new[] { args[0] }); #endif } return (IWrappedDictionary)_genericWrapperCreator(null, dictionary); }