private object GetPropertyValue(IModelProperty prop, IEnumerable values)
        {
            object result = null;

            if (prop.IsEnumerable)
            {
                result = values;
            }
            else if (prop.IsArray)
            {
                result = prop.ToArray(values);
            }
            else if (prop.IsCollection)
            {
                var tempValues = (IEnumerable)resolver.ResolveInstance(prop.PropertyType);
                foreach (var val in values)
                {
                    prop.AddToCollection(tempValues, val);
                }
                result = tempValues;
            }
            else //it's a single value, just return the first one (should really only be one thing)
            {
                result = values.Cast <object>().FirstOrDefault();
            }
            return(result);
        }
Beispiel #2
0
        public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
        {
            // escape
            if (modelData == null)
            {
                return(null);
            }

            ITemplate template = null;

            if (modelData is IComponentPresentation)
            {
                template = ((IComponentPresentation)modelData).ComponentTemplate;
            }
            else if (modelData is IPage)
            {
                template = ((IPage)modelData).PageTemplate;
            }

            // Run away run away
            if (template == null)
            {
                return(null);
            }


            var renderData = new RenderData();

            // TODO reuse logic from page rendering
            var view = Regex.Replace(template.Title, @"\[.*\]|\s", String.Empty);
            //Todo: make it configurable
            var action              = DefaultControllerAction;
            var controller          = DefaultController;
            var viewFieldName       = "view";
            var actionFieldName     = "action";
            var controllerFieldName = "controller";

            var fields = template.MetadataFields;

            if (fields != null)
            {
                if (fields.ContainsKey(viewFieldName))
                {
                    view = fields[viewFieldName].Value;
                }
                if (fields.ContainsKey(controllerFieldName))
                {
                    controller = fields[controllerFieldName].Value;
                }
                if (fields.ContainsKey(actionFieldName))
                {
                    action = fields[actionFieldName].Value;
                }
            }
            renderData.View       = view;
            renderData.Action     = action;
            renderData.Controller = controller;

            return(new[] { renderData });
        }
 public void SetPropertyValue(object model, IModel data, IModelProperty property)
 {
     if (property == null)
     {
         throw new ArgumentNullException("property");
     }
     if (model != null && data != null && property.PropertyAttribute != null)
     {
         var propertyValue = GetPropertyValue(property, property.PropertyAttribute.GetPropertyValues(data, property, this));
         if (propertyValue != null)
         {
             try
             {
                 property.Set(model, propertyValue);
             }
             catch (Exception e)
             {
                 if (e is TargetException || e is InvalidCastException)
                 {
                     throw new PropertyTypeMismatchException(property, property.PropertyAttribute, propertyValue);
                 }
                 else
                 {
                     throw e;
                 }
             }
         }
     }
 }
 protected override Type GetModelType(IModel data, IViewModelFactory factory, IModelProperty property)
 {
     if (KeywordType == null)
     {
         return(property.ModelType);
     }
     return(KeywordType);
 }
Beispiel #5
0
 public void Add(IModelProperty modelProperty)
 {
     if (modelProperties.Keys.Contains(modelProperty.Pid))
     {
         modelProperties.Remove(modelProperty.Pid);
     }
     modelProperties.Add(modelProperty.Pid, modelProperty);
 }
Beispiel #6
0
        //Example of using the BaseData object

        public override IEnumerable GetPropertyValues(IComponent component, IModelProperty property, ITemplate template, IViewModelFactory factory)
        {
            IMultimedia[] result = null;
            if (component != null && component.Multimedia != null)
            {
                result = new IMultimedia[] { component.Multimedia };
            }
            return(result);
        }
Beispiel #7
0
        public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory)
        {
            string pageId = null;
            if (_contextModel != null)
                pageId = _contextModel.PageId.ToString();

            return field.Values
                .Select(v => new MvcHtmlString(factory.RichTextResolver.Resolve(v, pageId).ToString())); 
        }
