Basically all I want to do is to get the total storage space of subsites, document libraries and lists within a site collection. There does not seem to be a possible way to do it besides:
1) using site.StorageManagementInformation which is currently Obsolete
2) SPSite.UsageInfo this can only work for site collection:
SPSite.UsageInfo usageInfo = spSite.Usage;
long storageUsed = usageInfo.Storage;
3) SPWeb.GetUsageData which only gets the current day(and up to the last 31 days) usage data.
4) finding the database table where Site Collection Administration > Storage Metrics is querying from (which I could not find even when using a .NET Reflector for the assembly) and pulling data from sharepoint's database isnt recommended either :/
If anyone has any other way or idea on how to achieve this it would be very much appreciated!
After some research, I don't find other way to get the storage data, and I still suggest you use site.StorageManagementInformation to get the data, this object is currently obsolete but still works for SharePoint 2010 SP1.