Esempio n. 1
0
        public static Dictionary <string, string> GetFromFields(FieldDependencyEntityToken entityToken)
        {
            var definition = DynamicFormsFacade.GetFormByName(entityToken.FormName);
            var field      = definition.Model.Fields.Get(entityToken.FieldName);

            return(definition.Model.Fields.Where(f =>
                                                 f.Name != entityToken.FieldName &&
                                                 (f.ValueType == typeof(string) || f.ValueType == typeof(bool) || f.ValueType == typeof(IEnumerable <string>)) &&
                                                 field.DependencyAttributes.All(d => d.ReadFromFieldName != f.Name || d.ReadFromFieldName == entityToken.FromFieldName)
                                                 ).ToDictionary(f => f.Name, f => f.Name));
        }
Esempio n. 2
0
        public override void OnFinish(object sender, EventArgs e)
        {
            var token         = GetBinding <FieldDependencyEntityToken>("Token");
            var fromFieldName = GetBinding <string>("FromFieldName");

            var definition = DynamicFormsFacade.GetFormByName(token.FormName);

            var field      = definition.Model.Fields.Get(token.FieldName);
            var dependency = field.DependencyAttributes.Single(d => d.ReadFromFieldName == token.FromFieldName);

            field.Attributes.Remove(dependency);

            field.Attributes.Add(new DependsOnConstantAttribute(fromFieldName, dependency.ResolveRequiredFieldValues()));

            DynamicFormsFacade.SaveForm(definition);

            var newToken = new FieldDependencyEntityToken(token.FormName, token.FieldName, fromFieldName);

            UpdateBinding("Token", newToken);
            SetSaveStatus(true, newToken);
            CreateSpecificTreeRefresher().PostRefreshMessages(new FieldDependencyEntityToken(token.FormName, token.FieldName));
        }