Beispiel #8
0
 public DateTimeValidator(ValidationResultHelper <TModel> helper, IModelProperty <DateTime?> property)
 {
     _helper   = helper;
     _property = property;
     if (_property.Value < (DateTime)SqlDateTime.MinValue)
     {
         Failed = true;
     }
 }
 protected override Type GetModelType(IModel data, IViewModelFactory factory, IModelProperty property)
 {
     if (EmbeddedModelType == null)
     {
         return property.ModelType;
     }
     
     return EmbeddedModelType;
 }
Beispiel #10
0
 public override IEnumerable GetPropertyValues(IViewModelData modelData, IModelProperty property, IViewModelFactory factory)
 {
     IEnumerable result = null;
     if (modelData is IPageData)
     {
         var cpModels = (modelData as IPageData).ComponentPresentations;
         result = GetPresentationValues(cpModels, property, factory);
     }
     return result;
 }
Beispiel #11
0
        public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory)
        {
            IEnumerable fieldValue = null;
            var values = field.Values;
            if (IsBooleanValue)
                fieldValue = values.Select(v => { bool b; return bool.TryParse(v, out b) && b; });
            else fieldValue = values;

            return fieldValue;
        }
Beispiel #12
0
        public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
        {
            IEnumerable result = null;

            if (modelData != null && modelData is IKeyword)
            {
                result = new IKeyword[] { modelData as IKeyword };
            }
            return(result);
        }
Beispiel #13
0
        public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
        {
            IEnumerable result = null;

            if (modelData is IPage)
            {
                var pageModel = modelData as IPage;
                result = this.GetPropertyValues(pageModel, property.ModelType, factory);
            }
            return(result);
        }
Beispiel #14
0
        public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
        {
            IEnumerable result = null;

            if (modelData is IPage)
            {
                var cpModels = (modelData as IPage).ComponentPresentations;
                result = GetPresentationValues(cpModels, property, factory);
            }
            return(result);
        }
Beispiel #15
0
 private HtmlString XpmMarkupFor(IFieldSet fields, IModelProperty fieldProp, int index)
 {
     try
     {
         return(new HtmlString(GenerateSiteEditTag(GetField(fields, fieldProp), index)));
     }
     catch (NullReferenceException)
     {
         return(null);
     }
 }
Beispiel #16
0
        private IField GetField(IFieldSet fields, IModelProperty fieldProp)
        {
            IField result = null;

            if (fieldProp.PropertyAttribute is IFieldAttribute)
            {
                var fieldName = ((IFieldAttribute)fieldProp.PropertyAttribute).FieldName;
                result = fields.ContainsKey(fieldName) ? fields[fieldName] : null;
            }
            return(result);
        }
Beispiel #17
0
        /// <summary>
        /// Builds a new Model Property object. Uses Reflection (GetCustomAttributes)
        /// </summary>
        /// <param name="propertyInfo"></param>
        /// <returns></returns>
        private IModelProperty BuildModelProperty(PropertyInfo propertyInfo)
        {
            IModelProperty result        = null;
            var            propAttribute = propertyInfo.GetCustomAttributes(typeof(IPropertyAttribute), true).FirstOrDefault() as IPropertyAttribute;

            if (propAttribute != null) //only add properties that have the custom attribute
            {
                result = GetModelProperty(propertyInfo, propAttribute);
            }
            return(result);
        }
Beispiel #18
0
        private IModelProperty FindOrBuildModelProperty(IList <IModelProperty> allModelProperties, PropertyInfo propertyInfo)
        {
            IModelProperty result = null;

            result = allModelProperties.FirstOrDefault(x => x.Name == propertyInfo.Name);
            if (result == null)
            {
                result = BuildModelProperty(propertyInfo);
                allModelProperties.Add(result);
            }
            return(result);
        }
Beispiel #19
0
        public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory)
        {
            string pageId = null;

            if (_contextModel != null)
            {
                pageId = _contextModel.PageId.ToString();
            }

            return(field.Values
                   .Select(v => new MvcHtmlString(factory.RichTextResolver.Resolve(v, pageId).ToString())));
        }
