Esempio n. 1
0
 /// <summary>
 /// Get or set the value of an attribute, by name
 /// Changes temporarily override values from the MetaData database, but are not saved.
 /// </summary>
 public string this[CswEnumNbtPropertyAttributeName AttributeName, CswEnumNbtSubFieldName SubFieldName = null]
 {
     get
     {
         string ret = string.Empty;
         CswNbtFieldTypeAttribute attr = Attributes.FirstOrDefault(a => a.Name == AttributeName && (SubFieldName == null || a.SubFieldName == SubFieldName));
         if (null != attr)
         {
             ret = attr.Value;
         }
         //else
         //{
         //    throw new CswDniException( CswEnumErrorType.Error, "Property Configuration Error",
         //                               "Illegal get; Unrecognized property attribute '" + AttributeName + "' for field type '" + getFieldTypeValue() + "'" );
         //}
         return(ret);
     }
     set
     {
         CswNbtFieldTypeAttribute attr = Attributes.FirstOrDefault(a => a.Name == AttributeName && (SubFieldName == null || a.SubFieldName == SubFieldName));
         if (null != attr)
         {
             attr.Value = value;
         }
         //else
         //{
         //    throw new CswDniException( CswEnumErrorType.Error, "Property Configuration Error",
         //                               "Illegal set; Unrecognized property attribute '" + AttributeName + "' for field type '" + getFieldTypeValue() + "'" );
         //}
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Creates a CswNbtViewPropertyFilter and returns its Json
        /// </summary>
        public JObject makeViewPropFilter(CswNbtView View, JObject FilterProp, bool ClearFilters = false)
        {
            JObject Ret = new JObject();

            string FiltArbitraryId = CswConvert.ToString(FilterProp["filtarbitraryid"]);
            string PropArbitraryId = CswConvert.ToString(FilterProp["proparbitraryid"]);

            if (FiltArbitraryId == "undefined")
            {
                FiltArbitraryId = string.Empty;
            }
            if (PropArbitraryId == "undefined")
            {
                PropArbitraryId = string.Empty;
            }

            CswNbtViewPropertyFilter ViewPropFilt = null;

            if (false == string.IsNullOrEmpty(PropArbitraryId))
            {
                CswNbtViewProperty ViewProp = (CswNbtViewProperty)View.FindViewNodeByArbitraryId(PropArbitraryId);

                if (false == string.IsNullOrEmpty(FiltArbitraryId))
                {
                    ViewPropFilt = (CswNbtViewPropertyFilter)View.FindViewNodeByArbitraryId(FiltArbitraryId);
                }
                else
                {
                    ViewPropFilt = View.AddViewPropertyFilter(ViewProp, CswEnumNbtSubFieldName.Unknown, CswEnumNbtFilterMode.Unknown, string.Empty, false);
                }

                //Case 23779, 23937, 24064
                if (ClearFilters && null != ViewPropFilt)
                {
                    ViewProp.Filters.Clear();
                    ViewProp.Filters.Add(ViewPropFilt);
                }
            }

            if (ViewPropFilt != null)
            {
                CswEnumNbtFilterConjunction Conjunction = (CswEnumNbtFilterConjunction)CswConvert.ToString(FilterProp["conjunction"]);
                CswEnumNbtSubFieldName      FieldName   = (CswEnumNbtSubFieldName)CswConvert.ToString(FilterProp["subfieldname"]);
                CswEnumNbtFilterMode        FilterMode  = (CswEnumNbtFilterMode)CswConvert.ToString(FilterProp["filter"]);
                string FilterValue = CswConvert.ToString(FilterProp["filtervalue"]);

                if (FieldName != CswEnumNbtSubFieldName.Unknown &&
                    FilterMode != CswEnumNbtFilterMode.Unknown)
                {
                    ViewPropFilt.FilterMode   = FilterMode;
                    ViewPropFilt.Conjunction  = Conjunction;
                    ViewPropFilt.SubfieldName = FieldName;
                    ViewPropFilt.Value        = FilterValue;
                    _addVbPropFilter(Ret, ViewPropFilt);
                }
            }
            return(Ret);
        }
Esempio n. 3
0
        /// <summary>
        /// Returns true if the subfield was modified
        /// </summary>
        public bool wasSubFieldModified(CswEnumNbtSubFieldName SubFieldName)
        {
            bool ret = false;

            if (_SubFieldsModified.ContainsKey(SubFieldName))
            {
                ret = _SubFieldsModified[SubFieldName];
            }
            return(ret);
        }
Esempio n. 4
0
        /// <summary>
        /// Returns the original value of the provided subfield for this property
        /// </summary>
        public string GetOriginalPropRowValue(CswEnumNbtSubFieldName SubfieldName)
        {
            string ret = string.Empty;
            ICswNbtFieldTypeRule FieldTypeRule = _CswNbtMetaDataNodeTypeProp.getFieldTypeRule();

            if (FieldTypeRule != null)
            {
                CswEnumNbtPropColumn Column = FieldTypeRule.SubFields[SubfieldName].Column;
                ret = GetOriginalPropRowValue(Column);
            }
            return(ret);
        }
Esempio n. 5
0
 /// <summary>
 /// For creating a property filter
 /// </summary>
 public CswNbtViewPropertyFilter(CswNbtResources CswNbtResources, CswNbtView View,
                                 CswEnumNbtSubFieldName inSubFieldName,
                                 CswEnumNbtFilterMode inFilterMode,
                                 string inValue,
                                 CswEnumNbtFilterResultMode inResultMode,
                                 CswEnumNbtFilterConjunction PropertyFilterConjunction,
                                 bool inCaseSensitive = false,
                                 bool inShowAtRuntime = false)
     : base(CswNbtResources, View)
 {
     _constructor(CswNbtResources, View, inSubFieldName, inFilterMode, inValue, inResultMode, inCaseSensitive, inShowAtRuntime, PropertyFilterConjunction);
 }
Esempio n. 6
0
 /// <summary>
 /// Set the value for a subfield, triggering the logic associated with that subfield on the fieldtype
 /// reference: http://stackoverflow.com/questions/289980/is-there-a-delegate-available-for-properties-in-c
 /// </summary>
 public void SetSubFieldValue(CswEnumNbtSubFieldName SubFieldName, object value)
 {
     if (_SubFieldMethods.ContainsKey(SubFieldName) && null != _SubFieldMethods[SubFieldName].Item2)
     {
         // This calls the appropriate set; method in the CswNbtNodeProp* class
         _SubFieldMethods[SubFieldName].Item2(value);
     }
     else
     {
         throw new CswDniException(CswEnumErrorType.Error,
                                   "Invalid subfield configuration",
                                   PropName + " (field type: " + getFieldTypeValue() + ") does not contain a set method for subfield " + SubFieldName.ToString());
     }
 } // SetSubFieldValue
        public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber)
        {
            //return ( _CswNbtFieldTypeRuleDefault.renderViewPropFilter( RunAsUser, SubFields, CswNbtViewPropertyFilterIn ) );

            CswEnumNbtSubFieldName OldSubfieldName = CswNbtViewPropertyFilterIn.SubfieldName;
            CswEnumNbtFilterMode   OldFilterMode   = CswNbtViewPropertyFilterIn.FilterMode;
            string OldValue = CswNbtViewPropertyFilterIn.Value;

            // BZ 8558
            if (OldSubfieldName == SubFieldName.Value && OldValue.ToLower() == "me")
            {
                CswNbtViewProperty Prop = (CswNbtViewProperty)CswNbtViewPropertyFilterIn.Parent;

                ICswNbtMetaDataProp MetaDataProp = null;
                if (Prop.Type == CswEnumNbtViewPropType.NodeTypePropId)
                {
                    MetaDataProp = Prop.NodeTypeProp;
                }
                else if (Prop.Type == CswEnumNbtViewPropType.ObjectClassPropId)
                {
                    MetaDataProp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp(Prop.ObjectClassPropId);
                }

                // Could be a propref of a propref, so we can't look at the relationship

                //ICswNbtMetaDataProp RelationshipProp = null;
                //if( MetaDataProp.FKType == NbtViewPropType.NodeTypePropId.ToString() )
                //    RelationshipProp = _CswNbtFieldResources.CswNbtResources.MetaData.getNodeTypeProp( MetaDataProp.FKValue);
                //else if( MetaDataProp.FKType == NbtViewPropType.ObjectClassPropId.ToString() )
                //    RelationshipProp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp( MetaDataProp.FKValue );

                //if( RelationshipProp != null && RelationshipProp.IsUserRelationship() )
                //{
                if (CswNbtViewPropertyFilterIn.Value.ToLower() == "me")
                {
                    CswNbtViewPropertyFilterIn.SubfieldName = SubFieldName.Value;
                    CswNbtViewPropertyFilterIn.FilterMode   = CswEnumNbtFilterMode.Equals;
                    CswNbtViewPropertyFilterIn.Value        = _CswNbtFieldResources.CswNbtResources.Nodes[RunAsUser.UserId].NodeName;
                }
                //}
            }
            string ret = _CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber);

            CswNbtViewPropertyFilterIn.SubfieldName = OldSubfieldName;
            CswNbtViewPropertyFilterIn.FilterMode   = OldFilterMode;
            CswNbtViewPropertyFilterIn.Value        = OldValue;

            return(ret);
        }//makeWhereClause()
