public override object TransfomSpawn(object createInstance)
        {
            if (AutoHide)
            {
                var propertyInfos = Type.GetHighestProperties().Select(i => i.PropertyInfo);
                var shouldHave    = AttributeMappings.Select(i => i.PropertyInfo).Where(i => i != null).ToList();
                foreach (var prop in propertyInfos)
                {
                    if (shouldHave.Any(i => i.Name == prop.Name))
                    {
                        continue;
                    }
                    {
                        if (AttributeMappings.Any(i => i.PropertyInfo?.Name == prop.Name))
                        {
                            continue;
                        }

                        AttributeMappings.Add(new AttributeMap(this)
                        {
                            Attributes = new Expression <Func <Attribute> >[]
                            { () => new FieldAttribute {
                                  IsVisible = false
                              } },
                            PropertyInfo = prop
                        });
                    }
                }
            }

            return(base.TransfomSpawn(createInstance));
        }
示例#2
0
 public CFEntityTypeAttributeMapping GetDescriptionMapping()
 {
     return(AttributeMappings.Where(mapping => mapping.Name == "Description Mapping").FirstOrDefault());
 }
        public void UpdateViewModel(object dataModel, CatfishDbContext db)
        {
            CFEntityType model = dataModel as CFEntityType;

            Id   = model.Id;
            Name = model.Name;
            if (!string.IsNullOrEmpty(Name))
            {
                ErrorMessage = "";
            }
            Description = model.Description;
            // TargetType = model.TargetType.ToString();

            foreach (var tt in model.TargetTypesList)  //MR jan 15 2018
            {
                TargetType[(int)tt] = true;
            }

            CFTypeLabelAttribute att = Attribute.GetCustomAttribute(model.GetType(), typeof(CFTypeLabelAttribute)) as CFTypeLabelAttribute;

            TypeLabel = att == null?model.GetType().ToString() : att.Name;

            //populating the available metadata sets array
            MetadataService srv          = new MetadataService(db);
            var             metadataSets = srv.GetMetadataSets();

            AvailableMetadataSets.Clear();
            AvailableMetadataSets.Add(new MetadataSetListItem(0, ""));
            foreach (var ms in metadataSets)
            {
                if (!string.IsNullOrEmpty(ms.Name))
                {
                    AvailableMetadataSets.Add(new MetadataSetListItem(ms.Id, ms.Name));

                    List <string> addList = new List <string>();
                    addList.Add("");
                    addList = addList.Concat((ms.Fields.Select(f => f.Name).ToList())).ToList();

                    if (!MetadataSetFields.ContainsKey(ms.Id.ToString()))
                    {
                        MetadataSetFields.Add(ms.Id.ToString(), addList);
                    }
                }
            }

            //populating the associated metadata sets array
            AssociatedMetadataSets.Clear();
            foreach (var ms in model.MetadataSets)
            {
                AssociatedMetadataSets.Add(new MetadataSetListItem(ms.Id, ms.Name));
            }


            AttributeMappings.Clear();
            if (model.AttributeMappings.Count > 0)
            {
                foreach (CFEntityTypeAttributeMapping map in model.AttributeMappings)
                {
                    if (map.Name.Equals("Name Mapping"))// || map.Name.Equals("Description Mapping"))
                    {
                        map.Deletable = false;
                    }

                    AttributeMappings.Add(new AttributeMapping
                    {
                        Id    = map.Id,
                        Name  = map.Name,
                        Field = map.FieldName,
                        MetadataSetFieldId = map.MetadataSetId,
                        Label     = map.Label,
                        Deletable = map.Deletable
                    });
                }
            }
            else
            {
                AttributeMappings.Add(new AttributeMapping {
                    Id = 0, Name = "Name Mapping", Deletable = false
                });
                AttributeMappings.Add(new AttributeMapping {
                    Id = 0, Name = "Description Mapping", Deletable = true, ErrorMessage = ""
                });
            }
        }