private static ImportFieldGroupViewModel Update(ImportFieldGroupViewModel groupModel, IEnumerable <BLL.Field> fields) { foreach (var field in fields) { var item = new ExtendedListItem { Text = field.Name, Value = field.Id.ToString(), Description = field.Name, Required = field.Required, IsIdentifier = false, IsAggregated = false, Unique = field.IsUnique }; if (field.IsClassifier) { var classifierGroup = new ImportFieldGroupViewModel("Classifier"); classifierGroup.Fields.Add(item); var contents = field.Content.AggregatedContents.Where(c => c.Fields.Any(f => f.Aggregated && f.ClassifierId == field.Id)).ToList(); var extensionFields = contents.SelectMany(c => c.Fields.Where(f => f.ExactType != FieldExactTypes.M2ORelation)).ToList(); foreach (var content in contents) { var contentExtensionFields = extensionFields.Where(ef => ef.ContentId == content.Id).ToList(); var contentGroup = UpdateExtension(new ImportFieldGroupViewModel(content.Name), contentExtensionFields); classifierGroup.Groups.Add(contentGroup); } groupModel.Groups.Add(classifierGroup); } else if (!field.Aggregated) { groupModel.Fields.Add(item); } } return(groupModel); }
private static ImportFieldGroupViewModel UpdateExtension(ImportFieldGroupViewModel groupModel, IList <BLL.Field> fields) { var content = fields.Select(f => f.Content).FirstOrDefault(); if (content != null) { groupModel.Fields.Add(new ExtendedListItem { Text = content.Name + "." + FieldName.ContentItemId, Value = "Id_" + content.Id, Description = "Id", Required = false, IsIdentifier = true, IsAggregated = true }); } foreach (var field in fields) { var item = new ExtendedListItem { Text = $"{field.Content.Name}.{field.Name}", Value = field.Id.ToString(), Description = field.Name, Required = field.Required, IsIdentifier = false, IsAggregated = true, Unique = field.IsUnique }; if (!field.Aggregated) { groupModel.Fields.Add(item); } } return(groupModel); }