Пример #1
0
 public EditVM(object item, BaseMetaData metaData)
 {
     FilterValues  = new Dictionary <string, object>();
     ExtraControls = new List <ExtraControl>();
     Entity        = item;
     MetaData      = metaData;
 }
Пример #2
0
        private static PropertyMetaDataBuilder <Te, Tp> AddProperty <Te, Tp>(BaseMetaData metaData,
                                                                             string propertyName, string displayName)
        {
            var propertyInfo = metaData.EntityType.GetPropertyInfoNN(propertyName);

            return(AddProperty <Te, Tp>(metaData, propertyInfo, displayName));
        }
Пример #3
0
        public static object GetDisplay(object item, BaseMetaData metaData)
        {
            if (item == null)
            {
                return(string.Empty);
            }
            if (metaData == null)
            {
                if (item.GetType() == typeof(string))
                {
                    return(EntityDisplayName.CutLong((string)item));
                }
                else
                {
                    return(item);
                }
            }
            var property = metaData.GetDisplayPropertyMetaData();

            if (property == null || property.ForeignType() == null)
            {
                return(metaData.DisplayProperty().GetOrDefault(x => EntityDisplayName.CutLong(
                                                                   item.GetValue(x.Name).ToString())));
            }

            var obj = property.Info.GetValue(item);

            return(GetDisplay(obj));
        }
Пример #4
0
        private static PropertyMetaDataBuilder <Te, Tp> AddProperty <Te, Tp>(BaseMetaData metaData,
                                                                             PropertyInfo propertyForName, string displayName)
        {
            var propertyMetaDataBuilder = new PropertyMetaDataBuilder <Te, Tp>(propertyForName);

            propertyMetaDataBuilder.SetAttribute(new DisplayNameAttribute(displayName));
            metaData.PropertyBuilders.Add(propertyMetaDataBuilder);
            return(propertyMetaDataBuilder);
        }
Пример #5
0
        public static PropertyInfo DisplayProperty(this BaseMetaData metaData)
        {
            var displayColumnAttribute = metaData.GetAttribute <DisplayColumnAttribute>();

            if (displayColumnAttribute == null)
            {
                return(null);
            }
            return(metaData.EntityType.GetProperty(displayColumnAttribute.DisplayColumn));
        }
Пример #6
0
        public static void TryAddUpdateAndChanger <Te>(this BaseMetaData <Te> metaData)
        {
            var updateDate    = "UpdateDate";
            var lastChangerTC = "LastChanger_TC";

            TryAddProperty <Te, bool>(metaData, updateDate, "Дата изм.")
            .Format("dd.MM.yy HH:mm:ss")
            .ReadOnly();
            TryAddProperty <Te, bool>(metaData, lastChangerTC, "Изм.")
            .ReadOnly();
        }
Пример #7
0
        private static PropertyMetaDataBuilder <Te, Tp> TryAddProperty <Te, Tp>(BaseMetaData metaData,
                                                                                string propertyName, string displayName)
        {
            if (!metaData.EntityType.HasProperty(propertyName))
            {
                return(new PropertyMetaDataBuilder <Te, Tp>((PropertyInfo)null));
            }
            var propertyInfo = metaData.EntityType.GetPropertyInfoNN(propertyName);

            return(AddProperty <Te, Tp>(metaData, propertyInfo, displayName));
        }
Пример #8
0
        public ListVM(BaseMetaData metaData, IPagedList entities, List <Row> tableData)
        {
            FilterValues      = new Dictionary <string, object>();
            ExtraControls     = new List <ExtraControl>();
            AdditionalColumns = new List <string>();
            ExtraFilters      = new List <PropertyMetaData>();
            MetaData          = metaData;

            Entities  = entities;
            TableData = tableData;
        }
Пример #9
0
        public IEnumerable GetFilterComboBoxSource(BaseMetaData metaData,
                                                   PropertyMetaData propertyMetaData, object filterValue)
        {
            var source = GetFilterComboBoxSource(propertyMetaData, metaData)
                         .Cast <object>().ToList();

            if (filterValue != null)
            {
                AddFilterValueToSource(propertyMetaData, filterValue, source);
            }
            return(source);
        }
Пример #10
0
        public static PropertyMetaData GetDisplayPropertyMetaData(this BaseMetaData metaData)
        {
            var displayColumnAttribute = metaData.GetAttribute <DisplayColumnAttribute>();

            if (displayColumnAttribute == null)
            {
                return(null);
            }
            var propertyName = displayColumnAttribute.DisplayColumn;

            return(metaData.GetProperties().FirstOrDefault(x => x.Name == propertyName));
        }
Пример #11
0
        private IQueryable GetFilterComboBoxSource(PropertyMetaData propertyMetaData,
                                                   BaseMetaData metaData)
        {
            if (propertyMetaData.ForeignInfo() == null)
            {
                return(GetComboBoxSource(propertyMetaData, false));
            }
            string selector = GetSelector(propertyMetaData);

            return(DynamicRepository.GetAll(metaData.EntityType)
                   .Where(propertyMetaData.Info.Name + " != null")
                   .Select(selector)
                   .Cast <object>().Distinct());
        }
Пример #12
0
        public static void TryAddStandartProperties <Te>(this BaseMetaData <Te> metaData, bool hideUrlName = false)
        {
            var isActive     = "IsActive";
            var description  = "Description";
            var urlName      = "UrlName";
            var webSortOrder = "WebSortOrder";

            if (!hideUrlName)
            {
                TryAddProperty <Te, string>(metaData, urlName, "Название в ЧПУ");
            }
            TryAddProperty <Te, string>(metaData, description, "Описание").UIHint(Controls.Html);
            TryAddProperty <Te, bool>(metaData, isActive, "Активен");
            TryAddProperty <Te, bool>(metaData, webSortOrder, "Сорт.");
        }
Пример #13
0
 public ExtraControlVM(BaseMetaData metaData, object entity, ExtraControl extraControl)
 {
     MetaData     = metaData;
     Entity       = entity;
     ExtraControl = extraControl;
 }
Пример #14
0
 public EntityLink(object entity, BaseMetaData metaData, UrlHelper urlHelper)
 {
     Entity     = entity;
     MetaData   = metaData;
     _urlHelper = urlHelper;
 }
Пример #15
0
 public FormBuilder(HtmlHelper htmlHelper, BaseMetaData metaData)
 {
     HtmlHelper = htmlHelper;
     MetaData   = metaData;
 }
Пример #16
0
        /*  public static bool CanEdit(this BaseMetaData metaData)
         * {
         *    return metaData.GetAttribute<ReadOnlyAttribute>() == null;
         * }*/

        public static bool CanDelete(this BaseMetaData metaData)
        {
            return(metaData.GetAttribute <DeletableAttribute>() != null);
        }
Пример #17
0
 public EditVM(object item, BaseMetaData metaData, string prefixPropertyName) :
     this(item, metaData)
 {
     PrefixPropertyName = prefixPropertyName + ".";
 }
Пример #18
0
        public static PropertyMetaDataBuilder <Te, string> AddName <Te>(this BaseMetaData <Te> metaData)
        {
            var propertyForName = ReflectionUtils.GetPropertyForName(metaData.EntityType);

            return(AddProperty <Te, string>(metaData, propertyForName, "Название"));
        }
Пример #19
0
 public static void Deletable <Te>(this BaseMetaData <Te> metaData)
 {
     metaData.SetAttribute(new DeletableAttribute());
 }