using DaJiaoYan.Utils; using System.Collections.Generic; namespace DaJiaoYan.Models { public class TemplateRect { private readonly string data; //private TestTemplate.TemplateVersion version; private readonly List rects = default; private Rect V1Rect; private List V2Rects; /// /// 当前版本的锚点信息 /// public TestTemplate.TemplateVersion Version { get; set; } public TemplateRect() { } public TemplateRect(TestTemplate.TemplateVersion version, string data) { this.Version = version; this.data = data; if (version == TestTemplate.TemplateVersion.V2) { rects = V2Rects = Json.Decode>(data); } else { V1Rect = Json.Decode(data); if (V1Rect != null) { rects = new List() { V1Rect }; } } } public TemplateRect(TestTemplate.TemplateVersion version, List data) { this.Version = version; if (version == TestTemplate.TemplateVersion.V2) { V2Rects = data; } else { if (data != null && data.Count > 0) { V1Rect = data[0]; } } rects = data; } public TemplateRect(int x, int y, int w, int h) { this.Version = TestTemplate.TemplateVersion.V1; rects = new List() { new Rect(x, y, w, h) }; } /// /// 获取所有锚点信息 /// public List Rects { get { return rects; } } /// /// 获取答卷指定面的所有锚点 /// /// /// public List SideRects(string side = "A") { List res = new List(); if (Version == TestTemplate.TemplateVersion.V2 && rects != null && rects.Count > 0) { res = rects.FindAll(x => { return string.Equals(x.Side, side, System.StringComparison.OrdinalIgnoreCase); }); } else { res = rects; } return res; } /// /// 获取答卷指定面的第一个锚点 /// /// /// public Rect SideRect(string side = "A") { Rect res = default; var rects = SideRects(side); if (rects != null && rects.Count > 0) { res = rects[0]; } return res; } } }