Esempio n. 8
0
        /// <summary>
        /// Sets the value of a column for a property
        /// value should be in native format -- this function will convert to db format
        /// </summary>
        /// <param name="column">Target column</param>
        /// <param name="value">New value</param>
        /// <returns>True if any changes were made</returns>
        public bool SetPropRowValue(CswEnumNbtSubFieldName SubFieldName, CswEnumNbtPropColumn column, object value, bool IsNonModifying = false)
        {
            bool   ret = false;
            object dbval;

            if (value is string)
            {
                dbval = CswConvert.ToDbVal(CswConvert.ToString(value).Trim());
            }
            else
            {
                dbval = CswConvert.ToDbVal(value);
            }

            if (_PropRow == null && dbval != DBNull.Value)
            {
                makePropRow();
                ret = true;
            }

            if (_PropRow != null)
            {
                if (_NodeId != null)
                {
                    _PropRow["nodeid"]          = CswConvert.ToDbVal(_NodeId.PrimaryKey);
                    _PropRow["nodeidtablename"] = _NodeId.TableName;
                }
                if (null != _NodeTypeProp)
                {
                    _PropRow["nodetypepropid"] = CswConvert.ToDbVal(_NodeTypeProp.PropId);
                }
                _PropRow["objectclasspropid"] = CswConvert.ToDbVal(_ObjectClassPropId);

                if (false == (CswConvert.ToDbVal(_PropRow[column.ToString()]).Equals(dbval)))
                {
                    _PropRow[column.ToString()] = CswConvert.ToDbVal(value);
                    if (false == IsNonModifying && SubFieldName != CswEnumNbtSubFieldName.Unknown)
                    {
                        setSubFieldModified(SubFieldName);
                    }
                    ret = true;
                }
            }
            // Don't just return WasModified, or else changes to one subfield
            // will look like changes to another subfield
            return(ret);
        }
