Smrf.NodeXL.Visualization.Wpf.DrawerBase.TryGetColorValue C# (CSharp) Method

TryGetColorValue() protected method

protected TryGetColorValue ( IMetadataProvider oMetadataProvider, String sKey, Color &oColor ) : System.Boolean
oMetadataProvider IMetadataProvider
sKey String
oColor Color
return System.Boolean
    TryGetColorValue
    (
        IMetadataProvider oMetadataProvider,
        String sKey,
        out Color oColor
    )
    {
        Debug.Assert(oMetadataProvider != null);
        AssertValid();

        oColor = Color.FromRgb(0, 0, 0);

        Object oColorAsObject;

        if ( !oMetadataProvider.TryGetValue(sKey, out oColorAsObject) )
        {
            return (false);
        }

        if ( typeof(System.Windows.Media.Color).IsInstanceOfType(
            oColorAsObject) )
        {
            oColor = (System.Windows.Media.Color)oColorAsObject;
        }
        else if ( typeof(System.Drawing.Color).IsInstanceOfType(
            oColorAsObject) )
        {
            oColor = WpfGraphicsUtil.ColorToWpfColor(
                (System.Drawing.Color)oColorAsObject );
        }
        else
        {
            throw new InvalidOperationException( String.Format(

                "The graph, vertex, or edge value with the key \"{0}\" is of"
                + " type {1}.  The expected type is either"
                + " System.Windows.Media.Color or System.Drawing.Color."
                ,
                sKey,
                oColorAsObject.GetType().FullName
                ) );
        }

        return (true);
    }