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)); }
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 = "" }); } }