| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- using DaJiaoYan.Utils;
- using System.Collections.Generic;
- namespace DaJiaoYan.Models
- {
- public class TemplateRect
- {
- private readonly string data;
- //private TestTemplate.TemplateVersion version;
- private readonly List<Rect> rects = default;
- private Rect V1Rect;
- private List<Rect> V2Rects;
- /// <summary>
- /// 当前版本的锚点信息
- /// </summary>
- 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<List<Rect>>(data);
- }
- else
- {
- V1Rect = Json.Decode<Rect>(data);
- if (V1Rect != null)
- {
- rects = new List<Rect>() { V1Rect };
- }
- }
- }
- public TemplateRect(TestTemplate.TemplateVersion version, List<Rect> 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<Rect>() { new Rect(x, y, w, h) };
- }
- /// <summary>
- /// 获取所有锚点信息
- /// </summary>
- public List<Rect> Rects
- {
- get
- {
- return rects;
- }
- }
- /// <summary>
- /// 获取答卷指定面的所有锚点
- /// </summary>
- /// <param name="side"></param>
- /// <returns></returns>
- public List<Rect> SideRects(string side = "A")
- {
- List<Rect> res = new List<Rect>();
- 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;
- }
- /// <summary>
- /// 获取答卷指定面的第一个锚点
- /// </summary>
- /// <param name="side"></param>
- /// <returns></returns>
- public Rect SideRect(string side = "A")
- {
- Rect res = default;
- var rects = SideRects(side);
- if (rects != null && rects.Count > 0)
- {
- res = rects[0];
- }
- return res;
- }
- }
- }
|