Esempio n. 9
0
        } // SetSubFieldValue

        /// <summary>
        /// Get the value for a subfield
        /// </summary>
        public object GetSubFieldValue(CswEnumNbtSubFieldName SubFieldName)
        {
            object ret = null;

            if (_SubFieldMethods.ContainsKey(SubFieldName) && null != _SubFieldMethods[SubFieldName].Item1)
            {
                // This calls the appropriate get; method in the CswNbtNodeProp* class
                ret = _SubFieldMethods[SubFieldName].Item1();
            }
            else
            {
                throw new CswDniException(CswEnumErrorType.Error,
                                          "Invalid subfield configuration",
                                          PropName + " (field type: " + getFieldTypeValue() + ") does not contain a get method for subfield " + SubFieldName.ToString());
            }
            return(ret);
        } // GetSubFieldValue
Esempio n. 10
0
 private void _constructor(CswNbtResources CswNbtResources, CswNbtView View,
                           CswEnumNbtSubFieldName inSubFieldName,
                           CswEnumNbtFilterMode inFilterMode,
                           string inValue,
                           CswEnumNbtFilterResultMode inResultMode,
                           bool inCaseSensitive,
                           bool inShowAtRuntime,
                           CswEnumNbtFilterConjunction inPropertyFilterConjunction)
 {
     SubfieldName  = inSubFieldName;
     FilterMode    = inFilterMode;
     Value         = inValue;
     CaseSensitive = inCaseSensitive;
     ShowAtRuntime = inShowAtRuntime;
     ResultMode    = inResultMode;
     Conjunction   = inPropertyFilterConjunction;
 }
Esempio n. 11
0
        public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber)
        {
            CswEnumNbtSubFieldName OldSubfieldName = CswNbtViewPropertyFilterIn.SubfieldName;
            CswEnumNbtFilterMode   OldFilterMode   = CswNbtViewPropertyFilterIn.FilterMode;
            string OldValue = CswNbtViewPropertyFilterIn.Value;

            // BZ 8558
            if (OldSubfieldName == SubFieldName.Name && OldValue.ToLower() == "me")
            {
                CswNbtViewProperty  Prop         = (CswNbtViewProperty)CswNbtViewPropertyFilterIn.Parent;
                ICswNbtMetaDataProp MetaDataProp = null;
                if (Prop.Type == CswEnumNbtViewPropType.NodeTypePropId)
                {
                    MetaDataProp = Prop.NodeTypeProp;
                }
                else if (Prop.Type == CswEnumNbtViewPropType.ObjectClassPropId)
                {
                    MetaDataProp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp(Prop.ObjectClassPropId);
                }

                if (MetaDataProp != null && MetaDataProp.IsUserRelationship())
                {
                    if (CswNbtViewPropertyFilterIn.Value.ToLower() == "me" && false == (RunAsUser is CswNbtSystemUser))
                    {
                        CswNbtViewPropertyFilterIn.SubfieldName = SubFieldName.NodeID;
                        CswNbtViewPropertyFilterIn.FilterMode   = CswEnumNbtFilterMode.Equals;
                        CswNbtViewPropertyFilterIn.Value        = RunAsUser.UserId.PrimaryKey.ToString();
                    }
                }
            }
            string ret = _CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber);

            CswNbtViewPropertyFilterIn.SubfieldName = OldSubfieldName;
            CswNbtViewPropertyFilterIn.FilterMode   = OldFilterMode;
            CswNbtViewPropertyFilterIn.Value        = OldValue;

            return(ret);
        }
