protected void ShowEdit(Rock.Web.Cache.BlockInstanceLocation location, int blockInstanceId) { Rock.CMS.BlockInstance blockInstance = blockInstanceService.Get(blockInstanceId); hfBlockLocation.Value = location.ConvertToString(); if (blockInstance != null) { lAction.Text = "Edit "; hfBlockInstanceId.Value = blockInstance.Id.ToString(); ddlBlockType.SelectedValue = blockInstance.Block.Id.ToString(); tbBlockName.Text = blockInstance.Name; } else { lAction.Text = "Add "; hfBlockInstanceId.Value = "0"; ddlBlockType.SelectedIndex = -1; tbBlockName.Text = string.Empty; } lAction.Text += hfBlockLocation.Value; pnlLists.Visible = false; pnlDetails.Visible = true; }
protected void btnSave_Click(object sender, EventArgs e) { Rock.CMS.BlockInstance blockInstance; int blockInstanceId = 0; if (!Int32.TryParse(hfBlockInstanceId.Value, out blockInstanceId)) { blockInstanceId = 0; } if (blockInstanceId == 0) { blockInstance = new Rock.CMS.BlockInstance(); Rock.Web.Cache.BlockInstanceLocation location = hfBlockLocation.Value.ConvertToEnum <Rock.Web.Cache.BlockInstanceLocation>(); if (location == Rock.Web.Cache.BlockInstanceLocation.Layout) { blockInstance.Layout = _page.Layout; blockInstance.PageId = null; } else { blockInstance.Layout = null; blockInstance.PageId = _page.Id; } blockInstance.Zone = _zoneName; Rock.CMS.BlockInstance lastBlock = blockInstanceService.GetByLayoutAndPageIdAndZone(null, _page.Id, _zoneName). OrderByDescending(b => b.Order).FirstOrDefault(); if (lastBlock != null) { blockInstance.Order = lastBlock.Order + 1; } else { blockInstance.Order = 0; } blockInstanceService.Add(blockInstance, CurrentPersonId); } else { blockInstance = blockInstanceService.Get(blockInstanceId); } blockInstance.Name = tbBlockName.Text; blockInstance.BlockId = Convert.ToInt32(ddlBlockType.SelectedValue); blockInstanceService.Save(blockInstance, CurrentPersonId); Rock.Security.Authorization.CopyAuthorization(_page, blockInstance, CurrentPersonId); _page.FlushBlockInstances(); BindGrids(); pnlDetails.Visible = false; pnlLists.Visible = true; }