GetByGuid() public method

Returns the Rock.Model.Group containing a Guid property that matches the provided value.
public GetByGuid ( System.Guid guid ) : Group
guid System.Guid A to find a by.
return Group
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void Page_Load( object sender, EventArgs e )
        {
            Exception ex = GetSavedValue( "RockLastException" ) as Exception;
            if ( ex != null )
            {
                int? errorLevel = ( GetSavedValue( "RockExceptionOrder" ) ?? "" ).ToString().AsIntegerOrNull();

                ClearSavedValue( "RockExceptionOrder" );
                ClearSavedValue( "RockLastException" );

                bool showDetails = errorLevel.HasValue && errorLevel.Value == 66;
                if ( !showDetails )
                {
                    try
                    {
                        // check to see if the user is an admin, if so allow them to view the error details
                        var userLogin = Rock.Model.UserLoginService.GetCurrentUser();
                        GroupService service = new GroupService( new RockContext() );
                        Group adminGroup = service.GetByGuid( new Guid( Rock.SystemGuid.Group.GROUP_ADMINISTRATORS ) );
                        showDetails = userLogin != null && adminGroup.Members.Where( m => m.PersonId == userLogin.PersonId ).Count() > 0;
                    }
                    catch { }
                }

                if ( showDetails )
                {
                    lErrorInfo.Text = "<h3>Exception Log:</h3>";
                    ProcessException( ex, " " );
                }
            }
        }
Esempio n. 2
0
    /// <summary>
    /// Handles the Load event of the Page control.
    /// </summary>
    /// <param name="sender">The source of the event.</param>
    /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
    protected void Page_Load( object sender, EventArgs e )
    {
                
        // get error level
        int errorLevel = 0;

        if ( Request["error"] != null )
            errorLevel = Int32.Parse( Request["error"].ToString() );

        if ( errorLevel == 1 )
        {
            // check to see if the user is an admin, if so allow them to view the error details
            var userLogin = Rock.Model.UserLoginService.GetCurrentUser();

            GroupService service = new GroupService();
            Group adminGroup = service.GetByGuid( new Guid( Rock.SystemGuid.Group.GROUP_ADMINISTRATORS ) );

            if ( userLogin != null && adminGroup.Members.Where( m => m.PersonId == userLogin.PersonId ).Count() > 0 )
            {
                // is an admin
                lErrorInfo.Text = "<h3>Exception Log:</h3>";

                // get exception from Session
                if ( Session["Exception"] != null )
                {
                    ProcessException( (Exception)Session["Exception"], " " );
                }
            }
        }

        // clear session object
        Session.Remove( "Exception" );
    }
 /// <summary>
 /// When overridden in a derived class, handles the exception synchronously.
 /// </summary>
 /// <param name="context">The exception handler context.</param>
 public override void Handle( ExceptionHandlerContext context )
 {
      // check to see if the user is an admin, if so allow them to view the error details
     var userLogin = Rock.Model.UserLoginService.GetCurrentUser();
     GroupService service = new GroupService( new RockContext() );
     Group adminGroup = service.GetByGuid( new Guid( Rock.SystemGuid.Group.GROUP_ADMINISTRATORS ) );
     context.RequestContext.IncludeErrorDetail = userLogin != null && adminGroup.Members.Where( m => m.PersonId == userLogin.PersonId ).Count() > 0;
     
     base.Handle( context );
 }
Esempio n. 4
0
        /// <summary>
        /// When overridden in a derived class, handles the exception synchronously.
        /// </summary>
        /// <param name="context">The exception handler context.</param>
        public override void Handle( ExceptionHandlerContext context )
        {
            // check to see if the user is an admin, if so allow them to view the error details
            var userLogin = Rock.Model.UserLoginService.GetCurrentUser();
            GroupService service = new GroupService( new RockContext() );
            Group adminGroup = service.GetByGuid( new Guid( Rock.SystemGuid.Group.GROUP_ADMINISTRATORS ) );
            context.RequestContext.IncludeErrorDetail = userLogin != null && adminGroup.Members.Where( m => m.PersonId == userLogin.PersonId ).Count() > 0;

            ExceptionResult result = context.Result as ExceptionResult;

            // fix up context.Result.IncludeErrorMessage if it didn't get set when we set context.RequestContext.IncludeErrorDetail
            // see comments in https://aspnetwebstack.codeplex.com/workitem/1248
            if ( result != null && result.IncludeErrorDetail != context.RequestContext.IncludeErrorDetail )
            {

                context.Result = new ExceptionResult( result.Exception, context.RequestContext.IncludeErrorDetail, result.ContentNegotiator, context.Request, result.Formatters );
            }

            base.Handle( context );
        }
