Exemple #1
0
        /// <summary>
        /// Loads the metadata (mappings, types, etc) for this DataModel.
        /// </summary>
        /// <param name="type"></param>
        private void PreInitialize(Type type)
        {
            InnerData         = new CaseInsensitiveDictionary <object>();
            EntityMappings    = GetMapping(type);
            ColumnMappedValue = new ColumnMappedValueProperty(this, EntityMappings);
            Convert           = new DataModelConverter(this);

            DataChanging      += DataModel_DataChanging;
            DataChanged       += DataModel_DataChanged;
            ModifiedProperties = new CaseInsensitiveStringList();
        }
        public void ContainsTest2()
        {
            var    target = new CaseInsensitiveStringList();
            string value  = "abc";

            target.Add("xyz");
            bool expected = false;
            bool actual;

            actual = target.Contains(value);
            Assert.AreEqual(expected, actual);
        }
        public void RemoveTest3()
        {
            var target   = new CaseInsensitiveStringList();
            var startval = "abc";

            target.Add(startval);
            bool pass = false;

            try
            {
                target.Remove("XYZ");
                pass = true;
            } catch {}
            Assert.IsTrue(!pass && ((List <string>)target).Contains(startval));
        }
Exemple #4
0
        /// <summary>
        /// Determines whether the specified object is equal to the current object.
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            if (base.Equals(obj))
            {
                return(true);
            }
            if (!(obj is DataModel))
            {
                return(false);
            }
            var e = obj as DataModel;

            //this.SynchronizeFields(SyncTo.FieldMappedData);
            //e.SynchronizeFields(SyncTo.FieldMappedData);

            if (IsNew != e.IsNew)
            {
                return(false);
            }
            if (MarkDeleted != e.MarkDeleted)
            {
                return(false);
            }

            if (EntityMappings.TableMapping.Schema != e.EntityMappings.TableMapping.Schema ||
                EntityMappings.TableMapping.Table != e.EntityMappings.TableMapping.Table)
            {
                return(false);
            }
            var checkedprops = new CaseInsensitiveStringList();

            foreach (var field_kvp in EntityMappings.FieldMappings)
            {
                string propname = null;
                foreach (var ef_kvp in e.EntityMappings.FieldMappings)
                {
                    if (field_kvp.Value.ColumnName.ToLower() == ef_kvp.Value.ColumnName.ToLower())
                    {
                        propname = field_kvp.Key;
                        checkedprops.Add(propname);
                        break;
                    }
                }
                if (propname == null)
                {
                    return(false);
                }
                if ((InnerData == null) != (e.InnerData == null))
                {
                    return(false);
                }
                if (InnerData != null && e.InnerData != null &&
                    InnerData.ContainsKey(propname) != e.InnerData.ContainsKey(propname))
                {
                    return(false);
                }
                if (InnerData != null)
                {
                    if (InnerData.ContainsKey(propname))
                    {
                        object thisProp = this[propname];
                        object eProp    = e[propname];
                        if ((thisProp == null) != (eProp == null))
                        {
                            return(false);
                        }
                        if (thisProp != null && !(thisProp.Equals(eProp)))
                        {
                            return(false);
                        }
                    }
                }
            }
            foreach (var field_kvp in e.EntityMappings.FieldMappings)
            {
                if (checkedprops.Contains(field_kvp.Key))
                {
                    continue;
                }
                string propname = null;
                foreach (var ef_kvp in EntityMappings.FieldMappings)
                {
                    if (field_kvp.Value.ColumnName.ToLower() == ef_kvp.Value.ColumnName.ToLower())
                    {
                        propname = field_kvp.Key;
                        break;
                    }
                }
                if (propname == null)
                {
                    return(false);
                }
                if ((InnerData == null) != (e.InnerData == null))
                {
                    return(false);
                }
                if (InnerData != null && e.InnerData != null)
                {
                    if (InnerData.ContainsKey(propname) != e.InnerData.ContainsKey(propname))
                    {
                        return(false);
                    }
                    if (InnerData.ContainsKey(propname))
                    {
                        object thisProp = this[propname];
                        object eProp    = e[propname];
                        if ((thisProp == null) != (eProp == null))
                        {
                            return(false);
                        }
                        if (thisProp != null && !(thisProp.Equals(eProp)))
                        {
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }