/// <summary> /// Adds a navigation property to the entity type. /// </summary> /// <param name="navigationPropertyName">Name of the navigation property.</param> /// <param name="modelAssociationSet">Association set that this navigation property is based on.</param> /// <param name="fromRoleName">From-role. Normally the same as the from-role for the associationset, but can be reversed for recursive associations.</param> /// <param name="fromRoleName">To-role. Normally the same as the To-role for the associationset, but can be reversed for recursive associations.</param> /// <returns>A NavigationProperty object.</returns> public NavigationProperty AddNavigationMember(string navigationPropertyName, ModelAssociationSet modelAssociationSet, string fromRoleName, string toRoleName) { try { if (!NavigationProperties.Any(np => np.Name.Equals(navigationPropertyName)) && !MemberProperties.Any(mp => mp.Name.Equals(navigationPropertyName)) && navigationPropertyName != this.Name) { NavigationProperty navigationProperty = new NavigationProperty(ParentFile, this, navigationPropertyName, modelAssociationSet, _entityTypeElement, fromRoleName, toRoleName); _navigationProperties.Add(navigationProperty.Name, navigationProperty); navigationProperty.NameChanged += new EventHandler <NameChangeArgs>(navprop_NameChanged); navigationProperty.Removed += new EventHandler(navprop_Removed); return(navigationProperty); } else { throw new ArgumentException("A property named " + navigationPropertyName + " already exist in the type " + this.Name); } } catch (Exception ex) { try { ExceptionTools.AddExceptionData(ex, this); } catch { } throw; } }
/// <summary> /// Adds a scalar member to this entity type. /// </summary> /// <param name="name">Name of the new member property.</param> /// <param name="type">Type of the new member property.</param> /// <param name="nullable">Nullable; true or false.</param> /// <param name="ordinal">Ordinal position within the entity type.</param> /// <returns>A ModelMemberProperty object.</returns> public ModelMemberProperty AddMember(string name, Type type, bool nullable, int ordinal) { try { if (!MemberProperties.Where(mp => mp.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase)).Any() && !NavigationProperties.Any(np => np.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase)) && name != this.Name) { ModelMemberProperty mp = new ModelMemberProperty(base.ParentFile, this, name, ordinal, _entityTypeElement); mp.Type = type; mp.Nullable = nullable; _memberProperties.Add(name, mp); mp.NameChanged += new EventHandler <NameChangeArgs>(prop_NameChanged); mp.Removed += new EventHandler(prop_Removed); return(mp); } else { throw new ArgumentException("A property with the name " + name + " already exist in the type " + this.Name); } } catch (Exception ex) { try { ExceptionTools.AddExceptionData(ex, this); } catch { } throw; } }
public IEnumerable<MemberInfo> FindMembers(MemberProperties property, string value) { var message = string.Format(MessageConstants.Members_FindMembers, property, value); var doc = new XmlDocument(); doc.LoadXml(ProcessAction(message)); return doc.DocumentElement.ChildNodes.Cast<XmlNode>() .First(q => "Results".Equals(q.Name)) .ChildNodes.Cast<XmlNode>() .Select(q => MemberInfo.Create(q)); }
protected override System.Linq.Expressions.Expression VisitMemberAccess(System.Linq.Expressions.MemberExpression m) { if (m.Expression is System.Linq.Expressions.ParameterExpression) { string text = string.Empty; MemberInfo memberInfo = m.Member; if (memberInfo != null) { this._CurrentMemberInfo = memberInfo; this._CurrentMemberType = m.Type; Type valueType = memberInfo.ReflectedType; DMSTableKeys key = this.TableKeys.Where(q => q.AssemblyQualifiedName == valueType.AssemblyQualifiedName).LastOrDefault(); if (key != null && (this.ExcuteType == DMSExcuteType.SELECT || this.ExcuteType == DMSExcuteType.UPDATE_WHERE || this.ExcuteType == DMSExcuteType.INSERT_SELECT)) { text = key.TableSpecialName; if (this.SplitExpression.TableMapping.TokenFlag == true) { text = this.Provider.BuildColumnName(text); } this._strSql.Append(text); this._strSql.Append(this.Provider.TableToken); } text = GetMemberInfoName(memberInfo.Name); if (this.SplitExpression.TableMapping.TokenFlag == true) { text = this.Provider.BuildColumnName(text); } _strSql.Append(text); } return(m); } else if (m.Expression is System.Linq.Expressions.MemberExpression) { //q.UserName.Length string name = m.Member.Name; if (MemberProperties.ContainsKey(name)) { this.MethodFunc(MemberProperties[name], m.Expression); } return(m); } return(base.VisitMemberAccess(m)); }
/// <summary> /// Retrieves a scalar member in this entity type, or creates it if not found /// </summary> /// <param name="name">Name of the member property.</param> /// <param name="type">Type of the new member property.</param> /// <param name="nullable">Nullable; true or false.</param> /// <param name="ordinal">Ordinal position within the entity type.</param> /// <returns>A ModelMemberProperty object.</returns> public ModelMemberProperty GetOrCreateMember(string name, Type type, bool nullable, int ordinal) { try { ModelMemberProperty modelMemberProperty = MemberProperties.FirstOrDefault(mp => mp.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase)); if (modelMemberProperty == null) { modelMemberProperty = AddMember(name, type, nullable, ordinal); } return(modelMemberProperty); } catch (Exception ex) { try { ExceptionTools.AddExceptionData(ex, this); } catch { } throw; } }
internal void FromPivotHierarchy(PivotHierarchy ph) { SetAllNull(); if (ph.Outline != null) { Outline = ph.Outline.Value; } if (ph.MultipleItemSelectionAllowed != null) { Outline = ph.MultipleItemSelectionAllowed.Value; } if (ph.SubtotalTop != null) { SubtotalTop = ph.SubtotalTop.Value; } if (ph.ShowInFieldList != null) { ShowInFieldList = ph.ShowInFieldList.Value; } if (ph.DragToRow != null) { DragToRow = ph.DragToRow.Value; } if (ph.DragToColumn != null) { DragToColumn = ph.DragToColumn.Value; } if (ph.DragToPage != null) { DragToPage = ph.DragToPage.Value; } if (ph.DragToData != null) { DragToData = ph.DragToData.Value; } if (ph.DragOff != null) { DragOff = ph.DragOff.Value; } if (ph.IncludeNewItemsInFilter != null) { IncludeNewItemsInFilter = ph.IncludeNewItemsInFilter.Value; } if (ph.Caption != null) { Caption = ph.Caption.Value; } SLMemberProperty mp; SLMembers mems; using (var oxr = OpenXmlReader.Create(ph)) { while (oxr.Read()) { if (oxr.ElementType == typeof(MemberProperty)) { mp = new SLMemberProperty(); mp.FromMemberProperty((MemberProperty)oxr.LoadCurrentElement()); MemberProperties.Add(mp); } else if (oxr.ElementType == typeof(Members)) { mems = new SLMembers(); mems.FromMembers((Members)oxr.LoadCurrentElement()); Members.Add(mems); } } } }