public ApplicationException CreateFromParentException(System.Int32 __Id, Services.Packages.Log.ApplicationException _ParentException, string SessionToken)
        {
            ModelSession session = ApplicationExceptionSecureService.CheckSessionImp(SessionToken);

            ApplicationException _ApplicationException = new ApplicationException(__Id);

            if (!_ApplicationException.Exists && !Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ParentException, SessionToken, "Create InnerExceptions"))
                throw new UnauthorizedAccessException("Access Denied");
            else if (_ApplicationException.Exists && !ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Update"))
                throw new UnauthorizedAccessException("Access Denied");

            // ApplicationException _ApplicationException = ApplicationException.CreateApplicationException(__Id);
            _ApplicationException.Owner = session.User;
            _ApplicationException.ParentException = _ParentException;
            _ApplicationException.Update();
            return _ApplicationException;
        }
        public void UpdateObject(ApplicationException _ApplicationException, string SessionToken)
        {
            if (!ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Update"))
                throw new UnauthorizedAccessException("Access Denied");

            _ApplicationException.Update();
        }
        public void SetParentException(ApplicationException _ApplicationException, Services.Packages.Log.ApplicationException _ParentException, string SessionToken)
        {
            _ApplicationException.Reload();

            //*
            if (!Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Traverse"))
                throw new UnauthorizedAccessException("Access Denied");
            //*/

            //*
            _ParentException.Reload();
            if (_ParentException.Exists && !Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ParentException, SessionToken, "Update"))
                throw new UnauthorizedAccessException("Access Denied");
            else if (!_ParentException.Exists && !Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Create InnerExceptions"))
                throw new UnauthorizedAccessException("Access Denied");
            //*/

            _ApplicationException.ParentException = _ParentException;
            _ApplicationException.Update();
        }
        public void SetOwner(ApplicationException _ApplicationException, Services.Packages.Security.ModelUser _Owner, string SessionToken)
        {
            _ApplicationException.Reload();

            //*
            if (!Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Traverse"))
                throw new UnauthorizedAccessException("Access Denied");
            //*/

            //*
            _Owner.Reload();
            if (_Owner.Exists && !Services.Packages.Security.Security.ModelUserSecureService.CheckAccessImp(_Owner, SessionToken, "Update"))
                throw new UnauthorizedAccessException("Access Denied");
            else if (!_Owner.Exists && !Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Create ApplicationExceptionOwning"))
                throw new UnauthorizedAccessException("Access Denied");
            //*/

            _ApplicationException.Owner = _Owner;
            _ApplicationException.Update();
        }
        public void SetApiKey(ApplicationException _ApplicationException, Services.Packages.ApiKey _ApiKey, string SessionToken)
        {
            _ApplicationException.Reload();

            //*
            if (!Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Traverse"))
                throw new UnauthorizedAccessException("Access Denied");
            //*/

            //*
            _ApiKey.Reload();
            if (_ApiKey.Exists && !Services.Packages.Security.ApiKeySecureService.CheckAccessImp(_ApiKey, SessionToken, "Update"))
                throw new UnauthorizedAccessException("Access Denied");
            else if (!_ApiKey.Exists && !Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Create ApplicationExceptionsLogged"))
                throw new UnauthorizedAccessException("Access Denied");
            //*/

            _ApplicationException.ApiKey = _ApiKey;
            _ApplicationException.Update();
        }
        public void SetACLs(ApplicationException _ApplicationException, Services.Packages.Log.Security.ApplicationExceptionAccessControlListCollection _ACLs, string SessionToken)
        {
            _ApplicationException.Reload();

            //*
            if (!Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Traverse"))
                throw new UnauthorizedAccessException("Access Denied");
            //*/

            /*
            _ACLs.Reload();
            if (_ACLs.Exists && !Services.Packages.Log.Security.Security.ApplicationExceptionAccessControlListSecureService.CheckAccessImp(_ACLs, SessionToken, "Update"))
                throw new UnauthorizedAccessException("Access Denied");
            else if (!_ACLs.Exists && !Services.Packages.Log.Security.ApplicationExceptionSecureService.CheckAccessImp(_ApplicationException, SessionToken, "Create ACLs"))
                throw new UnauthorizedAccessException("Access Denied");
            //*/

            _ApplicationException.ACLs = _ACLs;
            _ApplicationException.Update();
        }