public virtual void Construct(GOUserDataObject gOUser, bool includeDirtyObjectsOnly)
        {
            if (gOUser == null)
            {
                return;
            }

            this.PrimaryKey = gOUser.PrimaryKey;

            if (gOUser.ObjectsDataSet == null)
            {
                var dataset = ApplicationSettings.Container.Resolve <IObjectsDataSet>();
                dataset.AddObject(gOUser);
            }

            if (gOUser.ObjectsDataSet == null)
            {
                _logEngine.LogError("Unable to set a dataset to the Entity GOUser", "Unable to set a dataset to the entity. Container may not be initialized", "GOUserDataObject", null);
                throw new PulpException("Unexpected Error : Unable to set a dataset to the entity : GOUser");
            }

            if (gOUser.InternalObjectId == null)
            {
                _logEngine.LogError("Unable to construct an object without InternalObjectId in GOUserDataObject", "The Object you are trying to construct doesn't have an InternalObjectId", "GOUserDataObject", null);
                throw new PulpException("Unexpected Error : Unable to construct an object without InternalObjectId in GOUserDataObject");
            }
            this.InternalObjectId = (int)gOUser.InternalObjectId;
            this.ObjectsDataSet   = includeDirtyObjectsOnly ? gOUser.ObjectsDataSet.CloneDirtyObjects() : gOUser.ObjectsDataSet;
        }
        public virtual void SetGOUserValue(GOUserDataObject valueToSet, bool notifyChanges, bool dirtyHandlerOn)
        {
            var _relatedObjects = ObjectsDataSet.GetRelatedObjects <GOUserDataObject>(this, "GOUser");
            var existing_gOUser = _relatedObjects == null ? null : _relatedObjects.SingleOrDefault();

            // Give opportunity to change value before set
            OnBeforeSetRelationField("GOUser", valueToSet);

            if (!ReferenceEquals(null, valueToSet))
            {
                ObjectsDataSet.AddObjectIfDoesNotExist(valueToSet);

                if (this.IsNew)
                {
                    valueToSet._userProfile_NewObjectId = this.InternalObjectId;
                }
                else
                {
                    // Sync the one-to-one association from the FK side
                    valueToSet             = ObjectsDataSet.GetObject(valueToSet);
                    valueToSet.UserProfile = this;
                    valueToSet.UserName    = this.Uri;
                }
            }
            else if (existing_gOUser != null)
            {
                ObjectsDataSet.RemoveObject(existing_gOUser);
            }
            if (!ReferenceEquals(existing_gOUser, valueToSet))
            {
                OnPropertyChanged("GOUser", notifyChanges, dirtyHandlerOn);
            }
        }
        /// <summary>
        /// Copy Constructor
        /// </summary>
        public GOUserDataObject(GOUserDataObject template, bool deepCopy)
        {
            this.SetPasswordExpiryValue(template.PasswordExpiry, false, false);
            this._passwordExpiry_WithTimezoneOffset = template._passwordExpiry_WithTimezoneOffset;
            this.SetBlockedValue(template.Blocked, false, false);
            this.SetEmailAddressValue(template.EmailAddress, false, false);
            this.SetEmailValidatedValue(template.EmailValidated, false, false);
            this.SetFirstNameValue(template.FirstName, false, false);
            this.SetFullNameValue(template.FullName, false, false);
            this.SetIdValue(template.Id, false, false);
            this.SetLastNameValue(template.LastName, false, false);
            this.SetPasswordValue(template.Password, false, false);
            this.SetUnregisteredValue(template.Unregistered, false, false);
            this.SetUserNameValue(template.UserName, false, false);
            this.SetUserValidatedValue(template.UserValidated, false, false);


            this._userProfile_NewObjectId = template._userProfile_NewObjectId;


            this.SetIsNewValue(template.IsNew, false, false);

            if (deepCopy)
            {
                this.ObjectsDataSet = template.ObjectsDataSet.Clone();
                // Remove the template object from the dataset
                this.ObjectsDataSet.RemoveObject(template);
                // And Replace by the one we're currently constructing
                this.ObjectsDataSet.AddObject(this);
            }

            this.SetIsDirtyValue(template.IsDirty, false, false);
            this.SetIsMarkedForDeletionValue(template.IsMarkedForDeletion, false, false);
        }
