Пример #1
0
        public static void UpdateControls <TActivityUi>(this ICrateStorage storage, Action <TActivityUi> action) where TActivityUi : StandardConfigurationControlsCM, new()
        {
            if (action == null)
            {
                throw new ArgumentNullException(nameof(action));
            }
            var controlsCrate = storage.FirstCrate <StandardConfigurationControlsCM>();
            var activityUi    = new TActivityUi().ClonePropertiesFrom(controlsCrate.Content) as TActivityUi;

            activityUi.RestoreDynamicControlsFrom(controlsCrate.Content);
            action(activityUi);
            var newControls = new StandardConfigurationControlsCM(activityUi.Controls.ToArray());

            storage.ReplaceByLabel(Crate.FromContent(controlsCrate.Label, newControls));
            activityUi.SaveDynamicControlsTo(newControls);
        }