예제 #1
0
        /// <summary>
        /// Updates the selection from page parameters if there is a page parameter for the selection
        /// </summary>
        /// <param name="selection">The selection.</param>
        /// <param name="rockBlock">The rock block.</param>
        /// <returns></returns>
        public virtual string UpdateSelectionFromPageParameters(string selection, Rock.Web.UI.RockBlock rockBlock)
        {
            if (!string.IsNullOrWhiteSpace(selection))
            {
                var values = JsonConvert.DeserializeObject <List <string> >(selection);

                // selection list  is either "FieldName, Comparison, Value(s)" or "FieldName, Value(s)"
                if (values.Count == 3)
                {
                    var pageParamValue = rockBlock.PageParameter(values[0]);
                    if (!string.IsNullOrEmpty(pageParamValue))
                    {
                        values[2] = pageParamValue;
                        return(values.ToJson());
                    }
                }
                else if (values.Count == 2)
                {
                    var pageParamValue = rockBlock.PageParameter(values[0]);
                    if (!string.IsNullOrEmpty(pageParamValue))
                    {
                        values[1] = pageParamValue;
                        return(values.ToJson());
                    }
                }
            }

            return(selection);
        }
예제 #2
0
        /// <summary>
        /// Updates the selection from page parameters.
        /// </summary>
        /// <param name="selection">The selection.</param>
        /// <param name="rockBlock">The rock block.</param>
        /// <returns></returns>
        public string UpdateSelectionFromPageParameters(string selection, Rock.Web.UI.RockBlock rockBlock)
        {
            string[] selectionValues = selection?.Split('|') ?? new string[] { "" };
            if (selectionValues.Length >= 1)
            {
                var campusId = rockBlock.PageParameter("CampusId").AsIntegerOrNull();
                if (campusId == null)
                {
                    var campusEntity = rockBlock.ContextEntity <Campus>();
                    if (campusEntity != null)
                    {
                        campusId = campusEntity.Id;
                    }
                }

                if (campusId.HasValue)
                {
                    var selectedCampus = CampusCache.Read(campusId.Value);
                    if (selectedCampus != null)
                    {
                        selectionValues[0] = selectedCampus.Guid.ToString();
                        return(selectionValues.ToList().AsDelimited("|"));
                    }
                }
            }

            return(selection);
        }
예제 #3
0
 /// <summary>
 /// Sets the security actions.
 /// </summary>
 /// <param name="blockControl">The block control.</param>
 public void SetSecurityActions(Rock.Web.UI.RockBlock blockControl)
 {
     lock ( _obj )
     {
         if (!CheckedSecurityActions)
         {
             SecurityActions = new ConcurrentDictionary <string, string>();
             foreach (var action in blockControl.GetSecurityActionAttributes())
             {
                 SecurityActions.TryAdd(action.Key, action.Value);
             }
             CheckedSecurityActions = true;
         }
     }
 }
예제 #4
0
 /// <summary>
 /// Updates the selection from page parameters if there is a page parameter for the selection
 /// </summary>
 /// <param name="selection">The selection.</param>
 /// <param name="rockBlock">The rock block.</param>
 /// <returns></returns>
 public override string UpdateSelectionFromPageParameters(string selection, Rock.Web.UI.RockBlock rockBlock)
 {
     // don't modify the selection for the Filter based on PageParameters
     return(selection);
 }