I have a form where I collect data from users. When this data is collected, I pass it to various partners, however each partner has their own rules for each piece of data, so this has to be converted. I can make this happen, but my worries are about the robustness. Here's some code:
First, I have an enum. This is mapped to dropdown a dropdown list - the description is the text value, and the int mapped to the value.
public enum EmploymentStatusType
{
    [Description("INVALID!")]
    None = 0,
    [Description("Permanent full-time")]
    FullTime = 1,
    [Description("Permanent part-time")]
    PartTime = 2,
    [Description("Self employed")]
    SelfEmployed = 3
}
When the form is submitted, the selected value is converted to its proper type and stored in another class - the property looks like this:
    protected virtual EmploymentStatusType EmploymentStatus
    {
        get { return _application.EmploymentStatus; }
    }
For the final bit of the jigsaw, I convert the value to the partners required string value:
    Dictionary<EmploymentStatusType, string> _employmentStatusTypes;
    Dictionary<EmploymentStatusType, string> EmploymentStatusTypes
    {
        get
        {
            if (_employmentStatusTypes.IsNull())
            {
                _employmentStatusTypes = new Dictionary<EmploymentStatusType, string>()
                {
                    { EmploymentStatusType.FullTime, "Full Time" },
                    { EmploymentStatusType.PartTime, "Part Time" },
                    { EmploymentStatusType.SelfEmployed, "Self Employed" }
                };
            }
            return _employmentStatusTypes;
        }
    }
    string PartnerEmploymentStatus
    {
        get { return _employmentStatusTypes.GetValue(EmploymentStatus); }
    }
I call PartnerEmploymentStatus, which then returns the final output string.
Any ideas how this can be made more robust?
 
     
    