Ejemplo n.º 1
0
        /// <summary>
        /// Set a property based on the AutoCAD attribute name
        /// </summary>
        /// <param name="drawing"> </param>
        /// <param name="attribute"></param>
        /// <param name="value"></param>
        public static void SetAttribute(this Drawing drawing, string attribute, string value)
        {
            if (Attribs.ContainsKey(attribute))
            {
                Type t = Attribs[attribute].PropertyType;

                object obj;

                if (t == typeof(string))
                {
                    obj = value;
                }
                else if (t == typeof(DrawingCategory))
                {
                    obj = new DrawingCategoryConverter().ConvertBack(value, typeof(DrawingCategory), null, null);
                }
                else if (t == typeof(DrawingStatus))
                {
                    obj = new DrawingStatusConverter().ConvertBack(value, typeof(DrawingStatus), null, null);
                }
                else if (t == typeof(DateTime?))
                {
                    DateTime time;

                    if (DateTime.TryParse(value, out time))
                    {
                        obj = time;
                    }
                    else
                    {
                        obj = null;
                    }
                }
                else
                {
                    obj = value;
                }

                Attribs[attribute].SetValue(drawing, obj, null);
            }
            else
            {
                throw new ArgumentException("No such property!");
            }
        }
        /// <summary>
        /// Set a property based on the AutoCAD attribute name
        /// </summary>
        /// <param name="drawing"> </param>
        /// <param name="attribute"></param>
        /// <param name="value"></param>
        public static void SetAttribute(this Drawing drawing, string attribute, string value)
        {
            if (Attribs.ContainsKey(attribute))
            {
                Type t = Attribs[attribute].PropertyType;

                object obj;

                if (t == typeof(string))
                    obj = value;
                else if (t == typeof(DrawingCategory))
                    obj = new DrawingCategoryConverter().ConvertBack(value, typeof(DrawingCategory), null, null);
                else if (t == typeof(DrawingStatus))
                    obj = new DrawingStatusConverter().ConvertBack(value, typeof(DrawingStatus), null, null);
                else if (t == typeof(DateTime?))
                {
                    DateTime time;

                    if (DateTime.TryParse(value, out time))
                    {
                        obj = time;
                    }
                    else
                    {
                        obj = null;
                    }
                }
                else
                    obj = value;

                Attribs[attribute].SetValue(drawing, obj, null);
            }
            else
            {
                throw new ArgumentException("No such property!");
            }
        }