Пример #1
0
        private void SelectGroup( Guid? groupGuid )
        {
            hfIsDirty.Value = "false";

            checkinArea.Visible = false;
            checkinGroup.Visible = false;
            btnSave.Visible = false;

            if ( groupGuid.HasValue )
            {
                using ( var rockContext = new RockContext() )
                {
                    var groupService = new GroupService( rockContext );
                    var group = groupService.Get( groupGuid.Value );
                    if ( group != null )
                    {
                        _currentGroupGuid = group.Guid;

                        checkinGroup.SetGroup( group, rockContext );

                        var locationService = new LocationService( rockContext );
                        var locationQry = locationService.Queryable().Select( a => new { a.Id, a.ParentLocationId, a.Name } );

                        checkinGroup.Locations = new List<CheckinGroup.LocationGridItem>();
                        foreach ( var groupLocation in group.GroupLocations.OrderBy( gl => gl.Order ).ThenBy( gl => gl.Location.Name ) )
                        {
                            var location = groupLocation.Location;
                            var gridItem = new CheckinGroup.LocationGridItem();
                            gridItem.LocationId = location.Id;
                            gridItem.Name = location.Name;
                            gridItem.FullNamePath = location.Name;
                            gridItem.ParentLocationId = location.ParentLocationId;
                            gridItem.Order = groupLocation.Order;

                            var parentLocationId = location.ParentLocationId;
                            while ( parentLocationId != null )
                            {
                                var parentLocation = locationQry.FirstOrDefault( a => a.Id == parentLocationId );
                                gridItem.FullNamePath = parentLocation.Name + " > " + gridItem.FullNamePath;
                                parentLocationId = parentLocation.ParentLocationId;
                            }

                            checkinGroup.Locations.Add( gridItem );
                        }

                        checkinGroup.Visible = true;
                        btnSave.Visible = true;
                    }
                    else
                    {
                        _currentGroupGuid = null;
                    }
                }
            }
            else
            {
                _currentGroupGuid = null;
                checkinGroup.CreateGroupAttributeControls( null, null );
            }

            BuildRows();
        }
Пример #2
0
        protected void mdLocationPicker_SaveClick( object sender, EventArgs e )
        {
            // Add the location (ignore if they didn't pick one, or they picked one that already is selected)
            var location = new LocationService( new RockContext() ).Get( locationPicker.SelectedValue.AsInteger() );
            if ( location != null )
            {
                if ( !checkinGroup.Locations.Any( a => a.LocationId == location.Id ) )
                {
                    var gridItem = new CheckinGroup.LocationGridItem();
                    gridItem.LocationId = location.Id;
                    gridItem.Name = location.Name;
                    gridItem.FullNamePath = location.Name;
                    gridItem.ParentLocationId = location.ParentLocationId;
                    var max = checkinGroup.Locations.Max( l => l.Order );
                    gridItem.Order = ( max == null ) ? 0 : max + 1;

                    var parentLocation = location.ParentLocation;
                    while ( parentLocation != null )
                    {
                        gridItem.FullNamePath = parentLocation.Name + " > " + gridItem.FullNamePath;
                        parentLocation = parentLocation.ParentLocation;
                    }

                    checkinGroup.Locations.Add( gridItem );

                    hfIsDirty.Value = "true";
                }
            }

            mdLocationPicker.Hide();
        }