// Ex: localhost:8001/flowsharp?cmd=CmdDropConnector&ConnectorName=DiagonalConnector&X1=50&Y1=100&X2=150&Y2=150
        public void Process(ISemanticProcessor proc, IMembrane membrane, CmdDropConnector cmd)
        {
            List <Type> shapes     = proc.ServiceManager.Get <IFlowSharpToolboxService>().ShapeList;
            var         controller = proc.ServiceManager.Get <IFlowSharpCanvasService>().ActiveController;
            Type        t          = shapes.Where(s => s.Name == cmd.ConnectorName).SingleOrDefault();

            if (t != null)
            {
                controller.Canvas.FindForm().BeginInvoke(() =>
                {
                    DynamicConnector el = (DynamicConnector)Activator.CreateInstance(t, new object[] { controller.Canvas });
                    // el = (DynamicConnector)el.CloneDefault(controller.Canvas, new Point(cmd.X1, cmd.Y1));
                    // el = (DynamicConnector)el.CloneDefault(controller.Canvas);

                    el.Name       = cmd.Name;
                    el.StartPoint = new Point(cmd.X1, cmd.Y1);
                    el.EndPoint   = new Point(cmd.X2, cmd.Y2);
                    cmd.BorderColor.IfNotNull(c => el.BorderPenColor = GetColor(c));
                    int x1 = cmd.X1.Min(cmd.X2);
                    int y1 = cmd.Y1.Min(cmd.Y2);
                    int x2 = cmd.X1.Max(cmd.X2);
                    int y2 = cmd.Y1.Max(cmd.Y2);
                    el.DisplayRectangle = new Rectangle(x1, y1, x2 - x1, y2 - y1);

                    el.UpdatePath();
                    controller.Insert(el);
                });
            }
        }
        public void TestSave2()
        {
            var solr = DynamicConnector <Product> .Create(@"http://localhost.:8983/solr/", "collection1");

            List <Product> p = new List <Product>();

            for (int id = 100; id < 10000; id++)
            {
                p.Add(new Product {
                    id = id.ToString(), title = new string[] { "a title " + id.ToString() }
                });
            }

            solr.Save(p.ToArray());
        }