Beispiel #20
0
        public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
        {
            IEnumerable result = null;

            if (modelData != null && modelData is IComponentPresentation &&
                (modelData as IComponentPresentation).ComponentTemplate != null)
            {
                ITemplate templateData = (modelData as IComponentPresentation).ComponentTemplate;
                result = this.GetPropertyValues(templateData, property.ModelType, factory);
            }
            return(result);
        }
Beispiel #21
0
        public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
        {
            // escape
            if (modelData == null) return null;

            ITemplate template = null;
            if (modelData is IComponentPresentation)
            {
                template = ((IComponentPresentation)modelData).ComponentTemplate;
            }
            else if (modelData is IPage)
            {
                template = ((IPage)modelData).PageTemplate;
            }

            // Run away run away
            if (template == null) return null;

            var fields = template.MetadataFields;

            var renderData = new RenderData();

            // TODO reuse logic from page rendering
            var view = Regex.Replace(template.Title, @"\[.*\]|\s", String.Empty);
            //Todo: make it configurable
            var action = DefaultControllerAction;
            var controller = DefaultController;
            var viewFieldName = "view";
            var actionFieldName = "action";
            var controllerFieldName = "controller";

            if (fields.ContainsKey(viewFieldName))
            {
                view = fields[viewFieldName].Value;
            }
            if (fields.ContainsKey(controllerFieldName))
            {
                controller = fields[controllerFieldName].Value;
            }
            if (fields.ContainsKey(actionFieldName))
            {
                action = fields[actionFieldName].Value;
            }

            renderData.View = view;
            renderData.Action = action;
            renderData.Controller = controller;

            return new[] { renderData };
        }
Beispiel #22
0
        public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory)
        {
            var result = new List <object>();

            foreach (var value in field.Values)
            {
                object parsed;
                if (EnumTryParse(property.ModelType, value, out parsed))
                {
                    result.Add(parsed);
                }
            }
            return(result);
        }
 protected override Type GetModelType(IModel data, IViewModelFactory factory, IModelProperty property)
 {
     return(property.ModelType);
     //Type result = null;
     //try
     //{
     //    result = factory.FindViewModelByAttribute<IContentModelAttribute>(data, LinkedComponentTypes);
     //}
     //catch (ViewModelTypeNotFoundException)
     //{
     //    result = null;
     //}
     //return result;
 }
Beispiel #24
0
        /// <summary>
        /// The Key of a Keyword field.
        /// </summary>
        /// <param name="fieldName">Tridion schema field name</param>
        //public KeywordKeyFieldAttribute(string fieldName) : base(fieldName) { }
        public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory)
        {
            IEnumerable value  = null;
            var         values = field.Keywords;

            if (IsBooleanValue)
            {
                value = values.Select(k => { bool b; return(bool.TryParse(k.Title, out b) && b); });
            }
            else
            {
                value = values.Select(k => k.Title);
            }
            return(value);
        }
Beispiel #25
0
        protected virtual object BuildModel(IViewModelFactory factory, IModel data, IModelProperty property)
        {
            object result = null;

            if (ComplexTypeMapping != null)
            {
                result = factory.BuildMappedModel(data, ComplexTypeMapping);
            }
            else
            {
                var modelType = GetModelType(data, factory, property);
                result = modelType != null?factory.BuildViewModel(modelType, data) : null;
            }
            return(result);
        }
Beispiel #26
0
        private int IndexOf <T>(IModelProperty fieldProp, object model, T item)
        {
            int    index = -1;
            object value = fieldProp.Get(model);

            if (value is IEnumerable <T> )
            {
                IEnumerable <T> list = (IEnumerable <T>)value;
                index = IndexOf(list, item);
            }
            else
            {
                throw new FormatException(String.Format("Generic type of property type {0} does not match generic type of item {1}", value.GetType().Name, typeof(T).Name));
            }
            return(index);
        }
