169 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Linq;
 | |
| using System.Runtime.CompilerServices;
 | |
| using System.Text;
 | |
| 
 | |
| namespace Project.Class
 | |
| {
 | |
| 
 | |
|     public class CHistoryJOB : INotifyPropertyChanged
 | |
|     {
 | |
|         public event PropertyChangedEventHandler PropertyChanged;
 | |
|         List<JobData> _items;
 | |
|         public CHistoryJOB()
 | |
|         {
 | |
|             _items = new List<JobData>();
 | |
|         }
 | |
|         public void Clear()
 | |
|         {
 | |
|             lock (_items)
 | |
|             {
 | |
|                 _items.Clear();
 | |
|             }
 | |
| 
 | |
|             OnPropertyChanged("Clear");
 | |
|         }
 | |
|         public int Count
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 lock (_items)
 | |
|                 {
 | |
|                     return _items.Count;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         public void SetItems(List<JobData> value)
 | |
|         {
 | |
|             lock (_items)
 | |
|             {
 | |
|                 this._items = value;
 | |
|             }
 | |
|             OnPropertyChanged("REFRESH");
 | |
|         }
 | |
| 
 | |
|         public List<JobData> Items { get { return _items; } }
 | |
|         public void Add(JobData data)
 | |
|         {
 | |
|             lock (_items)
 | |
|             {
 | |
|                 data.No = this._items.Count + 1;
 | |
|                 _items.Add(data);
 | |
|             }
 | |
| 
 | |
|             OnPropertyChanged("Add:" + data.guid);
 | |
|         }
 | |
| 
 | |
|         public void Remove(JobData data)
 | |
|         {
 | |
|             lock (_items)
 | |
|             {
 | |
|                 _items.Remove(data);
 | |
|             }
 | |
| 
 | |
|             OnPropertyChanged("Remove:" + data.guid);
 | |
|         }
 | |
|         public void Remove(string guid)
 | |
|         {
 | |
|             lock (_items)
 | |
|             {
 | |
|                 var data = Get(guid);
 | |
|                 _items.Remove(data);
 | |
|             }
 | |
|             OnPropertyChanged("Remove:" + guid);
 | |
|         }
 | |
|         public JobData Get(string guid)
 | |
|         {
 | |
|             lock (_items)
 | |
|             {
 | |
|                 return _items.Where(t => t.guid == guid).FirstOrDefault();
 | |
|             }
 | |
|         }
 | |
|         public void Set(JobData data)
 | |
|         {
 | |
|             var item = Get(data.guid);
 | |
|             if (item == null) throw new Exception("No data guid:" + data.guid.ToString());
 | |
|             else
 | |
|             {
 | |
|                 //item.No = data.No;
 | |
|                 //item.JobStart = data.JobStart;
 | |
|                 //item.JobEnd = data.JobEnd;
 | |
|                 //item.VisionData = data.VisionData;
 | |
|                 //item.error = data.error;
 | |
|                 //item.Message = data.Message;
 | |
|                 OnPropertyChanged("Set:" + data.guid);
 | |
|             }
 | |
|         }
 | |
|         public void RaiseSetEvent(string guid)
 | |
|         {
 | |
|             OnPropertyChanged("Set:" + guid);
 | |
|         }
 | |
| 
 | |
|         protected void OnPropertyChanged([CallerMemberName] string name = null)
 | |
|         {
 | |
|             if (PropertyChanged != null)
 | |
|                 PropertyChanged.Invoke(this, new PropertyChangedEventArgs(name));
 | |
|         }
 | |
|     }
 | |
|     //[Serializable]
 | |
|     //public class JobData
 | |
|     //{
 | |
|     //    //고유식별자
 | |
|     //    public string guid { get; private set; }
 | |
| 
 | |
|     //    //비젼처리값
 | |
|     //    public Class.VisionData VisionData { get; set; }
 | |
| 
 | |
|     //    //언로더포트(L/R)
 | |
|     //    public string PortPos { get; set; }
 | |
| 
 | |
|     //    //프린트위치(U/LO)
 | |
|     //    public string PrintPos { get; set; }
 | |
| 
 | |
|     //    //작업시작시간
 | |
|     //    public DateTime JobStart { get; set; }
 | |
| 
 | |
|     //    //작업종료시간
 | |
|     //    public DateTime JobEnd { get; set; }
 | |
| 
 | |
|     //    /// <summary>
 | |
|     //    /// 이전 출고되는 시점과의 시간차 값
 | |
|     //    /// </summary>
 | |
|     //    public double TackTime { get { return (JobEnd - JobStart).TotalSeconds; } }
 | |
| 
 | |
|     //    //작업순서
 | |
|     //    public int No { get; set; }
 | |
| 
 | |
|     //    //오류상태
 | |
|     //    public eJobResult error { get; set; }
 | |
| 
 | |
|     //    //메세지
 | |
|     //    public string message { get; set; }
 | |
| 
 | |
| 
 | |
|     //    public TimeSpan JobRun
 | |
|     //    {
 | |
|     //        get
 | |
|     //        {
 | |
|     //            if (JobEnd.Year == 1982) return new TimeSpan(0);
 | |
|     //            else return this.JobEnd - this.JobStart;
 | |
|     //        }
 | |
|     //    }
 | |
|     //    public JobData()
 | |
|     //    {
 | |
|     //        this.No = 0;
 | |
|     //        PortPos = string.Empty;
 | |
|     //        PrintPos = string.Empty;
 | |
|     //        guid = Guid.NewGuid().ToString();
 | |
|     //        VisionData = new VisionData();
 | |
|     //        this.JobStart = new DateTime(1982, 11, 23); // DateTime.Parse("1982-11-23");
 | |
|     //        this.JobEnd = new DateTime(1982, 11, 23); // DateTime.Parse("1982-11-23");
 | |
|     //        error = eJobResult.None;
 | |
|     //        message = string.Empty;
 | |
|     //    }
 | |
| 
 | |
|     //}
 | |
| }
 | 
