private static void ConfigureConfigurationMapping()
        {
            Mapper.CreateMap <ConfigDirectory, ConfigDirectoryViewModel>()
            .ForMember(vm => vm.ParentId, m => m.MapFrom(dm => dm.ParentDirectory.Id))
            .ForMember(vm => vm.ConfigValues, m => m.MapFrom(dm => dm.ChildValues))
            .ForMember(vm => vm.ChildDirectories, m => m.MapFrom(dm => dm.ChildDirectories));
            Mapper.CreateMap <ConfigDirectory, ConfigDirectoryReferenceViewModel>();
            Mapper.CreateMap <ConfigValue, ConfigValueViewModel>()
            .ForMember(vm => vm.ParentSectionId, m => m.MapFrom(dm => dm.ParentDirectory.Id))
            .ForMember(vm => vm.Type, m => m.MapFrom(dm => dm.SettingTypeString))
            .ForMember(vm => vm.Value, m => m.MapFrom(dm => dm.GetValue()))
            // todo: enum fields to be mapped here
            .ForMember(vm => vm.AllowedValues, m => m.Ignore());
            Mapper.CreateMap <ConfigValueUpdateViewModel, ConfigValue>().ConvertUsing(model =>
            {
                ConfigValue configValue = new ConfigValue();

                configValue.Id                = model.Id;
                configValue.Description       = model.Description;
                configValue.SettingTypeString = model.Type;
                configValue.SetValue(model.Value, model.GetValueType());

                return(configValue);
            });
            Mapper.CreateMap <ConfigDirectoryUpdateViewModel, ConfigDirectory>().IgnoreAllNonExisting();
        }