117 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Intel.Management.PSModule
{
public class ValueMap
{
string _intValue;
IDictionary<string, string> _mappedValues;
private ValueMap(string intValue, IDictionary<string, string> mappedValues)
{
_intValue =intValue;
_mappedValues = mappedValues;
}
public string Value
{
get
{
return _intValue;
}
set
{
_intValue = value;
}
}
public override string ToString()
{
string outString;
if (_mappedValues.TryGetValue(_intValue, out outString))
return outString;
return _intValue;
}
public string GetStringFromValue(string value)
{
string result;
if (!_mappedValues.TryGetValue(value, out result))
{
result = string.Empty;
}
return result;
}
public string GetValueFromString(string stringValue)
{
string result = null;
foreach (KeyValuePair<string,string> pair in _mappedValues)
{
if (string.Compare(pair.Value, stringValue, true) == 0)
{
result = pair.Key;
break;
}
}
if (result==null)
{
throw new System.Management.Automation.PSArgumentException();
}
return result;
}
public string[] Keys
{
get
{
return _mappedValues.Keys.ToArray();
}
}
public string[] Values
{
get
{
return _mappedValues.Values.ToArray();
}
}
public static ValueMap CreateFromStringValue(string stringValue, IDictionary<string, string> mappedValues)
{
ValueMap result = null;
foreach (KeyValuePair<string, string> pair in mappedValues)
{
if (string.Compare(pair.Value, stringValue, true) == 0)
{
result = ValueMap.Create(pair.Key,mappedValues);
break;
}
}
return result;
}
public static ValueMap Create(string value, IDictionary<string, string> mappedValues)
{
ValueMap result = null;
result = new ValueMap(value, mappedValues);
return result;
}
}
}