public CustomDataValueViewModel(CustomDataValue model, Func<EntityCustomField, string, string, bool> action)
 {
     Model = model;
     SetValueAction = action;
 }
        private void GenerateFields(ICollection<CustomDataValueViewModel> data)
        {
            if (EntityType == null) return;

            data.Where(x => EntityType.EntityCustomFields.All(y => y.Name != x.Name)).ToList().ForEach(x => data.Remove(x));

            foreach (var cf in EntityType.EntityCustomFields)
            {
                var customField = cf;
                var d = data.FirstOrDefault(x => x.Name == customField.Name);
                if (d == null)
                {
                    var customDataValue = new CustomDataValue { Name = cf.Name, CustomField = cf };
                    data.Add(new CustomDataValueViewModel(customDataValue, CustomDataValueUpdating));
                }
                else d.CustomField = cf;
            }
        }