mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
190 lines
7.4 KiB
C#
190 lines
7.4 KiB
C#
using AIStudio.Wpf.DiagramDesigner;
|
||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||
using AIStudio.Wpf.Script.Core.ViewModels;
|
||
|
||
namespace AIStudio.Wpf.Script.ViewModels
|
||
{
|
||
public class ColorBoxSwitchScriptViewModel : RoslynScriptViewModel
|
||
{
|
||
public ColorBoxSwitchScriptViewModel()
|
||
{
|
||
}
|
||
|
||
public ColorBoxSwitchScriptViewModel(IDiagramViewModel root) : base(root)
|
||
{
|
||
}
|
||
|
||
public ColorBoxSwitchScriptViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||
{
|
||
}
|
||
|
||
public ColorBoxSwitchScriptViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||
{
|
||
}
|
||
|
||
protected override void InitNew()
|
||
{
|
||
base.InitNew();
|
||
|
||
Text = "ColorBox分配器";
|
||
ItemWidth = 100;
|
||
ItemHeight = 230;
|
||
Code = @"using AIStudio.Wpf.Script.Core.Models;
|
||
using System;
|
||
|
||
namespace AIStudio.Wpf.CSharpScript
|
||
{
|
||
public class ColorBoxSwitch
|
||
{
|
||
public bool Mode { private get; set; }
|
||
public string Description { get; private set; }
|
||
public ColorBoxModel Input { private get; set; }
|
||
public ColorBoxModel Output1 { get; private set; }
|
||
public ColorBoxModel Output2 { get; private set; }
|
||
public ColorBoxModel Output3 { get; private set; }
|
||
public ColorBoxModel Output4 { get; private set; }
|
||
public ColorBoxModel Output5 { get; private set; }
|
||
public ColorBoxModel Output6 { get; private set; }
|
||
public ColorBoxModel Output7 { get; private set; }
|
||
|
||
public void Execute()
|
||
{
|
||
if (Input == null)
|
||
return;
|
||
|
||
if (Mode == false)
|
||
{
|
||
Console.WriteLine($""正在使用按颜色分配,等待分配{Input.Text}号Box"");
|
||
Description = ""欢迎来到AIStudio Diagream Box装配工厂,正在使用按颜色分配Box"";
|
||
switch (Input.Color.ToString())
|
||
{
|
||
case ""#FFFF0000"":
|
||
if (Output1 == null)
|
||
{
|
||
Output1 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output1.Text}号Box分配完毕,送往1号出口"");
|
||
}
|
||
break;
|
||
case ""#FFFFA500"":
|
||
if (Output2 == null)
|
||
{
|
||
Output2 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output2.Text}号Box分配完毕,送往2号出口"");
|
||
}
|
||
break;
|
||
case ""#FFFFFF00"":
|
||
if (Output3 == null)
|
||
{
|
||
Output3 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output3.Text}号Box分配完毕,送往3号出口"");
|
||
}
|
||
break;
|
||
case ""#FF008000"":
|
||
if (Output4 == null)
|
||
{
|
||
Output4 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output4.Text}号Box分配完毕,送往4号出口"");
|
||
}
|
||
break;
|
||
case ""#FF00FFFF"":
|
||
if (Output5 == null)
|
||
{
|
||
Output5 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output5.Text}号Box分配完毕,送往5号出口"");
|
||
}
|
||
break;
|
||
case ""#FF0000FF"":
|
||
if (Output6 == null)
|
||
{
|
||
Output6 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output6.Text}号Box分配完毕,送往6号出口"");
|
||
}
|
||
break;
|
||
default:
|
||
if (Output7 == null)
|
||
{
|
||
Output7 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output7.Text}号Box分配完毕,送往7号出口"");
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine($""正在使用按形状分配,等待分配{Input.Text}号Box"");
|
||
Description = ""欢迎来到AIStudio Diagream Box装配工厂,正在使用按形状分配Box"";
|
||
switch (Input.Path)
|
||
{
|
||
case ""M 10,20 A 20,20 0 1 1 50,20 A 20,20 0 1 1 10,20"":
|
||
if (Output1 == null)
|
||
{
|
||
Output1 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output1.Text}号Box分配完毕,送往1号出口"");
|
||
}
|
||
break;
|
||
case ""M1,21H23L12,2"":
|
||
if (Output2 == null)
|
||
{
|
||
Output2 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output2.Text}号Box分配完毕,送往2号出口"");
|
||
}
|
||
break;
|
||
case ""M3,3V21H21V3"":
|
||
if (Output3 == null)
|
||
{
|
||
Output3 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output3.Text}号Box分配完毕,送往3号出口"");
|
||
}
|
||
break;
|
||
case ""M 0,20 L 30 0 L 60,20 L 30,40 Z"":
|
||
if (Output4 == null)
|
||
{
|
||
Output4 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output4.Text}号Box分配完毕,送往4号出口"");
|
||
}
|
||
break;
|
||
case ""M 0 0 H 60 L 50 40 H 10 Z"":
|
||
if (Output5 == null)
|
||
{
|
||
Output5 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output5.Text}号Box分配完毕,送往5号出口"");
|
||
}
|
||
break;
|
||
case ""M 9,2 11,7 17,7 12,10 14,15 9,12 4,15 6,10 1,7 7,7 Z"":
|
||
if (Output6 == null)
|
||
{
|
||
Output6 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output6.Text}号Box分配完毕,送往6号出口"");
|
||
}
|
||
break;
|
||
default:
|
||
if (Output7 == null)
|
||
{
|
||
Output7 = Input;
|
||
Input = null;
|
||
Console.WriteLine($""{Output7.Text}号Box分配完毕,送往7号出口"");
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}";
|
||
}
|
||
|
||
}
|
||
}
|