135 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			3.8 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 CHistorySIDRef : INotifyPropertyChanged
 | |
|     {
 | |
|         public event PropertyChangedEventHandler PropertyChanged;
 | |
|         public Boolean JobSIDRecvError
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 //아이템이있어야 정상이다
 | |
|                 if (_items == null || _items.Count < 1) return true;
 | |
|                 else if (JobSIDRecvTime.Year == 1982) return true;
 | |
|                 else return false;
 | |
|             }
 | |
|         }
 | |
|         public DateTime JobSIDRecvTime { get; set; }
 | |
|         public string JobSIDRecvMessage { get; set; }
 | |
|         List<SIDDataRef> _items;
 | |
| 
 | |
|         public CHistorySIDRef()
 | |
|         {
 | |
|             Clear();
 | |
|         }
 | |
|         public void SetItems(List<SIDDataRef> value)
 | |
|         {
 | |
|             this._items = value;
 | |
|             OnPropertyChanged("REFRESH");
 | |
|         }
 | |
| 
 | |
|         public List<SIDDataRef> Items { get { return _items; } }
 | |
|         public int Count
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return _items.Count;
 | |
|             }
 | |
|         }
 | |
|         public SIDDataRef Get(string sid_)
 | |
|         {
 | |
|             return _items.Where(t => t.sid == sid_).FirstOrDefault();
 | |
|         }
 | |
|         public void Set(SIDDataRef data)
 | |
|         {
 | |
|             var item = Get(data.sid);
 | |
|             if (item == null) throw new Exception("No data sid:" + data.sid.ToString());
 | |
|             else
 | |
|             {
 | |
|                 item.kpc = data.kpc;
 | |
|                 item.unit = data.unit;
 | |
|                 OnPropertyChanged("Set:" + data.sid);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public void Set(string sid, int kpc, string unit)
 | |
|         {
 | |
|             var item = Get(sid);
 | |
|             if (item == null)
 | |
|             {
 | |
|                 Add(sid, kpc, unit);  //없다면 추가해준다
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 item.kpc = kpc;
 | |
|                 item.unit = unit;
 | |
|                 OnPropertyChanged("Set:" + sid);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public void Add(SIDDataRef data)
 | |
|         {
 | |
|             _items.Add(data);
 | |
|             OnPropertyChanged("Add:" + data.sid);
 | |
|         }
 | |
| 
 | |
| 
 | |
|         public void Add(string sid, int kpc_, string unit)
 | |
|         {
 | |
|             if (string.IsNullOrEmpty(sid))
 | |
|             {
 | |
|                 PUB.log.AddAT("SID 추가 실패 SID 값이 입력되지 않았습니다");
 | |
|                 return;
 | |
|             }
 | |
|             //if (JobSidList.ContainsKey(sid) == false)
 | |
|             _items.Add(new SIDDataRef(sid, kpc_, unit));
 | |
|             OnPropertyChanged("Add:" + sid);
 | |
|             //else
 | |
|             //{
 | |
|             //이미 데이터가 있다. 중복이므로 누적한다
 | |
|             //JobSidList.TryGetValue()
 | |
|             //}
 | |
|         }
 | |
|         public void Clear()
 | |
|         {
 | |
|             //JobSIDRecvError = false;
 | |
|             JobSIDRecvMessage = string.Empty;
 | |
|             JobSIDRecvTime = DateTime.Parse("1982-11-23");
 | |
|             if (this._items == null) this._items = new List<SIDDataRef>();
 | |
|             else this._items.Clear();
 | |
|             OnPropertyChanged("Clear");
 | |
|         }
 | |
| 
 | |
|         protected void OnPropertyChanged([CallerMemberName] string name = null)
 | |
|         {
 | |
|             if (PropertyChanged != null)
 | |
|                 PropertyChanged.Invoke(this, new PropertyChangedEventArgs(name));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     [Serializable]
 | |
|     public class SIDDataRef
 | |
|     {
 | |
|         public string guid { get; set; }
 | |
|         public string sid { get; set; }
 | |
|         public string unit { get; set; }
 | |
|         public int kpc { get; set; }
 | |
| 
 | |
|         public SIDDataRef(string sid_, int kpc_, string unit_)
 | |
|         {
 | |
| 
 | |
|             guid = Guid.NewGuid().ToString();
 | |
|             sid = sid_;
 | |
|             unit = unit_;
 | |
|             kpc = kpc_;
 | |
|         }
 | |
|         public SIDDataRef() : this(string.Empty, 0, string.Empty) { }
 | |
|     }
 | |
| }
 | 
