Exemple #1
0
        internal static DxfColor smethod_10(CloneContext cloneContext, DxfColor from)
        {
            if (from == null)
            {
                return((DxfColor)null);
            }
            if (cloneContext.SourceModel == cloneContext.TargetModel)
            {
                return(from);
            }
            DxfColor dxfColor1 = (DxfColor)null;

            if (!string.IsNullOrEmpty(from.Color.Name))
            {
                dxfColor1 = (DxfColor)cloneContext.GetExistingClone((IGraphCloneable)from) ?? cloneContext.TargetModel.Colors.GetColor(from.Color.ColorBookName, from.Color.Name);
                if (dxfColor1 == null)
                {
                    switch (cloneContext.ReferenceResolutionType)
                    {
                    case ReferenceResolutionType.CloneMissing:
                        DxfColor dxfColor2 = (DxfColor)from.Clone(cloneContext);
                        if (!cloneContext.CloneExact)
                        {
                            cloneContext.TargetModel.Colors.Add(dxfColor2);
                        }
                        dxfColor1 = dxfColor2;
                        break;

                    case ReferenceResolutionType.FailOnMissing:
                        throw new DxfException(string.Format("Could not resolve reference to color with book name {0} and name {1}", (object)from.Color.ColorBookName, (object)from.Color.Name));
                    }
                }
            }
            return(dxfColor1);
        }