Esempio n. 12
0
 /// <summary>
 /// Set the value for a subfield, triggering the logic associated with that subfield on the fieldtype
 /// </summary>
 public void SetSubFieldValue(CswEnumNbtSubFieldName SubFieldName, object value)
 {
     _CswNbtNodeProp.SetSubFieldValue(SubFieldName, value);
 }
Esempio n. 13
0
 /// <summary>
 /// Gets or sets a property attribute.  Changes temporarily override values from the MetaData database, but are not saved.
 /// </summary>
 public string this[CswEnumNbtPropertyAttributeName AttributeName, CswEnumNbtSubFieldName SubFieldName = null]
 {
     get { return(_CswNbtNodePropData[AttributeName, SubFieldName]); }
     set { _CswNbtNodePropData[AttributeName, SubFieldName] = value; }
 }
Esempio n. 14
0
 /// <summary>
 /// Get the value for a subfield
 /// </summary>
 public dynamic GetSubFieldValue(CswEnumNbtSubFieldName SubFieldName)
 {
     return(_CswNbtNodeProp.GetSubFieldValue(SubFieldName));
 }
Esempio n. 15
0
        }//refresh

        /// <summary>
        /// Returns true if the subfield was modified
        /// </summary>
        public bool wasSubFieldModified(CswEnumNbtSubFieldName SubFieldName)
        {
            return(_CswNbtNodePropData.wasSubFieldModified(SubFieldName));
        }
Esempio n. 16
0
 protected bool SetPropRowValue(CswEnumNbtSubFieldName SubFieldName, CswEnumNbtPropColumn column, object value, bool IsNonModifying = false)
 {
     return(_CswNbtNodePropData.SetPropRowValue(SubFieldName, column, value, IsNonModifying));
 }
Esempio n. 17
0
 /// <summary>
 /// Sets a subfield to have been modified
 /// </summary>
 public void setSubFieldModified(CswEnumNbtSubFieldName SubFieldName, bool Modified = true)
 {
     _CswNbtNodePropData.setSubFieldModified(SubFieldName, Modified);
 }
        } // update()


        private void _addJctRow( DataTable JctTable, CswNbtMetaDataNodeTypeProp Prop, string TableName, string ColumnName, CswEnumNbtSubFieldName SubFieldName = null )
        {
            _CswNbtSchemaModTrnsctn.CswDataDictionary.setCurrentColumn( TableName, ColumnName );
            DataRow NodeTypeNameRow = JctTable.NewRow();
            NodeTypeNameRow["nodetypepropid"] = Prop.PropId;
            NodeTypeNameRow["datadictionaryid"] = _CswNbtSchemaModTrnsctn.CswDataDictionary.TableColId;
            if( null != SubFieldName )
            {
                NodeTypeNameRow["subfieldname"] = SubFieldName.ToString();
            }
            else if( null != Prop.getFieldTypeRule().SubFields.Default )
            {
                NodeTypeNameRow["subfieldname"] = Prop.getFieldTypeRule().SubFields.Default.Name;
            }
            JctTable.Rows.Add( NodeTypeNameRow );
        }
Esempio n. 19
0
 /// <summary>
 /// Sets a subfield to have been modified
 /// </summary>
 public void setSubFieldModified(CswEnumNbtSubFieldName SubFieldName, bool Modified = true)
 {
     _SubFieldsModified[SubFieldName] = Modified;
 }
Esempio n. 20
0
 public SystemViewPropFilterDefinition makeSystemViewFilter(ICswNbtMetaDataProp ObjectClassProp, string FilterValue, CswEnumNbtFilterMode FilterMode, CswEnumNbtSubFieldName SubFieldName = null, CswEnumNbtFieldType FieldType = null, bool ShowInGrid = true)
 {
     SubFieldName = SubFieldName ?? ObjectClassProp.getFieldTypeRule().SubFields.Default.Name;
     return(new SystemViewPropFilterDefinition
     {
         ObjectClassProp = ObjectClassProp,
         FilterValue = FilterValue,
         FilterMode = FilterMode,
         SubFieldName = SubFieldName,
         FieldType = FieldType,
         ShowInGrid = ShowInGrid
     });
 }