The best way I can see this happening is taking a low end UPS that has a modifiable API that you can call up or design your own interface to.
You may be able to get away with stripping it down, re-casing it to a smaller form factor and using different batteries depending on the tolerance of the unit for different batteries.
Down sides to this are most UPS batteries are 6volts or more. You would need a regulator circuit between the pi and the UPS to step it down. Also it would require another cord to the pi (ethernet or serial).
Edit: To clarify, you would connect the regulator directly to the batteries, not to the UPS circuitry. The UPS circuitry would be entirely for the recharging and the API only. Further, to save battery life, you would also add a switch to disable the circuit that powers the 120volt outputs while in battery mode.
You would not need to plug it into the wall and act as a true UPS as the batteries also power the back-end for the API. But it would also provide a means to correctly charge it.
Then once you accomplish that, write a web based C# widget to call up specific parts of that API.