private void OnDataInserted(object obj, SQLInsertEventArgs e)
        {
            IID iID = e.IID;
            Console.WriteLine("{0}(TYPE: {1}, ID: {2})", nameof(OnDataInserted), typeof(IID).Name, iID.ID);

            switch (iID.GetType().Name)
            {
                case nameof(InventoryFormat):
                    InventoryFormat invf = iID as InventoryFormat;
                    ObservableInventory oinv = new ObservableInventory(invf);
                    _inventory.Add(oinv);
                    _subject.NotifyNewItemAdded(oinv);
                    break;

                case nameof(IOStockFormat):
                    IOStockFormat stof = iID as IOStockFormat;
                    IOStockDataGridItem osto = new IOStockDataGridItem(stof);
                    _subject.NotifyNewItemAdded(osto);
                    break;

                case nameof(Product):
                    Product prod = iID as Product;
                    Observable<Product> oprod = new Observable<Product>(prod);
                    _field.Add<Product>(oprod);
                    _subject.NotifyNewItemAdded(oprod);
                    break;

                case nameof(Maker):
                    Maker maker = iID as Maker;
                    Observable<Maker> omaker = new Observable<Maker>(maker);
                    _field.Add<Maker>(omaker);
                    _subject.NotifyNewItemAdded(omaker);
                    break;

                case nameof(Measure):
                    Measure meas = iID as Measure;
                    Observable<Measure> omeas = new Observable<Measure>(meas);
                    _field.Add<Measure>(omeas);
                    _subject.NotifyNewItemAdded(omeas);
                    break;

                case nameof(Customer):
                    Customer cust = iID as Customer;
                    Observable<Customer> ocust = new Observable<Customer>(cust);
                    _field.Add<Customer>(ocust);
                    _subject.NotifyNewItemAdded(ocust);
                    break;

                case nameof(Supplier):
                    Supplier supp = iID as Supplier;
                    Observable<Supplier> osupp = new Observable<Supplier>(supp);
                    _field.Add<Supplier>(osupp);
                    _subject.NotifyNewItemAdded(osupp);
                    break;

                case nameof(Project):
                    Project proj = iID as Project;
                    Observable<Project> oproj = new Observable<Project>(proj);
                    _field.Add<Project>(oproj);
                    _subject.NotifyNewItemAdded(oproj);
                    break;

                case nameof(Warehouse):
                    Warehouse ware = iID as Warehouse;
                    Observable<Warehouse> oware = new Observable<Warehouse>(ware);
                    _field.Add<Warehouse>(oware);
                    _subject.NotifyNewItemAdded(oware);
                    break;

                case nameof(Employee):
                    Employee emp = iID as Employee;
                    Observable<Employee> oemp = new Observable<Employee>(emp);
                    _field.Add<Employee>(oemp);
                    _subject.NotifyNewItemAdded(oemp);
                    break;

                default:
                    throw new NotSupportedException();
            }
        }
 /// <summary>
 /// 체크된 입출고 데이터를 오늘날짜로 복사하여 데이터그리드에 추가하기
 /// </summary>
 private void ExecuteCheckedIOStockFormatsCopyCommand()
 {
     var items = Items.Where(x => x.IsChecked == true).ToList();
     foreach (var item in items)
     {
         var copyFmt = new IOStockFormat(item.Format) { ID = null };
         IOStockDataGridItem copy = new IOStockDataGridItem(copyFmt);
         copy.Date = DateTime.Now;
         CollectionViewModelObserverSubject.GetInstance().NotifyNewItemAdded(copy);
     }
     var invens = items.Select(x => x.Inventory).Distinct();
 }