private IEnumerable <Teleform.Reporting.Attribute> GetAttributes()
        {
            IEnumerable <Teleform.Reporting.Attribute> FilteredAttrsList;

            if (FilterAttributeIDList != null)
            {
                FilteredAttrsList = Entity.Attributes.Where(o => !FilterAttributeIDList.Contains(o.ID));
            }
            else
            {
                FilteredAttrsList = Entity.Attributes;
            }

            if (userID != null)
            {
                var PermittedEntitieNamesList = StorageUserObgects.Select <UserEntityPermission>(userID, userID).getReadPermittedEntities().AsEnumerable().Select(x => x["entityID"].ToString()).ToList <string>();

                foreach (var item in PermittedEntitieNamesList)
                {
                    if (item == "202535855")
                    {
                    }
                }


                FilteredAttrsList = FilteredAttrsList.Where(x => PermittedEntitieNamesList.Contains(x.EntityID.ToString()));

                foreach (var item in FilteredAttrsList)
                {
                    if (item.EntityID == "202535855")
                    {
                    }
                }
            }

            if (string.IsNullOrEmpty(AttributeFilterBox.Text))
            {
                return(FilteredAttrsList.Where(o => !o.Name.ToLower().Contains("objid") && !o.Name.ToLower().Contains("parentid")));
            }
            else
            {
                return(FilteredAttrsList.Where(o => !o.Name.ToLower().Contains("objid") && !o.Name.ToLower().Contains("parentid") && o.Name.ToLower().Contains(AttributeFilterBox.Text.ToLower())));
            }
        }
        private IEnumerable <Teleform.Reporting.Attribute> GetAttributesForAdministration()
        {
            IEnumerable <Teleform.Reporting.Attribute> filterList;

            if (FilterAttributeIDList != null)
            {
                filterList = Entity.Attributes.Where(o => !FilterAttributeIDList.Contains(o.ID) && !o.IsListAttribute); //&& o.FPath.IndexOf('/') == -1
            }
            else
            {
                filterList = Entity.Attributes; //.Where(x => x.FPath.IndexOf('/') == -1);
            }
            if (string.IsNullOrEmpty(AttributeFilterBox.Text))
            {
                return(filterList.Where(o => !o.Name.ToLower().Contains("objid") && !o.Name.ToLower().Contains("parentid")));
            }
            else
            {
                return(filterList.Where(o => !o.Name.ToLower().Contains("objid") && !o.Name.ToLower().Contains("parentid") && o.Name.ToLower().Contains(AttributeFilterBox.Text.ToLower())));
            }
        }
        private object GetAttributesForInputExcelBased()
        {
            IEnumerable <Teleform.Reporting.Attribute> filterList = new List <Teleform.Reporting.Attribute>();

            if (FilterAttributeIDList != null)
            {
                //делает выборку, если  добавленные атрибуты нужно убрать из списка в дизайнере
                filterList = Entity.Attributes.Where(o => o.AppType == AppType.parentid && !FilterAttributeIDList.Contains(o.ID) && !o.IsListAttribute && !o.FPath.Contains("/") && o.Type.Name != "Table").AsEnumerable();
            }
            else
            {
                filterList = Entity.Attributes.Where(x => !x.FPath.Contains("/") && x.Type.Name != "Table").AsEnumerable();
            }

            var constraint = entity.Constraints.ToArray();

            List <Teleform.Reporting.Attribute> list = new List <Teleform.Reporting.Attribute>();

            for (int i = 0; i < constraint.Count(); i++)
            {
                var attribute = entity.Attributes.FirstOrDefault(x => x.FPath == (constraint[i].ConstraintName + "/objID")); // && !FilterAttributeIDList.Contains(x.ID));
                if (attribute != null)
                {
                    list.Add(attribute);
                }
            }

            //Добавляем ссылку на себя (Table_Table) к списку полей
            if (entity.IsHierarchic)
            {
                list.Add(entity.Attributes.FirstOrDefault(x => x.FPath == (constraint.FirstOrDefault(o => o.RefTblName == entity.SystemName).ConstraintName + "/name")));
            }

            filterList = filterList.Concat(list.AsEnumerable());

            return(filterList.Where(o => o.Name.ToLower() != "objid"));
        }