Beispiel #27
0
        public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory)
        {
            IEnumerable fieldValue = null;
            var         values     = field.Values;

            if (IsBooleanValue)
            {
                fieldValue = values.Select(v => { bool b; return(bool.TryParse(v, out b) && b); });
            }
            else
            {
                fieldValue = values;
            }

            return(fieldValue);
        }
        private object GetPropertyValue(IModelProperty prop, IEnumerable values)
        {
            object result = null;

            if (prop.IsEnumerable)
            {
                result = values;
            }
            else if (prop.IsArray)
            {
                result = prop.ToArray(values);
            }
            else if (prop.IsCollection)
            {
                var  tempValues = (IEnumerable)_resolver.ResolveInstance(prop.PropertyType);
                Type elementType;
                if (_resolver.ReflectionHelper.IsGenericCollection(prop.PropertyType, out elementType))
                {
                    foreach (var val in values)
                    {
                        if (elementType.IsAssignableFrom(val.GetType()))
                        {
                            prop.AddToCollection(tempValues, val);
                        }
                    }
                }

                result = tempValues;
            }
            else //it's a single value, just return the first one (should really only be one thing)
            {
                foreach (var val in values)
                {
                    if (val == null)
                    {
                        continue;
                    }

                    if (prop.PropertyType.IsAssignableFrom(val.GetType()))
                    {
                        result = val;
                        break;
                    }
                }
            }
            return(result);
        }
        protected override Type GetModelType(IModel data, IViewModelFactory factory, IModelProperty property)
        {
            if (LinkedComponentTypes == null || LinkedComponentTypes.Count() == 0)
            {
                return(property.ModelType);
            }
            Type result = null;

            try
            {
                result = factory.FindViewModelByAttribute <IContentModelAttribute>(data, LinkedComponentTypes);
            }
            catch (ViewModelTypeNotFoundException)
            {
                result = null;
            }
            return(result);
        }
Beispiel #30
0
        private HtmlString SiteEditable <TProp>(IViewModel model, IFieldSet fields, IModelProperty fieldProp, int index)
        {
            string markup    = string.Empty;
            object value     = null;
            string propValue = string.Empty;

            try
            {
                var field = GetField(fields, fieldProp);
                markup    = IsSiteEditEnabled(model) ? GenerateSiteEditTag(field, index) : string.Empty;
                value     = fieldProp.Get(model);
                propValue = value == null ? string.Empty : value.ToString();
            }
            catch (NullReferenceException)
            {
                return(null);
            }
            return(new HtmlString(markup + propValue));
        }
        protected override Type GetModelType(IModel data, IViewModelFactory factory, IModelProperty property)
        {
            if (LinkedComponentTypes == null || LinkedComponentTypes.Count() == 0)
            {
                if (!property.ModelType.IsInterface && !property.ModelType.IsAbstract)
                {
                    return(property.ModelType);
                }

                //setting it to null in case the list initiated and contains 0 items.
                LinkedComponentTypes = null;
            }
            Type result = null;

            //throw any exception if occured. there no point to handling it over here
            result = factory.FindViewModelByAttribute <IContentModelAttribute>(data, LinkedComponentTypes);

            return(result);
        }
Beispiel #32
0
        public IModelProperty GetModelProperty(PropertyInfo propertyInfo)
        {
            IModelProperty         result = null;
            IList <IModelProperty> allModelProperties;

            if (modelProperties.TryGetValue(propertyInfo.DeclaringType, out allModelProperties))
            {
                result = FindOrBuildModelProperty(allModelProperties, propertyInfo);
            }
            else
            {
                lock (modelProperties)
                {
                    allModelProperties = GetModelProperties(propertyInfo.DeclaringType);
                    result             = FindOrBuildModelProperty(allModelProperties, propertyInfo);
                }
            }

            return(result);
        }