Esempio n. 5
0
        /// <summary>
        /// Add the person (if not already existing) to the Photo Request group and set status to Pending.
        /// </summary>
        /// <param name="person">The person.</param>
        /// <param name="rockContext">The rock context.</param>
        private void AddOrUpdatePersonInPhotoRequestGroup( Person person, RockContext rockContext )
        {
            if ( _photoRequestGroup == null )
            {
                GroupService service = new GroupService( rockContext );
                _photoRequestGroup = service.GetByGuid( Rock.SystemGuid.Group.GROUP_PHOTO_REQUEST.AsGuid() );
            }

            var groupMember = _photoRequestGroup.Members.Where( m => m.PersonId == person.Id ).FirstOrDefault();
            if ( groupMember == null )
            {
                groupMember = new GroupMember();
                groupMember.GroupId = _photoRequestGroup.Id;
                groupMember.PersonId = person.Id;
                groupMember.GroupRoleId = _photoRequestGroup.GroupType.DefaultGroupRoleId ?? -1;
                _photoRequestGroup.Members.Add( groupMember );
            }

            groupMember.GroupMemberStatus = GroupMemberStatus.Pending;
        }
Esempio n. 6
0
        /// <summary>
        /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event.
        /// </summary>
        /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param>
        protected override void OnLoad( EventArgs e )
        {
            base.OnLoad( e );

            if ( ! Page.IsPostBack )
            {
                if ( ! GetAttributeValue( "AllowStaff" ).AsBoolean() )
                {
                    GroupService service = new GroupService( new RockContext() );
                    _staffGroup = service.GetByGuid( new Guid( Rock.SystemGuid.Group.GROUP_STAFF_MEMBERS ) );
                }
                BindRepeater();
            }
        }
        /// <summary>
        /// Opts the given person out of the Photo Request group making them inactive.
        /// </summary>
        private void OptOutThePerson()
        {
            RockContext rockContext = new RockContext();
            Person targetPerson = null;

            string personKey = PageParameter( "Person" );
            if ( personKey != null )
            {
                try
                {
                    targetPerson = new PersonService( rockContext ).GetByUrlEncodedKey( personKey );
                }
                catch ( System.FormatException )
                {
                    nbWarning.Visible = true;
                }
                catch ( Exception ex )
                {
                    nbWarning.Visible = true;
                    LogException( ex );
                }
            }

            if ( targetPerson != null )
            {
                try
                {
                    GroupService service = new GroupService( rockContext );
                    Group photoRequestGroup = service.GetByGuid( Rock.SystemGuid.Group.GROUP_PHOTO_REQUEST.AsGuid() );
                    var groupMember = photoRequestGroup.Members.Where( m => m.PersonId == targetPerson.Id ).FirstOrDefault();
                    if ( groupMember == null )
                    {
                        groupMember = new GroupMember();
                        groupMember.GroupId = photoRequestGroup.Id;
                        groupMember.PersonId = targetPerson.Id;
                        groupMember.GroupRoleId = photoRequestGroup.GroupType.DefaultGroupRoleId ?? 0;
                        photoRequestGroup.Members.Add( groupMember );
                    }

                    groupMember.GroupMemberStatus = GroupMemberStatus.Inactive;

                    rockContext.SaveChanges();
                    nbMessage.Visible = true;
                }
                catch ( Exception ex )
                {
                    LogException( ex );
                    nbMessage.Visible = true;
                    nbMessage.NotificationBoxType = NotificationBoxType.Danger;
                    nbMessage.Text = "Something went wrong and we could not save your request. If it happens again please contact our office at the number below.";
                }
            }
            else
            {
                nbMessage.Visible = true;
                nbMessage.NotificationBoxType = NotificationBoxType.Info;
                nbMessage.Text = "That's odd. We could not find your record in our system. Please contact our office at the number below.";
            }
        }
        /// <summary>
        /// Shows the exception.
        /// </summary>
        private void ShowException()
        {
            Exception ex = GetSavedValue( "RockLastException" ) as Exception;
            if ( ex != null )
            {
                int? siteId = ( GetSavedValue( "Rock:SiteId" ) ?? string.Empty ).ToString().AsIntegerOrNull();
                if ( siteId.HasValue )
                {
                    var site = SiteCache.Read( siteId.Value );
                    if ( site != null && !string.IsNullOrWhiteSpace( site.ErrorPage ) )
                    {
                        Context.Response.Redirect( site.ErrorPage, false );
                        Context.ApplicationInstance.CompleteRequest();
                        return;
                    }
                }

                pnlSecurity.Visible = false;
                pnlException.Visible = true;

                int? errorLevel = ( GetSavedValue( "RockExceptionOrder" ) ?? string.Empty ).ToString().AsIntegerOrNull();

                ClearSavedValue( "RockExceptionOrder" );
                ClearSavedValue( "RockLastException" );

                bool showDetails = errorLevel.HasValue && errorLevel.Value == 66;
                if ( !showDetails )
                {
                    try
                    {
                        // check to see if the user is an admin, if so allow them to view the error details
                        var userLogin = Rock.Model.UserLoginService.GetCurrentUser();
                        GroupService service = new GroupService( new RockContext() );
                        Group adminGroup = service.GetByGuid( new Guid( Rock.SystemGuid.Group.GROUP_ADMINISTRATORS ) );
                        showDetails = userLogin != null && adminGroup.Members.Where( m => m.PersonId == userLogin.PersonId ).Count() > 0;
                    }
                    catch
                    {
                        // ignore
                    }
                }

                if ( showDetails )
                {
                    lErrorInfo.Text = "<h3>Exception Log:</h3>";
                    ProcessException( ex, " " );
                }

                if ( Request.Headers["X-Requested-With"] == "XMLHttpRequest" )
                {
                    Response.StatusCode = 500;

                    if ( showDetails )
                    {
                        // go get the important exception
                        while ( ex.InnerException != null )
                        {
                            ex = ex.InnerException;
                        }

                        Response.Write( string.Format( "{0}<p><pre>{1}</pre>", ex.Message, ex.StackTrace ) );
                    }
                    else
                    {
                        Response.Write( "An error has occurred while processing your request.  Your organization's administrators have been notified of this problem." );
                    }

                    Response.Flush();
                    Response.End();
                    return;
                }
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Handles adding people to the security groups from the given XML element snippet.
        /// </summary>
        /// <param name="elemSecurityGroups">The elem security groups.</param>
        /// <param name="rockContext">The rock context.</param>
        private void AddToSecurityGroups( XElement elemSecurityGroups, RockContext rockContext )
        {
            if ( elemSecurityGroups == null )
            {
                return;
            }

            GroupService groupService = new GroupService( rockContext );

            // Next find each group and add its members
            foreach ( var elemGroup in elemSecurityGroups.Elements( "group" ) )
            {
                int membersAdded = 0;
                Guid guid = elemGroup.Attribute( "guid" ).Value.Trim().AsGuid();
                Group securityGroup = groupService.GetByGuid( guid );
                if ( securityGroup == null )
                {
                    continue;
                }

                // Add each person as a member of the group
                foreach ( var elemPerson in elemGroup.Elements( "members" ).Elements( "person" ) )
                {
                    Guid personGuid = elemPerson.Attribute( "guid" ).Value.Trim().AsGuid();
                    int personId = _peopleDictionary[personGuid];

                    // Don't add if already in the group...
                    if ( securityGroup.Members.Where( p => p.PersonId == personId ).Count() > 0 )
                    {
                        continue;
                    }

                    membersAdded++;
                    GroupMember groupMember = new GroupMember();
                    groupMember.GroupMemberStatus = GroupMemberStatus.Active;
                    groupMember.GroupRoleId = securityGroup.GroupType.DefaultGroupRoleId.Value;
                    groupMember.PersonId = personId;
                    securityGroup.Members.Add( groupMember );
                }
            }
        }
Esempio n. 10
0
    private void ShowException()
    {
        pnlException.Visible = true;

        // get error level
        int errorLevel = 0;

        if ( Request["error"] != null )
        {
            errorLevel = Int32.Parse( Request["error"].ToString() );
        }
        else
        {
            if (Request.RequestContext.HttpContext.Items["error"] != null)
            {
                errorLevel = Int32.Parse( Request.RequestContext.HttpContext.Items["error"].ToString() );
            }
        }

        switch ( errorLevel )
        {
            case 1:
                // check to see if the user is an admin, if so allow them to view the error details
                var userLogin = Rock.Model.UserLoginService.GetCurrentUser();

                try
                {
                    GroupService service = new GroupService( new RockContext() );
                    Group adminGroup = service.GetByGuid( new Guid( Rock.SystemGuid.Group.GROUP_ADMINISTRATORS ) );

                    if ( userLogin != null && adminGroup.Members.Where( m => m.PersonId == userLogin.PersonId ).Count() > 0 )
                    {
                        // get exception from Session
                        if ( Session["Exception"] != null )
                        {
                            // is an admin
                            lErrorInfo.Text = "<h3>Exception Log:</h3>";

                            ProcessException( (Exception)Session["Exception"], " " );
                        }
                    }
                }
                catch { }

                break;

            case 66: // massive errors from global.asax.cs or routehandler

                if ( Session["Exception"] != null )
                {
                    lErrorInfo.Text = "<h3>Exception Log:</h3>";
                    ProcessException( (Exception)Session["Exception"], " " );
                }
                else
                {
                    if (Request.RequestContext.HttpContext.Items["Exception"] != null)
                    {
                        lErrorInfo.Text = "<h3>Exception Log:</h3>";
                        ProcessException( (Exception)Request.RequestContext.HttpContext.Items["Exception"], " " );
                    }
                }
                break;
        }

        // clear session object
        Session.Remove( "Exception" );
    }