Пример #4
0
        public IEnumerable <GOUserGroupDataObject> GetUserGroupItemsForUser(GOUserDataObject userInstance)
        {
            if (userInstance.IsNew)
            {
                return(GOUserGroupObjects.Where(o => o.Value._user_NewObjectId != null && o.Value._user_NewObjectId == userInstance.InternalObjectId).Select(o => o.Value));
            }

            if (User_FKIndex.ContainsKey(userInstance.Id))
            {
                return(User_FKIndex[userInstance.Id].Where(e => GOUserGroupObjects.ContainsKey(e)).Select(e => GOUserGroupObjects[e]));
            }

            return(new DataObjectCollection <GOUserGroupDataObject>());
        }
 protected void SetProperties(GOUserDataObject x)
 {
     x.SetIdValue(Id, false, false);
     x.SetEmailAddressValue(EmailAddress, false, false);
     x.SetFullNameValue(FullName, false, false);
     x.SetLastNameValue(LastName, false, false);
     x.SetPasswordValue(Password, false, false);
     x.SetFirstNameValue(FirstName, false, false);
     x.SetPasswordExpiryValue(PasswordExpiry, false, false);
     x.SetUnregisteredValue(Unregistered, false, false);
     x.SetEmailValidatedValue(EmailValidated, false, false);
     x.SetBlockedValue(Blocked, false, false);
     x.SetUserValidatedValue(UserValidated, false, false);
     x.SetUserNameValue(this.UserName, false, false);
 }
        protected void SetRelations(GOUserDataObject x)
        {
            var prefetches = PrefetchAssociations.Get("GOUser", ApplicationSettings.Resolve <IDataProviderTransaction>()?.Parameters);

            if (prefetches.Contains("UserRoleItems") && this.UserRoleItems.Count > 0)
            {
                var iter = this.UserRoleItems.GetEnumerator();

                while (iter.MoveNext())
                {
                    var userRoleItemsItem = x.ObjectsDataSet.GetObject(new GOUserRoleDataObject((System.String)iter.Current.GORoleName, (System.Guid)iter.Current.GOUserId)
                    {
                        IsNew = false
                    });

                    if (userRoleItemsItem == null)
                    {
                        userRoleItemsItem = iter.Current.ToDataObject(x.ObjectsDataSet) as GOUserRoleDataObject;
                    }

                    x.UserRoleItems.Add(userRoleItemsItem);
                }
            }

            if (prefetches.Contains("UserGroupItems") && this.UserGroupItems.Count > 0)
            {
                var iter = this.UserGroupItems.GetEnumerator();

                while (iter.MoveNext())
                {
                    var userGroupItemsItem = x.ObjectsDataSet.GetObject(new GOUserGroupDataObject((System.String)iter.Current.GOGroupName, (System.Guid)iter.Current.GOUserId)
                    {
                        IsNew = false
                    });

                    if (userGroupItemsItem == null)
                    {
                        userGroupItemsItem = iter.Current.ToDataObject(x.ObjectsDataSet) as GOUserGroupDataObject;
                    }

                    x.UserGroupItems.Add(userGroupItemsItem);
                }
            }
        }
        ///
        /// Bridge to DataObject
        ///
        public virtual IDataObject ToDataObject(IObjectsDataSet dataset)
        {
            var session = NHibernateSessionController.GetCurrentSession();

            session.Evict(this);

            var x = new GOUserDataObject();

            SetProperties(x);

            x.IsDirty = x.IsNew = x.IsMarkedForDeletion = false;

            x.ObjectsDataSet = dataset;
            x.ObjectsDataSet.AddObjectIfDoesNotExist(x);

            // Deep-map prefetch relations
            if (PrefetchAssociations.HasPrefetchForEntity("GOUser", ApplicationSettings.Resolve <IDataProviderTransaction>()?.Parameters))
            {
                SetRelations(x);
            }

            return(x);
        }
 public virtual void SetGOUserValue(GOUserDataObject valueToSet)
 {
     SetGOUserValue(valueToSet, true, true);
 }
        public virtual void SetUserValue(GOUserDataObject valueToSet, bool notifyChanges, bool dirtyHandlerOn)
        {
            GOUserDataObject existing_user = null;

            if (!(ObjectsDataSet == null))
            {
                var key = this._user_NewObjectId == null ? new GOUserDataObject(this.GOUserId)
                {
                    IsNew = false
                } : new GOUserDataObject()
                {
                    IsNew = true, InternalObjectId = this._user_NewObjectId
                };
                existing_user = (GOUserDataObject)ObjectsDataSet.GetObject(key);
            }

            if (ReferenceEquals(existing_user, valueToSet))
            {
                return;
            }
            // Give opportunity to change value before set
            OnBeforeSetRelationField("User", valueToSet);

            // Setting the navigator desync the FK. The FK should be resync
            if (!ReferenceEquals(null, valueToSet))
            {
                if (ObjectsDataSet == null)
                {
                    _logEngine.LogError("Unable to set Relation Field", "Unable to set Relation Field, your entity doesn't have a DataSet.", "GOUserRoleDataObject", null);
                    throw new PulpException("Unable to set Relation fields, your entity doesn't have a DataSet");
                }

                ObjectsDataSet.AddObjectIfDoesNotExist(valueToSet);

                if (valueToSet.IsNew)
                {
                    if (_user_NewObjectId != valueToSet.InternalObjectId)
                    {
                        _user_NewObjectId = valueToSet.InternalObjectId;
                        _gOUserId         = valueToSet.Id;
                        OnPropertyChanged("GOUserId", notifyChanges, dirtyHandlerOn);
                    }
                }
                else
                {
                    if (_gOUserId != valueToSet.Id)
                    {
                        _user_NewObjectId = null;

                        _gOUserId = valueToSet.Id;
                        OnPropertyChanged("GOUserId", notifyChanges, dirtyHandlerOn);
                    }
                }
            }
            else
            {
                _gOUserId = Guid.Empty;
                OnPropertyChanged("GOUserId", notifyChanges, dirtyHandlerOn);
            }
            if (!ReferenceEquals(existing_user, valueToSet))
            {
                OnPropertyChanged("User", notifyChanges, dirtyHandlerOn);
            }
        }
 public GOUserContainer(GOUserDataObject gOUser, bool includeDirtyObjectsOnly)
 {
     Construct(gOUser, includeDirtyObjectsOnly);
 }
 public GOUserContainer(GOUserDataObject gOUser)
 {
     Construct(gOUser, false);
 }