Beispiel #33
0
        public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory = null)
        {
            IEnumerable fieldValue = null;
            var         values     = GetRawValues(field);

            if (values != null)
            {
                if (ComplexTypeMapping == null && ReturnRawData)
                {
                    fieldValue = values;
                }
                else
                {
                    fieldValue = values.Cast <object>()
                                 .Select(value => BuildModel(factory, BuildModelData(value, field, template), property))
                                 .Where(value => value != null);
                }
            }
            return(fieldValue);
        }
Beispiel #34
0
        //public ResolvedUrlFieldAttribute(string fieldName) : base(fieldName) { }
        public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory)
        {
            string pageId = string.Empty;

            if (_contextModel != null)
            {
                pageId = _contextModel.PageId.ToString();
            }

            return(field.LinkedComponentValues
                   .Select(x => {
                if (IncludePage && !string.IsNullOrEmpty(pageId))
                {
                    return factory.LinkResolver.ResolveUrl(x, pageId);
                }
                else
                {
                    return factory.LinkResolver.ResolveUrl(x);
                }
            }));
        }
Beispiel #35
0
 public override IEnumerable GetPropertyValues(IViewModelData modelData, IModelProperty property, IViewModelFactory factory)
 {
     IEnumerable result = null;
     if (modelData != null)
     {
         if (modelData is IComponentPresentationData)
         {
             var cpData = modelData as IComponentPresentationData;
             if (cpData != null)
             {
                 result = GetPropertyValues(cpData.Component, property,
                     cpData.Template, factory);
             }
         }
         else if (modelData is IComponentData) //Not all components come with Templates
         {
             result = GetPropertyValues(modelData as IComponentData, property, null, factory);
         }
     }
     return result;
 }
Beispiel #36
0
        public static ModelViewProperty CreateInstance(IModelType parent, string name)
        {
            if (parent == null)
            {
                return(null);
            }

            if (string.IsNullOrWhiteSpace(name))
            {
                return(null);
            }

            name = name.Trim();
            IModelProperty modelProperty = parent.GetProperty(name);

            if (modelProperty == null)
            {
                throw new EtkException($"Cannot find property '{name}' for model type {parent.Name}");
            }

            return(new ModelViewProperty(parent, modelProperty));
        }
Beispiel #37
0
 public override IEnumerable GetPropertyValues(IComponentData component, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     IEnumerable result = null;
     if (component != null && component.MultimediaData != null)
     {
         result = new string[] { component.MultimediaData.Url };
     }
     return result;
 }
Beispiel #38
0
 public override IEnumerable GetPropertyValues(IComponentData component, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     IMultimediaData result = null;
     if (component != null && component.MultimediaData != null)
     {
         result = component.MultimediaData;
     }
     return new IMultimediaData[] { result };
 }
Beispiel #39
0
 /// <summary>
 /// The Key of a Keyword field.
 /// </summary>
 /// <param name="fieldName">Tridion schema field name</param>
 //public KeywordKeyFieldAttribute(string fieldName) : base(fieldName) { }
 public override IEnumerable GetFieldValues(IFieldData field, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     IEnumerable value = null;
     var values = field.Values.Cast<Dynamic.IKeyword>();
     if (IsBooleanValue)
         value = values.Select(k => { bool b; return bool.TryParse(k.Key, out b) && b; });
     else value = values.Select(k => k.Key);
     return value;
 }
Beispiel #40
0
 public override IEnumerable GetPropertyValues(IViewModelData modelData, IModelProperty property, IViewModelFactory factory)
 {
     IEnumerable result = null;
     if (modelData != null && modelData is IKeywordData)
     {
         result = new IKeywordData[] { modelData as IKeywordData };
     }
     return result;
 }
 public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
 {
     IEnumerable result = null;
     if (modelData != null && modelData is IComponentPresentation
         && (modelData as IComponentPresentation).ComponentTemplate != null)
     {
         ITemplate templateData = (modelData as IComponentPresentation).ComponentTemplate;
         result = this.GetPropertyValues(templateData, property.ModelType, factory);
     }
     return result;
 }
