public HttpRequest(string url, string method, string body, string property, DrawsomeShape shape) : base(shape) { this.Type = "Microsoft.HttpRequest"; this.Url = url; this.Method = method; this.Body = body; this.Property = property; }
public SetProperty(string expression, DrawsomeShape shape) : base(shape) { var splitted = expression.Split(new char[] { '=' }); this.Property = splitted.FirstOrDefault(); this.Value = splitted.LastOrDefault(); this.Type = "Microsoft.SetProperty"; }
public HttpRequest(string content, DrawsomeShape shape) : base(shape) { this.Type = "Microsoft.HttpRequest"; if (content.ToLower().Contains("weather")) { this.Url = "https://api.openweathermap.org/data/2.5/weather?q=Suzhou&appid=f6abd7e76544272a97a0f1e9c2188219"; this.Method = "GET"; } }
public DrawsomePic(InkRecognitionRoot root, List <InkRecognizerStroke> inkStrokes, int hookUpDistance) { this.HookUpDistance = hookUpDistance; this.InkRoot = root; if (root.GetShapes().Count() == 0) { throw new Exception("The Graph is Empty"); } //this.Root = new DrawsomeShape(root.GetShapes().ToList().OrderBy(item => item.BoundingRect.TopY).First()); // get all recognized shapes and set the text belonged to them foreach (var shape in root.GetShapes()) { var shapeToAdd = new DrawsomeShape(shape) { Text = root.GetLines().ToList().FindAll(item => shape.Contains(item)).FirstOrDefault()?.RecognizedText }; if (shapeToAdd.Type != ShapeType.Drawing) { // add all shapes except line this.AllShapes.Add(shapeToAdd); } } // units include lines and shapes and texts foreach (var unit in root.GetUnits()) { var unitToAdd = new DrawsomeObj(unit); this.AllUnits.Add(unitToAdd); } var inkLines = root.GetUnits().Where(item => (item as InkDrawing)?.RecognizedShape == DrawingShapeKind.Drawing).Where(item => item.BoundingRect.Width + item.BoundingRect.Height > 20); foreach (var line in inkLines) { this.AllLines.Add(new DrawsomeLine(line, inkStrokes, 3, HookUpDistance)); } // we iterate each shape to detect the next and previous line foreach (var dShape in this.AllShapes) { var nextLines = this.AllLines.OrderByDescending(item => dShape.OverlapSizeWithLinesBegin(item, item.LittleRects.Count / 10)).Where(item => dShape.OverlapSizeWithLinesBegin(item, item.LittleRects.Count / 10) != 0); foreach (var nextLine in nextLines) { dShape.Next.Add(nextLine); } var prevLines = this.AllLines.OrderByDescending(item => dShape.OverlapSizeWithLinesEnd(item, item.LittleRects.Count / 10)).Where(item => dShape.OverlapSizeWithLinesEnd(item, item.LittleRects.Count / 10) != 0); foreach (var prevLine in prevLines) { prevLine.Next.Add(dShape); } } // reorder the next of each shape to ensure the colored lines behind foreach (var dShape in this.AllShapes) { dShape.Next.Sort((A, B) => (A as DrawsomeLine)?.MainStroke.inkStrokeInternal.DrawingAttributes.Color.R > (B as DrawsomeLine)?.MainStroke.inkStrokeInternal.DrawingAttributes.Color.R ? 1 : -1); } this.Root = this.AllShapes.OrderBy(item => item.RecogUnit.BoundingRect.TopY).FirstOrDefault(); }
public DrawsomePic(DrawsomeShape root) { this.Root = root; }
public TextInput(string content, string property, DrawsomeShape shape) : base(shape) { this.Prompt = content; this.Type = "Microsoft.TextInput"; this.Property = property; }
public IfCondition(string condition, DrawsomeShape shape) : base(shape) { this.Condition = condition; this.Type = "Microsoft.IfCondition"; }
public SendActivity(string text, DrawsomeShape shape) : base(shape) { this.Activity = text; this.Type = "Microsoft.SendActivity"; }
public ComposerStep(DrawsomeObj shape) { this.RelatedShape = shape as DrawsomeShape; }