public static void DownloadConfigurationTemplates(TemplatesDownloaded onDownloaded)
 {
     // first resolve the Guid to the correct type ID
     ApplicationApi.GetDefinedTypeIdForGuid(FamilyManagerApi.ConfigurationTemplateDefinedTypeGuid,
                                            delegate(System.Net.HttpStatusCode statusCode, string statusDescription, List <Rock.Client.DefinedType> definedTypeModel)
     {
         // if the request for the defined type worked
         if (Rock.Mobile.Network.Util.StatusInSuccessRange(statusCode) == true && definedTypeModel != null && definedTypeModel.Count > 0)
         {
             // now get the actual values
             FamilyManagerApi.GetConfigurationTemplates(definedTypeModel[0].Id, 0,
                                                        delegate(System.Net.HttpStatusCode configStatusCode, string configStatusDescription, List <Rock.Client.DefinedValue> definedValueModels)
             {
                 if (Rock.Mobile.Network.Util.StatusInSuccessRange(configStatusCode) == true && definedValueModels != null)
                 {
                     onDownloaded(definedValueModels);
                 }
                 else
                 {
                     // fail
                     onDownloaded(null);
                 }
             });
         }
         else
         {
             // fail
             onDownloaded(null);
         }
     });
 }