Beispiel #42
0
 public override System.Collections.IEnumerable GetPresentationValues(IList<IComponentPresentationData> cps, IModelProperty property, IViewModelFactory factory)
 {
     return cps.Where(cp =>
             {
                 bool result = false;
                 if (cp.Template != null && cp.Template.Metadata != null
                     && cp.Template.Metadata.ContainsKey("view"))
                 {
                     var view = cp.Template.Metadata["view"].Values.Cast<string>().FirstOrDefault();
                     if (view != null && view.StartsWith(ViewPrefix))
                     {
                         result = true;
                     }
                 }
                 return result;
             })
             .Select(cp =>
                 {
                     object model = null;
                     if (ComplexTypeMapping != null)
                     {
                         model = factory.BuildMappedModel(cp, ComplexTypeMapping);
                     }
                     else model = factory.BuildViewModel((cp));
                     return model;
                 });
 }
 public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
 {
     IEnumerable result = null;
     if (modelData != null)
     {
         //need null checks on Template
         IFieldSet fields = null;
         ITemplate template = null;
         if (IsTemplateMetadata)
         {
             if (modelData is IComponentPresentation)
             {
                 var templateData = modelData as IComponentPresentation;
                 template = templateData.ComponentTemplate;
             }
             else if (modelData is IPage)
             {
                 var templateData = modelData as IPage;
                 template = templateData.PageTemplate;
             }
             fields = template != null ? template.MetadataFields : null;
         }
         else if (IsMetadata)
         {
             if (modelData is IComponentPresentation)
             {
                 fields = (modelData as IComponentPresentation).Component.MetadataFields;
             }
             else if (modelData is IComponent)
             {
                 fields = (modelData as IComponent).MetadataFields;
             }
             else if (modelData is IPage)
             {
                 fields = (modelData as IPage).MetadataFields;
             }
             else if (modelData is ITemplate)
             {
                 fields = (modelData as ITemplate).MetadataFields;
             }
             else if (modelData is IKeyword)
             {
                 fields = (modelData as IKeyword).MetadataFields;
             }
             //Any other things with MetadataFields?
             
         }
         else if (modelData is IComponentPresentation)
         {
             fields = (modelData as IComponentPresentation).Component.Fields;
         }
         else if (modelData is IEmbeddedFields)
         {
             fields = (modelData as IEmbeddedFields).Fields;
         }
         if (String.IsNullOrEmpty(FieldName)) FieldName = GetFieldName(property.Name); //Convention over configuration by default -- Field name = Property name
         
         if (fields != null && fields.ContainsKey(FieldName))
         {   
             result = this.GetFieldValues(fields[FieldName], property, template, factory);
         }
     }
     return result;
 }
 protected abstract Type GetModelType(IModel data, IViewModelFactory factory, IModelProperty property);
 protected virtual object BuildModel(IViewModelFactory factory, IModel data, IModelProperty property)
 {
     object result = null;
     if (ComplexTypeMapping != null)
     {
         result = factory.BuildMappedModel(data, ComplexTypeMapping);
     }
     else
     {
         var modelType = GetModelType(data, factory, property);
         result = modelType != null ? factory.BuildViewModel(modelType, data, _contextModel) : null;
     }
     return result;
 }
 public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template,IViewModelFactory factory = null)
 {
     IEnumerable fieldValue = null;
     var values = GetRawValues(field);
     if (values != null)
     {
         if (ComplexTypeMapping == null && ReturnRawData)
             fieldValue = values;
         else
             fieldValue = values.Cast<object>()
                 .Select(value => BuildModel(factory, BuildModelData(value, field, template), property))
             .Where(value => value != null);
     }
     return fieldValue;
 }
 public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
 {
     IEnumerable result = null;
     if (modelData is IPage)
     {
         var cpModels = (modelData as IPage).ComponentPresentations;
         var contextModel = factory.ContextResolver.ResolveContextModel(modelData);
         result = GetPresentationValues(cpModels, property, factory, contextModel);
     }
     return result;
 }
