public static TransformationPipline BuildFromState(String base64)
        {
            var pipeline = new TransformationPipline();

            var json     = StringUtils.FromBase64String(base64);
            var settings = new JsonSerializerSettings {
                TypeNameHandling = Newtonsoft.Json.TypeNameHandling.Auto
            };
            var state = JsonConvert.DeserializeObject <List <Dictionary <String, Object> > >(json, settings);

            state.ForEach((entry) => {
                var key       = entry["key"] as String;
                var config    = entry["config"];
                var transform = TransformFactory.CreateTransform(key, config);
                pipeline.AddTransformer(transform);
            });

            return(pipeline);
        }
        private void btnAddTransform_Click(object sender, RoutedEventArgs e)
        {
            var frm = new SelectTransformWindow();

            frm.Owner = this;
            frm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
            if (frm.ShowDialog().GetValueOrDefault())
            {
                if (frm.SelectedValueTransformerKey != null)
                {
                    var transform = TransformFactory.CreateTransform(frm.SelectedValueTransformerKey, null);
                    if (transform != null)
                    {
                        this.Pipeline.AddTransformer(transform);
                    }
                }
            }

            RedrawPipeline();
        }