All of these .Replace(',', '-') throughout the code seem strange (& will affect maintainability/readability/etc.).

Ex.if we decide later, we don't want another character: "X" we'd not like to have to modify a bunch of code, so maybe move this to a method also.