void DownloadAttributeDefinitions(List <Dictionary <string, string> > attribList, AttribDefinitionDownloaded onCompletion)
        {
            // now build an array of the attributeIds we should request
            int[] attributeIds = new int[attribList.Count];
            for (int i = 0; i < attribList.Count; i++)
            {
                attributeIds[i] = int.Parse(attribList[i]["attributeId"]);
            }

            // and lastly, request them
            if (attribList.Count > 0)
            {
                ApplicationApi.GetAttribute(attributeIds,
                                            delegate(HttpStatusCode attribStatusCode, string attribStatusDescription, List <Rock.Client.Attribute> attribModel)
                {
                    if (attribModel != null && Rock.Mobile.Network.Util.StatusInSuccessRange(attribStatusCode))
                    {
                        Rock.Mobile.Util.Debug.WriteLine("Got attrib");
                        onCompletion(attribModel);
                    }
                    else
                    {
                        onCompletion(null);
                    }
                });
            }
            else
            {
                onCompletion(new List <Rock.Client.Attribute>( ));
            }
        }
        void DownloadAttributeDefinitions( List<Dictionary<string, string>> attribList, AttribDefinitionDownloaded onCompletion )
        {
            // now build an array of the attributeIds we should request
            int[] attributeIds = new int[ attribList.Count ];
            for ( int i = 0; i < attribList.Count; i++ )
            {
                attributeIds[ i ] = int.Parse( attribList[ i ][ "attributeId" ] );
            }

            // and lastly, request them
            if ( attribList.Count > 0 )
            {
                ApplicationApi.GetAttribute( attributeIds,
                    delegate(HttpStatusCode attribStatusCode, string attribStatusDescription, List<Rock.Client.Attribute> attribModel )
                    {
                        if ( attribModel != null && Rock.Mobile.Network.Util.StatusInSuccessRange( attribStatusCode ) )
                        {
                            Rock.Mobile.Util.Debug.WriteLine( "Got attrib" );
                            onCompletion( attribModel );
                        }
                        else
                        {
                            onCompletion( null );
                        }
                    } );
            }
            else
            {
                onCompletion( new List<Rock.Client.Attribute>( ) );
            }
        }