/// <summary>
 /// SPHRSBILLING.REPORT_TYPE
 /// </summary>
 public ReportTypePackage(ReportTypeTable table)
 {
     Table           = table;
     ReportedFields  = new ObservableCollection <ReportPair>();
     AvailableFields = new ObservableCollection <string>();
     Parser          = new SqlParser();
 }
 public ReportTypeTable(ReportTypeTable copyMe)
 {
     foreach (ReportTypePackage package in copyMe as ObservableCollection <ReportTypePackage> )
     {
         ReportTypePackage copyOf = new ReportTypePackage(package);
         Add(copyOf);
     }
 }
        public DetailInvoiceFileModel()
        {
#if DEBUG
            ReportTypes = new ReportTypeTable();
            ReportTypePackage package1 = new ReportTypePackage(ReportTypes);

            package1.AvailableFields = new ObservableCollection <string>();
            package1.AvailableFields.Add("Pack1 Field1");
            package1.AvailableFields.Add("Pack1 Field2");
            package1.AvailableFields.Add("Pack1 Field3");
            package1.AvailableFields.Add("Pack1 Field4");

            package1.ReportedFields = new ObservableCollection <ReportPair>();
            package1.ReportedFields.Add(new ReportPair("ReportedField1", "As1"));
            package1.ReportedFields.Add(new ReportPair("ReportedField2", "As2"));
            package1.ReportedFields.Add(new ReportPair("ReportedField3", "As3"));
            package1.ReportedFields.Add(new ReportPair("ReportedField4", "As4"));
            package1.Sql         = "Select field1,field2,field3 from table where x=y order by x";
            package1.Description = "Description 1";

            //ReportTypes.AddPackage(package1);
            ReportTypes.Add(package1);
            //////////////
            ReportTypePackage package2 = new ReportTypePackage(ReportTypes);
            package2.AvailableFields = new ObservableCollection <string>();
            package2.AvailableFields.Add("Pack2 Field1");
            package2.AvailableFields.Add("Pack2 Field2");
            package2.AvailableFields.Add("Pack2 Field3");
            package2.AvailableFields.Add("Pack2 Field4");

            package2.ReportedFields = new ObservableCollection <ReportPair>();
            package2.ReportedFields.Add(new ReportPair("ReportedField1", "As1"));
            package2.ReportedFields.Add(new ReportPair("ReportedField2", "As2"));
            package2.ReportedFields.Add(new ReportPair("ReportedField3", "As3"));
            package2.ReportedFields.Add(new ReportPair("ReportedField4", "As4"));
            package2.Sql = "Select field11,field22,field33 from table2 where x=y order by x";

            package2.Description = "Description 2";

            //ReportTypes.AddPackage(package2);
            ReportTypes.Add(package2);
#endif

#if CALLED_FROM_SOME_FORM
            DetailInvoiceFileDesignerForm mainWindow = new DetailInvoiceFileDesignerForm();

            UIHelper.InitializeWpfFormInterop(mainWindow);

            DetailInvoiceFileVM VM = new DetailInvoiceFileVM(this);
            mainWindow.DataContext = VM;

            // When the ViewModel asks to be closed,
            // close the window.
            EventHandler handler = null;
            handler = delegate
            {
                VM.RequestClose -= handler;
                mainWindow.Close();
            };
            VM.RequestClose += handler;

            mainWindow.ShowDialog();
#endif
        }