예제 #1
0
        public override ObjectModelObject ConvertToObject()
        {
            var obj = base.ConvertToObject();

            obj.ConstructorValues.Add(new ObjectModelString(Content));
            obj.ConstructorValues.Add(new ObjectModelString(Arguments));

            switch (Placement)
            {
            case ActionPlacement.ContextMenu:
                obj.Name = "ToastContextMenuItem";
                break;

            default:
                switch (ActivationType)
                {
                case ActivationType.System:
                    obj.PropertyValues.Clear();
                    var args = Arguments != null ? Arguments : "";
                    switch (args.ToLower())
                    {
                    case "snooze":
                        obj = new ObjectModelObject("ToastButtonSnooze");

                        if (!string.IsNullOrWhiteSpace(Content))
                        {
                            obj.ConstructorValues.Add(new ObjectModelString(Content));
                        }
                        if (InputId != null)
                        {
                            obj.Add("SelectionBoxId", new ObjectModelString(InputId));
                        }
                        break;

                    default:
                        obj = new ObjectModelObject("ToastButtonDismiss");
                        if (!string.IsNullOrWhiteSpace(Content))
                        {
                            obj.ConstructorValues.Add(new ObjectModelString(Content));
                        }
                        break;
                    }
                    break;
                }
                break;
            }

            return(obj);
        }
        public virtual ObjectModelObject ConvertToObject()
        {
            var classAttr = GetObjectModelClassAttribute();

            if (classAttr == null)
            {
                return(null);
            }

            var answer = new ObjectModelObject(classAttr.Name);

            foreach (var propInfo in this.GetType().GetProperties())
            {
                var propAttr = GetObjectModelPropertyAttribute(propInfo);
                if (propAttr != null)
                {
                    object propVal = propInfo.GetValue(this);
                    if (!object.Equals(propAttr.DefaultValue, propVal))
                    {
                        IObjectModelValue value = CreateObject(propVal);

                        if (value != null)
                        {
                            answer.Add(propAttr.Name, value);
                        }
                    }
                }
                else
                {
                    var bindingPropAttr = GetObjectModelBindingPropertyAttribute(propInfo);
                    if (bindingPropAttr != null)
                    {
                        string bindingName = propInfo.GetValue(this) as string;
                        if (bindingName != null)
                        {
                            answer.AddBinding(bindingPropAttr, bindingName);
                        }
                    }
                }
            }

            return(answer);
        }