Beispiel #48
0
 //public NumericKeywordKeyFieldAttribute(string fieldName) : base(fieldName) { }
 public override IEnumerable GetFieldValues(IFieldData field, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     return field.Values.Cast<Dynamic.IKeyword>()
         .Select(k => { double i; double.TryParse(k.Key, out i); return i; });
 }
Beispiel #49
0
 public override IEnumerable GetPropertyValues(IComponentData component, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     return component == null ? null : new string[] { component.Title };
 }
Beispiel #50
0
 //public RichTextFieldAttribute(string fieldName) : base(fieldName) { }
 public override IEnumerable GetFieldValues(IFieldData field, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     return field.Values.Cast<string>()
         .Select(v => v.ResolveRichText()); //Hidden dependency on DD4T implementation
 }
Beispiel #51
0
 //public ResolvedUrlFieldAttribute(string fieldName) : base(fieldName) { }
 public override IEnumerable GetFieldValues(IFieldData field, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     return field.Values.Cast<Dynamic.IComponent>()
         .Select(x => x.GetResolvedUrl());
 }
Beispiel #52
0
 //Example of using the BaseData object
 public override IEnumerable GetPropertyValues(IComponentData component, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     Dynamic.IMultimedia[] result = null;
     if (component != null && component.MultimediaData != null)
     {
         result = new Dynamic.IMultimedia[] { component.MultimediaData.BaseData as Dynamic.IMultimedia };
     }
     return result;
 }
Beispiel #53
0
 //public DateFieldAttribute(string fieldName) : base(fieldName) { }
 public override IEnumerable GetFieldValues(IFieldData field, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     return field.Values.Cast<DateTime>();
 }
Beispiel #54
0
 public override IEnumerable GetFieldValues(IFieldData field, IModelProperty property, ITemplateData template, IViewModelFactory factory)
 {
     var result = new List<object>();
     foreach (var value in field.Values)
     {
         object parsed;
         if (EnumTryParse(property.ModelType, value, out parsed))
         {
             result.Add(parsed);
         }
     }
     return result;
 }
 public abstract IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory);
 /// <summary>
 /// When overriden in a derived class, this gets the value of the Property for a given Component
 /// </summary>
 /// <param name="component">Component for the View Model</param>
 /// <param name="propertyType">Actual return type for the Property</param>
 /// <param name="template">Component Template</param>
 /// <param name="factory">View Model factory</param>
 /// <returns>The Property value</returns>
 public abstract IEnumerable GetPropertyValues(IComponent component, IModelProperty property, ITemplate template, IViewModelFactory factory);
Beispiel #57
0
 public override IEnumerable GetFieldValues(IField field, IModelProperty property, ITemplate template, IViewModelFactory factory)
 {
     return field.LinkedComponentValues
         .Select(x => x.GetResolvedUrl());
 }
 public override IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory factory)
 {
     IEnumerable result = null;
     if (modelData is IPage)
     {
         var pageModel = modelData as IPage;
         result = this.GetPropertyValues(pageModel, property.ModelType, factory);
     }
     return result;
 }
Beispiel #59
0
 public IEnumerable GetPropertyValues(IModel modelData, IModelProperty property, IViewModelFactory builder, IContextModel contextModel)
 {
     _contextModel = contextModel;
     return base.GetPropertyValues(modelData, property, builder);
 }
 //Really leaving the bulk of the work to implementer -- they must both find out if the CP matches this attribute and then construct an object with it
 /// <summary>
 /// When overriden in a derived class, this gets a set of values representing Component Presentations of a Page
 /// </summary>
 /// <param name="cps">Component Presentations for the Page Model</param>
 /// <param name="propertyType">Actual return type of the Property</param>
 /// <param name="factory">A View Model factory</param>
 /// <returns>The Property value</returns>
 public abstract IEnumerable GetPresentationValues(IList<IComponentPresentation> cps, IModelProperty property, IViewModelFactory factory, IContextModel contextModel);