Files
aistudio-wpf-diagram/Extensions/AIStudio.Wpf.Script/ViewModels/ColorBoxSwitchScriptViewModel.cs
2023-05-14 15:06:30 +08:00

190 lines
7.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 ""M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.78 7.77L10 18.78l8.39-8.4a5.5 5.5 0 0 0-7.78-7.77l-.61.61z"":
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;
}
}
}
}
}";
}
}
}