ligershark/AzureJobs — pull request #39 by philoushka (2014-07-30 16:32:04+00:00)
Title: UtcNow and Command Line Args are property attributes 

**Fixes 2 issues**

1. Fixes [#27](https://github.com/ligershark/AzureJobs/issues/27) - using UtcNow instead of local Now.
Modified the logger to take a class instead of 4 properties. The class constructor simply sets the date. Less duplication.
Modified headings/titles the web viewer, TextMinifier and ImgCompressor to show user that it's UTC.
Included a test to confirm that the help output text has same number of lines as there are cmd line args supported.

2. Fixes [#31](https://github.com/ligershark/AzureJobs/issues/31) - command line help generated from property attributes.
Defined a new attribute named `CommandLineArgAttribute`. Applied the attribute to the CommandLineOption properties.
All the help text will be pulled using Reflection from the properties of the attribute.
Refactored the tests to accommodate.

**Includes enhancements/changes**

- Renamed some cmd line switches. i.e. logfile to cache, folder to dir, etc. If this breaks existing deployments elsewhere that I wasn't aware of, and is a dependency, let's revert.
- all cmd line switches now have short aliases. Change as you like, I just took a guess at what would best be a good short alias.

**To Do**
Before releasing, find instances of "TBD" and replace with real help descriptions in `CommandLineOptions.cs`. There were some properties that I couldn't complete.

**Future Potential Improvement**

Something I'd like to improve: method `GetAliasesOnProperty("DisplayHelp")` takes a string for name of the property to query for its attribute.
I'd much rather have this strongly typed where the property itself could be passed like `GetAliasesOnProperty(options.DisplayHelp)`. The danger is that if a `CommandLineOptions` property name changes, it needs to be accommodated over in the parsing as an arg on this call.