Exemplo n.º 1
0
        public void Apply(ES.Context context)
        {
            if (!String.Equals(context.Version, Version, StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            var controls = Boxes
                           .SelectMany(b => b.Controls)
                           .ToDictionary(c => c.Name, StringComparer.OrdinalIgnoreCase)
            ;

            foreach (var param in context.Params)
            {
                if (controls.TryGetValue(param.Name, out var control))
                {
                    control.Apply(param);
                }
            }

            var dps = controls.Values
                      .OfType <DatePicker>()
                      .Where(d => d.Active == true)
                      .Where(d => Array.FindIndex(context.Params, p => p.Name.Equals(d.Name, StringComparison.OrdinalIgnoreCase)) < 0)
            ;

            foreach (var dp in dps)
            {
                dp.Active = false;
            }

            var cbs = controls.Values
                      .OfType <ComboBoxEx>()
                      .Where(c => c.Active == true)
                      .Where(c => Array.FindIndex(context.Params, p => p.Name.Equals(c.Name, StringComparison.OrdinalIgnoreCase)) < 0)
            ;

            foreach (var cb in cbs)
            {
                cb.Active = false;
            }
        }
Exemplo n.º 2
0
        public ES.Context ToContext(ArchType arch)
        {
            var ctx = new ES.Context {
                Name    = Name,
                Version = Version
            };

            ctx.Addins = Addins
                         .Where(ai => !(ai is XLL xll && xll.Arch != arch))
                         .Select(ai => new ES.Addin {
                Path = ai.Path, ReadOnly = ai.ReadOnly
            })
                         .ToArray()
            ;

            ctx.Params = Boxes
                         .SelectMany(b => b.Controls)
                         .Select(c => c.ToParam())
                         .Where(p => p != null)
                         .ToArray()
            ;

            return(ctx);
        }