123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- using PaintDotNet.Base.CommTool;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Xml.Serialization;
- namespace Metis.AutoAnalysis
- {
- public class SampleStageModel
- {
- public SampleStageModel() { WorkPoits = new List<WorkPoint>(); }
- public float Width { get; set; }
- public float Height { get; set; }
- public float Diameter { get; set; }
- public int PaddingX { get; set; }
- public int PaddingY { get; set; }
- public List<WorkPoint> WorkPoits { get; set; }
- public void Save(string path)
- {
- XmlSerializeHelper.Save(this, path);
- }
- public static SampleStageModel Load(string path)
- {
- XmlSerializer xml = new XmlSerializer(typeof(SampleStageModel));
- var reader = new FileStream(path, FileMode.Open);
- var obj = xml.Deserialize(reader);
- reader.Close();
- return obj as SampleStageModel;
- }
- }
- public class WorkPoint
- {
- public WorkPoint() { }
- public WorkPoint(float x, float y)
- {
- X = x;
- Y = y;
- }
- public float X { get; set; }
- public float Y { get; set; }
- }
- public class SampleStageManager
- {
- static Dictionary<string, SampleStageModel> _stageSettingList = new Dictionary<string, SampleStageModel>();
- static string _dirName = Application.StartupPath + "\\Automation";
- static string _userPath = Application.StartupPath + @"\Automation\User\data";
- /// <summary>
- /// 获取全部
- /// </summary>
- public static Dictionary<string, SampleStageModel> GetAll()
- {
- _stageSettingList.Clear();
- if (!Directory.Exists(_dirName)) return _stageSettingList;
- var files = Directory.GetFiles(_dirName);
- foreach (var path in files)
- {
- if (!path.EndsWith("xml")) continue;
- try
- {
- var model = SampleStageModel.Load(path);
- _stageSettingList.Add(path.Replace(".xml", "").Replace(_dirName + "\\", ""), model);
- }
- catch { }
- }
- return _stageSettingList;
- }
- public static bool Validation(SampleStageModel model)
- {
- try
- {
- if (model.Height == 0 || model.Width == 0 || model.WorkPoits.Count == 0)
- {
- return false;
- }
- return true;
- }
- catch
- {
- return false;
- }
- }
- /// <summary>
- /// 保存全部
- /// </summary>
- /// <param name="_list"></param>
- public static void SaveAll(Dictionary<string, SampleStageModel> _list)
- {
- if (Directory.Exists(_dirName))
- {
- var files = Directory.GetFiles(_dirName);
- foreach (var path in files)
- {
- File.Delete(path);
- }
- }
- else
- {
- Directory.CreateDirectory(_dirName);
- }
- foreach (var m in _list)
- {
- m.Value.Save(_dirName + "\\" + m.Key + ".xml");
- }
- }
- public static void Save(string name, string newname, SampleStageModel value)
- {
- if (File.Exists(_dirName + "\\" + name + ".xml"))
- {
- File.Delete(_dirName + "\\" + name + ".xml");
- }
- value.Save(_dirName + "\\" + newname + ".xml");
- }
- public static List<string> GetUsers()
- {
- if (!File.Exists(_userPath))
- return new List<string>();
- var data = File.ReadAllBytes(_userPath);
- for (int i = 0; i < data.Length; i++)
- {
- data[i] ^= 1;
- }
- var str = Encoding.Unicode.GetString(data);
- return str.Split(',').Where((s) => !string.IsNullOrEmpty(s)).ToList();
- }
- public static void SaveUsers(List<string> users)
- {
- if (!File.Exists(_userPath))
- File.Create(_userPath).Close();
- StringBuilder sb = new StringBuilder();
- foreach (var s in users)
- { sb.Append(s + ","); }
- var data = Encoding.Unicode.GetBytes(sb.ToString());
- for (int i = 0; i < data.Length; i++)
- {
- data[i] ^= 1;
- }
- File.WriteAllBytes(_userPath, data);
- }
- internal static void Delete(string name)
- {
- if (File.Exists(_dirName + "\\" + name + ".xml"))
- {
- File.Delete(_dirName + "\\" + name + ".xml");
- }
- }
- }
- }
|