public virtual object clone()
        {
            ProjectUserTable obj = new ProjectUserTable();

            obj.Id              = Id;
            obj.UserId          = UserId;
            obj.Name            = Name;
            obj.Email           = Email;
            obj.EditExchange    = EditExchange;
            obj.EditEscalate    = EditEscalate;
            obj.EditProps       = EditProps;
            obj.EditTakeoff     = EditTakeoff;
            obj.EditResource    = EditResource;
            obj.Estimator       = Estimator;
            obj.Administrator   = Administrator;
            obj.SubmitQuotes    = SubmitQuotes;
            obj.SendQuotes      = SendQuotes;
            obj.AwardQuotes     = AwardQuotes;
            obj.Wbs             = Wbs;
            obj.AddItems        = AddItems;
            obj.EditItems       = EditItems;
            obj.RemoveItems     = RemoveItems;
            obj.ViewAllItems    = ViewAllItems;
            obj.VariablesUser   = VariablesUser;
            obj.VariablesAdmin  = VariablesAdmin;
            obj.VariablesViewer = VariablesViewer;

            return(obj);
        }
        public virtual ProjectUserTable copyWithProject()
        {
            ProjectUserTable userTable = (ProjectUserTable)clone();

            if (ProjectInfoTable != null)
            {
                userTable.ProjectInfoTable = (ProjectInfoTable)ProjectInfoTable.Clone();
            }

            return(userTable);
        }
        public virtual ProjectUserTable copyWithAccessRoles()
        {
            ProjectUserTable userTable = (ProjectUserTable)copyWithProject();

            userTable.AccessRules = new HashSet <ProjectAccessRuleTable>();
            if (AccessRules != null)
            {
                foreach (ProjectAccessRuleTable ruleTable in AccessRules)
                {
                    ruleTable = (ProjectAccessRuleTable)ruleTable.clone();
                    userTable.AccessRules.Add(ruleTable);
                }
            }

            return(userTable);
        }