REST Api Help as regular Rock Block List/Detail instead of oldstyle Page
working on dynamically adding new items into a Linq Select statement
Injection of DataSelection SubQuery into ReportQry working. Still verifying that this solution will really work
the DataTree idea didn't work after all. However, changed it to do Join, Union and GroupBy to get the DataSelect Columns added dynamically.  This does work, and does it in OneTrip to the database.  1000 Records with 3 DynamicColumns took about 1-2 seconds.
Another approach that works for Reporting, this one uses Expressions and is fairly clean, but would put an upper static limit on the number of DataSelect columns (100, 1000, whatever we decide would be enough)
Reporting with DataSelectFields: now can dynamically add columns that contain subselects, and include the DataSelectField's Property Name and Type. This method is much faster than the Join/Union/GroupBy one: 75ms vs 1000-2000ms.
Merge branch 'develop'
Reports can now dynamically add DataSelectComponents (SubQueries) to the Select statement. Still debugging and testing quite a bit
added v_groupFamilyName that we could use to get the Family Name of a Group from the GroupMembers (Mom and Dad Lastname, for example)
Merge branch 'develop'
+ rename DataSelectData.PersonId to DataSelectData.EntityId
+ fix error when adding multiple LastContributionSelect components to a Report
- Moving "Root Path" from an attribute SourceProvider to an attribute on BinaryFileType when the StorageProvider is FileSystem.
- Refactoring of StorageProvider stuff. Moving Database logic out of Provider and into Service, so that the provider only has to worry about how to read/write/delete the file *content*.  Not done yet
Testing
Merge branch 'develop'
Merge branch 'develop'
Merge branch 'develop'
added a couple more anchors in RockControlGallery
Storage Provider refactor and GetImage,UploadImage,GetFile,UploadFile cleanup almost done
Merge branch 'develop'
+ fixed a bunch of bugs in BinaryFile logic
+ fixed up GetImage to be smarter about how it deals with caching
+ still need to test a few scenerios, like changing the storage on the BinaryFileType, then editing/deleting BinaryFiles that were saved prior to the change
+ might have seen a possible bug in BinaryFileDetail if you hit X on the filepicker, reloaded a file and saved it.  It looked like it might have created a 2nd record