private void LoadPromos() { string errorResponse = string.Empty; PromoService promoService = new PromoService(); var promos = new List<Promo>(); // get category int? categoryId = null; if ( !string.IsNullOrWhiteSpace( GetAttributeValue( "CategoryId" ) ) ) { categoryId = Convert.ToInt32(GetAttributeValue( "CategoryId" )); } // get promo type bool isTopFree = false; bool isTopPaid = false; bool isFeatured = false; string promoType = GetAttributeValue( "PromoType" ); //"Top Paid, Top Free, Featured" switch ( promoType ) { case "Top Paid": isTopPaid = true; break; case "Top Free": isTopFree = true; break; case "Featured": isFeatured = true; break; } promos = promoService.GetPromos( categoryId, out errorResponse, isTopFree, isFeatured, isTopPaid ); // check for errors ErrorCheck( errorResponse ); var mergeFields = new Dictionary<string, object>(); mergeFields.Add( "CurrentPerson", CurrentPerson ); var globalAttributeFields = Rock.Web.Cache.GlobalAttributesCache.GetMergeFields( CurrentPerson ); globalAttributeFields.ToList().ForEach( d => mergeFields.Add( d.Key, d.Value ) ); mergeFields.Add( "Promos", promos ); // add link to detail page Dictionary<string, object> linkedPages = new Dictionary<string, object>(); linkedPages.Add( "DetailPage", LinkedPageUrl( "DetailPage", null ) ); mergeFields.Add( "LinkedPages", linkedPages ); lOutput.Text = GetAttributeValue( "LavaTemplate" ).ResolveMergeFields( mergeFields ); // show debug info if ( GetAttributeValue( "EnableDebug" ).AsBoolean() && IsUserAuthorized( Authorization.EDIT ) ) { lDebug.Visible = true; lDebug.Text = mergeFields.lavaDebugInfo(); } }