From 330be9feefb6394479553be0e078b4c4df3cbff1 Mon Sep 17 00:00:00 2001 From: mo khan Date: Sun, 26 Aug 2007 20:10:42 -0600 Subject: import from svn --- Assignment3.build | 142 + Assignment3.sql.build | 56 + Assignment3.txt | 8 + Cmpp298.Assignment3.sln | 67 + build.bat | 3 + config/AssemblyInfo.cs | 33 + config/app.config.template | 8 + local.properties.xml.template | 11 + sql/constraints.sql.template | 48 + sql/data/GLAccounts.sql.template | 77 + sql/data/InvoiceLineItems.sql.template | 122 + sql/data/Invoices.sql.template | 121 + sql/data/States.sql.template | 54 + sql/data/Terms.sql.template | 9 + sql/data/Vendors.sql.template | 126 + sql/db.sql.template | 67 + sql/functions.sql.template | 58 + sql/grants.sql.template | 0 sql/indexes.sql.template | 0 sql/storedprocedures.sql.template | 457 + sql/tables.sql.template | 92 + .../Cmpp298.Assignment3.DataAccess.csproj | 59 + .../CommandParameter.cs | 19 + .../DatabaseColumn.cs | 23 + .../DatabaseConnectionFactory.cs | 21 + .../DatabaseGateway.cs | 67 + .../IDatabaseConnectionFactory.cs | 7 + .../IDatabaseGateway.cs | 13 + .../Cmpp298.Assignment3.DataAccess/InnerJoin.cs | 23 + .../InsertQueryBuilder.cs | 39 + .../Properties/AssemblyInfo.cs | 35 + .../SelectQueryBuilder.cs | 50 + src/app/Cmpp298.Assignment3.DataAccess/Tables.cs | 30 + .../UpdateQueryBuilder.cs | 42 + .../Cmpp298.Assignment3.DataAccess/WhereClause.cs | 23 + .../Cmpp298.Assignment3.Desktop.Adapters.csproj | 54 + .../DesktopDropDownList.cs | 40 + .../Properties/AssemblyInfo.cs | 35 + ...Cmpp298.Assignment3.Desktop.Presentation.csproj | 68 + .../DeleteInvoicePresenter.cs | 36 + .../EditInvoicePresenter.cs | 62 + .../IDeleteInvoiceView.cs | 13 + .../IEditInvoiceView.cs | 25 + .../IInvoicesMainView.cs | 9 + .../INewInvoiceView.cs | 25 + .../InvoicesMainPresenter.cs | 31 + .../NewInvoicePresenter.cs | 54 + .../Properties/AssemblyInfo.cs | 35 + src/app/Cmpp298.Assignment3.Desktop.UI/App.config | 8 + .../Cmpp298.Assignment3.Desktop.UI.csproj | 124 + .../DeleteInvoiceView.Designer.cs | 297 + .../DeleteInvoiceView.cs | 59 + .../DeleteInvoiceView.resx | 120 + .../EditInvoiceView.Designer.cs | 287 + .../EditInvoiceView.cs | 77 + .../EditInvoiceView.resx | 120 + .../InvoicesMainView.Designer.cs | 162 + .../InvoicesMainView.cs | 64 + .../InvoicesMainView.resx | 120 + .../NewInvoiceView.Designer.cs | 294 + .../NewInvoiceView.cs | 66 + .../NewInvoiceView.resx | 120 + src/app/Cmpp298.Assignment3.Desktop.UI/Program.cs | 20 + .../Properties/AssemblyInfo.cs | 33 + .../Properties/Resources.Designer.cs | 63 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../AmountEntrySpecification.cs | 9 + .../Cmpp298.Assignment3.Domain.csproj | 48 + .../Cmpp298.Assignment3.Domain/ISpecification.cs | 5 + .../Properties/AssemblyInfo.cs | 35 + .../Cmpp298.Assignment3.Dto.csproj | 53 + .../Cmpp298.Assignment3.Dto/DisplayInvoiceDto.cs | 68 + .../DisplayVendorNameDto.cs | 19 + .../Cmpp298.Assignment3.Dto/DropDownListItem.cs | 19 + .../IDropDownListAdapter.cs | 11 + .../Cmpp298.Assignment3.Dto/IDropDownListItem.cs | 6 + .../Properties/AssemblyInfo.cs | 35 + src/app/Cmpp298.Assignment3.Dto/SaveInvoiceDto.cs | 113 + .../Cmpp298.Assignment3.Dto/UpdateInvoiceDto.cs | 113 + .../Cmpp298.Assignment3.Task.csproj | 63 + src/app/Cmpp298.Assignment3.Task/IInvoiceTask.cs | 12 + src/app/Cmpp298.Assignment3.Task/ITermTask.cs | 8 + src/app/Cmpp298.Assignment3.Task/IVendorTask.cs | 9 + src/app/Cmpp298.Assignment3.Task/InvoiceTask.cs | 113 + .../Properties/AssemblyInfo.cs | 35 + src/app/Cmpp298.Assignment3.Task/TermTask.cs | 31 + src/app/Cmpp298.Assignment3.Task/VendorTask.cs | 44 + src/test/Cmpp298.Assignment3.Test/App.config | 6 + .../Cmpp298.Assignment3.Test.csproj | 82 + .../Dto/SaveInvoiceDtoTest.cs | 33 + .../Presentation/DeleteInvoicePresenterTest.cs | 59 + .../Presentation/EditInvoicePresenterTest.cs | 85 + .../Presentation/InvoicesMainPresenterTest.cs | 68 + .../Presentation/NewInvoicePresenterTest.cs | 114 + .../Properties/AssemblyInfo.cs | 35 + .../Task/InvoiceTaskTest.cs | 105 + .../Task/VendorTaskTest.cs | 29 + tools/MbUnit/MbUnit.AddIn.dll | Bin 0 -> 24576 bytes tools/MbUnit/MbUnit.Cons.exe | Bin 0 -> 106496 bytes tools/MbUnit/MbUnit.Cons.exe.config | 12 + tools/MbUnit/MbUnit.Framework.2.0.dll | Bin 0 -> 10240 bytes tools/MbUnit/MbUnit.Framework.dll | Bin 0 -> 487424 bytes tools/MbUnit/MbUnit.GUI.exe | Bin 0 -> 315392 bytes tools/MbUnit/MbUnit.GUI.exe.config | 14 + tools/MbUnit/MbUnit.MSBuild.Tasks.dll | Bin 0 -> 9216 bytes tools/MbUnit/MbUnit.Tasks.dll | Bin 0 -> 20480 bytes tools/MbUnit/NAnt.Core.dll | Bin 0 -> 352256 bytes tools/MbUnit/NGraphviz.Helpers.dll | Bin 0 -> 49152 bytes tools/MbUnit/NGraphviz.Layout.dll | Bin 0 -> 20480 bytes tools/MbUnit/NGraphviz.dll | Bin 0 -> 1069056 bytes tools/MbUnit/QuickGraph.Algorithms.Graphviz.dll | Bin 0 -> 36864 bytes tools/MbUnit/QuickGraph.Algorithms.dll | Bin 0 -> 180224 bytes tools/MbUnit/QuickGraph.dll | Bin 0 -> 126976 bytes tools/MbUnit/Refly.dll | Bin 0 -> 135168 bytes tools/MbUnit/TestDriven.Framework.dll | Bin 0 -> 5120 bytes tools/MbUnit/TestFu.dll | Bin 0 -> 163840 bytes .../MbUnitCSharpSnippets/autorunner.snippet | 48 + .../MbUnitCSharpSnippets/combinatorialtest.snippet | 56 + .../MbUnitCSharpSnippets/datafixture.snippet | 63 + .../VSSnippets/MbUnitCSharpSnippets/model.snippet | 101 + .../processtestfixture.snippet | 72 + .../MbUnitCSharpSnippets/rowtest.snippet | 114 + .../VSSnippets/MbUnitCSharpSnippets/state.snippet | 30 + .../MbUnitCSharpSnippets/submodel.snippet | 34 + .../VSSnippets/MbUnitCSharpSnippets/test.snippet | 28 + .../testexpectedexception.snippet | 34 + .../MbUnitCSharpSnippets/testfixture.snippet | 71 + .../MbUnitCSharpSnippets/testsuitefixture.snippet | 52 + .../MbUnitCSharpSnippets/typefixture.snippet | 67 + .../typefixturewithproviderfactory.snippet | 77 + .../MbUnitCSharpSnippets/usingmbunit.snippet | 19 + .../VSSnippets/MbUnitVBSnippets/autorunner.snippet | 45 + .../MbUnitVBSnippets/combinatorialtest.snippet | 54 + .../MbUnitVBSnippets/datafixture.snippet | 61 + .../VSSnippets/MbUnitVBSnippets/model.snippet | 95 + .../MbUnitVBSnippets/processtestfixture.snippet | 75 + .../VSSnippets/MbUnitVBSnippets/rowtest.snippet | 113 + .../VSSnippets/MbUnitVBSnippets/state.snippet | 27 + .../VSSnippets/MbUnitVBSnippets/submodel.snippet | 32 + .../VSSnippets/MbUnitVBSnippets/test.snippet | 28 + .../MbUnitVBSnippets/testexpectedexception.snippet | 32 + .../MbUnitVBSnippets/testfixture.snippet | 68 + .../MbUnitVBSnippets/testsuitefixture.snippet | 48 + .../MbUnitVBSnippets/typefixture.snippet | 74 + .../typefixturewithproviderfactory.snippet | 77 + .../MbUnitVBSnippets/usingmbunit.snippet | 19 + .../VSSnippets/MbUnitXMLSnippets/msbuild.snippet | 40 + .../VSSnippets/MbUnitXMLSnippets/nant.snippet | 34 + tools/MbUnit/XsdTidy.exe | Bin 0 -> 49152 bytes tools/MbUnit/log4net.dll | Bin 0 -> 204800 bytes tools/MbUnit/uninst.exe | Bin 0 -> 48819 bytes tools/nant/bin/NAnt.CompressionTasks.dll | Bin 0 -> 32768 bytes tools/nant/bin/NAnt.CompressionTasks.xml | 609 + tools/nant/bin/NAnt.Core.dll | Bin 0 -> 356352 bytes tools/nant/bin/NAnt.Core.xml | 14888 +++++++++++++++++++ tools/nant/bin/NAnt.DotNetTasks.dll | Bin 0 -> 122880 bytes tools/nant/bin/NAnt.DotNetTasks.xml | 4825 ++++++ tools/nant/bin/NAnt.MSNetTasks.dll | Bin 0 -> 28672 bytes tools/nant/bin/NAnt.MSNetTasks.xml | 580 + tools/nant/bin/NAnt.NUnit.dll | Bin 0 -> 8704 bytes tools/nant/bin/NAnt.NUnit.xml | 353 + tools/nant/bin/NAnt.NUnit1Tasks.dll | Bin 0 -> 36864 bytes tools/nant/bin/NAnt.NUnit1Tasks.xml | 538 + tools/nant/bin/NAnt.NUnit2Tasks.dll | Bin 0 -> 32768 bytes tools/nant/bin/NAnt.NUnit2Tasks.xml | 568 + tools/nant/bin/NAnt.SourceControlTasks.dll | Bin 0 -> 40960 bytes tools/nant/bin/NAnt.SourceControlTasks.xml | 1285 ++ tools/nant/bin/NAnt.VSNetTasks.dll | Bin 0 -> 159744 bytes tools/nant/bin/NAnt.VSNetTasks.xml | 3881 +++++ tools/nant/bin/NAnt.VisualCppTasks.dll | Bin 0 -> 49152 bytes tools/nant/bin/NAnt.VisualCppTasks.xml | 1205 ++ tools/nant/bin/NAnt.Win32Tasks.dll | Bin 0 -> 36864 bytes tools/nant/bin/NAnt.Win32Tasks.xml | 690 + tools/nant/bin/NAnt.exe | Bin 0 -> 10752 bytes tools/nant/bin/NAnt.exe.config | 1716 +++ tools/nant/bin/NAnt.xml | 48 + tools/nant/bin/NDoc.Documenter.NAnt.dll | Bin 0 -> 131072 bytes .../bin/lib/ICSharpCode.SharpCvsLib.Console.dll | Bin 0 -> 98304 bytes tools/nant/bin/lib/ICSharpCode.SharpCvsLib.dll | Bin 0 -> 155648 bytes tools/nant/bin/lib/ICSharpCode.SharpZipLib.dll | Bin 0 -> 143360 bytes tools/nant/bin/lib/NUnitCore.dll | Bin 0 -> 40960 bytes tools/nant/bin/lib/net/2.0/NDoc.Core.dll | Bin 0 -> 208896 bytes .../nant/bin/lib/net/2.0/NDoc.Documenter.Msdn.dll | Bin 0 -> 331776 bytes tools/nant/bin/lib/net/2.0/NDoc.ExtendedUI.dll | Bin 0 -> 28672 bytes tools/nant/bin/lib/net/2.0/nunit.core.dll | Bin 0 -> 86016 bytes tools/nant/bin/lib/net/2.0/nunit.framework.dll | Bin 0 -> 40960 bytes tools/nant/bin/lib/net/2.0/nunit.util.dll | Bin 0 -> 86016 bytes tools/nant/bin/log4net.dll | Bin 0 -> 241664 bytes tools/nant/bin/scvs.exe | Bin 0 -> 7680 bytes tools/rhinomocks/Rhino.Mocks.dll | Bin 0 -> 224768 bytes tools/rhinomocks/Rhino.Mocks.xml | 7122 +++++++++ 193 files changed, 46268 insertions(+) create mode 100644 Assignment3.build create mode 100644 Assignment3.sql.build create mode 100644 Assignment3.txt create mode 100644 Cmpp298.Assignment3.sln create mode 100644 build.bat create mode 100644 config/AssemblyInfo.cs create mode 100644 config/app.config.template create mode 100644 local.properties.xml.template create mode 100644 sql/constraints.sql.template create mode 100644 sql/data/GLAccounts.sql.template create mode 100644 sql/data/InvoiceLineItems.sql.template create mode 100644 sql/data/Invoices.sql.template create mode 100644 sql/data/States.sql.template create mode 100644 sql/data/Terms.sql.template create mode 100644 sql/data/Vendors.sql.template create mode 100644 sql/db.sql.template create mode 100644 sql/functions.sql.template create mode 100644 sql/grants.sql.template create mode 100644 sql/indexes.sql.template create mode 100644 sql/storedprocedures.sql.template create mode 100644 sql/tables.sql.template create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/Cmpp298.Assignment3.DataAccess.csproj create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/CommandParameter.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/DatabaseColumn.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/DatabaseConnectionFactory.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/DatabaseGateway.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/IDatabaseConnectionFactory.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/IDatabaseGateway.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/InnerJoin.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/InsertQueryBuilder.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/Properties/AssemblyInfo.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/SelectQueryBuilder.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/Tables.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/UpdateQueryBuilder.cs create mode 100644 src/app/Cmpp298.Assignment3.DataAccess/WhereClause.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Adapters/Cmpp298.Assignment3.Desktop.Adapters.csproj create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Adapters/DesktopDropDownList.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Adapters/Properties/AssemblyInfo.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/Cmpp298.Assignment3.Desktop.Presentation.csproj create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/DeleteInvoicePresenter.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/EditInvoicePresenter.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/IDeleteInvoiceView.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/IEditInvoiceView.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/IInvoicesMainView.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/INewInvoiceView.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/InvoicesMainPresenter.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/NewInvoicePresenter.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.Presentation/Properties/AssemblyInfo.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/App.config create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/Cmpp298.Assignment3.Desktop.UI.csproj create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.Designer.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.resx create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.Designer.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.resx create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.Designer.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.resx create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.Designer.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.resx create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/Program.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/Properties/AssemblyInfo.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Resources.Designer.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Resources.resx create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Settings.Designer.cs create mode 100644 src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Settings.settings create mode 100644 src/app/Cmpp298.Assignment3.Domain/AmountEntrySpecification.cs create mode 100644 src/app/Cmpp298.Assignment3.Domain/Cmpp298.Assignment3.Domain.csproj create mode 100644 src/app/Cmpp298.Assignment3.Domain/ISpecification.cs create mode 100644 src/app/Cmpp298.Assignment3.Domain/Properties/AssemblyInfo.cs create mode 100644 src/app/Cmpp298.Assignment3.Dto/Cmpp298.Assignment3.Dto.csproj create mode 100644 src/app/Cmpp298.Assignment3.Dto/DisplayInvoiceDto.cs create mode 100644 src/app/Cmpp298.Assignment3.Dto/DisplayVendorNameDto.cs create mode 100644 src/app/Cmpp298.Assignment3.Dto/DropDownListItem.cs create mode 100644 src/app/Cmpp298.Assignment3.Dto/IDropDownListAdapter.cs create mode 100644 src/app/Cmpp298.Assignment3.Dto/IDropDownListItem.cs create mode 100644 src/app/Cmpp298.Assignment3.Dto/Properties/AssemblyInfo.cs create mode 100644 src/app/Cmpp298.Assignment3.Dto/SaveInvoiceDto.cs create mode 100644 src/app/Cmpp298.Assignment3.Dto/UpdateInvoiceDto.cs create mode 100644 src/app/Cmpp298.Assignment3.Task/Cmpp298.Assignment3.Task.csproj create mode 100644 src/app/Cmpp298.Assignment3.Task/IInvoiceTask.cs create mode 100644 src/app/Cmpp298.Assignment3.Task/ITermTask.cs create mode 100644 src/app/Cmpp298.Assignment3.Task/IVendorTask.cs create mode 100644 src/app/Cmpp298.Assignment3.Task/InvoiceTask.cs create mode 100644 src/app/Cmpp298.Assignment3.Task/Properties/AssemblyInfo.cs create mode 100644 src/app/Cmpp298.Assignment3.Task/TermTask.cs create mode 100644 src/app/Cmpp298.Assignment3.Task/VendorTask.cs create mode 100644 src/test/Cmpp298.Assignment3.Test/App.config create mode 100644 src/test/Cmpp298.Assignment3.Test/Cmpp298.Assignment3.Test.csproj create mode 100644 src/test/Cmpp298.Assignment3.Test/Dto/SaveInvoiceDtoTest.cs create mode 100644 src/test/Cmpp298.Assignment3.Test/Presentation/DeleteInvoicePresenterTest.cs create mode 100644 src/test/Cmpp298.Assignment3.Test/Presentation/EditInvoicePresenterTest.cs create mode 100644 src/test/Cmpp298.Assignment3.Test/Presentation/InvoicesMainPresenterTest.cs create mode 100644 src/test/Cmpp298.Assignment3.Test/Presentation/NewInvoicePresenterTest.cs create mode 100644 src/test/Cmpp298.Assignment3.Test/Properties/AssemblyInfo.cs create mode 100644 src/test/Cmpp298.Assignment3.Test/Task/InvoiceTaskTest.cs create mode 100644 src/test/Cmpp298.Assignment3.Test/Task/VendorTaskTest.cs create mode 100644 tools/MbUnit/MbUnit.AddIn.dll create mode 100644 tools/MbUnit/MbUnit.Cons.exe create mode 100644 tools/MbUnit/MbUnit.Cons.exe.config create mode 100644 tools/MbUnit/MbUnit.Framework.2.0.dll create mode 100644 tools/MbUnit/MbUnit.Framework.dll create mode 100644 tools/MbUnit/MbUnit.GUI.exe create mode 100644 tools/MbUnit/MbUnit.GUI.exe.config create mode 100644 tools/MbUnit/MbUnit.MSBuild.Tasks.dll create mode 100644 tools/MbUnit/MbUnit.Tasks.dll create mode 100644 tools/MbUnit/NAnt.Core.dll create mode 100644 tools/MbUnit/NGraphviz.Helpers.dll create mode 100644 tools/MbUnit/NGraphviz.Layout.dll create mode 100644 tools/MbUnit/NGraphviz.dll create mode 100644 tools/MbUnit/QuickGraph.Algorithms.Graphviz.dll create mode 100644 tools/MbUnit/QuickGraph.Algorithms.dll create mode 100644 tools/MbUnit/QuickGraph.dll create mode 100644 tools/MbUnit/Refly.dll create mode 100644 tools/MbUnit/TestDriven.Framework.dll create mode 100644 tools/MbUnit/TestFu.dll create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/autorunner.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/combinatorialtest.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/datafixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/model.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/processtestfixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/rowtest.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/state.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/submodel.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/test.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testexpectedexception.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testfixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testsuitefixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/typefixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/typefixturewithproviderfactory.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/usingmbunit.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/autorunner.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/combinatorialtest.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/datafixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/model.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/processtestfixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/rowtest.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/state.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/submodel.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/test.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/testexpectedexception.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/testfixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/testsuitefixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/typefixture.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/typefixturewithproviderfactory.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitVBSnippets/usingmbunit.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitXMLSnippets/msbuild.snippet create mode 100644 tools/MbUnit/VSSnippets/MbUnitXMLSnippets/nant.snippet create mode 100644 tools/MbUnit/XsdTidy.exe create mode 100644 tools/MbUnit/log4net.dll create mode 100644 tools/MbUnit/uninst.exe create mode 100644 tools/nant/bin/NAnt.CompressionTasks.dll create mode 100644 tools/nant/bin/NAnt.CompressionTasks.xml create mode 100644 tools/nant/bin/NAnt.Core.dll create mode 100644 tools/nant/bin/NAnt.Core.xml create mode 100644 tools/nant/bin/NAnt.DotNetTasks.dll create mode 100644 tools/nant/bin/NAnt.DotNetTasks.xml create mode 100644 tools/nant/bin/NAnt.MSNetTasks.dll create mode 100644 tools/nant/bin/NAnt.MSNetTasks.xml create mode 100644 tools/nant/bin/NAnt.NUnit.dll create mode 100644 tools/nant/bin/NAnt.NUnit.xml create mode 100644 tools/nant/bin/NAnt.NUnit1Tasks.dll create mode 100644 tools/nant/bin/NAnt.NUnit1Tasks.xml create mode 100644 tools/nant/bin/NAnt.NUnit2Tasks.dll create mode 100644 tools/nant/bin/NAnt.NUnit2Tasks.xml create mode 100644 tools/nant/bin/NAnt.SourceControlTasks.dll create mode 100644 tools/nant/bin/NAnt.SourceControlTasks.xml create mode 100644 tools/nant/bin/NAnt.VSNetTasks.dll create mode 100644 tools/nant/bin/NAnt.VSNetTasks.xml create mode 100644 tools/nant/bin/NAnt.VisualCppTasks.dll create mode 100644 tools/nant/bin/NAnt.VisualCppTasks.xml create mode 100644 tools/nant/bin/NAnt.Win32Tasks.dll create mode 100644 tools/nant/bin/NAnt.Win32Tasks.xml create mode 100644 tools/nant/bin/NAnt.exe create mode 100644 tools/nant/bin/NAnt.exe.config create mode 100644 tools/nant/bin/NAnt.xml create mode 100644 tools/nant/bin/NDoc.Documenter.NAnt.dll create mode 100644 tools/nant/bin/lib/ICSharpCode.SharpCvsLib.Console.dll create mode 100644 tools/nant/bin/lib/ICSharpCode.SharpCvsLib.dll create mode 100644 tools/nant/bin/lib/ICSharpCode.SharpZipLib.dll create mode 100644 tools/nant/bin/lib/NUnitCore.dll create mode 100644 tools/nant/bin/lib/net/2.0/NDoc.Core.dll create mode 100644 tools/nant/bin/lib/net/2.0/NDoc.Documenter.Msdn.dll create mode 100644 tools/nant/bin/lib/net/2.0/NDoc.ExtendedUI.dll create mode 100644 tools/nant/bin/lib/net/2.0/nunit.core.dll create mode 100644 tools/nant/bin/lib/net/2.0/nunit.framework.dll create mode 100644 tools/nant/bin/lib/net/2.0/nunit.util.dll create mode 100644 tools/nant/bin/log4net.dll create mode 100644 tools/nant/bin/scvs.exe create mode 100644 tools/rhinomocks/Rhino.Mocks.dll create mode 100644 tools/rhinomocks/Rhino.Mocks.xml diff --git a/Assignment3.build b/Assignment3.build new file mode 100644 index 0000000..f644b9b --- /dev/null +++ b/Assignment3.build @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assignment3.sql.build b/Assignment3.sql.build new file mode 100644 index 0000000..6d47011 --- /dev/null +++ b/Assignment3.sql.build @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignment3.txt b/Assignment3.txt new file mode 100644 index 0000000..1397952 --- /dev/null +++ b/Assignment3.txt @@ -0,0 +1,8 @@ +Create a Windows Forms application to support data maintenance (CRUD functionality) of Invoices per Vendor in the Payables database. +Make use of the Connection, Transaction, Command, and DataReader objects of the ADO.NET SQLClient Provider, +not DataSets, DataTables, DataAdapters or the Configuration Wizard. + +The user has to select a Vendor and then view, add, edit or delete Invoice records for the selected vendor. +Changes have to be saved before the user can select another vendor. + +Feel free to make use of a combination of UI controls such as Grids, TextBoxes, ComboBoxes, etc. \ No newline at end of file diff --git a/Cmpp298.Assignment3.sln b/Cmpp298.Assignment3.sln new file mode 100644 index 0000000..8748950 --- /dev/null +++ b/Cmpp298.Assignment3.sln @@ -0,0 +1,67 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cmpp298.Assignment3.Test", "src\test\Cmpp298.Assignment3.Test\Cmpp298.Assignment3.Test.csproj", "{C9135CE2-7960-4E21-ACE8-2769BEF35C01}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cmpp298.Assignment3.DataAccess", "src\app\Cmpp298.Assignment3.DataAccess\Cmpp298.Assignment3.DataAccess.csproj", "{48B09B0E-F2D5-463D-9FAB-C1781CA46D4D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cmpp298.Assignment3.Desktop.UI", "src\app\Cmpp298.Assignment3.Desktop.UI\Cmpp298.Assignment3.Desktop.UI.csproj", "{21D2672E-ED28-4AFF-BD5F-8D80469EA681}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B3607CEF-3BB7-4B5A-B5CC-FCBA7A5808A6}" + ProjectSection(SolutionItems) = preProject + Assignment3.txt = Assignment3.txt + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cmpp298.Assignment3.Desktop.Presentation", "src\app\Cmpp298.Assignment3.Desktop.Presentation\Cmpp298.Assignment3.Desktop.Presentation.csproj", "{62EA2002-B0ED-4E9C-945E-B77552A0669C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cmpp298.Assignment3.Domain", "src\app\Cmpp298.Assignment3.Domain\Cmpp298.Assignment3.Domain.csproj", "{C11B2649-751A-4F49-B28D-AB36A8213674}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cmpp298.Assignment3.Task", "src\app\Cmpp298.Assignment3.Task\Cmpp298.Assignment3.Task.csproj", "{A747CA6E-EEA1-42E0-BA90-69317F8BF45D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cmpp298.Assignment3.Dto", "src\app\Cmpp298.Assignment3.Dto\Cmpp298.Assignment3.Dto.csproj", "{29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cmpp298.Assignment3.Desktop.Adapters", "src\app\Cmpp298.Assignment3.Desktop.Adapters\Cmpp298.Assignment3.Desktop.Adapters.csproj", "{097FDBD3-0339-4D79-AE80-1AD1407B15F0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C9135CE2-7960-4E21-ACE8-2769BEF35C01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9135CE2-7960-4E21-ACE8-2769BEF35C01}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9135CE2-7960-4E21-ACE8-2769BEF35C01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9135CE2-7960-4E21-ACE8-2769BEF35C01}.Release|Any CPU.Build.0 = Release|Any CPU + {48B09B0E-F2D5-463D-9FAB-C1781CA46D4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48B09B0E-F2D5-463D-9FAB-C1781CA46D4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48B09B0E-F2D5-463D-9FAB-C1781CA46D4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48B09B0E-F2D5-463D-9FAB-C1781CA46D4D}.Release|Any CPU.Build.0 = Release|Any CPU + {21D2672E-ED28-4AFF-BD5F-8D80469EA681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21D2672E-ED28-4AFF-BD5F-8D80469EA681}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21D2672E-ED28-4AFF-BD5F-8D80469EA681}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21D2672E-ED28-4AFF-BD5F-8D80469EA681}.Release|Any CPU.Build.0 = Release|Any CPU + {62EA2002-B0ED-4E9C-945E-B77552A0669C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62EA2002-B0ED-4E9C-945E-B77552A0669C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62EA2002-B0ED-4E9C-945E-B77552A0669C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62EA2002-B0ED-4E9C-945E-B77552A0669C}.Release|Any CPU.Build.0 = Release|Any CPU + {C11B2649-751A-4F49-B28D-AB36A8213674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C11B2649-751A-4F49-B28D-AB36A8213674}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C11B2649-751A-4F49-B28D-AB36A8213674}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C11B2649-751A-4F49-B28D-AB36A8213674}.Release|Any CPU.Build.0 = Release|Any CPU + {A747CA6E-EEA1-42E0-BA90-69317F8BF45D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A747CA6E-EEA1-42E0-BA90-69317F8BF45D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A747CA6E-EEA1-42E0-BA90-69317F8BF45D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A747CA6E-EEA1-42E0-BA90-69317F8BF45D}.Release|Any CPU.Build.0 = Release|Any CPU + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B}.Release|Any CPU.Build.0 = Release|Any CPU + {097FDBD3-0339-4D79-AE80-1AD1407B15F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {097FDBD3-0339-4D79-AE80-1AD1407B15F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {097FDBD3-0339-4D79-AE80-1AD1407B15F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {097FDBD3-0339-4D79-AE80-1AD1407B15F0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..ab4ea4f --- /dev/null +++ b/build.bat @@ -0,0 +1,3 @@ +@echo off +cls +Tools\nant\bin\NAnt.exe -buildfile:Assignment3.build %* \ No newline at end of file diff --git a/config/AssemblyInfo.cs b/config/AssemblyInfo.cs new file mode 100644 index 0000000..e4bc45f --- /dev/null +++ b/config/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3")] +[assembly: AssemblyDescription("Assignment 3")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Mo Khan")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.Desktop.UI")] +[assembly: AssemblyCopyright("Copyright © Mo Khan 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a0b2b859-9d29-40fd-9ba5-c08949290739")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/config/app.config.template b/config/app.config.template new file mode 100644 index 0000000..7e9057f --- /dev/null +++ b/config/app.config.template @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/local.properties.xml.template b/local.properties.xml.template new file mode 100644 index 0000000..8d06eaf --- /dev/null +++ b/local.properties.xml.template @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/sql/constraints.sql.template b/sql/constraints.sql.template new file mode 100644 index 0000000..f2f1dd9 --- /dev/null +++ b/sql/constraints.sql.template @@ -0,0 +1,48 @@ +USE [@initial.catalog@] + +ALTER TABLE [dbo].[InvoiceLineItems] WITH CHECK ADD CONSTRAINT [FK_InvoiceLineItems_GLAccounts] FOREIGN KEY([AccountNo]) +REFERENCES [dbo].[GLAccounts] ([AccountNo]) +ON UPDATE CASCADE +GO + +ALTER TABLE [dbo].[InvoiceLineItems] CHECK CONSTRAINT [FK_InvoiceLineItems_GLAccounts] +GO + +ALTER TABLE [dbo].[InvoiceLineItems] WITH CHECK ADD CONSTRAINT [FK_InvoiceLineItems_Invoices] FOREIGN KEY([InvoiceID]) +REFERENCES [dbo].[Invoices] ([InvoiceID]) +ON UPDATE CASCADE +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[InvoiceLineItems] CHECK CONSTRAINT [FK_InvoiceLineItems_Invoices] +GO + +ALTER TABLE [dbo].[Invoices] WITH CHECK ADD CONSTRAINT [FK_Invoices_Terms] FOREIGN KEY([TermsID]) +REFERENCES [dbo].[Terms] ([TermsID]) +GO +ALTER TABLE [dbo].[Invoices] CHECK CONSTRAINT [FK_Invoices_Terms] +GO + +ALTER TABLE [dbo].[Invoices] WITH CHECK ADD CONSTRAINT [FK_Invoices_Vendors] FOREIGN KEY([VendorID]) +REFERENCES [dbo].[Vendors] ([VendorID]) +GO +ALTER TABLE [dbo].[Invoices] CHECK CONSTRAINT [FK_Invoices_Vendors] +GO + +ALTER TABLE [dbo].[Vendors] WITH CHECK ADD CONSTRAINT [FK_Vendors_GLAccounts] FOREIGN KEY([DefaultAccountNo]) +REFERENCES [dbo].[GLAccounts] ([AccountNo]) +ON UPDATE CASCADE +GO +ALTER TABLE [dbo].[Vendors] CHECK CONSTRAINT [FK_Vendors_GLAccounts] +GO + +ALTER TABLE [dbo].[Vendors] WITH CHECK ADD CONSTRAINT [FK_Vendors_States] FOREIGN KEY([State]) +REFERENCES [dbo].[States] ([StateCode]) +GO +ALTER TABLE [dbo].[Vendors] CHECK CONSTRAINT [FK_Vendors_States] +GO + +ALTER TABLE [dbo].[Vendors] WITH CHECK ADD CONSTRAINT [FK_Vendors_Terms] FOREIGN KEY([DefaultTermsID]) +REFERENCES [dbo].[Terms] ([TermsID]) +GO +ALTER TABLE [dbo].[Vendors] CHECK CONSTRAINT [FK_Vendors_Terms] +GO \ No newline at end of file diff --git a/sql/data/GLAccounts.sql.template b/sql/data/GLAccounts.sql.template new file mode 100644 index 0000000..770f47a --- /dev/null +++ b/sql/data/GLAccounts.sql.template @@ -0,0 +1,77 @@ +USE [@initial.catalog@]; + +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (100,'Cash'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (110,'Accounts Receivable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (120,'Book Inventory'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (150,'Furniture'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (160,'Computer Equipment'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (162,'Capitalized Lease'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (167,'Software'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (170,'Other Equipment'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (181,'Book Development'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (200,'Accounts Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (205,'Royalties Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (221,'401K Employee Contributions'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (230,'Sales Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (234,'Medicare Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (235,'Income Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (237,'State Payroll Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (238,'Employee FICA Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (239,'Employer FICA Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (241,'Employer FUTA Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (242,'Employee SDI Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (243,'Employer UCI Taxes Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (251,'IBM Credit Corporation Payable'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (280,'Capital Stock'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (290,'Retained Earnings'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (300,'Retail Sales'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (301,'College Sales'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (302,'Trade Sales'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (306,'Consignment Sales'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (310,'Compositing Revenue'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (394,'Book Club Royalties'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (400,'Book Printing Costs'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (403,'Book Production Costs'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (500,'Salaries and Wages'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (505,'FICA'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (506,'FUTA'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (507,'UCI'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (508,'Medicare'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (510,'Group Insurance'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (520,'Building Lease'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (521,'Utilities'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (522,'Telephone'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (523,'Building Maintenance'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (527,'Computer Equipment Maintenance'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (528,'IBM Lease'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (532,'Equipment Rental'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (536,'Card Deck Advertising'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (540,'Direct Mail Advertising'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (541,'Space Advertising'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (546,'Exhibits and Shows'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (548,'Web Site Production and Fees'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (550,'Packaging Materials'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (551,'Business Forms'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (552,'Postage'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (553,'Freight'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (555,'Collection Agency Fees'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (556,'Credit Card Handling'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (565,'Bank Fees'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (568,'Auto License Fee'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (569,'Auto Expense'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (570,'Office Supplies'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (572,'Books, Dues, and Subscriptions'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (574,'Business Licenses and Taxes'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (576,'PC Software'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (580,'Meals'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (582,'Travel and Accomodations'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (589,'Outside Services'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (590,'Business Insurance'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (591,'Accounting'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (610,'Charitable Contributions'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (611,'Profit Sharing Contributions'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (620,'Interest Paid to Banks'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (621,'Other Interest'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (630,'Federal Corporation Income Taxes'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (631,'State Corporation Income Taxes'); +insert into [dbo].[GLAccounts]([AccountNo],[Description]) values (632,'Sales Tax'); diff --git a/sql/data/InvoiceLineItems.sql.template b/sql/data/InvoiceLineItems.sql.template new file mode 100644 index 0000000..fe9b701 --- /dev/null +++ b/sql/data/InvoiceLineItems.sql.template @@ -0,0 +1,122 @@ +USE [@initial.catalog@]; + +-- SET IDENTITY_INSERT @initial.catalog@.dbo.InvoiceLineItems ON +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (1,1,572,116.5400,'MVS Online Library'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (2,1,572,1083.5800,'MSDN'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (3,1,120,20551.1800,'CICS Part 2'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (4,1,120,26881.4000,'MVS JCL'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (5,1,527,936.9300,'Quarterly Maintenance'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (6,1,553,2312.2000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (7,1,541,600.0000,'Trade advertising'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (8,1,553,1927.5400,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (9,1,553,2184.1100,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (10,1,553,2318.0300,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (11,1,553,3813.3300,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (12,1,553,3689.9900,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (13,1,553,2765.3600,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (14,1,553,2115.8100,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (15,1,540,313.5500,'Card revision'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (16,1,553,2051.5900,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (17,1,523,356.4800,'Network wiring'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (18,1,540,904.1400,'DB2 Card decks'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (19,1,536,1197.0000,'Spring catalog'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (19,2,540,765.1300,'ADO.NET 2.0 cover'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (20,1,536,639.7700,'Card deck'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (21,1,536,601.9500,'Card deck revision'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (22,1,536,953.1000,'Crash Course revision'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (23,1,541,565.1500,'Crash Course Ad'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (24,1,540,1000.4600,'Crash Course Cover'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (25,1,553,10.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (26,1,553,162.7500,'International shipment'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (27,1,553,10.0000,'Address correction'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (28,1,553,27.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (29,1,553,13.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (30,1,570,17.5000,'Supplies'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (31,1,553,144.7000,'Int''l shipment'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (32,1,523,95.0000,'Telephone service'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (33,1,553,33.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (34,1,120,10976.0600,'VSAM for the Cobol Programmer'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (35,1,553,63.4000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (36,1,120,23517.5800,'DB2 Part 1'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (37,1,120,37966.1900,'CICS Desk Reference'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (38,1,553,61.5000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (39,1,553,158.0000,'Int''l shipment'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (40,1,553,26.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (41,1,553,23.5000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (42,1,572,9.9500,'Monthly access fee'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (43,1,572,9.9500,'Monthly access fee'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (44,1,553,52.2500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (45,1,553,109.5000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (46,1,553,42.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (47,1,553,36.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (48,1,553,111.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (49,1,553,53.2500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (50,1,553,53.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (51,1,553,108.5000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (52,1,553,38.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (53,1,553,15.5000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (54,1,553,127.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (55,1,553,241.0000,'Int''l shipment'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (56,1,553,129.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (57,1,553,40.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (58,1,553,60.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (59,1,553,104.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (60,1,553,67.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (61,1,553,147.2500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (62,1,553,172.5000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (63,1,553,108.2500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (64,1,553,138.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (65,1,553,127.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (66,1,553,739.2000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (67,1,553,10.0000,'Address correction'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (68,1,553,30.7500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (69,1,510,116.0000,'Health Insurance'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (70,1,553,67.9200,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (71,1,553,59.9700,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (72,1,553,26.2500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (73,1,553,22.5700,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (74,1,553,31.9500,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (75,1,553,42.6700,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (76,1,553,44.4400,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (77,1,553,40.2000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (78,1,553,400.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (79,1,553,42.5000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (80,1,591,220.0000,'Form 571-L'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (81,1,541,1575.0000,'Catalog ad'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (82,1,553,6.0000,'Freight out'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (83,1,553,25.6700,'Freight out'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (84,1,552,6.0000,'Freight out'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (85,1,553,6.0000,'Freight'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (86,1,540,207.7800,'Prospect list'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (87,1,536,2184.5000,'PC card deck'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (88,1,536,2433.0000,'Card deck'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (89,1,120,6940.2500,'OS Utilities'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (90,1,523,450.0000,'Back office additions'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (91,1,536,90.3600,'Card deck advertising'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (92,1,536,175.0000,'Card deck advertising'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (93,1,548,7125.3400,'Web site design'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (94,1,569,503.2000,'Bronco lease'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (95,1,235,1600.0000,'Income Tax'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (96,1,520,1750.0000,'Warehouse lease'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (97,1,520,4901.2600,'Office lease'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (98,1,522,46.2100,'Telephone (Line 1)'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (99,1,522,39.7700,'Telephone (Line 2)'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (100,1,580,50.0000,'DiCicco''s'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (100,2,540,75.6000,'Kinko''s'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (100,3,570,58.4000,'Office Max'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (100,4,546,478.0000,'Publishers Marketing'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (101,1,221,1367.5000,'401K Contributions'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (102,1,574,856.9200,'Property Taxes'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (103,1,522,19.6700,'Telephone (Line 3)'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (104,1,552,290.0000,'International pkg.'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (105,1,522,32.7000,'Telephone (line 4)'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (106,1,522,16.3300,'Telephone (line 5)'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (107,1,522,16.3300,'Telephone (line 6)'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (108,1,589,16.6200,'Propane-forklift'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (109,1,580,41.8000,'Coffee'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (110,1,540,85.3100,'Book copy'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (111,1,510,224.0000,'Health Insurance'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (112,1,510,224.0000,'Health Insurance'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (113,1,540,21842.0000,'Book repro'); +insert into [dbo].[InvoiceLineItems]([InvoiceID],[InvoiceSequence],[AccountNo],[Amount],[Description]) values (114,1,541,579.4200,'Catalog ad'); +-- SET IDENTITY_INSERT @initial.catalog@.dbo.InvoiceLineItems OFF diff --git a/sql/data/Invoices.sql.template b/sql/data/Invoices.sql.template new file mode 100644 index 0000000..c541861 --- /dev/null +++ b/sql/data/Invoices.sql.template @@ -0,0 +1,121 @@ +USE [@initial.catalog@]; + +SET IDENTITY_INSERT @initial.catalog@.dbo.Invoices ON +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (1,34,'QP58872','2007-01-05 00:00:00',116.5400,116.5400,0.0000,4,'2007-03-04 00:00:00','2007-02-22 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (2,34,'Q545443','2007-01-14 00:00:00',1083.5800,1083.5800,0.0000,4,'2007-03-23 00:00:00','2007-03-14 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (3,110,'P-0608','2007-02-11 00:00:00',20551.1800,0.0000,1200.0000,5,'2007-04-30 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (4,110,'P-0259','2007-02-16 00:00:00',26881.4000,26881.4000,0.0000,3,'2007-03-16 00:00:00','2007-03-12 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (5,81,'MABO1489','2007-02-16 00:00:00',936.9300,936.9300,0.0000,3,'2007-03-16 00:00:00','2007-03-13 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (6,122,'989319-497','2007-02-17 00:00:00',2312.2000,2312.2000,0.0000,3,'2007-03-17 00:00:00','2007-02-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (7,82,'C73-24','2007-02-17 00:00:00',600.0000,600.0000,0.0000,2,'2007-03-10 00:00:00','2007-03-05 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (8,122,'989319-487','2007-02-18 00:00:00',1927.5400,1927.5400,0.0000,3,'2007-03-18 00:00:00','2007-02-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (9,122,'989319-477','2007-02-19 00:00:00',2184.1100,2184.1100,0.0000,3,'2007-03-19 00:00:00','2007-02-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (10,122,'989319-467','2007-02-24 00:00:00',2318.0300,0.0000,0.0000,3,'2007-03-24 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (11,122,'989319-457','2007-02-24 00:00:00',3813.3300,0.0000,0.0000,3,'2007-03-24 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (12,122,'989319-447','2007-02-24 00:00:00',3689.9900,0.0000,0.0000,3,'2007-03-24 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (13,122,'989319-437','2007-02-24 00:00:00',2765.3600,0.0000,0.0000,3,'2007-03-14 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (14,122,'989319-427','2007-02-25 00:00:00',2115.8100,0.0000,0.0000,3,'2007-03-25 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (15,121,'97/553B','2007-02-26 00:00:00',313.5500,313.5500,0.0000,4,'2007-05-25 00:00:00','2007-03-05 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (16,122,'989319-417','2007-02-16 00:00:00',2051.5900,2051.5900,0.0000,3,'2007-03-16 00:00:00','2007-02-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (17,90,'97-1024A','2007-02-26 00:00:00',356.4800,356.4800,0.0000,3,'2007-04-09 00:00:00','2007-04-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (18,121,'97/553','2007-02-27 00:00:00',904.1400,904.1400,0.0000,4,'2007-05-26 00:00:00','2007-03-05 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (19,121,'97/522','2007-02-28 00:00:00',1962.1300,1762.1300,200.0000,4,'2007-05-27 00:00:00','2007-04-04 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (20,121,'97/503','2007-02-28 00:00:00',639.7700,639.7700,0.0000,4,'2007-05-27 00:00:00','2007-04-04 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (21,121,'97/488','2007-02-28 00:00:00',601.9500,601.9500,0.0000,4,'2007-05-27 00:00:00','2007-04-04 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (22,121,'97/486','2007-02-28 00:00:00',953.1000,953.1000,0.0000,4,'2007-05-27 00:00:00','2007-04-04 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (23,121,'97/465','2007-03-01 00:00:00',565.1500,565.1500,0.0000,4,'2007-05-31 00:00:00','2007-05-07 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (24,121,'97/222','2007-03-01 00:00:00',1000.4600,1000.4600,0.0000,4,'2007-05-31 00:00:00','2007-05-07 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (25,123,'4-342-8069','2007-03-01 00:00:00',10.0000,10.0000,0.0000,3,'2007-03-31 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (26,123,'4-327-7357','2007-03-01 00:00:00',162.7500,162.7500,0.0000,3,'2007-03-31 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (27,123,'4-321-2596','2007-03-01 00:00:00',10.0000,10.0000,0.0000,3,'2007-03-31 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (28,123,'7548906-20','2007-03-01 00:00:00',27.0000,27.0000,0.0000,3,'2007-03-31 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (29,123,'4-314-3057','2007-03-05 00:00:00',13.7500,13.7500,0.0000,3,'2007-04-04 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (30,94,'203339-13','2007-03-02 00:00:00',17.5000,0.0000,0.0000,3,'2007-04-13 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (31,123,'2-000-2993','2007-03-07 00:00:00',144.7000,144.7000,0.0000,3,'2007-04-06 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (32,89,'125520-1','2007-03-05 00:00:00',95.0000,95.0000,0.0000,3,'2007-04-08 00:00:00','2007-03-22 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (33,123,'1-202-2978','2007-03-07 00:00:00',33.0000,33.0000,0.0000,3,'2007-04-06 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (34,110,'0-2436','2007-03-07 00:00:00',10976.0600,0.0000,0.0000,4,'2007-05-17 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (35,123,'1-200-5164','2007-03-07 00:00:00',63.4000,63.4000,0.0000,3,'2007-04-06 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (36,110,'0-2060','2007-03-08 00:00:00',23517.5800,21221.6300,2295.9500,3,'2007-04-09 00:00:00','2007-04-10 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (37,110,'0-2058','2007-03-08 00:00:00',37966.1900,37966.1900,0.0000,3,'2007-04-09 00:00:00','2007-03-31 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (38,123,'963253272','2007-03-06 00:00:00',61.5000,61.5000,0.0000,3,'2007-04-05 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (39,123,'963253271','2007-03-06 00:00:00',158.0000,158.0000,0.0000,3,'2007-04-05 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (40,123,'963253269','2007-03-06 00:00:00',26.7500,26.7500,0.0000,3,'2007-04-05 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (41,123,'963253267','2007-03-06 00:00:00',23.5000,23.5000,0.0000,3,'2007-04-05 00:00:00','2007-03-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (42,97,'21-4748363','2007-03-09 00:00:00',9.9500,0.0000,0.0000,4,'2007-04-25 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (43,97,'21-4923721','2007-03-09 00:00:00',9.9500,9.9500,0.0000,1,'2007-03-21 00:00:00','2007-03-13 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (44,123,'963253264','2007-03-13 00:00:00',52.2500,52.2500,0.0000,3,'2007-04-12 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (45,123,'963253263','2007-03-13 00:00:00',109.5000,109.5000,0.0000,3,'2007-04-12 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (46,123,'963253261','2007-03-13 00:00:00',42.7500,42.7500,0.0000,3,'2007-04-12 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (47,123,'963253260','2007-03-14 00:00:00',36.0000,36.0000,0.0000,3,'2007-04-13 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (48,123,'963253258','2007-03-14 00:00:00',111.0000,111.0000,0.0000,3,'2007-04-13 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (49,123,'963253256','2007-03-15 00:00:00',53.2500,53.2500,0.0000,3,'2007-04-14 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (50,123,'963253255','2007-03-15 00:00:00',53.7500,53.7500,0.0000,3,'2007-04-14 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (51,123,'963253254','2007-03-15 00:00:00',108.5000,108.5000,0.0000,3,'2007-04-14 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (52,123,'963253252','2007-03-15 00:00:00',38.7500,38.7500,0.0000,3,'2007-04-14 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (53,123,'963253251','2007-03-16 00:00:00',15.5000,15.5000,0.0000,3,'2007-04-15 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (54,123,'963253249','2007-03-16 00:00:00',127.7500,127.7500,0.0000,3,'2007-04-15 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (55,123,'963253248','2007-03-19 00:00:00',241.0000,241.0000,0.0000,3,'2007-04-18 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (56,123,'963253246','2007-03-19 00:00:00',129.0000,129.0000,0.0000,3,'2007-04-18 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (57,123,'963253245','2007-03-19 00:00:00',40.7500,40.7500,0.0000,3,'2007-04-18 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (58,123,'963253244','2007-03-19 00:00:00',60.0000,60.0000,0.0000,3,'2007-04-18 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (59,123,'963253242','2007-03-19 00:00:00',104.0000,104.0000,0.0000,3,'2007-04-18 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (60,123,'963253240','2007-03-20 00:00:00',67.0000,67.0000,0.0000,3,'2007-04-19 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (61,123,'963253239','2007-03-20 00:00:00',147.2500,147.2500,0.0000,3,'2007-04-19 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (62,123,'963253237','2007-03-20 00:00:00',172.5000,172.5000,0.0000,3,'2007-04-19 00:00:00','2007-03-23 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (63,123,'963253235','2007-03-21 00:00:00',108.2500,0.0000,0.0000,3,'2007-04-21 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (64,123,'963253234','2007-03-21 00:00:00',138.7500,0.0000,0.0000,3,'2007-04-22 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (65,123,'963253232','2007-03-21 00:00:00',127.7500,0.0000,0.0000,3,'2007-04-25 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (66,123,'963253230','2007-03-21 00:00:00',739.2000,0.0000,0.0000,3,'2007-04-25 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (67,123,'43966316','2007-03-22 00:00:00',10.0000,0.0000,0.0000,3,'2007-04-26 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (68,123,'263253273','2007-03-22 00:00:00',30.7500,0.0000,0.0000,3,'2007-04-26 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (69,37,'547479217','2007-03-17 00:00:00',116.0000,0.0000,0.0000,3,'2007-04-22 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (70,123,'263253270','2007-03-08 00:00:00',67.9200,67.9200,0.0000,3,'2007-04-07 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (71,123,'263253268','2007-03-08 00:00:00',59.9700,59.9700,0.0000,3,'2007-04-07 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (72,123,'263253265','2007-03-08 00:00:00',26.2500,26.2500,0.0000,3,'2007-04-07 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (73,123,'263253257','2007-03-08 00:00:00',22.5700,22.5700,0.0000,3,'2007-04-07 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (74,123,'263253253','2007-03-08 00:00:00',31.9500,31.9500,0.0000,3,'2007-04-07 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (75,123,'263253250','2007-03-09 00:00:00',42.6700,42.6700,0.0000,3,'2007-04-08 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (76,123,'263253243','2007-03-12 00:00:00',44.4400,44.4400,0.0000,3,'2007-04-11 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (77,123,'263253241','2007-03-12 00:00:00',40.2000,40.2000,0.0000,3,'2007-04-11 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (78,123,'94007069','2007-03-12 00:00:00',400.0000,400.0000,0.0000,3,'2007-04-11 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (79,123,'963253262','2007-03-12 00:00:00',42.5000,42.5000,0.0000,3,'2007-04-11 00:00:00','2007-03-16 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (80,105,'94007005','2007-03-23 00:00:00',220.0000,220.0000,0.0000,1,'2007-03-30 00:00:00','2007-03-26 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (81,83,'31359783','2007-03-23 00:00:00',1575.0000,0.0000,0.0000,2,'2007-04-09 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (82,115,'25022117','2007-03-24 00:00:00',6.0000,0.0000,0.0000,3,'2007-04-21 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (83,115,'24946731','2007-03-25 00:00:00',25.6700,25.6700,0.0000,2,'2007-04-14 00:00:00','2007-03-28 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (84,115,'24863706','2007-03-27 00:00:00',6.0000,6.0000,0.0000,1,'2007-04-07 00:00:00','2007-04-01 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (85,115,'24780512','2007-03-29 00:00:00',6.0000,6.0000,0.0000,1,'2007-03-31 00:00:00','2007-03-30 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (86,88,'972110','2007-03-30 00:00:00',207.7800,207.7800,0.0000,1,'2007-04-06 00:00:00','2007-04-02 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (87,100,'587056','2007-03-31 00:00:00',2184.5000,2184.5000,0.0000,3,'2007-04-28 00:00:00','2007-04-22 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (88,86,'367447','2007-03-31 00:00:00',2433.0000,0.0000,0.0000,3,'2007-04-30 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (89,99,'509786','2007-03-31 00:00:00',6940.2500,6940.2500,0.0000,2,'2007-04-16 00:00:00','2007-04-08 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (90,108,'121897','2007-04-01 00:00:00',450.0000,450.0000,0.0000,2,'2007-04-19 00:00:00','2007-04-14 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (91,80,'134116','2007-04-01 00:00:00',90.3600,0.0000,0.0000,3,'2007-05-02 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (92,80,'133560','2007-04-01 00:00:00',175.0000,175.0000,0.0000,2,'2007-04-20 00:00:00','2007-04-03 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (93,104,'P02-3772','2007-04-03 00:00:00',7125.3400,7125.3400,0.0000,2,'2007-04-18 00:00:00','2007-04-08 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (94,106,'9982771','2007-04-03 00:00:00',503.2000,0.0000,0.0000,2,'2007-04-18 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (95,107,'RTR-72-3662-X','2007-04-04 00:00:00',1600.0000,1600.0000,0.0000,2,'2007-04-18 00:00:00','2007-04-11 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (96,113,'77290','2007-04-04 00:00:00',1750.0000,1750.0000,0.0000,2,'2007-04-18 00:00:00','2007-04-08 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (97,119,'10843','2007-04-04 00:00:00',4901.2600,4901.2600,0.0000,2,'2007-04-18 00:00:00','2007-04-11 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (98,95,'111-92R-10092','2007-04-04 00:00:00',46.2100,0.0000,0.0000,1,'2007-04-29 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (99,95,'111-92R-10093','2007-04-05 00:00:00',39.7700,0.0000,0.0000,2,'2007-04-28 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (100,96,'I77271-O01','2007-04-05 00:00:00',662.0000,0.0000,0.0000,2,'2007-04-24 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (101,103,'75C-90227','2007-04-06 00:00:00',1367.5000,1367.5000,0.0000,1,'2007-04-13 00:00:00','2007-04-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (102,48,'P02-88D77S7','2007-04-06 00:00:00',856.9200,856.9200,0.0000,1,'2007-04-13 00:00:00','2007-04-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (103,95,'111-92R-10094','2007-04-06 00:00:00',19.6700,0.0000,0.0000,1,'2007-04-27 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (104,114,'CBM9920-M-T77109','2007-04-07 00:00:00',290.0000,290.0000,0.0000,1,'2007-04-12 00:00:00','2007-04-09 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (105,95,'111-92R-10095','2007-04-07 00:00:00',32.7000,0.0000,0.0000,3,'2007-04-26 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (106,95,'111-92R-10096','2007-04-08 00:00:00',16.3300,0.0000,0.0000,2,'2007-04-25 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (107,95,'111-92R-10097','2007-04-08 00:00:00',16.3300,0.0000,0.0000,1,'2007-04-24 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (108,117,'111897','2007-04-11 00:00:00',16.6200,16.6200,0.0000,1,'2007-04-14 00:00:00','2007-04-12 00:00:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (109,102,'109596','2007-04-14 00:00:00',41.8000,0.0000,0.0000,3,'2007-05-11 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (110,72,'39104','2007-04-20 00:00:00',85.3100,0.0000,0.0000,3,'2007-05-20 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (111,37,'547480102','2007-04-20 00:00:00',224.0000,0.0000,0.0000,3,'2007-04-24 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (112,37,'547481328','2007-05-18 00:00:00',224.0000,0.0000,0.0000,3,'2007-04-25 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (113,72,'40318','2007-05-18 00:00:00',21842.0000,0.0000,0.0000,3,'2007-05-20 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (114,83,'31361833','2007-05-18 00:00:00',579.4200,0.0000,0.0000,2,'2007-04-09 00:00:00',null); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (404,1,'475582e7-d64f-4741-8184-02e5f1a723c3','2007-08-19 16:45:00',2.0000,2.0000,0.0000,1,'2007-08-19 16:45:00','2007-08-19 16:45:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (434,1,'ae82a559-6cfd-4c71-8dd3-5289d3adabae','2007-08-19 17:05:00',1.0000,1.0000,1.0000,5,'2007-08-19 17:05:00','2007-08-19 17:05:00'); +insert into [dbo].[Invoices]([InvoiceID],[VendorID],[InvoiceNumber],[InvoiceDate],[InvoiceTotal],[PaymentTotal],[CreditTotal],[TermsID],[DueDate],[PaymentDate]) values (435,1,'1f7e4e08-f21d-4cee-a8da-4394c8336772','2007-08-19 17:07:00',5.0000,5.0000,5.0000,4,'2007-08-19 17:07:00','2007-08-19 17:07:00'); +SET IDENTITY_INSERT @initial.catalog@.dbo.Invoices OFF diff --git a/sql/data/States.sql.template b/sql/data/States.sql.template new file mode 100644 index 0000000..fec36ed --- /dev/null +++ b/sql/data/States.sql.template @@ -0,0 +1,54 @@ +USE [@initial.catalog@]; + +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('AK','Alaska',99500,99999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('AL','Alabama',35000,36999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('AR','Arkansas',71600,72999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('AZ','Arizona',85000,86599); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('CA','California',90000,96699); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('CO','Colorado',80000,81699); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('CT','Connecticut',6000,6999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('DC','District of Columbia',20000,20599); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('DE','Delaware',19700,19999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('FL','Florida',32000,34999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('GA','Georgia',30000,31999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('HI','Hawaii',96700,96899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('IA','Iowa',50000,52899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('ID','Idaho',83200,83899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('IL','Illinois',60000,62999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('IN','Indiana',46000,47999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('KS','Kansas',66000,67999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('KY','Kentucky',40000,42799); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('LA','Lousiana',70000,71499); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('MA','Massachusetts',1000,2799); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('MD','Maryland',20600,21999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('ME','Maine',3900,4999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('MI','Michigan',48000,49999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('MN','Minnesota',55000,56799); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('MO','Missouri',63000,65899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('MS','Mississippi',38600,39799); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('MT','Montana',59000,59999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('NC','North Carolina',27000,28999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('ND','North Dakota',58000,58899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('NE','Nebraska',68000,69399); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('NH','New Hampshire',3000,3899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('NJ','New Jersey',7000,8999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('NM','New Mexico',87000,88499); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('NV','Nevada',89000,89899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('NY','New York',9000,14999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('OH','Ohio',43000,45899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('OK','Oklahoma',73000,74999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('OR','Oregon',97000,97999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('PA','Pennsylvania',15000,19699); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('RI','Rhode Island',2800,2999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('SC','South Carolina',29000,29999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('SD','South Dakota',57000,57799); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('TN','Tennessee',37000,38599); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('TX','Texas',75000,79999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('UT','Utah',84000,84799); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('VA','Virginia',22000,24699); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('VI','Virgin Islands',801,850); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('VT','Vermont',5000,5999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('WA','Washington',98000,99499); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('WI','Wisconsin',53000,54999); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('WV','West Virginia',24700,26899); +insert into [dbo].[States]([StateCode],[StateName],[FirstZipCode],[LastZipCode]) values ('WY','Wyoming',82000,83199); diff --git a/sql/data/Terms.sql.template b/sql/data/Terms.sql.template new file mode 100644 index 0000000..b9c8252 --- /dev/null +++ b/sql/data/Terms.sql.template @@ -0,0 +1,9 @@ +USE [@initial.catalog@]; + +SET IDENTITY_INSERT @initial.catalog@.dbo.Terms ON +insert into [dbo].[Terms]([TermsID],[Description],[DueDays]) values (1,'Net due 10 days',10); +insert into [dbo].[Terms]([TermsID],[Description],[DueDays]) values (2,'Net due 20 days',20); +insert into [dbo].[Terms]([TermsID],[Description],[DueDays]) values (3,'Net due 30 days',30); +insert into [dbo].[Terms]([TermsID],[Description],[DueDays]) values (4,'Net due 60 days',60); +insert into [dbo].[Terms]([TermsID],[Description],[DueDays]) values (5,'Net due 90 days',90); +SET IDENTITY_INSERT @initial.catalog@.dbo.Terms OFF \ No newline at end of file diff --git a/sql/data/Vendors.sql.template b/sql/data/Vendors.sql.template new file mode 100644 index 0000000..984986e --- /dev/null +++ b/sql/data/Vendors.sql.template @@ -0,0 +1,126 @@ +USE [@initial.catalog@]; + +SET IDENTITY_INSERT @initial.catalog@.dbo.Vendors ON +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (1,'US Postal Service','Attn: Supt. Window Services','PO Box 7005','Madison','WI','53707','8005551205','Alberto','Francesco',1,552); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (2,'National Information Data Ctr','PO Box 96621',null,'Washington','DC','20090','3015558950','Irvin','Ania',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (3,'Register of Copyrights','Library Of Congress',null,'Washington','DC','20559',null,'Liana','Lukas',3,403); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (4,'Jobtrak','1990 Westwood Blvd Ste 260',null,'Los Angeles','CA','90025','8005558725','Quinn','Kenzie',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (5,'Newbrige Book Clubs','3000 Cindel Drive',null,'Washington','NJ','07882','8005559980','Marks','Michelle',4,394); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (6,'California Chamber Of Commerce','3255 Ramos Cir',null,'Sacramento','CA','95827','9165556670','Mauro','Anton',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (7,'Towne Advertiser''s Mailing Svcs','Kevin Minder','3441 W Macarthur Blvd','Santa Ana','CA','92704',null,'Maegen','Ted',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (8,'BFI Industries','PO Box 9369',null,'Fresno','CA','93792','5595551551','Kaleigh','Erick',3,521); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (9,'Pacific Gas & Electric','Box 52001',null,'San Francisco','CA','94152','8005556081','Anthoni','Kaitlyn',3,521); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (10,'Robbins Mobile Lock And Key','4669 N Fresno',null,'Fresno','CA','93726','5595559375','Leigh','Bill',2,523); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (11,'Bill Marvin Electric Inc','4583 E Home',null,'Fresno','CA','93703','5595555106','Hostlery','Kaitlin',2,523); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (12,'City Of Fresno','PO Box 2069',null,'Fresno','CA','93718','5595559999','Mayte','Kendall',3,574); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (13,'Golden Eagle Insurance Co','PO Box 85826',null,'San Diego','CA','92186',null,'Blanca','Korah',3,590); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (14,'Expedata Inc','4420 N. First Street, Suite 108',null,'Fresno','CA','93726','5595559586','Quintin','Marvin',3,589); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (15,'ASC Signs','1528 N Sierra Vista',null,'Fresno','CA','93703',null,'Darien','Elisabeth',1,546); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (16,'Internal Revenue Service','PO Box 5000',null,'Fresno','CA','93888',null,'Aileen','Joan',1,235); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (17,'Blanchard & Johnson Associates','27371 Valderas',null,'Mission Viejo','CA','92691','2145553647','Keeton','Gonzalo',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (18,'Fresno Photoengraving Company','1952 "H" Street','P.O. Box 1952','Fresno','CA','93718','5595553005','Chaddick','Derek',3,403); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (19,'Crown Printing','1730 "H" St',null,'Fresno','CA','93721','5595557473','Randrup','Leann',2,400); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (20,'Diversified Printing & Pub','2632 Saturn St',null,'Brea','CA','92621','7145554541','Lane','Vanesa',3,400); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (21,'The Library Ltd','7700 Forsyth',null,'St Louis','MO','63105','3145558834','Marques','Malia',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (22,'Micro Center','1555 W Lane Ave',null,'Columbus','OH','43221','6145554435','Evan','Emily',2,160); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (23,'Yale Industrial Trucks-Fresno','3711 W Franklin',null,'Fresno','CA','93706','5595552993','Alexis','Alexandro',3,532); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (24,'Zee Medical Service Co','4221 W Sierra Madre #104',null,'Washington','IA','52353',null,'Hallie','Juliana',3,570); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (25,'California Data Marketing','2818 E Hamilton',null,'Fresno','CA','93721','5595553801','Jonessen','Moises',4,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (26,'Small Press','121 E Front St - 4th Floor',null,'Traverse City','MI','49684',null,'Colette','Dusty',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (27,'Rich Advertising','12 Daniel Road',null,'Fairfield','NJ','07004','2015559742','Neil','Ingrid',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (29,'Vision Envelope & Printing','PO Box 3100',null,'Gardena','CA','90247','3105557062','Raven','Jamari',3,551); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (30,'Costco','Fresno Warehouse','4500 W Shaw','Fresno','CA','93711',null,'Jaquan','Aaron',3,570); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (31,'Enterprise Communications Inc','1483 Chain Bridge Rd, Ste 202',null,'Mclean','VA','22101','7705559558','Lawrence','Eileen',2,536); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (32,'RR Bowker','PO Box 31',null,'East Brunswick','NJ','08810','8005558110','Essence','Marjorie',3,532); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (33,'Nielson','Ohio Valley Litho Division','Location #0470','Cincinnati','OH','45264',null,'Brooklynn','Keely',2,541); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (34,'IBM','PO Box 61000',null,'San Francisco','CA','94161','8005554426','Camron','Trentin',1,160); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (35,'Cal State Termite','PO Box 956',null,'Selma','CA','93662','5595551534','Hunter','Demetrius',2,523); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (36,'Graylift','PO Box 2808',null,'Fresno','CA','93745','5595556621','Sydney','Deangelo',3,532); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (37,'Blue Cross','PO Box 9061',null,'Oxnard','CA','93031','8005550912','Eliana','Nikolas',3,510); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (38,'Venture Communications Int''l','60 Madison Ave',null,'New York','NY','10010','2125554800','Neftaly','Thalia',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (39,'Custom Printing Company','PO Box 7028',null,'St Louis','MO','63177','3015551494','Myles','Harley',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (40,'Nat Assoc of College Stores','500 East Lorain Street',null,'Oberlin','OH','44074',null,'Bernard','Lucy',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (41,'Shields Design','415 E Olive Ave',null,'Fresno','CA','93728','5595558060','Kerry','Rowan',2,403); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (42,'Opamp Technical Books','1033 N Sycamore Ave.',null,'Los Angeles','CA','90038','2135554322','Paris','Gideon',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (43,'Capital Resource Credit','PO Box 39046',null,'Minneapolis','MN','55439','6125550057','Maxwell','Jayda',3,589); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (44,'Courier Companies, Inc','PO Box 5317',null,'Boston','MA','02206','5085556351','Antavius','Troy',4,400); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (45,'Naylor Publications Inc','PO Box 40513',null,'Jacksonville','FL','32231','8005556041','Gerald','Kristofer',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (46,'Open Horizons Publishing','Book Marketing Update','PO Box 205','Fairfield','IA','52556','5155556130','Damien','Deborah',2,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (47,'Baker & Taylor Books','Five Lakepointe Plaza, Ste 500','2709 Water Ridge Parkway','Charlotte','NC','28217','7045553500','Bernardo','Brittnee',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (48,'Fresno County Tax Collector','PO Box 1192',null,'Fresno','CA','93715','5595553482','Brenton','Kila',3,574); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (49,'Mcgraw Hill Companies','PO Box 87373',null,'Chicago','IL','60680','6145553663','Holbrooke','Rashad',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (50,'Publishers Weekly','Box 1979',null,'Marion','OH','43305','8005551669','Carrollton','Priscilla',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (51,'Blue Shield of California','PO Box 7021',null,'Anaheim','CA','92850','4155555103','Smith','Kylie',3,510); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (52,'Aztek Label','Accounts Payable','1150 N Tustin Ave','Anaheim','CA','92807','7145559000','Griffin','Brian',3,551); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (53,'Gary McKeighan Insurance','3649 W Beechwood Ave #101',null,'Fresno','CA','93711','5595552420','Jair','Caitlin',3,590); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (54,'Ph Photographic Services','2384 E Gettysburg',null,'Fresno','CA','93726','5595550765','Cheyenne','Kaylea',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (55,'Quality Education Data','PO Box 95857',null,'Chicago','IL','60694','8005555811','Misael','Kayle',2,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (56,'Springhouse Corp','PO Box 7247-7051',null,'Philadelphia','PA','19170','2155558700','Maeve','Clarence',3,523); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (57,'The Windows Deck','117 W Micheltorena Top Floor',null,'Santa Barbara','CA','93101','8005553353','Wood','Liam',3,536); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (58,'Fresno Rack & Shelving Inc','4718 N Bendel Ave',null,'Fresno','CA','93722',null,'Baylee','Dakota',2,523); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (59,'Publishers Marketing Assoc','627 Aviation Way',null,'Manhatttan Beach','CA','90266','3105552732','Walker','Jovon',3,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (60,'The Mailers Guide Co','PO Box 1550',null,'New Rochelle','NY','10802',null,'Lacy','Karina',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (61,'American Booksellers Assoc','828 S Broadway',null,'Tarrytown','NY','10591','8005550037','Angelica','Nashalie',3,574); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (62,'Cmg Information Services','PO Box 2283',null,'Boston','MA','02107','5085557000','Randall','Yash',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (63,'Lou Gentile''s Flower Basket','722 E Olive Ave',null,'Fresno','CA','93728','5595556643','Anum','Trisha',1,570); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (64,'Texaco','PO Box 6070',null,'Inglewood','CA','90312',null,'Oren','Grace',3,582); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (65,'The Drawing Board','PO Box 4758',null,'Carol Stream','IL','60197',null,'Mckayla','Jeffery',2,551); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (66,'Ascom Hasler Mailing Systems','PO Box 895',null,'Shelton','CT','06484',null,'Lewis','Darnell',3,532); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (67,'Bill Jones','Secretary Of State','PO Box 944230','Sacramento','CA','94244',null,'Deasia','Tristin',3,589); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (68,'Computer Library','3502 W Greenway #7',null,'Phoenix','AZ','85023','6025470331','Aryn','Leroy',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (69,'Frank E Wilber Co','2437 N Sunnyside',null,'Fresno','CA','93727','5595551881','Millerton','Johnathon',3,532); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (70,'Fresno Credit Bureau','PO Box 942',null,'Fresno','CA','93714','5595557900','Braydon','Anne',2,555); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (71,'The Fresno Bee','1626 E Street',null,'Fresno','CA','93786','5595554442','Colton','Leah',2,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (72,'Data Reproductions Corp','4545 Glenmeade Lane',null,'Auburn Hills','MI','48326','8105553700','Arodondo','Cesar',3,400); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (73,'Executive Office Products','353 E Shaw Ave',null,'Fresno','CA','93710','5595551704','Danielson','Rachael',2,570); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (74,'Leslie Company','PO Box 610',null,'Olathe','KS','66061','8002556210','Alondra','Zev',3,570); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (75,'Retirement Plan Consultants','6435 North Palm Ave, Ste 101',null,'Fresno','CA','93704','5595557070','Edgardo','Salina',3,589); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (76,'Simon Direct Inc','4 Cornwall Dr Ste 102',null,'East Brunswick','NJ','08816','9085557222','Bradlee','Daniel',2,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (77,'State Board Of Equalization','PO Box 942808',null,'Sacramento','CA','94208','9165554911','Dean','Julissa',1,631); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (78,'The Presort Center','1627 "E" Street',null,'Fresno','CA','93706','5595556151','Marissa','Kyle',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (79,'Valprint','PO Box 12332',null,'Fresno','CA','93777','5595553112','Warren','Quentin',3,551); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (80,'Cardinal Business Media, Inc.','P O Box 7247-7844',null,'Philadelphia','PA','19170','2155551500','Eulalia','Kelsey',2,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (81,'Wang Laboratories, Inc.','P.O. Box 21209',null,'Pasadena','CA','91185','8005550344','Kapil','Robert',2,160); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (82,'Reiter''s Scientific & Pro Books','2021 K Street Nw',null,'Washington','DC','20006','2025555561','Rodolfo','Carlee',2,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (83,'Ingram','PO Box 845361',null,'Dallas','TX','75284',null,'Yobani','Trey',2,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (84,'Boucher Communications Inc','1300 Virginia Dr. Ste 400',null,'Fort Washington','PA','19034','2155558000','Carson','Julian',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (85,'Champion Printing Company','3250 Spring Grove Ave',null,'Cincinnati','OH','45225','8005551957','Clifford','Jillian',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (86,'Computerworld','Department #1872','PO Box 61000','San Francisco','CA','94161','6175550700','Lloyd','Angel',1,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (87,'DMV Renewal','PO Box 942894',null,'Sacramento','CA','94294',null,'Josey','Lorena',4,568); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (88,'Edward Data Services','4775 E Miami River Rd',null,'Cleves','OH','45002','5135553043','Helena','Jeanette',1,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (89,'Evans Executone Inc','4918 Taylor Ct',null,'Turlock','CA','95380',null,'Royce','Hannah',1,522); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (90,'Wakefield Co','295 W Cromwell Ave Ste 106',null,'Fresno','CA','93711','5595554744','Rothman','Nathanael',2,170); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (91,'McKesson Water Products','P O Box 7126',null,'Pasadena','CA','91109','8005557009','Destin','Luciano',2,570); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (92,'Zip Print & Copy Center','PO Box 12332',null,'Fresno','CA','93777','2335556400','Javen','Justin',2,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (93,'AT&T','PO Box 78225',null,'Phoenix','AZ','85062',null,'Wesley','Alisha',3,522); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (94,'Abbey Office Furnishings','4150 W Shaw Ave',null,'Fresno','CA','93722','5595558300','Francis','Kyra',2,150); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (95,'Pacific Bell','PO Box 21347',null,'Sacramento','CA','95887','2095557500','Nickalus','Kurt',2,522); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (96,'Wells Fargo Bank','Business Mastercard','P.O. Box 29479','Phoenix','AZ','85038','9475553900','Damion','Mikayla',2,160); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (97,'Compuserve','Dept L-742',null,'Columbus','OH','43260','6145558600','Armando','Jan',2,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (98,'American Express','Box 0001',null,'Los Angeles','CA','90096','8005553344','Story','Kirsten',2,160); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (99,'Bertelsmann Industry Svcs. Inc','28210 N Avenue Stanford',null,'Valencia','CA','91355','8055550584','Potter','Lance',3,400); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (100,'Cahners Publishing Company','Citibank Lock Box 4026','8725 W Sahara Zone 1127','The Lake','NV','89163','3015552162','Jacobsen','Samuel',4,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (101,'California Business Machines','Gallery Plz','5091 N Fresno','Fresno','CA','93710','5595555570','Rohansen','Anders',2,170); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (102,'Coffee Break Service','PO Box 1091',null,'Fresno','CA','93714','5595558700','Smitzen','Jeffrey',4,570); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (103,'Dean Witter Reynolds','9 River Pk Pl E 400',null,'Boston','MA','02134','5085558737','Johnson','Vance',5,589); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (104,'Digital Dreamworks','5070 N Sixth Ste. 71',null,'Fresno','CA','93711',null,'Elmert','Ron',3,589); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (105,'Dristas Groom & McCormick','7112 N Fresno St Ste 200',null,'Fresno','CA','93720','5595558484','Aaronsen','Thom',3,591); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (106,'Ford Motor Credit Company','Dept 0419',null,'Los Angeles','CA','90084','8005557000','Snyder','Karen',3,582); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (107,'Franchise Tax Board','PO Box 942857',null,'Sacramento','CA','94257',null,'Prado','Anita',4,507); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (108,'Gostanian General Building','427 W Bedford #102',null,'Fresno','CA','93711','5595555100','Bragg','Walter',4,523); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (109,'Kent H Landsberg Co','File No 72686','PO Box 61000','San Francisco','CA','94160','9165558100','Stevens','Wendy',3,540); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (110,'Malloy Lithographing Inc','5411 Jackson Road','PO Box 1124','Ann Arbor','MI','48106','3135556113','Regging','Abe',3,400); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (111,'Net Asset, Llc','1315 Van Ness Ave Ste. 103',null,'Fresno','CA','93721',null,'Kraggin','Laura',1,572); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (112,'Office Depot','File No 81901',null,'Los Angeles','CA','90074','8005551711','Pinsippi','Val',3,570); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (113,'Pollstar','4697 W Jacquelyn Ave',null,'Fresno','CA','93722','5595552631','Aranovitch','Robert',5,520); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (114,'Postmaster','Postage Due Technician','1900 E Street','Fresno','CA','93706','5595557785','Finklestein','Fyodor',1,552); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (115,'Roadway Package System, Inc','Dept La 21095',null,'Pasadena','CA','91185',null,'Smith','Sam',4,553); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (116,'State of California','Employment Development Dept','PO Box 826276','Sacramento','CA','94230','2095555132','Articunia','Mercedez',1,631); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (117,'Suburban Propane','2874 S Cherry Ave',null,'Fresno','CA','93706','5595552770','Spivak','Harold',3,521); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (118,'Unocal','P.O. Box 860070',null,'Pasadena','CA','91186','4155557600','Bluzinski','Rachael',3,582); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (119,'Yesmed, Inc','PO Box 2061',null,'Fresno','CA','93718','5595550600','Hernandez','Reba',2,589); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (120,'Dataforms/West','1617 W. Shaw Avenue','Suite F','Fresno','CA','93711',null,'Church','Charlie',3,551); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (121,'Zylka Design','3467 W Shaw Ave #103',null,'Fresno','CA','93711','5595558625','Ronaldsen','Jaime',3,403); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (122,'United Parcel Service','P.O. Box 505820',null,'Reno','NV','88905','8005550855','Beauregard','Violet',3,553); +insert into [dbo].[Vendors]([VendorID],[Name],[Address1],[Address2],[City],[State],[ZipCode],[Phone],[ContactLName],[ContactFName],[DefaultTermsID],[DefaultAccountNo]) values (123,'Federal Express Corporation','P.O. Box 1140','Dept A','Memphis','TN','38101','8005554091','Bucket','Charlie',3,553); +SET IDENTITY_INSERT @initial.catalog@.dbo.Vendors OFF diff --git a/sql/db.sql.template b/sql/db.sql.template new file mode 100644 index 0000000..09e3d4b --- /dev/null +++ b/sql/db.sql.template @@ -0,0 +1,67 @@ +IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'@initial.catalog@') + DROP DATABASE [@initial.catalog@] +GO + +CREATE DATABASE [@initial.catalog@] ON PRIMARY +( NAME = N'@initial.catalog@_Data', FILENAME = N'@database.path@\@initial.catalog@.mdf' , SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) + LOG ON +( NAME = N'@initial.catalog@_Log', FILENAME = N'@database.path@\@initial.catalog@.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) +GO +EXEC dbo.sp_dbcmptlevel @dbname=N'@initial.catalog@', @new_cmptlevel=90 +GO +IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) +begin +EXEC [@initial.catalog@].[dbo].[sp_fulltext_database] @action = 'enable' +end +GO +ALTER DATABASE [@initial.catalog@] SET ANSI_NULL_DEFAULT OFF +GO +ALTER DATABASE [@initial.catalog@] SET ANSI_NULLS OFF +GO +ALTER DATABASE [@initial.catalog@] SET ANSI_PADDING OFF +GO +ALTER DATABASE [@initial.catalog@] SET ANSI_WARNINGS OFF +GO +ALTER DATABASE [@initial.catalog@] SET ARITHABORT OFF +GO +ALTER DATABASE [@initial.catalog@] SET AUTO_CLOSE OFF +GO +ALTER DATABASE [@initial.catalog@] SET AUTO_CREATE_STATISTICS ON +GO +ALTER DATABASE [@initial.catalog@] SET AUTO_SHRINK OFF +GO +ALTER DATABASE [@initial.catalog@] SET AUTO_UPDATE_STATISTICS ON +GO +ALTER DATABASE [@initial.catalog@] SET CURSOR_CLOSE_ON_COMMIT OFF +GO +ALTER DATABASE [@initial.catalog@] SET CURSOR_DEFAULT GLOBAL +GO +ALTER DATABASE [@initial.catalog@] SET CONCAT_NULL_YIELDS_NULL OFF +GO +ALTER DATABASE [@initial.catalog@] SET NUMERIC_ROUNDABORT OFF +GO +ALTER DATABASE [@initial.catalog@] SET QUOTED_IDENTIFIER OFF +GO +ALTER DATABASE [@initial.catalog@] SET RECURSIVE_TRIGGERS OFF +GO +ALTER DATABASE [@initial.catalog@] SET DISABLE_BROKER +GO +ALTER DATABASE [@initial.catalog@] SET AUTO_UPDATE_STATISTICS_ASYNC OFF +GO +ALTER DATABASE [@initial.catalog@] SET DATE_CORRELATION_OPTIMIZATION OFF +GO +ALTER DATABASE [@initial.catalog@] SET TRUSTWORTHY OFF +GO +ALTER DATABASE [@initial.catalog@] SET ALLOW_SNAPSHOT_ISOLATION OFF +GO +ALTER DATABASE [@initial.catalog@] SET PARAMETERIZATION SIMPLE +GO +ALTER DATABASE [@initial.catalog@] SET READ_WRITE +GO +ALTER DATABASE [@initial.catalog@] SET RECOVERY SIMPLE +GO +ALTER DATABASE [@initial.catalog@] SET MULTI_USER +GO +ALTER DATABASE [@initial.catalog@] SET PAGE_VERIFY CHECKSUM +GO +ALTER DATABASE [@initial.catalog@] SET DB_CHAINING OFF \ No newline at end of file diff --git a/sql/functions.sql.template b/sql/functions.sql.template new file mode 100644 index 0000000..5ac7868 --- /dev/null +++ b/sql/functions.sql.template @@ -0,0 +1,58 @@ +USE [@initial.catalog@] +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + + + CREATE FUNCTION dbo.fn_diagramobjects() + RETURNS int + WITH EXECUTE AS N'dbo' + AS + BEGIN + declare @id_upgraddiagrams int + declare @id_sysdiagrams int + declare @id_helpdiagrams int + declare @id_helpdiagramdefinition int + declare @id_creatediagram int + declare @id_renamediagram int + declare @id_alterdiagram int + declare @id_dropdiagram int + declare @InstalledObjects int + + select @InstalledObjects = 0 + + select @id_upgraddiagrams = object_id(N'dbo.sp_upgraddiagrams'), + @id_sysdiagrams = object_id(N'dbo.sysdiagrams'), + @id_helpdiagrams = object_id(N'dbo.sp_helpdiagrams'), + @id_helpdiagramdefinition = object_id(N'dbo.sp_helpdiagramdefinition'), + @id_creatediagram = object_id(N'dbo.sp_creatediagram'), + @id_renamediagram = object_id(N'dbo.sp_renamediagram'), + @id_alterdiagram = object_id(N'dbo.sp_alterdiagram'), + @id_dropdiagram = object_id(N'dbo.sp_dropdiagram') + + if @id_upgraddiagrams is not null + select @InstalledObjects = @InstalledObjects + 1 + if @id_sysdiagrams is not null + select @InstalledObjects = @InstalledObjects + 2 + if @id_helpdiagrams is not null + select @InstalledObjects = @InstalledObjects + 4 + if @id_helpdiagramdefinition is not null + select @InstalledObjects = @InstalledObjects + 8 + if @id_creatediagram is not null + select @InstalledObjects = @InstalledObjects + 16 + if @id_renamediagram is not null + select @InstalledObjects = @InstalledObjects + 32 + if @id_alterdiagram is not null + select @InstalledObjects = @InstalledObjects + 64 + if @id_dropdiagram is not null + select @InstalledObjects = @InstalledObjects + 128 + + return @InstalledObjects + END + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO diff --git a/sql/grants.sql.template b/sql/grants.sql.template new file mode 100644 index 0000000..e69de29 diff --git a/sql/indexes.sql.template b/sql/indexes.sql.template new file mode 100644 index 0000000..e69de29 diff --git a/sql/storedprocedures.sql.template b/sql/storedprocedures.sql.template new file mode 100644 index 0000000..fae5d32 --- /dev/null +++ b/sql/storedprocedures.sql.template @@ -0,0 +1,457 @@ +use[@initial.catalog@] + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + + + CREATE PROCEDURE dbo.sp_alterdiagram + ( + @diagramname sysname, + @owner_id int = null, + @version int, + @definition varbinary(max) + ) + WITH EXECUTE AS 'dbo' + AS + BEGIN + set nocount on + + declare @theId int + declare @retval int + declare @IsDbo int + + declare @UIDFound int + declare @DiagId int + declare @ShouldChangeUID int + + if(@diagramname is null) + begin + RAISERROR ('Invalid ARG', 16, 1) + return -1 + end + + execute as caller; + select @theId = DATABASE_PRINCIPAL_ID(); + select @IsDbo = IS_MEMBER(N'db_owner'); + if(@owner_id is null) + select @owner_id = @theId; + revert; + + select @ShouldChangeUID = 0 + select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname + + if(@DiagId IS NULL or (@IsDbo = 0 and @theId <> @UIDFound)) + begin + RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1); + return -3 + end + + if(@IsDbo <> 0) + begin + if(@UIDFound is null or USER_NAME(@UIDFound) is null) -- invalid principal_id + begin + select @ShouldChangeUID = 1 ; + end + end + + -- update dds data + update dbo.sysdiagrams set definition = @definition where diagram_id = @DiagId ; + + -- change owner + if(@ShouldChangeUID = 1) + update dbo.sysdiagrams set principal_id = @theId where diagram_id = @DiagId ; + + -- update dds version + if(@version is not null) + update dbo.sysdiagrams set version = @version where diagram_id = @DiagId ; + + return 0 + END + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + + + CREATE PROCEDURE dbo.sp_creatediagram + ( + @diagramname sysname, + @owner_id int = null, + @version int, + @definition varbinary(max) + ) + WITH EXECUTE AS 'dbo' + AS + BEGIN + set nocount on + + declare @theId int + declare @retval int + declare @IsDbo int + declare @userName sysname + if(@version is null or @diagramname is null) + begin + RAISERROR (N'E_INVALIDARG', 16, 1); + return -1 + end + + execute as caller; + select @theId = DATABASE_PRINCIPAL_ID(); + select @IsDbo = IS_MEMBER(N'db_owner'); + revert; + + if @owner_id is null + begin + select @owner_id = @theId; + end + else + begin + if @theId <> @owner_id + begin + if @IsDbo = 0 + begin + RAISERROR (N'E_INVALIDARG', 16, 1); + return -1 + end + select @theId = @owner_id + end + end + -- next 2 line only for test, will be removed after define name unique + if EXISTS(select diagram_id from dbo.sysdiagrams where principal_id = @theId and name = @diagramname) + begin + RAISERROR ('The name is already used.', 16, 1); + return -2 + end + + insert into dbo.sysdiagrams(name, principal_id , version, definition) + VALUES(@diagramname, @theId, @version, @definition) ; + + select @retval = @@IDENTITY + return @retval + END + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + + + CREATE PROCEDURE dbo.sp_dropdiagram + ( + @diagramname sysname, + @owner_id int = null + ) + WITH EXECUTE AS 'dbo' + AS + BEGIN + set nocount on + declare @theId int + declare @IsDbo int + + declare @UIDFound int + declare @DiagId int + + if(@diagramname is null) + begin + RAISERROR ('Invalid value', 16, 1); + return -1 + end + + EXECUTE AS CALLER; + select @theId = DATABASE_PRINCIPAL_ID(); + select @IsDbo = IS_MEMBER(N'db_owner'); + if(@owner_id is null) + select @owner_id = @theId; + REVERT; + + select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname + if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId)) + begin + RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1) + return -3 + end + + delete from dbo.sysdiagrams where diagram_id = @DiagId; + + return 0; + END + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + + + CREATE PROCEDURE dbo.sp_helpdiagramdefinition + ( + @diagramname sysname, + @owner_id int = null + ) + WITH EXECUTE AS N'dbo' + AS + BEGIN + set nocount on + + declare @theId int + declare @IsDbo int + declare @DiagId int + declare @UIDFound int + + if(@diagramname is null) + begin + RAISERROR (N'E_INVALIDARG', 16, 1); + return -1 + end + + execute as caller; + select @theId = DATABASE_PRINCIPAL_ID(); + select @IsDbo = IS_MEMBER(N'db_owner'); + if(@owner_id is null) + select @owner_id = @theId; + revert; + + select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname; + if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId )) + begin + RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1); + return -3 + end + + select version, definition FROM dbo.sysdiagrams where diagram_id = @DiagId ; + return 0 + END + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + + + CREATE PROCEDURE dbo.sp_helpdiagrams + ( + @diagramname sysname = NULL, + @owner_id int = NULL + ) + WITH EXECUTE AS N'dbo' + AS + BEGIN + DECLARE @user sysname + DECLARE @dboLogin bit + EXECUTE AS CALLER; + SET @user = USER_NAME(); + SET @dboLogin = CONVERT(bit,IS_MEMBER('db_owner')); + REVERT; + SELECT + [Database] = DB_NAME(), + [Name] = name, + [ID] = diagram_id, + [Owner] = USER_NAME(principal_id), + [OwnerID] = principal_id + FROM + sysdiagrams + WHERE + (@dboLogin = 1 OR USER_NAME(principal_id) = @user) AND + (@diagramname IS NULL OR name = @diagramname) AND + (@owner_id IS NULL OR principal_id = @owner_id) + ORDER BY + 4, 5, 1 + END + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + + + CREATE PROCEDURE dbo.sp_renamediagram + ( + @diagramname sysname, + @owner_id int = null, + @new_diagramname sysname + + ) + WITH EXECUTE AS 'dbo' + AS + BEGIN + set nocount on + declare @theId int + declare @IsDbo int + + declare @UIDFound int + declare @DiagId int + declare @DiagIdTarg int + declare @u_name sysname + if((@diagramname is null) or (@new_diagramname is null)) + begin + RAISERROR ('Invalid value', 16, 1); + return -1 + end + + EXECUTE AS CALLER; + select @theId = DATABASE_PRINCIPAL_ID(); + select @IsDbo = IS_MEMBER(N'db_owner'); + if(@owner_id is null) + select @owner_id = @theId; + REVERT; + + select @u_name = USER_NAME(@owner_id) + + select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname + if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId)) + begin + RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1) + return -3 + end + + -- if((@u_name is not null) and (@new_diagramname = @diagramname)) -- nothing will change + -- return 0; + + if(@u_name is null) + select @DiagIdTarg = diagram_id from dbo.sysdiagrams where principal_id = @theId and name = @new_diagramname + else + select @DiagIdTarg = diagram_id from dbo.sysdiagrams where principal_id = @owner_id and name = @new_diagramname + + if((@DiagIdTarg is not null) and @DiagId <> @DiagIdTarg) + begin + RAISERROR ('The name is already used.', 16, 1); + return -2 + end + + if(@u_name is null) + update dbo.sysdiagrams set [name] = @new_diagramname, principal_id = @theId where diagram_id = @DiagId + else + update dbo.sysdiagrams set [name] = @new_diagramname where diagram_id = @DiagId + return 0 + END + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + + + CREATE PROCEDURE dbo.sp_upgraddiagrams + AS + BEGIN + IF OBJECT_ID(N'dbo.sysdiagrams') IS NOT NULL + return 0; + + CREATE TABLE dbo.sysdiagrams + ( + name sysname NOT NULL, + principal_id int NOT NULL, -- we may change it to varbinary(85) + diagram_id int PRIMARY KEY IDENTITY, + version int, + + definition varbinary(max) + CONSTRAINT UK_principal_name UNIQUE + ( + principal_id, + name + ) + ); + + + /* Add this if we need to have some form of extended properties for diagrams */ + /* + IF OBJECT_ID(N'dbo.sysdiagram_properties') IS NULL + BEGIN + CREATE TABLE dbo.sysdiagram_properties + ( + diagram_id int, + name sysname, + value varbinary(max) NOT NULL + ) + END + */ + + IF OBJECT_ID(N'dbo.dtproperties') IS NOT NULL + begin + insert into dbo.sysdiagrams + ( + [name], + [principal_id], + [version], + [definition] + ) + select + convert(sysname, dgnm.[uvalue]), + DATABASE_PRINCIPAL_ID(N'dbo'), -- will change to the sid of sa + 0, -- zero for old format, dgdef.[version], + dgdef.[lvalue] + from dbo.[dtproperties] dgnm + inner join dbo.[dtproperties] dggd on dggd.[property] = 'DtgSchemaGUID' and dggd.[objectid] = dgnm.[objectid] + inner join dbo.[dtproperties] dgdef on dgdef.[property] = 'DtgSchemaDATA' and dgdef.[objectid] = dgnm.[objectid] + + where dgnm.[property] = 'DtgSchemaNAME' and dggd.[uvalue] like N'_EA3E6268-D998-11CE-9454-00AA00A3F36E_' + return 2; + end + return 1; + END + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + +CREATE PROCEDURE dbo.GetVendor + @VendorID int +AS + SELECT VendorID, Name, Address1, Address2, City, State, + ZipCode, Phone, ContactFName, ContactLName, + DefaultAccountNo, DefaultTermsID + FROM Vendors + WHERE (VendorID = @VendorID) + + RETURN + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO \ No newline at end of file diff --git a/sql/tables.sql.template b/sql/tables.sql.template new file mode 100644 index 0000000..3eab9d7 --- /dev/null +++ b/sql/tables.sql.template @@ -0,0 +1,92 @@ +USE [@initial.catalog@] + +PRINT 'Creating table GLAccounts' +CREATE TABLE [dbo].[GLAccounts] ( + [AccountNo] [int] NOT NULL , + [Description] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + CONSTRAINT [PK_GLAccounts] PRIMARY KEY CLUSTERED + ( + [AccountNo] + ) ON [PRIMARY] +) ON [PRIMARY] +GO + +PRINT 'Creating table InvoiceLineItems' +CREATE TABLE [dbo].[InvoiceLineItems] ( + [InvoiceID] [int] NOT NULL , + [InvoiceSequence] [smallint] NOT NULL , + [AccountNo] [int] NOT NULL , + [Amount] [money] NOT NULL , + [Description] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + CONSTRAINT [PK_InvoiceLineItems] PRIMARY KEY CLUSTERED + ( + [InvoiceID], + [InvoiceSequence] + ) ON [PRIMARY] +) ON [PRIMARY] +GO + +PRINT 'Creating table Invoices' +CREATE TABLE [dbo].[Invoices] ( + [InvoiceID] [int] IDENTITY (1, 1) NOT NULL , + [VendorID] [int] NOT NULL , + [InvoiceNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [InvoiceDate] [smalldatetime] NOT NULL , + [InvoiceTotal] [money] NOT NULL , + [PaymentTotal] [money] NOT NULL CONSTRAINT [DF_Invoices_PaymentTotal] DEFAULT ((0)), + [CreditTotal] [money] NOT NULL CONSTRAINT [DF_Invoices_CreditTotal] DEFAULT ((0)), + [TermsID] [int] NOT NULL CONSTRAINT [DF_Invoices_TermsID] DEFAULT ((3)), + [DueDate] [smalldatetime] NOT NULL , + [PaymentDate] [smalldatetime] NULL , + CONSTRAINT [PK_Invoices] PRIMARY KEY CLUSTERED + ( + [InvoiceID] + ) ON [PRIMARY] +) ON [PRIMARY] +GO + +PRINT 'Creating table States' +CREATE TABLE [dbo].[States] ( + [StateCode] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [StateName] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [FirstZipCode] [int] NOT NULL , + [LastZipCode] [int] NOT NULL , + CONSTRAINT [PK_States] PRIMARY KEY CLUSTERED + ( + [StateCode] + ) ON [PRIMARY] +) ON [PRIMARY] +GO + +PRINT 'Creating table Terms' +CREATE TABLE [dbo].[Terms] ( + [TermsID] [int] IDENTITY (1, 1) NOT NULL , + [Description] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [DueDays] [smallint] NOT NULL , + CONSTRAINT [PK_Terms] PRIMARY KEY CLUSTERED + ( + [TermsID] + ) ON [PRIMARY] +) ON [PRIMARY] +GO + +PRINT 'Creating table Vendors' +CREATE TABLE [dbo].[Vendors] ( + [VendorID] [int] IDENTITY (1, 1) NOT NULL , + [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [Address1] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [Address2] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [City] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [State] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [ZipCode] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [Phone] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [ContactLName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [ContactFName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [DefaultTermsID] [int] NOT NULL CONSTRAINT [DF_Vendors_DefaultTermsID] DEFAULT ((3)), + [DefaultAccountNo] [int] NOT NULL CONSTRAINT [DF_Vendors_DefaultAccountNo] DEFAULT ((570)), + CONSTRAINT [PK_Vendors] PRIMARY KEY CLUSTERED + ( + [VendorID] + ) ON [PRIMARY] +) ON [PRIMARY] +GO diff --git a/src/app/Cmpp298.Assignment3.DataAccess/Cmpp298.Assignment3.DataAccess.csproj b/src/app/Cmpp298.Assignment3.DataAccess/Cmpp298.Assignment3.DataAccess.csproj new file mode 100644 index 0000000..e797478 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/Cmpp298.Assignment3.DataAccess.csproj @@ -0,0 +1,59 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {48B09B0E-F2D5-463D-9FAB-C1781CA46D4D} + Library + Properties + Cmpp298.Assignment3.DataAccess + Cmpp298.Assignment3.DataAccess + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/CommandParameter.cs b/src/app/Cmpp298.Assignment3.DataAccess/CommandParameter.cs new file mode 100644 index 0000000..134a5e6 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/CommandParameter.cs @@ -0,0 +1,19 @@ +namespace Cmpp298.Assignment3.DataAccess { + public class CommandParameter { + private readonly string _columnName; + private readonly object _value; + + public CommandParameter( string columnName, object value ) { + _columnName = columnName; + _value = value; + } + + public string ColumnName { + get { return _columnName; } + } + + public object Value { + get { return _value; } + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/DatabaseColumn.cs b/src/app/Cmpp298.Assignment3.DataAccess/DatabaseColumn.cs new file mode 100644 index 0000000..b8e4b13 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/DatabaseColumn.cs @@ -0,0 +1,23 @@ +namespace Cmpp298.Assignment3.DataAccess { + public class DatabaseColumn { + private readonly string _tableName; + private readonly string _columnName; + + internal DatabaseColumn( string tableName, string columnName ) { + _tableName = tableName; + _columnName = columnName; + } + + public string TableName { + get { return _tableName; } + } + + public string ColumnName { + get { return _columnName; } + } + + public override string ToString( ) { + return string.Format( "[{0}].[{1}]", _tableName, _columnName ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/DatabaseConnectionFactory.cs b/src/app/Cmpp298.Assignment3.DataAccess/DatabaseConnectionFactory.cs new file mode 100644 index 0000000..57e8373 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/DatabaseConnectionFactory.cs @@ -0,0 +1,21 @@ +using System.Configuration; +using System.Data; +using System.Data.Common; + +namespace Cmpp298.Assignment3.DataAccess { + public class DatabaseConnectionFactory : IDatabaseConnectionFactory { + private ConnectionStringSettings _settings; + + public DatabaseConnectionFactory( ) : this( ConfigurationManager.ConnectionStrings[ "PayablesConnection" ] ) {} + + public DatabaseConnectionFactory( ConnectionStringSettings connectionStringSettings ) { + _settings = connectionStringSettings; + } + + public IDbConnection Create( ) { + IDbConnection connection = DbProviderFactories.GetFactory( _settings.ProviderName ).CreateConnection( ); + connection.ConnectionString = _settings.ConnectionString; + return connection; + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/DatabaseGateway.cs b/src/app/Cmpp298.Assignment3.DataAccess/DatabaseGateway.cs new file mode 100644 index 0000000..55b0221 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/DatabaseGateway.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Data; + +namespace Cmpp298.Assignment3.DataAccess { + public class DatabaseGateway : IDatabaseGateway { + private IDatabaseConnectionFactory _connectionFactory; + + public DatabaseGateway( ) : this( new DatabaseConnectionFactory( ) ) {} + + public DatabaseGateway( IDatabaseConnectionFactory connectionFactory ) { + _connectionFactory = connectionFactory; + } + + public int InsertRowUsing( InsertQueryBuilder builder ) { + return ExecuteBuilderQuery( builder.Parameters, builder.ToString( ) ); + } + + public void UpdateRowUsing( UpdateQueryBuilder builder ) { + ExecuteBuilderQuery( builder.Parameters, builder.ToString( ) ); + } + + public void Execute( string query ) { + using ( IDbConnection connection = _connectionFactory.Create( ) ) { + IDbCommand command = connection.CreateCommand( ); + connection.Open( ); + command.CommandText = query; + command.ExecuteNonQuery( ); + } + } + + public DataTable GetTableFrom( SelectQueryBuilder builder ) { + return GetTableFrom( builder.ToString( ) ); + } + + private DataTable GetTableFrom( string sqlQuery ) { + using ( IDbConnection connection = _connectionFactory.Create( ) ) { + IDbCommand command = connection.CreateCommand( ); + command.CommandText = sqlQuery; + connection.Open( ); + IDataReader reader = command.ExecuteReader( ); + DataTable table = new DataTable( ); + table.Load( reader ); + return table; + } + } + + private int ExecuteBuilderQuery( ICollection< CommandParameter > parameters, string commandText ) { + object scalar; + using ( IDbConnection connection = _connectionFactory.Create( ) ) { + IDbCommand command = connection.CreateCommand( ); + + foreach ( CommandParameter parameter in parameters ) { + IDataParameter commandParameter = command.CreateParameter( ); + commandParameter.ParameterName = "@" + parameter.ColumnName; + commandParameter.Value = parameter.Value; + command.Parameters.Add( commandParameter ); + } + + command.CommandText = commandText; + connection.Open( ); + scalar = command.ExecuteScalar( ); + } + return DBNull.Value != scalar ? Convert.ToInt32( scalar ) : -1; + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/IDatabaseConnectionFactory.cs b/src/app/Cmpp298.Assignment3.DataAccess/IDatabaseConnectionFactory.cs new file mode 100644 index 0000000..5460f87 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/IDatabaseConnectionFactory.cs @@ -0,0 +1,7 @@ +using System.Data; + +namespace Cmpp298.Assignment3.DataAccess { + public interface IDatabaseConnectionFactory { + IDbConnection Create( ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/IDatabaseGateway.cs b/src/app/Cmpp298.Assignment3.DataAccess/IDatabaseGateway.cs new file mode 100644 index 0000000..363dad4 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/IDatabaseGateway.cs @@ -0,0 +1,13 @@ +using System.Data; + +namespace Cmpp298.Assignment3.DataAccess { + public interface IDatabaseGateway { + DataTable GetTableFrom( SelectQueryBuilder builder ); + + int InsertRowUsing( InsertQueryBuilder builder ); + + void UpdateRowUsing( UpdateQueryBuilder builder ); + + void Execute( string query ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/InnerJoin.cs b/src/app/Cmpp298.Assignment3.DataAccess/InnerJoin.cs new file mode 100644 index 0000000..bff9fcc --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/InnerJoin.cs @@ -0,0 +1,23 @@ +namespace Cmpp298.Assignment3.DataAccess { + public class InnerJoin { + public InnerJoin( string leftTableName, string leftColumnName, string rightTableName, string rightColumnName ) + : this( new DatabaseColumn( leftTableName, leftColumnName ), new DatabaseColumn( rightTableName, rightColumnName ) ) {} + + public InnerJoin( DatabaseColumn leftColumn, DatabaseColumn rightColumn ) { + _leftColumn = leftColumn; + _rightColumn = rightColumn; + } + + public override string ToString( ) { + return + string.Format( "INNER JOIN [{0}] ON [{0}].[{1}] = [{2}].[{3}]", + _leftColumn.TableName, + _leftColumn.ColumnName, + _rightColumn.TableName, + _rightColumn.ColumnName ); + } + + private readonly DatabaseColumn _leftColumn; + private readonly DatabaseColumn _rightColumn; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/InsertQueryBuilder.cs b/src/app/Cmpp298.Assignment3.DataAccess/InsertQueryBuilder.cs new file mode 100644 index 0000000..bbb3d9c --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/InsertQueryBuilder.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; +using System.Text; + +namespace Cmpp298.Assignment3.DataAccess { + public class InsertQueryBuilder { + private readonly string _tableName; + private IList< CommandParameter > _parameters; + + public InsertQueryBuilder( string tableName ) { + _tableName = tableName; + _parameters = new List< CommandParameter >( ); + } + + public IList< CommandParameter > Parameters { + get { return _parameters; } + } + + public void Add( DatabaseColumn column, string value ) { + _parameters.Add( new CommandParameter( column.ColumnName, value ) ); + } + + public override string ToString( ) { + StringBuilder builder = new StringBuilder( ); + builder.AppendFormat( "INSERT INTO {0} ({1}) VALUES ({2});SELECT @@IDENTITY;", _tableName, + GetParameterNames( string.Empty ), + GetParameterNames( "@" ) ); + return builder.ToString( ); + } + + private string GetParameterNames( string prefix ) { + StringBuilder builder = new StringBuilder( ); + foreach ( CommandParameter parameter in _parameters ) { + builder.AppendFormat( "{0}{1},", prefix, parameter.ColumnName ); + } + builder.Remove( builder.Length - 1, 1 ); + return builder.ToString( ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/Properties/AssemblyInfo.cs b/src/app/Cmpp298.Assignment3.DataAccess/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4b3d3f1 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3.DataAccess")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.DataAccess")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6900dc95-1e04-424e-8c9d-f18dbb9c8251")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/app/Cmpp298.Assignment3.DataAccess/SelectQueryBuilder.cs b/src/app/Cmpp298.Assignment3.DataAccess/SelectQueryBuilder.cs new file mode 100644 index 0000000..a91e657 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/SelectQueryBuilder.cs @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using System.Text; + +namespace Cmpp298.Assignment3.DataAccess { + public class SelectQueryBuilder { + private readonly string _tableName; + private IList< DatabaseColumn > _selectColumns; + private IList< InnerJoin > _innerJoins; + private WhereClause _whereClause; + + public SelectQueryBuilder( string tableName ) { + _tableName = tableName; + _innerJoins = new List< InnerJoin >( ); + _selectColumns = new List< DatabaseColumn >( ); + } + + public void AddColumn( DatabaseColumn column ) { + _selectColumns.Add( column ); + } + + public void InnerJoin( DatabaseColumn leftColumn, DatabaseColumn rightColumn ) { + _innerJoins.Add( new InnerJoin( leftColumn, rightColumn ) ); + } + + public void Where( DatabaseColumn column, string value ) { + _whereClause = new WhereClause( column, value ); + } + + public override string ToString( ) { + return string.Format( "SELECT {0} FROM {1} {2} {3};", GetColumnNames( ), _tableName, GetInnerJoins( ), _whereClause ); + } + + private string GetInnerJoins( ) { + StringBuilder builder = new StringBuilder( ); + foreach ( InnerJoin innerJoin in _innerJoins ) { + builder.Append( innerJoin.ToString( ) ); + } + return builder.ToString( ); + } + + private string GetColumnNames( ) { + StringBuilder builder = new StringBuilder( ); + foreach ( DatabaseColumn selectColumn in _selectColumns ) { + builder.AppendFormat( "{0},", selectColumn ); + } + builder.Remove( builder.Length - 1, 1 ); + return builder.ToString( ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/Tables.cs b/src/app/Cmpp298.Assignment3.DataAccess/Tables.cs new file mode 100644 index 0000000..549d7c8 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/Tables.cs @@ -0,0 +1,30 @@ +namespace Cmpp298.Assignment3.DataAccess { + public sealed class Tables { + public sealed class Invoices { + public const string TableName = "Invoices"; + public static readonly DatabaseColumn InvoiceID = new DatabaseColumn( TableName, "InvoiceID" ); + public static readonly DatabaseColumn InvoiceNumber = new DatabaseColumn( TableName, "InvoiceNumber" ); + public static readonly DatabaseColumn InvoiceDate = new DatabaseColumn( TableName, "InvoiceDate" ); + public static readonly DatabaseColumn InvoiceTotal = new DatabaseColumn( TableName, "InvoiceTotal" ); + public static readonly DatabaseColumn PaymentTotal = new DatabaseColumn( TableName, "PaymentTotal" ); + public static readonly DatabaseColumn CreditTotal = new DatabaseColumn( TableName, "CreditTotal" ); + public static readonly DatabaseColumn DueDate = new DatabaseColumn( TableName, "DueDate" ); + public static readonly DatabaseColumn PaymentDate = new DatabaseColumn( TableName, "PaymentDate" ); + public static readonly DatabaseColumn TermsID = new DatabaseColumn( TableName, "TermsID" ); + public static readonly DatabaseColumn VendorID = new DatabaseColumn( TableName, "VendorID" ); + } + + public sealed class Vendors { + public const string TableName = "Vendors"; + public static readonly DatabaseColumn VendorID = new DatabaseColumn( TableName, "VendorID" ); + public static readonly DatabaseColumn Name = new DatabaseColumn( TableName, "Name" ); + } + + public sealed class Terms { + public const string TableName = "Terms"; + public static readonly DatabaseColumn TermsID = new DatabaseColumn( TableName, "TermsID" ); + public static readonly DatabaseColumn Description = new DatabaseColumn( TableName, "Description" ); + public static readonly DatabaseColumn DueDays = new DatabaseColumn( TableName, "DueDays" ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/UpdateQueryBuilder.cs b/src/app/Cmpp298.Assignment3.DataAccess/UpdateQueryBuilder.cs new file mode 100644 index 0000000..39654b1 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/UpdateQueryBuilder.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; +using System.Text; + +namespace Cmpp298.Assignment3.DataAccess { + public class UpdateQueryBuilder { + private IList< CommandParameter > _parameters; + private WhereClause _where; + + public UpdateQueryBuilder( DatabaseColumn whereColumn, string whereValue ) + : this( new List< CommandParameter >( ), new WhereClause( whereColumn, whereValue ) ) {} + + public UpdateQueryBuilder( IList< CommandParameter > parameters, WhereClause where ) { + _parameters = parameters; + _where = where; + } + + public IList< CommandParameter > Parameters { + get { return _parameters; } + } + + public void Add( DatabaseColumn column, string value ) { + _parameters.Add( new CommandParameter( column.ColumnName, value ) ); + } + + public override string ToString( ) { + StringBuilder builder = new StringBuilder( ); + builder.AppendFormat( "UPDATE [{0}] SET {1};", _where.Column.TableName, GetParameterNames( ) ); + + return builder.ToString( ); + } + + private string GetParameterNames( ) { + StringBuilder builder = new StringBuilder( ); + foreach ( CommandParameter parameter in _parameters ) { + builder.AppendFormat( "[{0}].[{1}] = @{1},", _where.Column.TableName, parameter.ColumnName ); + } + builder.Remove( builder.Length - 1, 1 ); + builder.Append( _where ); + return builder.ToString( ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.DataAccess/WhereClause.cs b/src/app/Cmpp298.Assignment3.DataAccess/WhereClause.cs new file mode 100644 index 0000000..3912f09 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.DataAccess/WhereClause.cs @@ -0,0 +1,23 @@ +namespace Cmpp298.Assignment3.DataAccess { + public class WhereClause { + private readonly DatabaseColumn _column; + private readonly string _value; + + public WhereClause( DatabaseColumn column, string value ) { + _column = column; + _value = value; + } + + public DatabaseColumn Column { + get { return _column; } + } + + public string Value { + get { return _value; } + } + + public override string ToString( ) { + return string.Format( " WHERE [{0}].[{1}] = {2};", _column.TableName, _column.ColumnName, _value ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Adapters/Cmpp298.Assignment3.Desktop.Adapters.csproj b/src/app/Cmpp298.Assignment3.Desktop.Adapters/Cmpp298.Assignment3.Desktop.Adapters.csproj new file mode 100644 index 0000000..f305b26 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Adapters/Cmpp298.Assignment3.Desktop.Adapters.csproj @@ -0,0 +1,54 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {097FDBD3-0339-4D79-AE80-1AD1407B15F0} + Library + Properties + Cmpp298.Assignment3.Desktop.Adapters + Cmpp298.Assignment3.Desktop.Adapters + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B} + Cmpp298.Assignment3.Dto + + + + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Adapters/DesktopDropDownList.cs b/src/app/Cmpp298.Assignment3.Desktop.Adapters/DesktopDropDownList.cs new file mode 100644 index 0000000..1f3a2ee --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Adapters/DesktopDropDownList.cs @@ -0,0 +1,40 @@ +/* + * Created by: Mo + * Created: Sunday, August 12, 2007 + */ + +using System.Collections.Generic; +using System.Windows.Forms; +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Desktop.Adapters { + public class DesktopDropDownList : IDropDownListAdapter { + public DesktopDropDownList( ComboBox dropDown ) { + _dropDown = dropDown; + _pairs = new Dictionary< string, IDropDownListItem >( ); + } + + public void BindTo( IEnumerable< IDropDownListItem > pairs ) { + if ( pairs != null ) { + _pairs = new Dictionary< string, IDropDownListItem >( ); + + foreach ( IDropDownListItem pair in pairs ) { + _dropDown.Items.Add( pair.Text ); + _pairs.Add( pair.Text, pair ); + } + _dropDown.SelectedIndex = 0; + } + } + + public IDropDownListItem SelectedItem { + get { return !string.IsNullOrEmpty( _dropDown.Text ) ? _pairs[ _dropDown.Text ] : null; } + } + + public void SetSelectedItemTo( string text ) { + _dropDown.SelectedIndex = _dropDown.Items.IndexOf( text ); + } + + private ComboBox _dropDown; + private IDictionary< string, IDropDownListItem > _pairs; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Adapters/Properties/AssemblyInfo.cs b/src/app/Cmpp298.Assignment3.Desktop.Adapters/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..eede991 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Adapters/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3.Desktop.Adapters")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.Desktop.Adapters")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7ae97ab9-7f1b-4f1c-bf02-39a0f7c2fee1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/Cmpp298.Assignment3.Desktop.Presentation.csproj b/src/app/Cmpp298.Assignment3.Desktop.Presentation/Cmpp298.Assignment3.Desktop.Presentation.csproj new file mode 100644 index 0000000..f32ce81 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/Cmpp298.Assignment3.Desktop.Presentation.csproj @@ -0,0 +1,68 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {62EA2002-B0ED-4E9C-945E-B77552A0669C} + Library + Properties + Cmpp298.Assignment3.Desktop.Presentation + Cmpp298.Assignment3.Desktop.Presentation + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + {C11B2649-751A-4F49-B28D-AB36A8213674} + Cmpp298.Assignment3.Domain + + + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B} + Cmpp298.Assignment3.Dto + + + {A747CA6E-EEA1-42E0-BA90-69317F8BF45D} + Cmpp298.Assignment3.Task + + + + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/DeleteInvoicePresenter.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/DeleteInvoicePresenter.cs new file mode 100644 index 0000000..4912e30 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/DeleteInvoicePresenter.cs @@ -0,0 +1,36 @@ +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Task; + +namespace Cmpp298.Assignment3.Presentation { + public class DeleteInvoicePresenter { + private readonly string _invoiceId; + private readonly IDeleteInvoiceView _view; + private readonly IInvoiceTask _invoiceTask; + + public DeleteInvoicePresenter( string invoiceId, IDeleteInvoiceView view ) + : this( invoiceId, view, new InvoiceTask( ) ) {} + + public DeleteInvoicePresenter( string invoiceId, IDeleteInvoiceView view, IInvoiceTask invoiceTask ) { + _invoiceId = invoiceId; + _view = view; + _invoiceTask = invoiceTask; + } + + public void Initialize( ) { + DisplayInvoiceDto dto = _invoiceTask.GetInvoiceBy( _invoiceId ); + _view.VendorName = dto.VendorName; + _view.InvoiceNumber = dto.InvoiceNumber; + _view.InvoiceDate = dto.InvoiceDate; + _view.InvoiceTotal = dto.InvoiceTotal; + _view.PaymentTotal = dto.PaymentTotal; + _view.CreditTotal = dto.CreditTotal; + _view.DueDate = dto.DueDate; + _view.PaymentDate = dto.PaymentDate; + _view.Terms = dto.Terms; + } + + public void DeleteInvoice( ) { + _invoiceTask.DeleteInvoice( _invoiceId ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/EditInvoicePresenter.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/EditInvoicePresenter.cs new file mode 100644 index 0000000..eaaf8e6 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/EditInvoicePresenter.cs @@ -0,0 +1,62 @@ +using Cmpp298.Assignment3.Domain; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Task; + +namespace Cmpp298.Assignment3.Presentation { + public class EditInvoicePresenter { + private readonly string _invoiceId; + private readonly IEditInvoiceView _view; + private readonly IInvoiceTask _task; + private readonly ITermTask _termTask; + + public EditInvoicePresenter( string invoiceId, IEditInvoiceView view ) + : this( invoiceId, view, new InvoiceTask( ), new TermTask( ) ) {} + + public EditInvoicePresenter( string invoiceId, IEditInvoiceView view, IInvoiceTask task, ITermTask termTask ) { + _view = view; + _task = task; + _termTask = termTask; + _invoiceId = invoiceId; + } + + public void Initialize( ) { + _view.TermsDropDown.BindTo( _termTask.GetAll( ) ); + UpdateViewFrom( _task.GetInvoiceBy( _invoiceId ) ); + } + + public void UpdateInvoice( ) { + if ( IsValidInput( ) ) { + _task.UpdateInvoice( CreateDtoFromView( ) ); + } + else { + _view.ShowError( "Invalid input detected" ); + } + } + + private void UpdateViewFrom( DisplayInvoiceDto dto ) { + _view.VendorName = dto.VendorName; + _view.InvoiceNumber = dto.InvoiceNumber; + _view.InvoiceDate = dto.InvoiceDate; + _view.InvoiceTotal = dto.InvoiceTotal; + _view.PaymentTotal = dto.PaymentTotal; + _view.CreditTotal = dto.CreditTotal; + _view.DueDate = dto.DueDate; + _view.PaymentDate = dto.PaymentDate; + _view.TermsDropDown.SetSelectedItemTo( dto.Terms ); + } + + private bool IsValidInput( ) { + AmountEntrySpecification specification = new AmountEntrySpecification( ); + return + specification.IsSatisfiedBy( _view.CreditTotal ) + && specification.IsSatisfiedBy( _view.PaymentTotal ) + && specification.IsSatisfiedBy( _view.InvoiceTotal ); + } + + private UpdateInvoiceDto CreateDtoFromView( ) { + return + new UpdateInvoiceDto( _invoiceId, _view.InvoiceNumber, _view.InvoiceDate, _view.InvoiceTotal, _view.PaymentTotal, + _view.CreditTotal, _view.DueDate, _view.PaymentDate, _view.TermsDropDown.SelectedItem.Value ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/IDeleteInvoiceView.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/IDeleteInvoiceView.cs new file mode 100644 index 0000000..fb547bf --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/IDeleteInvoiceView.cs @@ -0,0 +1,13 @@ +namespace Cmpp298.Assignment3.Presentation { + public interface IDeleteInvoiceView { + string VendorName { set; } + string InvoiceNumber { set; } + string InvoiceDate { set; } + string InvoiceTotal { set; } + string PaymentTotal { set; } + string CreditTotal { set; } + string DueDate { set; } + string PaymentDate { set; } + string Terms { set; } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/IEditInvoiceView.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/IEditInvoiceView.cs new file mode 100644 index 0000000..d9c195e --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/IEditInvoiceView.cs @@ -0,0 +1,25 @@ +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Presentation { + public interface IEditInvoiceView { + IDropDownListAdapter TermsDropDown { get; } + + string VendorName { get; set; } + + string InvoiceNumber { get; set; } + + string InvoiceDate { get; set; } + + string InvoiceTotal { get; set; } + + string PaymentTotal { get; set; } + + string CreditTotal { get; set; } + + string DueDate { get; set; } + + string PaymentDate { get; set; } + + void ShowError( string message ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/IInvoicesMainView.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/IInvoicesMainView.cs new file mode 100644 index 0000000..bdb3fc2 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/IInvoicesMainView.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Presentation { + public interface IInvoicesMainView { + IDropDownListAdapter VendorNames { get; } + void BindTo( IEnumerable< DisplayInvoiceDto > invoices ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/INewInvoiceView.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/INewInvoiceView.cs new file mode 100644 index 0000000..9b74a93 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/INewInvoiceView.cs @@ -0,0 +1,25 @@ +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Presentation { + public interface INewInvoiceView { + void BindTo( DisplayVendorNameDto displayVendorNameDto ); + + IDropDownListAdapter Terms { get; } + + string InvoiceNumber { get; set; } + + string InvoiceDate { get; } + + string InvoiceTotal { get; } + + string PaymentTotal { get; } + + string CreditTotal { get; } + + string DueDate { get; } + + string PaymentDate { get; } + + void ShowError( string message ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/InvoicesMainPresenter.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/InvoicesMainPresenter.cs new file mode 100644 index 0000000..39286d0 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/InvoicesMainPresenter.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Task; + +namespace Cmpp298.Assignment3.Presentation { + public class InvoicesMainPresenter { + private readonly IInvoiceTask _invoiceTask; + private readonly IInvoicesMainView _view; + private readonly IVendorTask _vendorsTask; + + public InvoicesMainPresenter( IInvoicesMainView view ) : this( view, new VendorTask( ), new InvoiceTask( ) ) {} + + public InvoicesMainPresenter( IInvoicesMainView view, IVendorTask vendorsTask, IInvoiceTask invoiceTask ) { + _view = view; + _vendorsTask = vendorsTask; + _invoiceTask = invoiceTask; + } + + public void Initialize( ) { + _view.VendorNames.BindTo( _vendorsTask.GetAllVendorNames( ) ); + } + + public void LoadInvoices( ) { + IDropDownListItem selectedItem = _view.VendorNames.SelectedItem; + if ( selectedItem != null ) { + IEnumerable< DisplayInvoiceDto > enumerable = _invoiceTask.GetAllInvoices( selectedItem.Value ); + _view.BindTo( enumerable ); + } + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/NewInvoicePresenter.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/NewInvoicePresenter.cs new file mode 100644 index 0000000..83f30dc --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/NewInvoicePresenter.cs @@ -0,0 +1,54 @@ +using System; +using Cmpp298.Assignment3.Domain; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Task; + +namespace Cmpp298.Assignment3.Presentation { + public class NewInvoicePresenter { + private readonly string _vendorId; + private readonly INewInvoiceView _view; + private readonly IInvoiceTask _invoiceTask; + private readonly IVendorTask _vendorTask; + private readonly ITermTask _termTask; + + public NewInvoicePresenter( string vendorId, INewInvoiceView view ) + : this( vendorId, view, new InvoiceTask( ), new VendorTask( ), new TermTask( ) ) {} + + public NewInvoicePresenter( string vendorId, INewInvoiceView view, IInvoiceTask invoiceTask, IVendorTask vendorTask, + ITermTask termTask ) { + _vendorId = vendorId; + _view = view; + _invoiceTask = invoiceTask; + _vendorTask = vendorTask; + _termTask = termTask; + } + + public void Load( ) { + _view.BindTo( _vendorTask.FindVendorNameBy( _vendorId ) ); + _view.InvoiceNumber = Guid.NewGuid( ).ToString( ); + _view.Terms.BindTo( _termTask.GetAll( ) ); + } + + public void SaveInvoice( ) { + if ( IsValidInput( ) ) { + _invoiceTask.SaveNewInvoice( CreateDtoFromView( ) ); + } + else { + _view.ShowError( "Invalid input detected!" ); + } + } + + private bool IsValidInput( ) { + AmountEntrySpecification specification = new AmountEntrySpecification( ); + return + specification.IsSatisfiedBy( _view.CreditTotal ) + && specification.IsSatisfiedBy( _view.PaymentTotal ) + && specification.IsSatisfiedBy( _view.InvoiceTotal ); + } + + private SaveInvoiceDto CreateDtoFromView( ) { + return new SaveInvoiceDto( _vendorId, _view.InvoiceNumber, _view.InvoiceDate, _view.InvoiceTotal, _view.PaymentTotal, + _view.CreditTotal, _view.DueDate, _view.PaymentDate, _view.Terms.SelectedItem.Value ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.Presentation/Properties/AssemblyInfo.cs b/src/app/Cmpp298.Assignment3.Desktop.Presentation/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b2a7f1d --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.Presentation/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3.Desktop.Presentation")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.Desktop.Presentation")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("38eca514-6401-4b26-b3bf-19b7ae2f8b80")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/App.config b/src/app/Cmpp298.Assignment3.Desktop.UI/App.config new file mode 100644 index 0000000..9f94d59 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/App.config @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/Cmpp298.Assignment3.Desktop.UI.csproj b/src/app/Cmpp298.Assignment3.Desktop.UI/Cmpp298.Assignment3.Desktop.UI.csproj new file mode 100644 index 0000000..b744172 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/Cmpp298.Assignment3.Desktop.UI.csproj @@ -0,0 +1,124 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {21D2672E-ED28-4AFF-BD5F-8D80469EA681} + WinExe + Properties + Cmpp298.Assignment3.Desktop.UI + Cmpp298.Assignment3.Desktop.UI + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + Form + + + DeleteInvoiceView.cs + + + Form + + + EditInvoiceView.cs + + + Form + + + NewInvoiceView.cs + + + Form + + + InvoicesMainView.cs + + + + + Designer + DeleteInvoiceView.cs + + + Designer + EditInvoiceView.cs + + + Designer + NewInvoiceView.cs + + + Designer + InvoicesMainView.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {097FDBD3-0339-4D79-AE80-1AD1407B15F0} + Cmpp298.Assignment3.Desktop.Adapters + + + {62EA2002-B0ED-4E9C-945E-B77552A0669C} + Cmpp298.Assignment3.Desktop.Presentation + + + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B} + Cmpp298.Assignment3.Dto + + + + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.Designer.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.Designer.cs new file mode 100644 index 0000000..dda1628 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.Designer.cs @@ -0,0 +1,297 @@ +namespace Cmpp298.Assignment3.Desktop.UI +{ + partial class DeleteInvoiceView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if ( disposing && ( components != null ) ) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.uxDeleteButton = new System.Windows.Forms.Button(); + this.uxCancelButton = new System.Windows.Forms.Button(); + this.uxCreditTotalTextBox = new System.Windows.Forms.TextBox(); + this.uxPaymentTotalTextBox = new System.Windows.Forms.TextBox(); + this.uxInvoiceTotalTextBox = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.uxVendorNameTextBox = new System.Windows.Forms.TextBox(); + this.uxInvoiceNumberTextBox = new System.Windows.Forms.TextBox(); + this.uxInvoiceDateTextBox = new System.Windows.Forms.TextBox(); + this.uxTermsTextBox = new System.Windows.Forms.TextBox(); + this.uxPaymentDateTextBox = new System.Windows.Forms.TextBox(); + this.uxDueDateTextBox = new System.Windows.Forms.TextBox(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(6, 200); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(39, 13); + this.label9.TabIndex = 8; + this.label9.Text = "Terms:"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(6, 177); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(77, 13); + this.label8.TabIndex = 7; + this.label8.Text = "Payment Date:"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(6, 154); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(56, 13); + this.label7.TabIndex = 6; + this.label7.Text = "Due Date:"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(6, 131); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(64, 13); + this.label6.TabIndex = 5; + this.label6.Text = "Credit Total:"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(6, 108); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(78, 13); + this.label5.TabIndex = 4; + this.label5.Text = "Payment Total:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 85); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(72, 13); + this.label4.TabIndex = 3; + this.label4.Text = "Invoice Total:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 62); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(71, 13); + this.label3.TabIndex = 2; + this.label3.Text = "Invoice Date:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 39); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(55, 13); + this.label2.TabIndex = 1; + this.label2.Text = "Invoice #:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 16); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(75, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Vendor Name:"; + // + // uxDeleteButton + // + this.uxDeleteButton.Location = new System.Drawing.Point(155, 243); + this.uxDeleteButton.Name = "uxDeleteButton"; + this.uxDeleteButton.Size = new System.Drawing.Size(75, 23); + this.uxDeleteButton.TabIndex = 19; + this.uxDeleteButton.Text = "&Delete"; + this.uxDeleteButton.UseVisualStyleBackColor = true; + // + // uxCancelButton + // + this.uxCancelButton.Location = new System.Drawing.Point(236, 243); + this.uxCancelButton.Name = "uxCancelButton"; + this.uxCancelButton.Size = new System.Drawing.Size(75, 23); + this.uxCancelButton.TabIndex = 18; + this.uxCancelButton.Text = "&Cancel"; + this.uxCancelButton.UseVisualStyleBackColor = true; + // + // uxCreditTotalTextBox + // + this.uxCreditTotalTextBox.Location = new System.Drawing.Point(111, 124); + this.uxCreditTotalTextBox.Name = "uxCreditTotalTextBox"; + this.uxCreditTotalTextBox.ReadOnly = true; + this.uxCreditTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxCreditTotalTextBox.TabIndex = 17; + // + // uxPaymentTotalTextBox + // + this.uxPaymentTotalTextBox.Location = new System.Drawing.Point(111, 101); + this.uxPaymentTotalTextBox.Name = "uxPaymentTotalTextBox"; + this.uxPaymentTotalTextBox.ReadOnly = true; + this.uxPaymentTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxPaymentTotalTextBox.TabIndex = 16; + // + // uxInvoiceTotalTextBox + // + this.uxInvoiceTotalTextBox.Location = new System.Drawing.Point(111, 78); + this.uxInvoiceTotalTextBox.Name = "uxInvoiceTotalTextBox"; + this.uxInvoiceTotalTextBox.ReadOnly = true; + this.uxInvoiceTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceTotalTextBox.TabIndex = 15; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.uxVendorNameTextBox); + this.groupBox1.Controls.Add(this.uxInvoiceNumberTextBox); + this.groupBox1.Controls.Add(this.uxInvoiceDateTextBox); + this.groupBox1.Controls.Add(this.uxTermsTextBox); + this.groupBox1.Controls.Add(this.uxPaymentDateTextBox); + this.groupBox1.Controls.Add(this.uxDueDateTextBox); + this.groupBox1.Controls.Add(this.uxDeleteButton); + this.groupBox1.Controls.Add(this.uxCancelButton); + this.groupBox1.Controls.Add(this.uxCreditTotalTextBox); + this.groupBox1.Controls.Add(this.uxPaymentTotalTextBox); + this.groupBox1.Controls.Add(this.uxInvoiceTotalTextBox); + this.groupBox1.Controls.Add(this.label9); + this.groupBox1.Controls.Add(this.label8); + this.groupBox1.Controls.Add(this.label7); + this.groupBox1.Controls.Add(this.label6); + this.groupBox1.Controls.Add(this.label5); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(325, 281); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + // + // uxVendorNameTextBox + // + this.uxVendorNameTextBox.Location = new System.Drawing.Point(111, 13); + this.uxVendorNameTextBox.Name = "uxVendorNameTextBox"; + this.uxVendorNameTextBox.ReadOnly = true; + this.uxVendorNameTextBox.Size = new System.Drawing.Size(200, 20); + this.uxVendorNameTextBox.TabIndex = 25; + // + // uxInvoiceNumberTextBox + // + this.uxInvoiceNumberTextBox.Location = new System.Drawing.Point(111, 32); + this.uxInvoiceNumberTextBox.Name = "uxInvoiceNumberTextBox"; + this.uxInvoiceNumberTextBox.ReadOnly = true; + this.uxInvoiceNumberTextBox.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceNumberTextBox.TabIndex = 24; + // + // uxInvoiceDateTextBox + // + this.uxInvoiceDateTextBox.Location = new System.Drawing.Point(111, 55); + this.uxInvoiceDateTextBox.Name = "uxInvoiceDateTextBox"; + this.uxInvoiceDateTextBox.ReadOnly = true; + this.uxInvoiceDateTextBox.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceDateTextBox.TabIndex = 23; + // + // uxTermsTextBox + // + this.uxTermsTextBox.Location = new System.Drawing.Point(111, 197); + this.uxTermsTextBox.Name = "uxTermsTextBox"; + this.uxTermsTextBox.ReadOnly = true; + this.uxTermsTextBox.Size = new System.Drawing.Size(200, 20); + this.uxTermsTextBox.TabIndex = 22; + // + // uxPaymentDateTextBox + // + this.uxPaymentDateTextBox.Location = new System.Drawing.Point(111, 174); + this.uxPaymentDateTextBox.Name = "uxPaymentDateTextBox"; + this.uxPaymentDateTextBox.ReadOnly = true; + this.uxPaymentDateTextBox.Size = new System.Drawing.Size(200, 20); + this.uxPaymentDateTextBox.TabIndex = 21; + // + // uxDueDateTextBox + // + this.uxDueDateTextBox.Location = new System.Drawing.Point(111, 151); + this.uxDueDateTextBox.Name = "uxDueDateTextBox"; + this.uxDueDateTextBox.ReadOnly = true; + this.uxDueDateTextBox.Size = new System.Drawing.Size(200, 20); + this.uxDueDateTextBox.TabIndex = 20; + // + // DeleteInvoiceView + // + this.AcceptButton = this.uxDeleteButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.uxCancelButton; + this.ClientSize = new System.Drawing.Size(352, 310); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "DeleteInvoiceView"; + this.Text = "DeleteInvoiceView"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button uxDeleteButton; + private System.Windows.Forms.Button uxCancelButton; + private System.Windows.Forms.TextBox uxCreditTotalTextBox; + private System.Windows.Forms.TextBox uxPaymentTotalTextBox; + private System.Windows.Forms.TextBox uxInvoiceTotalTextBox; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox uxDueDateTextBox; + private System.Windows.Forms.TextBox uxPaymentDateTextBox; + private System.Windows.Forms.TextBox uxTermsTextBox; + private System.Windows.Forms.TextBox uxInvoiceDateTextBox; + private System.Windows.Forms.TextBox uxInvoiceNumberTextBox; + private System.Windows.Forms.TextBox uxVendorNameTextBox; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.cs new file mode 100644 index 0000000..c707956 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.cs @@ -0,0 +1,59 @@ +using System.Windows.Forms; +using Cmpp298.Assignment3.Presentation; + +namespace Cmpp298.Assignment3.Desktop.UI { + public partial class DeleteInvoiceView : Form, IDeleteInvoiceView { + private DeleteInvoicePresenter _presenter; + + public DeleteInvoiceView( string invoiceId ) { + InitializeComponent( ); + _presenter = new DeleteInvoicePresenter( invoiceId, this ); + + uxCancelButton.Click += delegate { Close( ); }; + uxDeleteButton.Click += delegate { DeleteAndCloseWindow( ); }; + + _presenter.Initialize( ); + } + + public string VendorName { + set { uxVendorNameTextBox.Text = value; } + } + + public string InvoiceNumber { + set { uxInvoiceNumberTextBox.Text = value; } + } + + public string InvoiceDate { + set { uxInvoiceDateTextBox.Text = value; } + } + + public string InvoiceTotal { + set { uxInvoiceTotalTextBox.Text = value; } + } + + public string PaymentTotal { + set { uxPaymentTotalTextBox.Text = value; } + } + + public string CreditTotal { + set { uxCreditTotalTextBox.Text = value; } + } + + public string DueDate { + set { uxDueDateTextBox.Text = value; } + } + + public string PaymentDate { + set { uxPaymentDateTextBox.Text = value; } + } + + public string Terms { + set { uxTermsTextBox.Text = value; } + } + + private void DeleteAndCloseWindow( ) { + _presenter.DeleteInvoice( ); + Close( ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.resx b/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.resx new file mode 100644 index 0000000..ff31a6d --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/DeleteInvoiceView.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.Designer.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.Designer.cs new file mode 100644 index 0000000..e25e1b2 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.Designer.cs @@ -0,0 +1,287 @@ +namespace Cmpp298.Assignment3.Desktop.UI +{ + partial class EditInvoiceView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if ( disposing && ( components != null ) ) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.uxTermsDropDownList = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.uxInvoiceDatePicker = new System.Windows.Forms.DateTimePicker(); + this.uxVendorNameTextBox = new System.Windows.Forms.TextBox(); + this.uxInvoiceNumberTextBox = new System.Windows.Forms.TextBox(); + this.uxUpdateButton = new System.Windows.Forms.Button(); + this.uxCancelButton = new System.Windows.Forms.Button(); + this.uxCreditTotalTextBox = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.uxPaymentTotalTextBox = new System.Windows.Forms.TextBox(); + this.uxInvoiceTotalTextBox = new System.Windows.Forms.TextBox(); + this.uxPaymentDatePicker = new System.Windows.Forms.DateTimePicker(); + this.uxDueDatePicker = new System.Windows.Forms.DateTimePicker(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // uxTermsDropDownList + // + this.uxTermsDropDownList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.uxTermsDropDownList.FormattingEnabled = true; + this.uxTermsDropDownList.Location = new System.Drawing.Point(111, 192); + this.uxTermsDropDownList.Name = "uxTermsDropDownList"; + this.uxTermsDropDownList.Size = new System.Drawing.Size(200, 21); + this.uxTermsDropDownList.TabIndex = 9; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(6, 200); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(39, 13); + this.label9.TabIndex = 8; + this.label9.Text = "Terms:"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(6, 177); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(77, 13); + this.label8.TabIndex = 7; + this.label8.Text = "Payment Date:"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(6, 154); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(56, 13); + this.label7.TabIndex = 6; + this.label7.Text = "Due Date:"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(6, 131); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(64, 13); + this.label6.TabIndex = 5; + this.label6.Text = "Credit Total:"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(6, 108); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(78, 13); + this.label5.TabIndex = 4; + this.label5.Text = "Payment Total:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 85); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(72, 13); + this.label4.TabIndex = 3; + this.label4.Text = "Invoice Total:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 62); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(71, 13); + this.label3.TabIndex = 2; + this.label3.Text = "Invoice Date:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 39); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(55, 13); + this.label2.TabIndex = 1; + this.label2.Text = "Invoice #:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 16); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(75, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Vendor Name:"; + // + // uxInvoiceDatePicker + // + this.uxInvoiceDatePicker.Location = new System.Drawing.Point(111, 55); + this.uxInvoiceDatePicker.Name = "uxInvoiceDatePicker"; + this.uxInvoiceDatePicker.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceDatePicker.TabIndex = 12; + // + // uxVendorNameTextBox + // + this.uxVendorNameTextBox.Location = new System.Drawing.Point(111, 13); + this.uxVendorNameTextBox.Name = "uxVendorNameTextBox"; + this.uxVendorNameTextBox.ReadOnly = true; + this.uxVendorNameTextBox.Size = new System.Drawing.Size(200, 20); + this.uxVendorNameTextBox.TabIndex = 21; + // + // uxInvoiceNumberTextBox + // + this.uxInvoiceNumberTextBox.Location = new System.Drawing.Point(111, 32); + this.uxInvoiceNumberTextBox.Name = "uxInvoiceNumberTextBox"; + this.uxInvoiceNumberTextBox.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceNumberTextBox.TabIndex = 20; + // + // uxUpdateButton + // + this.uxUpdateButton.Location = new System.Drawing.Point(155, 243); + this.uxUpdateButton.Name = "uxUpdateButton"; + this.uxUpdateButton.Size = new System.Drawing.Size(75, 23); + this.uxUpdateButton.TabIndex = 19; + this.uxUpdateButton.Text = "&Update"; + this.uxUpdateButton.UseVisualStyleBackColor = true; + // + // uxCancelButton + // + this.uxCancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.uxCancelButton.Location = new System.Drawing.Point(236, 243); + this.uxCancelButton.Name = "uxCancelButton"; + this.uxCancelButton.Size = new System.Drawing.Size(75, 23); + this.uxCancelButton.TabIndex = 18; + this.uxCancelButton.Text = "&Cancel"; + this.uxCancelButton.UseVisualStyleBackColor = true; + // + // uxCreditTotalTextBox + // + this.uxCreditTotalTextBox.Location = new System.Drawing.Point(111, 124); + this.uxCreditTotalTextBox.Name = "uxCreditTotalTextBox"; + this.uxCreditTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxCreditTotalTextBox.TabIndex = 17; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.uxVendorNameTextBox); + this.groupBox1.Controls.Add(this.uxInvoiceNumberTextBox); + this.groupBox1.Controls.Add(this.uxUpdateButton); + this.groupBox1.Controls.Add(this.uxCancelButton); + this.groupBox1.Controls.Add(this.uxCreditTotalTextBox); + this.groupBox1.Controls.Add(this.uxPaymentTotalTextBox); + this.groupBox1.Controls.Add(this.uxInvoiceTotalTextBox); + this.groupBox1.Controls.Add(this.uxPaymentDatePicker); + this.groupBox1.Controls.Add(this.uxDueDatePicker); + this.groupBox1.Controls.Add(this.uxInvoiceDatePicker); + this.groupBox1.Controls.Add(this.uxTermsDropDownList); + this.groupBox1.Controls.Add(this.label9); + this.groupBox1.Controls.Add(this.label8); + this.groupBox1.Controls.Add(this.label7); + this.groupBox1.Controls.Add(this.label6); + this.groupBox1.Controls.Add(this.label5); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(324, 283); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + // + // uxPaymentTotalTextBox + // + this.uxPaymentTotalTextBox.Location = new System.Drawing.Point(111, 101); + this.uxPaymentTotalTextBox.Name = "uxPaymentTotalTextBox"; + this.uxPaymentTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxPaymentTotalTextBox.TabIndex = 16; + // + // uxInvoiceTotalTextBox + // + this.uxInvoiceTotalTextBox.Location = new System.Drawing.Point(111, 78); + this.uxInvoiceTotalTextBox.Name = "uxInvoiceTotalTextBox"; + this.uxInvoiceTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceTotalTextBox.TabIndex = 15; + // + // uxPaymentDatePicker + // + this.uxPaymentDatePicker.Location = new System.Drawing.Point(111, 170); + this.uxPaymentDatePicker.Name = "uxPaymentDatePicker"; + this.uxPaymentDatePicker.Size = new System.Drawing.Size(200, 20); + this.uxPaymentDatePicker.TabIndex = 14; + // + // uxDueDatePicker + // + this.uxDueDatePicker.Location = new System.Drawing.Point(111, 147); + this.uxDueDatePicker.Name = "uxDueDatePicker"; + this.uxDueDatePicker.Size = new System.Drawing.Size(200, 20); + this.uxDueDatePicker.TabIndex = 13; + // + // EditInvoiceView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(348, 307); + this.Controls.Add(this.groupBox1); + this.Name = "EditInvoiceView"; + this.Text = "Edit Invoice"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox uxTermsDropDownList; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.DateTimePicker uxInvoiceDatePicker; + private System.Windows.Forms.TextBox uxVendorNameTextBox; + private System.Windows.Forms.TextBox uxInvoiceNumberTextBox; + private System.Windows.Forms.Button uxUpdateButton; + private System.Windows.Forms.Button uxCancelButton; + private System.Windows.Forms.TextBox uxCreditTotalTextBox; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox uxPaymentTotalTextBox; + private System.Windows.Forms.TextBox uxInvoiceTotalTextBox; + private System.Windows.Forms.DateTimePicker uxPaymentDatePicker; + private System.Windows.Forms.DateTimePicker uxDueDatePicker; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.cs new file mode 100644 index 0000000..fac853c --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.cs @@ -0,0 +1,77 @@ +using System; +using System.Windows.Forms; +using Cmpp298.Assignment3.Desktop.Adapters; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Presentation; + +namespace Cmpp298.Assignment3.Desktop.UI { + public partial class EditInvoiceView : Form, IEditInvoiceView { + private DesktopDropDownList _termsDropDown; + private EditInvoicePresenter _presenter; + + public EditInvoiceView( string invoiceId ) { + InitializeComponent( ); + + _termsDropDown = new DesktopDropDownList( uxTermsDropDownList ); + _presenter = new EditInvoicePresenter( invoiceId, this ); + + uxUpdateButton.Click += delegate { UpdateAndCloseWindow( ); }; + uxCancelButton.Click += delegate { Close( ); }; + + _presenter.Initialize( ); + } + + public IDropDownListAdapter TermsDropDown { + get { return _termsDropDown; } + } + + public string VendorName { + get { return uxVendorNameTextBox.Text; } + set { uxVendorNameTextBox.Text = value; } + } + + public string InvoiceNumber { + get { return uxInvoiceNumberTextBox.Text; } + set { uxInvoiceNumberTextBox.Text = value; } + } + + public string InvoiceDate { + get { return uxInvoiceDatePicker.Value.ToString( ); } + set { uxInvoiceDatePicker.Value = Convert.ToDateTime( value ); } + } + + public string InvoiceTotal { + get { return uxInvoiceTotalTextBox.Text; } + set { uxInvoiceTotalTextBox.Text = value; } + } + + public string PaymentTotal { + get { return uxPaymentTotalTextBox.Text; } + set { uxPaymentTotalTextBox.Text = value; } + } + + public string CreditTotal { + get { return uxCreditTotalTextBox.Text; } + set { uxCreditTotalTextBox.Text = value; } + } + + public string DueDate { + get { return uxDueDatePicker.Value.ToString( ); } + set { uxDueDatePicker.Value = Convert.ToDateTime( value ); } + } + + public string PaymentDate { + get { return uxPaymentDatePicker.Value.ToString( ); } + set { uxPaymentDatePicker.Value = Convert.ToDateTime( value ); } + } + + public void ShowError( string message ) { + MessageBox.Show( message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + + private void UpdateAndCloseWindow( ) { + _presenter.UpdateInvoice( ); + Close( ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.resx b/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.resx new file mode 100644 index 0000000..ff31a6d --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/EditInvoiceView.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.Designer.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.Designer.cs new file mode 100644 index 0000000..db43e55 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.Designer.cs @@ -0,0 +1,162 @@ +namespace Cmpp298.Assignment3.Desktop.UI +{ + public partial class InvoicesMainView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if ( disposing && ( components != null ) ) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.uxVendorsDropDown = new System.Windows.Forms.ComboBox(); + this.uxInvoicesGridView = new System.Windows.Forms.DataGridView(); + this.uxNewButton = new System.Windows.Forms.Button(); + this.uxEditButton = new System.Windows.Forms.Button(); + this.uxDeleteButton = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.uxRefreshButton = new System.Windows.Forms.Button(); + ( (System.ComponentModel.ISupportInitialize)( this.uxInvoicesGridView ) ).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(13, 14); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(44, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Vendor:"; + // + // uxVendorsDropDown + // + this.uxVendorsDropDown.Anchor = ( (System.Windows.Forms.AnchorStyles)( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.uxVendorsDropDown.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.uxVendorsDropDown.FormattingEnabled = true; + this.uxVendorsDropDown.Location = new System.Drawing.Point(75, 23); + this.uxVendorsDropDown.Name = "uxVendorsDropDown"; + this.uxVendorsDropDown.Size = new System.Drawing.Size(413, 21); + this.uxVendorsDropDown.TabIndex = 1; + // + // uxInvoicesGridView + // + this.uxInvoicesGridView.AllowUserToAddRows = false; + this.uxInvoicesGridView.AllowUserToDeleteRows = false; + this.uxInvoicesGridView.Anchor = ( (System.Windows.Forms.AnchorStyles)( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.uxInvoicesGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.uxInvoicesGridView.Location = new System.Drawing.Point(18, 50); + this.uxInvoicesGridView.Name = "uxInvoicesGridView"; + this.uxInvoicesGridView.ReadOnly = true; + this.uxInvoicesGridView.Size = new System.Drawing.Size(551, 354); + this.uxInvoicesGridView.TabIndex = 2; + // + // uxNewButton + // + this.uxNewButton.Anchor = ( (System.Windows.Forms.AnchorStyles)( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.uxNewButton.Location = new System.Drawing.Point(320, 398); + this.uxNewButton.Name = "uxNewButton"; + this.uxNewButton.Size = new System.Drawing.Size(75, 23); + this.uxNewButton.TabIndex = 3; + this.uxNewButton.Text = "&New..."; + this.uxNewButton.UseVisualStyleBackColor = true; + // + // uxEditButton + // + this.uxEditButton.Anchor = ( (System.Windows.Forms.AnchorStyles)( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.uxEditButton.Location = new System.Drawing.Point(401, 398); + this.uxEditButton.Name = "uxEditButton"; + this.uxEditButton.Size = new System.Drawing.Size(75, 23); + this.uxEditButton.TabIndex = 4; + this.uxEditButton.Text = "&Edit..."; + this.uxEditButton.UseVisualStyleBackColor = true; + // + // uxDeleteButton + // + this.uxDeleteButton.Anchor = ( (System.Windows.Forms.AnchorStyles)( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.uxDeleteButton.Location = new System.Drawing.Point(482, 398); + this.uxDeleteButton.Name = "uxDeleteButton"; + this.uxDeleteButton.Size = new System.Drawing.Size(75, 23); + this.uxDeleteButton.TabIndex = 5; + this.uxDeleteButton.Text = "&Delete..."; + this.uxDeleteButton.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Anchor = ( (System.Windows.Forms.AnchorStyles)( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.groupBox1.Controls.Add(this.uxRefreshButton); + this.groupBox1.Controls.Add(this.uxNewButton); + this.groupBox1.Controls.Add(this.uxEditButton); + this.groupBox1.Controls.Add(this.uxDeleteButton); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(563, 427); + this.groupBox1.TabIndex = 6; + this.groupBox1.TabStop = false; + // + // uxRefreshButton + // + this.uxRefreshButton.Anchor = ( (System.Windows.Forms.AnchorStyles)( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.uxRefreshButton.Location = new System.Drawing.Point(482, 11); + this.uxRefreshButton.Name = "uxRefreshButton"; + this.uxRefreshButton.Size = new System.Drawing.Size(75, 23); + this.uxRefreshButton.TabIndex = 6; + this.uxRefreshButton.Text = "&Refresh"; + this.uxRefreshButton.UseVisualStyleBackColor = true; + // + // InvoicesMainView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(587, 451); + this.Controls.Add(this.uxInvoicesGridView); + this.Controls.Add(this.uxVendorsDropDown); + this.Controls.Add(this.groupBox1); + this.Name = "InvoicesMainView"; + this.Text = "InvoicesMainView"; + ( (System.ComponentModel.ISupportInitialize)( this.uxInvoicesGridView ) ).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox uxVendorsDropDown; + private System.Windows.Forms.DataGridView uxInvoicesGridView; + private System.Windows.Forms.Button uxNewButton; + private System.Windows.Forms.Button uxEditButton; + private System.Windows.Forms.Button uxDeleteButton; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button uxRefreshButton; + } +} + diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.cs new file mode 100644 index 0000000..809d6d7 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.cs @@ -0,0 +1,64 @@ +using System.Collections.Generic; +using System.Windows.Forms; +using Cmpp298.Assignment3.Desktop.Adapters; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Presentation; + +namespace Cmpp298.Assignment3.Desktop.UI { + public partial class InvoicesMainView : Form, IInvoicesMainView { + private DesktopDropDownList _vendorsDropDown; + private InvoicesMainPresenter _presenter; + + public InvoicesMainView( ) { + InitializeComponent( ); + _vendorsDropDown = new DesktopDropDownList( uxVendorsDropDown ); + _presenter = new InvoicesMainPresenter( this ); + _presenter.Initialize( ); + + HookupEventHandlers( ); + _presenter.LoadInvoices( ); + } + + public IDropDownListAdapter VendorNames { + get { return _vendorsDropDown; } + } + + public void BindTo( IEnumerable< DisplayInvoiceDto > invoices ) { + uxInvoicesGridView.DataSource = invoices; + } + + private delegate void Callback( string invoiceId ); + + private void OpenDeleteScreen( ) { + OpenScreen( delegate( string invoiceId ) { new DeleteInvoiceView( invoiceId ).ShowDialog( ); } ); + } + + private void OpenEditScreen( ) { + OpenScreen( delegate( string invoiceId ) { new EditInvoiceView( invoiceId ).ShowDialog( ); } ); + } + + private void OpenScreen( Callback callback ) { + if ( uxInvoicesGridView.SelectedRows.Count == 1 ) { + string invoiceId = uxInvoicesGridView.SelectedRows[ 0 ].Cells[ "InvoiceId" ].Value.ToString( ); + callback( invoiceId ); + _presenter.LoadInvoices( ); + } + else { + MessageBox.Show( "Please select a single row", "Select a Row", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + private void HookupEventHandlers( ) { + uxNewButton.Click += delegate { OpenNewWindow( ); }; + uxEditButton.Click += delegate { OpenEditScreen( ); }; + uxDeleteButton.Click += delegate { OpenDeleteScreen( ); }; + uxRefreshButton.Click += delegate { _presenter.LoadInvoices( ); }; + uxVendorsDropDown.SelectedIndexChanged += delegate { _presenter.LoadInvoices( ); }; + } + + private void OpenNewWindow( ) { + new NewInvoiceView( _vendorsDropDown.SelectedItem.Value ).ShowDialog( ); + _presenter.LoadInvoices( ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.resx b/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.resx new file mode 100644 index 0000000..ff31a6d --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/InvoicesMainView.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.Designer.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.Designer.cs new file mode 100644 index 0000000..ba7346d --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.Designer.cs @@ -0,0 +1,294 @@ + +namespace Cmpp298.Assignment3.Desktop.UI +{ + partial class NewInvoiceView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if ( disposing && ( components != null ) ) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.uxSaveButton = new System.Windows.Forms.Button(); + this.uxCancelButton = new System.Windows.Forms.Button(); + this.uxCreditTotalTextBox = new System.Windows.Forms.TextBox(); + this.uxPaymentTotalTextBox = new System.Windows.Forms.TextBox(); + this.uxInvoiceTotalTextBox = new System.Windows.Forms.TextBox(); + this.uxPaymentDatePicker = new System.Windows.Forms.DateTimePicker(); + this.uxDueDatePicker = new System.Windows.Forms.DateTimePicker(); + this.uxInvoiceDatePicker = new System.Windows.Forms.DateTimePicker(); + this.uxTermsDropDownList = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.uxInvoiceNumberTextBox = new System.Windows.Forms.TextBox(); + this.uxVendorNameTextBox = new System.Windows.Forms.TextBox(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.uxVendorNameTextBox); + this.groupBox1.Controls.Add(this.uxInvoiceNumberTextBox); + this.groupBox1.Controls.Add(this.uxSaveButton); + this.groupBox1.Controls.Add(this.uxCancelButton); + this.groupBox1.Controls.Add(this.uxCreditTotalTextBox); + this.groupBox1.Controls.Add(this.uxPaymentTotalTextBox); + this.groupBox1.Controls.Add(this.uxInvoiceTotalTextBox); + this.groupBox1.Controls.Add(this.uxPaymentDatePicker); + this.groupBox1.Controls.Add(this.uxDueDatePicker); + this.groupBox1.Controls.Add(this.uxInvoiceDatePicker); + this.groupBox1.Controls.Add(this.uxTermsDropDownList); + this.groupBox1.Controls.Add(this.label9); + this.groupBox1.Controls.Add(this.label8); + this.groupBox1.Controls.Add(this.label7); + this.groupBox1.Controls.Add(this.label6); + this.groupBox1.Controls.Add(this.label5); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(325, 281); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + // + // uxSaveButton + // + this.uxSaveButton.Location = new System.Drawing.Point(155, 243); + this.uxSaveButton.Name = "uxSaveButton"; + this.uxSaveButton.Size = new System.Drawing.Size(75, 23); + this.uxSaveButton.TabIndex = 19; + this.uxSaveButton.Text = "&Save"; + this.uxSaveButton.UseVisualStyleBackColor = true; + // + // uxCancelButton + // + this.uxCancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.uxCancelButton.Location = new System.Drawing.Point(236, 243); + this.uxCancelButton.Name = "uxCancelButton"; + this.uxCancelButton.Size = new System.Drawing.Size(75, 23); + this.uxCancelButton.TabIndex = 18; + this.uxCancelButton.Text = "&Cancel"; + this.uxCancelButton.UseVisualStyleBackColor = true; + // + // uxCreditTotalTextBox + // + this.uxCreditTotalTextBox.Location = new System.Drawing.Point(111, 124); + this.uxCreditTotalTextBox.Name = "uxCreditTotalTextBox"; + this.uxCreditTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxCreditTotalTextBox.TabIndex = 17; + // + // uxPaymentTotalTextBox + // + this.uxPaymentTotalTextBox.Location = new System.Drawing.Point(111, 101); + this.uxPaymentTotalTextBox.Name = "uxPaymentTotalTextBox"; + this.uxPaymentTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxPaymentTotalTextBox.TabIndex = 16; + // + // uxInvoiceTotalTextBox + // + this.uxInvoiceTotalTextBox.Location = new System.Drawing.Point(111, 78); + this.uxInvoiceTotalTextBox.Name = "uxInvoiceTotalTextBox"; + this.uxInvoiceTotalTextBox.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceTotalTextBox.TabIndex = 15; + // + // uxPaymentDatePicker + // + this.uxPaymentDatePicker.Location = new System.Drawing.Point(111, 170); + this.uxPaymentDatePicker.Name = "uxPaymentDatePicker"; + this.uxPaymentDatePicker.Size = new System.Drawing.Size(200, 20); + this.uxPaymentDatePicker.TabIndex = 14; + // + // uxDueDatePicker + // + this.uxDueDatePicker.Location = new System.Drawing.Point(111, 147); + this.uxDueDatePicker.Name = "uxDueDatePicker"; + this.uxDueDatePicker.Size = new System.Drawing.Size(200, 20); + this.uxDueDatePicker.TabIndex = 13; + // + // uxInvoiceDatePicker + // + this.uxInvoiceDatePicker.Location = new System.Drawing.Point(111, 55); + this.uxInvoiceDatePicker.Name = "uxInvoiceDatePicker"; + this.uxInvoiceDatePicker.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceDatePicker.TabIndex = 12; + // + // uxTermsDropDownList + // + this.uxTermsDropDownList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.uxTermsDropDownList.FormattingEnabled = true; + this.uxTermsDropDownList.Location = new System.Drawing.Point(111, 192); + this.uxTermsDropDownList.Name = "uxTermsDropDownList"; + this.uxTermsDropDownList.Size = new System.Drawing.Size(200, 21); + this.uxTermsDropDownList.TabIndex = 9; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(6, 200); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(39, 13); + this.label9.TabIndex = 8; + this.label9.Text = "Terms:"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(6, 177); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(77, 13); + this.label8.TabIndex = 7; + this.label8.Text = "Payment Date:"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(6, 154); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(56, 13); + this.label7.TabIndex = 6; + this.label7.Text = "Due Date:"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(6, 131); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(64, 13); + this.label6.TabIndex = 5; + this.label6.Text = "Credit Total:"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(6, 108); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(78, 13); + this.label5.TabIndex = 4; + this.label5.Text = "Payment Total:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 85); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(72, 13); + this.label4.TabIndex = 3; + this.label4.Text = "Invoice Total:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 62); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(71, 13); + this.label3.TabIndex = 2; + this.label3.Text = "Invoice Date:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 39); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(55, 13); + this.label2.TabIndex = 1; + this.label2.Text = "Invoice #:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 16); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(75, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Vendor Name:"; + // + // uxInvoiceNumberTextBox + // + this.uxInvoiceNumberTextBox.Location = new System.Drawing.Point(111, 32); + this.uxInvoiceNumberTextBox.Name = "uxInvoiceNumberTextBox"; + this.uxInvoiceNumberTextBox.ReadOnly = true; + this.uxInvoiceNumberTextBox.Size = new System.Drawing.Size(200, 20); + this.uxInvoiceNumberTextBox.TabIndex = 20; + // + // uxVendorNameTextBox + // + this.uxVendorNameTextBox.Location = new System.Drawing.Point(111, 13); + this.uxVendorNameTextBox.Name = "uxVendorNameTextBox"; + this.uxVendorNameTextBox.ReadOnly = true; + this.uxVendorNameTextBox.Size = new System.Drawing.Size(200, 20); + this.uxVendorNameTextBox.TabIndex = 21; + // + // NewInvoiceView + // + this.AcceptButton = this.uxSaveButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.uxCancelButton; + this.ClientSize = new System.Drawing.Size(349, 305); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "NewInvoiceView"; + this.Text = "Create a New Invoice"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox uxTermsDropDownList; + private System.Windows.Forms.DateTimePicker uxInvoiceDatePicker; + private System.Windows.Forms.DateTimePicker uxDueDatePicker; + private System.Windows.Forms.DateTimePicker uxPaymentDatePicker; + private System.Windows.Forms.TextBox uxInvoiceTotalTextBox; + private System.Windows.Forms.TextBox uxPaymentTotalTextBox; + private System.Windows.Forms.TextBox uxCreditTotalTextBox; + private System.Windows.Forms.Button uxCancelButton; + private System.Windows.Forms.Button uxSaveButton; + private System.Windows.Forms.TextBox uxInvoiceNumberTextBox; + private System.Windows.Forms.TextBox uxVendorNameTextBox; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.cs new file mode 100644 index 0000000..ae2135f --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.cs @@ -0,0 +1,66 @@ +using System.Windows.Forms; +using Cmpp298.Assignment3.Desktop.Adapters; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Presentation; + +namespace Cmpp298.Assignment3.Desktop.UI { + public partial class NewInvoiceView : Form, INewInvoiceView { + private NewInvoicePresenter _presenter; + private DesktopDropDownList _termsDropDown; + + public NewInvoiceView( string vendorId ) { + InitializeComponent( ); + _termsDropDown = new DesktopDropDownList( uxTermsDropDownList ); + _presenter = new NewInvoicePresenter( vendorId, this ); + _presenter.Load( ); + uxCancelButton.Click += delegate { Close( ); }; + uxSaveButton.Click += delegate { SaveAndCloseScreen( ); }; + } + + public IDropDownListAdapter Terms { + get { return _termsDropDown; } + } + + public string InvoiceNumber { + get { return uxInvoiceNumberTextBox.Text; } + set { uxInvoiceNumberTextBox.Text = value; } + } + + public string InvoiceDate { + get { return uxInvoiceDatePicker.Value.ToString( ); } + } + + public string InvoiceTotal { + get { return uxInvoiceTotalTextBox.Text; } + } + + public string PaymentTotal { + get { return uxPaymentTotalTextBox.Text; } + } + + public string CreditTotal { + get { return uxCreditTotalTextBox.Text; } + } + + public string DueDate { + get { return uxDueDatePicker.Value.ToString( ); } + } + + public string PaymentDate { + get { return uxPaymentDatePicker.Value.ToString( ); } + } + + public void ShowError( string message ) { + MessageBox.Show( message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + + public void BindTo( DisplayVendorNameDto displayVendorNameDto ) { + uxVendorNameTextBox.Text = displayVendorNameDto.VendorName; + } + + private void SaveAndCloseScreen( ) { + _presenter.SaveInvoice( ); + Close( ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.resx b/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.resx new file mode 100644 index 0000000..ff31a6d --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/NewInvoiceView.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/Program.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/Program.cs new file mode 100644 index 0000000..1b6f16b --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Windows.Forms; + +namespace Cmpp298.Assignment3.Desktop.UI { + internal static class Program { + /// The main entry point for the application. + [STAThread] + private static void Main( ) { + try { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new InvoicesMainView( ) ); + } + catch { + MessageBox.Show( "I'm sorry but an unexpected error has occurred.", "Ooops!", MessageBoxButtons.OK, + MessageBoxIcon.Error ); + } + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/AssemblyInfo.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..619912c --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3.Desktop.UI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.Desktop.UI")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a0b2b859-9d29-40fd-9ba5-c08949290739")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Resources.Designer.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Resources.Designer.cs new file mode 100644 index 0000000..ff74f57 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Cmpp298.Assignment3.Desktop.UI.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Cmpp298.Assignment3.Desktop.UI.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Resources.resx b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Resources.resx new file mode 100644 index 0000000..c40a448 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Settings.Designer.cs b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Settings.Designer.cs new file mode 100644 index 0000000..7f9ee92 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Cmpp298.Assignment3.Desktop.UI.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Settings.settings b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Desktop.UI/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/app/Cmpp298.Assignment3.Domain/AmountEntrySpecification.cs b/src/app/Cmpp298.Assignment3.Domain/AmountEntrySpecification.cs new file mode 100644 index 0000000..d7bfe18 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Domain/AmountEntrySpecification.cs @@ -0,0 +1,9 @@ +using System.Text.RegularExpressions; + +namespace Cmpp298.Assignment3.Domain { + public class AmountEntrySpecification : ISpecification< string > { + public bool IsSatisfiedBy( string input ) { + return Regex.IsMatch( input, @"(^\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*$)" ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Domain/Cmpp298.Assignment3.Domain.csproj b/src/app/Cmpp298.Assignment3.Domain/Cmpp298.Assignment3.Domain.csproj new file mode 100644 index 0000000..35e09f9 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Domain/Cmpp298.Assignment3.Domain.csproj @@ -0,0 +1,48 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {C11B2649-751A-4F49-B28D-AB36A8213674} + Library + Properties + Cmpp298.Assignment3.Domain + Cmpp298.Assignment3.Domain + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Domain/ISpecification.cs b/src/app/Cmpp298.Assignment3.Domain/ISpecification.cs new file mode 100644 index 0000000..3de13bd --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Domain/ISpecification.cs @@ -0,0 +1,5 @@ +namespace Cmpp298.Assignment3.Domain { + internal interface ISpecification< T > { + bool IsSatisfiedBy( T item ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Domain/Properties/AssemblyInfo.cs b/src/app/Cmpp298.Assignment3.Domain/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a28526c --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Domain/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3.Domain")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.Domain")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("16058903-5893-4699-8a08-4bfb99649482")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/app/Cmpp298.Assignment3.Dto/Cmpp298.Assignment3.Dto.csproj b/src/app/Cmpp298.Assignment3.Dto/Cmpp298.Assignment3.Dto.csproj new file mode 100644 index 0000000..ca9b231 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/Cmpp298.Assignment3.Dto.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B} + Library + Properties + Cmpp298.Assignment3.Dto + Cmpp298.Assignment3.Dto + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Dto/DisplayInvoiceDto.cs b/src/app/Cmpp298.Assignment3.Dto/DisplayInvoiceDto.cs new file mode 100644 index 0000000..60a6739 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/DisplayInvoiceDto.cs @@ -0,0 +1,68 @@ +namespace Cmpp298.Assignment3.Dto { + public class DisplayInvoiceDto { + public DisplayInvoiceDto( string invoiceId, string vendorName, string invoiceNumber, string invoiceDate, string invoiceTotal, + string paymentTotal, string creditTotal, string terms, string dueDate, string paymentDate ) { + _invoiceId = invoiceId; + _vendorName = vendorName; + _invoiceNumber = invoiceNumber; + _invoiceDate = invoiceDate; + _invoiceTotal = invoiceTotal; + _paymentTotal = paymentTotal; + _creditTotal = creditTotal; + _terms = terms; + _dueDate = dueDate; + _paymentDate = paymentDate; + } + + public string InvoiceId { + get { return _invoiceId; } + } + + public string VendorName { + get { return _vendorName; } + } + + public string InvoiceNumber { + get { return _invoiceNumber; } + } + + public string InvoiceDate { + get { return _invoiceDate; } + } + + public string InvoiceTotal { + get { return _invoiceTotal; } + } + + public string PaymentTotal { + get { return _paymentTotal; } + } + + public string CreditTotal { + get { return _creditTotal; } + } + + public string Terms { + get { return _terms; } + } + + public string DueDate { + get { return _dueDate; } + } + + public string PaymentDate { + get { return _paymentDate; } + } + + private readonly string _invoiceId; + private readonly string _vendorName; + private readonly string _invoiceNumber; + private readonly string _invoiceDate; + private readonly string _invoiceTotal; + private readonly string _paymentTotal; + private readonly string _creditTotal; + private readonly string _terms; + private readonly string _dueDate; + private readonly string _paymentDate; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Dto/DisplayVendorNameDto.cs b/src/app/Cmpp298.Assignment3.Dto/DisplayVendorNameDto.cs new file mode 100644 index 0000000..8c75007 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/DisplayVendorNameDto.cs @@ -0,0 +1,19 @@ +namespace Cmpp298.Assignment3.Dto { + public class DisplayVendorNameDto { + public DisplayVendorNameDto( string vendorId, string vendorName ) { + _vendorId = vendorId; + _vendorName = vendorName; + } + + public string VendorId { + get { return _vendorId; } + } + + public string VendorName { + get { return _vendorName; } + } + + private readonly string _vendorId; + private readonly string _vendorName; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Dto/DropDownListItem.cs b/src/app/Cmpp298.Assignment3.Dto/DropDownListItem.cs new file mode 100644 index 0000000..de35116 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/DropDownListItem.cs @@ -0,0 +1,19 @@ +namespace Cmpp298.Assignment3.Dto { + public class DropDownListItem : IDropDownListItem { + public DropDownListItem( string text, string value ) { + _text = text; + _value = value; + } + + public string Text { + get { return _text; } + } + + public string Value { + get { return _value; } + } + + private readonly string _text; + private readonly string _value; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Dto/IDropDownListAdapter.cs b/src/app/Cmpp298.Assignment3.Dto/IDropDownListAdapter.cs new file mode 100644 index 0000000..49276c4 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/IDropDownListAdapter.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; + +namespace Cmpp298.Assignment3.Dto { + public interface IDropDownListAdapter { + void BindTo( IEnumerable< IDropDownListItem > pairs ); + + IDropDownListItem SelectedItem { get; } + + void SetSelectedItemTo( string text ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Dto/IDropDownListItem.cs b/src/app/Cmpp298.Assignment3.Dto/IDropDownListItem.cs new file mode 100644 index 0000000..7f7b61c --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/IDropDownListItem.cs @@ -0,0 +1,6 @@ +namespace Cmpp298.Assignment3.Dto { + public interface IDropDownListItem { + string Text { get; } + string Value { get; } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Dto/Properties/AssemblyInfo.cs b/src/app/Cmpp298.Assignment3.Dto/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c2d57cf --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3.Dto")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.Dto")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("553070cd-fb1c-428a-8463-877bd5bbcbb8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/app/Cmpp298.Assignment3.Dto/SaveInvoiceDto.cs b/src/app/Cmpp298.Assignment3.Dto/SaveInvoiceDto.cs new file mode 100644 index 0000000..be496ba --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/SaveInvoiceDto.cs @@ -0,0 +1,113 @@ +namespace Cmpp298.Assignment3.Dto { + public class SaveInvoiceDto { + public SaveInvoiceDto( string vendorId, string invoiceNumber, string invoiceDate, string invoiceTotal, + string paymentTotal, string creditTotal, string dueDate, string paymentDate, string termsId ) { + _vendorId = vendorId; + _invoiceNumber = invoiceNumber; + _invoiceDate = invoiceDate; + _invoiceTotal = invoiceTotal; + _paymentTotal = paymentTotal; + _creditTotal = creditTotal; + _dueDate = dueDate; + _paymentDate = paymentDate; + _termsId = termsId; + } + + public string VendorId { + get { return _vendorId; } + } + + public string InvoiceNumber { + get { return _invoiceNumber; } + } + + public string InvoiceDate { + get { return _invoiceDate; } + } + + public string InvoiceTotal { + get { return _invoiceTotal; } + } + + public string PaymentTotal { + get { return _paymentTotal; } + } + + public string CreditTotal { + get { return _creditTotal; } + } + + public string DueDate { + get { return _dueDate; } + } + + public string PaymentDate { + get { return _paymentDate; } + } + + public string TermsId { + get { return _termsId; } + } + + public override bool Equals( object obj ) { + if ( this == obj ) { + return true; + } + SaveInvoiceDto saveInvoiceDto = obj as SaveInvoiceDto; + if ( saveInvoiceDto == null ) { + return false; + } + if ( !Equals( _vendorId, saveInvoiceDto._vendorId ) ) { + return false; + } + if ( !Equals( _invoiceNumber, saveInvoiceDto._invoiceNumber ) ) { + return false; + } + if ( !Equals( _invoiceDate, saveInvoiceDto._invoiceDate ) ) { + return false; + } + if ( !Equals( _invoiceTotal, saveInvoiceDto._invoiceTotal ) ) { + return false; + } + if ( !Equals( _paymentTotal, saveInvoiceDto._paymentTotal ) ) { + return false; + } + if ( !Equals( _creditTotal, saveInvoiceDto._creditTotal ) ) { + return false; + } + if ( !Equals( _dueDate, saveInvoiceDto._dueDate ) ) { + return false; + } + if ( !Equals( _paymentDate, saveInvoiceDto._paymentDate ) ) { + return false; + } + if ( !Equals( _termsId, saveInvoiceDto._termsId ) ) { + return false; + } + return true; + } + + public override int GetHashCode( ) { + int result = _vendorId != null ? _vendorId.GetHashCode( ) : 0; + result = 29*result + ( _invoiceNumber != null ? _invoiceNumber.GetHashCode( ) : 0 ); + result = 29*result + ( _invoiceDate != null ? _invoiceDate.GetHashCode( ) : 0 ); + result = 29*result + ( _invoiceTotal != null ? _invoiceTotal.GetHashCode( ) : 0 ); + result = 29*result + ( _paymentTotal != null ? _paymentTotal.GetHashCode( ) : 0 ); + result = 29*result + ( _creditTotal != null ? _creditTotal.GetHashCode( ) : 0 ); + result = 29*result + ( _dueDate != null ? _dueDate.GetHashCode( ) : 0 ); + result = 29*result + ( _paymentDate != null ? _paymentDate.GetHashCode( ) : 0 ); + result = 29*result + ( _termsId != null ? _termsId.GetHashCode( ) : 0 ); + return result; + } + + private readonly string _vendorId; + private readonly string _invoiceNumber; + private readonly string _invoiceDate; + private readonly string _invoiceTotal; + private readonly string _paymentTotal; + private readonly string _creditTotal; + private readonly string _dueDate; + private readonly string _paymentDate; + private readonly string _termsId; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Dto/UpdateInvoiceDto.cs b/src/app/Cmpp298.Assignment3.Dto/UpdateInvoiceDto.cs new file mode 100644 index 0000000..ba4c88e --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Dto/UpdateInvoiceDto.cs @@ -0,0 +1,113 @@ +namespace Cmpp298.Assignment3.Dto { + public class UpdateInvoiceDto { + public UpdateInvoiceDto( string invoiceId, string invoiceNumber, string invoiceDate, string invoiceTotal, + string paymentTotal, string creditTotal, string dueDate, string paymentDate, string termsId ) { + _invoiceId = invoiceId; + _invoiceNumber = invoiceNumber; + _invoiceDate = invoiceDate; + _invoiceTotal = invoiceTotal; + _paymentTotal = paymentTotal; + _creditTotal = creditTotal; + _dueDate = dueDate; + _paymentDate = paymentDate; + _termsId = termsId; + } + + public string InvoiceId { + get { return _invoiceId; } + } + + public string InvoiceNumber { + get { return _invoiceNumber; } + } + + public string InvoiceDate { + get { return _invoiceDate; } + } + + public string InvoiceTotal { + get { return _invoiceTotal; } + } + + public string PaymentTotal { + get { return _paymentTotal; } + } + + public string CreditTotal { + get { return _creditTotal; } + } + + public string DueDate { + get { return _dueDate; } + } + + public string PaymentDate { + get { return _paymentDate; } + } + + public string TermsId { + get { return _termsId; } + } + + public override bool Equals( object obj ) { + if ( this == obj ) { + return true; + } + UpdateInvoiceDto updateInvoiceDto = obj as UpdateInvoiceDto; + if ( updateInvoiceDto == null ) { + return false; + } + if ( !Equals( _invoiceId, updateInvoiceDto._invoiceId ) ) { + return false; + } + if ( !Equals( _invoiceNumber, updateInvoiceDto._invoiceNumber ) ) { + return false; + } + if ( !Equals( _invoiceDate, updateInvoiceDto._invoiceDate ) ) { + return false; + } + if ( !Equals( _invoiceTotal, updateInvoiceDto._invoiceTotal ) ) { + return false; + } + if ( !Equals( _paymentTotal, updateInvoiceDto._paymentTotal ) ) { + return false; + } + if ( !Equals( _creditTotal, updateInvoiceDto._creditTotal ) ) { + return false; + } + if ( !Equals( _dueDate, updateInvoiceDto._dueDate ) ) { + return false; + } + if ( !Equals( _paymentDate, updateInvoiceDto._paymentDate ) ) { + return false; + } + if ( !Equals( _termsId, updateInvoiceDto._termsId ) ) { + return false; + } + return true; + } + + public override int GetHashCode( ) { + int result = _invoiceId != null ? _invoiceId.GetHashCode( ) : 0; + result = 29*result + ( _invoiceNumber != null ? _invoiceNumber.GetHashCode( ) : 0 ); + result = 29*result + ( _invoiceDate != null ? _invoiceDate.GetHashCode( ) : 0 ); + result = 29*result + ( _invoiceTotal != null ? _invoiceTotal.GetHashCode( ) : 0 ); + result = 29*result + ( _paymentTotal != null ? _paymentTotal.GetHashCode( ) : 0 ); + result = 29*result + ( _creditTotal != null ? _creditTotal.GetHashCode( ) : 0 ); + result = 29*result + ( _dueDate != null ? _dueDate.GetHashCode( ) : 0 ); + result = 29*result + ( _paymentDate != null ? _paymentDate.GetHashCode( ) : 0 ); + result = 29*result + ( _termsId != null ? _termsId.GetHashCode( ) : 0 ); + return result; + } + + private readonly string _invoiceId; + private readonly string _invoiceNumber; + private readonly string _invoiceDate; + private readonly string _invoiceTotal; + private readonly string _paymentTotal; + private readonly string _creditTotal; + private readonly string _dueDate; + private readonly string _paymentDate; + private readonly string _termsId; + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Task/Cmpp298.Assignment3.Task.csproj b/src/app/Cmpp298.Assignment3.Task/Cmpp298.Assignment3.Task.csproj new file mode 100644 index 0000000..415d8e7 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Task/Cmpp298.Assignment3.Task.csproj @@ -0,0 +1,63 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {A747CA6E-EEA1-42E0-BA90-69317F8BF45D} + Library + Properties + Cmpp298.Assignment3.Task + Cmpp298.Assignment3.Task + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + {48B09B0E-F2D5-463D-9FAB-C1781CA46D4D} + Cmpp298.Assignment3.DataAccess + + + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B} + Cmpp298.Assignment3.Dto + + + + + \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Task/IInvoiceTask.cs b/src/app/Cmpp298.Assignment3.Task/IInvoiceTask.cs new file mode 100644 index 0000000..43d6244 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Task/IInvoiceTask.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Task { + public interface IInvoiceTask { + int SaveNewInvoice( SaveInvoiceDto saveInvoiceDto ); + IEnumerable< DisplayInvoiceDto > GetAllInvoices( string forVendorId ); + DisplayInvoiceDto GetInvoiceBy(string invoiceId); + void DeleteInvoice( string invoiceId ); + void UpdateInvoice( UpdateInvoiceDto dto ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Task/ITermTask.cs b/src/app/Cmpp298.Assignment3.Task/ITermTask.cs new file mode 100644 index 0000000..9ed735f --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Task/ITermTask.cs @@ -0,0 +1,8 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Task { + public interface ITermTask { + IEnumerable< IDropDownListItem > GetAll( ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Task/IVendorTask.cs b/src/app/Cmpp298.Assignment3.Task/IVendorTask.cs new file mode 100644 index 0000000..56900e8 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Task/IVendorTask.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Task { + public interface IVendorTask { + IEnumerable< IDropDownListItem > GetAllVendorNames( ); + DisplayVendorNameDto FindVendorNameBy( string vendorId ); + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Task/InvoiceTask.cs b/src/app/Cmpp298.Assignment3.Task/InvoiceTask.cs new file mode 100644 index 0000000..dee8d5d --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Task/InvoiceTask.cs @@ -0,0 +1,113 @@ +using System.Collections.Generic; +using System.Data; +using System.Text; +using Cmpp298.Assignment3.DataAccess; +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Task { + public class InvoiceTask : IInvoiceTask { + public InvoiceTask( ) : this( new DatabaseGateway( ) ) {} + + public InvoiceTask( IDatabaseGateway gateway ) { + _gateway = gateway; + } + + public int SaveNewInvoice( SaveInvoiceDto saveInvoiceDto ) { + InsertQueryBuilder builder = new InsertQueryBuilder( Tables.Invoices.TableName ); + builder.Add( Tables.Invoices.VendorID, saveInvoiceDto.VendorId ); + builder.Add( Tables.Invoices.InvoiceNumber, saveInvoiceDto.InvoiceNumber ); + builder.Add( Tables.Invoices.InvoiceDate, saveInvoiceDto.InvoiceDate ); + builder.Add( Tables.Invoices.InvoiceTotal, saveInvoiceDto.InvoiceTotal ); + builder.Add( Tables.Invoices.PaymentTotal, saveInvoiceDto.PaymentTotal ); + builder.Add( Tables.Invoices.CreditTotal, saveInvoiceDto.CreditTotal ); + builder.Add( Tables.Invoices.TermsID, saveInvoiceDto.TermsId ); + builder.Add( Tables.Invoices.DueDate, saveInvoiceDto.DueDate ); + builder.Add( Tables.Invoices.PaymentDate, saveInvoiceDto.PaymentDate ); + + return _gateway.InsertRowUsing( builder ); + } + + public IEnumerable< DisplayInvoiceDto > GetAllInvoices( string forVendorId ) { + SelectQueryBuilder builder = new SelectQueryBuilder( Tables.Invoices.TableName ); + builder.AddColumn( Tables.Invoices.InvoiceID ); + builder.AddColumn( Tables.Invoices.InvoiceNumber ); + builder.AddColumn( Tables.Invoices.InvoiceDate ); + builder.AddColumn( Tables.Invoices.InvoiceTotal ); + builder.AddColumn( Tables.Invoices.PaymentTotal ); + builder.AddColumn( Tables.Invoices.CreditTotal ); + builder.AddColumn( Tables.Invoices.DueDate ); + builder.AddColumn( Tables.Invoices.PaymentDate ); + builder.AddColumn( Tables.Terms.Description ); + builder.AddColumn( Tables.Vendors.Name ); + builder.InnerJoin( Tables.Terms.TermsID, Tables.Invoices.TermsID ); + builder.InnerJoin( Tables.Vendors.VendorID, Tables.Invoices.VendorID ); + builder.Where( Tables.Invoices.VendorID, forVendorId ); + + IList< DisplayInvoiceDto > dtos = new List< DisplayInvoiceDto >( ); + foreach ( DataRow row in _gateway.GetTableFrom( builder ).Rows ) { + dtos.Add( CreateFrom( row ) ); + } + return dtos; + } + + public DisplayInvoiceDto GetInvoiceBy( string invoiceId ) { + SelectQueryBuilder builder = new SelectQueryBuilder( Tables.Invoices.TableName ); + builder.AddColumn( Tables.Invoices.InvoiceID ); + builder.AddColumn( Tables.Invoices.InvoiceNumber ); + builder.AddColumn( Tables.Invoices.InvoiceDate ); + builder.AddColumn( Tables.Invoices.InvoiceTotal ); + builder.AddColumn( Tables.Invoices.PaymentTotal ); + builder.AddColumn( Tables.Invoices.CreditTotal ); + builder.AddColumn( Tables.Invoices.DueDate ); + builder.AddColumn( Tables.Invoices.PaymentDate ); + builder.AddColumn( Tables.Terms.Description ); + builder.AddColumn( Tables.Vendors.Name ); + builder.InnerJoin( Tables.Terms.TermsID, Tables.Invoices.TermsID ); + builder.InnerJoin( Tables.Vendors.VendorID, Tables.Invoices.VendorID ); + builder.Where( Tables.Invoices.InvoiceID, invoiceId ); + DataTable table = _gateway.GetTableFrom( builder ); + return table.Rows.Count == 1 ? CreateFrom( table.Rows[ 0 ] ) : null; + } + + public void DeleteInvoice( string invoiceId ) { + StringBuilder builder = new StringBuilder( ); + + builder.AppendFormat( "DELETE FROM [{0}] WHERE [{0}].[{1}] = {2}", + Tables.Invoices.TableName, + Tables.Invoices.InvoiceID.ColumnName, + invoiceId ); + + _gateway.Execute( builder.ToString( ) ); + } + + public void UpdateInvoice( UpdateInvoiceDto dto ) { + UpdateQueryBuilder builder = new UpdateQueryBuilder( Tables.Invoices.InvoiceID, dto.InvoiceId ); + builder.Add( Tables.Invoices.CreditTotal, dto.CreditTotal ); + builder.Add( Tables.Invoices.DueDate, dto.DueDate ); + builder.Add( Tables.Invoices.InvoiceDate, dto.InvoiceDate ); + builder.Add( Tables.Invoices.InvoiceNumber, dto.InvoiceNumber ); + builder.Add( Tables.Invoices.InvoiceTotal, dto.InvoiceTotal ); + builder.Add( Tables.Invoices.PaymentDate, dto.PaymentDate ); + builder.Add( Tables.Invoices.PaymentTotal, dto.PaymentTotal ); + builder.Add( Tables.Invoices.TermsID, dto.TermsId ); + + _gateway.UpdateRowUsing( builder ); + } + + private IDatabaseGateway _gateway; + + private static DisplayInvoiceDto CreateFrom( DataRow row ) { + return + new DisplayInvoiceDto( row[ Tables.Invoices.InvoiceID.ColumnName ].ToString( ), + row[ Tables.Vendors.Name.ColumnName ].ToString( ), + row[ Tables.Invoices.InvoiceNumber.ColumnName ].ToString( ), + row[ Tables.Invoices.InvoiceDate.ColumnName ].ToString( ), + row[ Tables.Invoices.InvoiceTotal.ColumnName ].ToString( ), + row[ Tables.Invoices.PaymentTotal.ColumnName ].ToString( ), + row[ Tables.Invoices.CreditTotal.ColumnName ].ToString( ), + row[ Tables.Terms.Description.ColumnName ].ToString( ), + row[ Tables.Invoices.DueDate.ColumnName ].ToString( ), + row[ Tables.Invoices.PaymentDate.ColumnName ].ToString( ) ); + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Task/Properties/AssemblyInfo.cs b/src/app/Cmpp298.Assignment3.Task/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a2fe345 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Task/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3.Task")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.Task")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3987eab5-54b9-4396-81ae-cab8bdbbad27")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/app/Cmpp298.Assignment3.Task/TermTask.cs b/src/app/Cmpp298.Assignment3.Task/TermTask.cs new file mode 100644 index 0000000..826d5ec --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Task/TermTask.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using System.Data; +using Cmpp298.Assignment3.DataAccess; +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Task { + public class TermTask : ITermTask { + private IDatabaseGateway _gateway; + + public TermTask( ) : this( new DatabaseGateway( ) ) {} + + public TermTask( IDatabaseGateway gateway ) { + _gateway = gateway; + } + + public IEnumerable< IDropDownListItem > GetAll( ) { + SelectQueryBuilder builder = new SelectQueryBuilder( Tables.Terms.TableName ); + builder.AddColumn( Tables.Terms.TermsID ); + builder.AddColumn( Tables.Terms.Description ); + return CreateFrom( _gateway.GetTableFrom( builder ) ); + } + + private static IEnumerable< IDropDownListItem > CreateFrom( DataTable table ) { + foreach ( DataRow row in table.Rows ) { + yield return + new DropDownListItem( row[ Tables.Terms.Description.ColumnName ].ToString( ), + row[ Tables.Terms.TermsID.ColumnName ].ToString( ) ); + } + } + } +} \ No newline at end of file diff --git a/src/app/Cmpp298.Assignment3.Task/VendorTask.cs b/src/app/Cmpp298.Assignment3.Task/VendorTask.cs new file mode 100644 index 0000000..2c69016 --- /dev/null +++ b/src/app/Cmpp298.Assignment3.Task/VendorTask.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; +using System.Data; +using Cmpp298.Assignment3.DataAccess; +using Cmpp298.Assignment3.Dto; + +namespace Cmpp298.Assignment3.Task { + public class VendorTask : IVendorTask { + private IDatabaseGateway _gateway; + + public VendorTask( ) : this( new DatabaseGateway( ) ) {} + + public VendorTask( IDatabaseGateway gateway ) { + _gateway = gateway; + } + + public IEnumerable< IDropDownListItem > GetAllVendorNames( ) { + SelectQueryBuilder builder = new SelectQueryBuilder( Tables.Vendors.TableName ); + builder.AddColumn( Tables.Vendors.VendorID ); + builder.AddColumn( Tables.Vendors.Name ); + return CreateItemsFrom( _gateway.GetTableFrom( builder ) ); + } + + public DisplayVendorNameDto FindVendorNameBy( string vendorId ) { + SelectQueryBuilder builder = new SelectQueryBuilder( Tables.Vendors.TableName ); + builder.AddColumn( Tables.Vendors.VendorID ); + builder.AddColumn( Tables.Vendors.Name ); + builder.Where( Tables.Vendors.VendorID, vendorId ); + return CreateDtoFrom( _gateway.GetTableFrom( builder ) ); + } + + private static DisplayVendorNameDto CreateDtoFrom( DataTable resultSet ) { + return new DisplayVendorNameDto( resultSet.Rows[ 0 ][ Tables.Vendors.VendorID.ColumnName ].ToString( ), + resultSet.Rows[ 0 ][ Tables.Vendors.Name.ColumnName ].ToString( ) ); + } + + private static IEnumerable< IDropDownListItem > CreateItemsFrom( DataTable table ) { + foreach ( DataRow row in table.Rows ) { + yield return + new DropDownListItem( row[ Tables.Vendors.Name.ColumnName ].ToString( ), + row[ Tables.Vendors.VendorID.ColumnName ].ToString( ) ); + } + } + } +} \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/App.config b/src/test/Cmpp298.Assignment3.Test/App.config new file mode 100644 index 0000000..370bfe9 --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/Cmpp298.Assignment3.Test.csproj b/src/test/Cmpp298.Assignment3.Test/Cmpp298.Assignment3.Test.csproj new file mode 100644 index 0000000..fab4c06 --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Cmpp298.Assignment3.Test.csproj @@ -0,0 +1,82 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {C9135CE2-7960-4E21-ACE8-2769BEF35C01} + Library + Properties + Cmpp298.Assignment3.Test + Cmpp298.Assignment3.Test + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\tools\MbUnit\MbUnit.Framework.dll + + + False + ..\..\..\tools\rhinomocks\Rhino.Mocks.dll + + + + + + + + + + + + + + + + + + {48B09B0E-F2D5-463D-9FAB-C1781CA46D4D} + Cmpp298.Assignment3.DataAccess + + + {62EA2002-B0ED-4E9C-945E-B77552A0669C} + Cmpp298.Assignment3.Desktop.Presentation + + + {29260A8E-3F7B-4D9B-BBE3-81210F4B9E5B} + Cmpp298.Assignment3.Dto + + + {A747CA6E-EEA1-42E0-BA90-69317F8BF45D} + Cmpp298.Assignment3.Task + + + + + + + + \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/Dto/SaveInvoiceDtoTest.cs b/src/test/Cmpp298.Assignment3.Test/Dto/SaveInvoiceDtoTest.cs new file mode 100644 index 0000000..f01025b --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Dto/SaveInvoiceDtoTest.cs @@ -0,0 +1,33 @@ +using Cmpp298.Assignment3.Dto; +using MbUnit.Framework; + +namespace Cmpp298.Assignment3.Test.Dto { + [TestFixture] + public class SaveInvoiceDtoTest { + [Test] + public void Should_Be_Equal( ) { + SaveInvoiceDto dto1 = new SaveInvoiceDto( "1", "QP58872", "1/5/2007 12:00:00 AM", "116.5400", "116.5400", "0.0000", + "3/4/2007 12:00:00 AM", + "2/22/2007 12:00:00 AM", "4" ); + + SaveInvoiceDto dto2 = new SaveInvoiceDto( "1", "QP58872", "1/5/2007 12:00:00 AM", "116.5400", "116.5400", "0.0000", + "3/4/2007 12:00:00 AM", + "2/22/2007 12:00:00 AM", "4" ); + + Assert.IsTrue( dto1.Equals( dto2 ), "Both dtos Should be equal" ); + } + + [Test] + public void Should_Not_Be_Equal( ) { + SaveInvoiceDto dto1 = new SaveInvoiceDto( "1", "QP58872", "1/5/2007 12:00:00 AM", "116.5400", "116.5400", "0.0000", + "3/4/2007 12:00:00 AM", + "2/22/2007 12:00:00 AM", "4" ); + + SaveInvoiceDto dto2 = new SaveInvoiceDto( "2", "QP58872", "1/5/2007 12:00:00 AM", "116.5400", "116.5400", "0.0000", + "3/4/2007 12:00:00 AM", + "2/22/2007 12:00:00 AM", "4" ); + + Assert.IsTrue( !dto1.Equals( dto2 ), "Both dtos Should not be equal" ); + } + } +} \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/Presentation/DeleteInvoicePresenterTest.cs b/src/test/Cmpp298.Assignment3.Test/Presentation/DeleteInvoicePresenterTest.cs new file mode 100644 index 0000000..f0ce644 --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Presentation/DeleteInvoicePresenterTest.cs @@ -0,0 +1,59 @@ +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Presentation; +using Cmpp298.Assignment3.Task; +using MbUnit.Framework; +using Rhino.Mocks; + +namespace Cmpp298.Assignment3.Test.Presentation { + [TestFixture] + public class DeleteInvoicePresenterTest { + private MockRepository _mockery; + private IDeleteInvoiceView _view; + private IInvoiceTask _invoiceTask; + + [SetUp] + public void SetUp( ) { + _mockery = new MockRepository( ); + _view = _mockery.Stub< IDeleteInvoiceView >( ); + _invoiceTask = _mockery.Stub< IInvoiceTask >( ); + } + + [Test] + public void Should_Load_Invoice_Details_On_Load( ) { + string invoiceId = "1"; + using ( _mockery.Record( ) ) { + Expect.Call( _invoiceTask.GetInvoiceBy( invoiceId ) ).Return( + new DisplayInvoiceDto( invoiceId, "IBM", "12", "date", "total", "12.12", "12.12", "10 days", "due date", + "payment date" ) ); + + _view.VendorName = "IBM"; + _view.InvoiceNumber = "12"; + _view.InvoiceDate = "date"; + _view.InvoiceTotal = "total"; + _view.PaymentTotal = "12.12"; + _view.CreditTotal = "12.12"; + _view.DueDate = "due date"; + _view.PaymentDate = "payment date"; + _view.Terms = "10 days"; + } + using ( _mockery.Playback( ) ) { + CreateSut( invoiceId ).Initialize( ); + } + } + + [Test] + public void Should_Delete_Invoice_On_Delete_Click( ) { + const string invoiceId = "1"; + using ( _mockery.Record( ) ) { + _invoiceTask.DeleteInvoice( invoiceId ); + } + using ( _mockery.Playback( ) ) { + CreateSut( invoiceId ).DeleteInvoice( ); + } + } + + private DeleteInvoicePresenter CreateSut( string invoiceId ) { + return new DeleteInvoicePresenter( invoiceId, _view, _invoiceTask ); + } + } +} \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/Presentation/EditInvoicePresenterTest.cs b/src/test/Cmpp298.Assignment3.Test/Presentation/EditInvoicePresenterTest.cs new file mode 100644 index 0000000..3f88a33 --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Presentation/EditInvoicePresenterTest.cs @@ -0,0 +1,85 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Presentation; +using Cmpp298.Assignment3.Task; +using MbUnit.Framework; +using Rhino.Mocks; + +namespace Cmpp298.Assignment3.Test.Presentation { + [TestFixture] + public class EditInvoicePresenterTest { + private MockRepository _mockery; + private IEditInvoiceView _view; + private IInvoiceTask _task; + private ITermTask _termTask; + private IDropDownListAdapter _termsDropDown; + + [SetUp] + public void Setup( ) { + _mockery = new MockRepository( ); + _view = _mockery.CreateMock< IEditInvoiceView >( ); + _task = _mockery.CreateMock< IInvoiceTask >( ); + _termTask = _mockery.CreateMock< ITermTask >( ); + _termsDropDown = _mockery.CreateMock< IDropDownListAdapter >( ); + + SetupResult.For( _view.TermsDropDown ).Return( _termsDropDown ); + } + + [Test] + public void Should_Load_Invoice_Details_On_Load( ) { + const string invoiceId = "1"; + IList< IDropDownListItem > items = new List< IDropDownListItem >( ); + items.Add( new DropDownListItem( "10 days", "1" ) ); + + using ( _mockery.Record( ) ) { + Expect.Call( _task.GetInvoiceBy( invoiceId ) ).Return( + new DisplayInvoiceDto( invoiceId, "vendor", "number", "date", "total", "paymentTotal", "creditTotal", "terms", + "dueDate", "paymentDate" ) ); + Expect.Call( _termTask.GetAll( ) ).Return( items ); + _termsDropDown.BindTo( items ); + _termsDropDown.SetSelectedItemTo( "terms" ); + _view.VendorName = "vendor"; + _view.InvoiceNumber = "number"; + _view.InvoiceDate = "date"; + _view.InvoiceTotal = "total"; + _view.PaymentTotal = "paymentTotal"; + _view.CreditTotal = "creditTotal"; + _view.DueDate = "dueDate"; + _view.PaymentDate = "paymentDate"; + } + + using ( _mockery.Playback( ) ) { + CreateSut( invoiceId ).Initialize( ); + } + } + + [Test] + public void Should_Update_Changes( ) { + const string invoiceId = "2"; + using ( _mockery.Record( ) ) { + SetupResult.For( _view.InvoiceNumber ).Return( "QP58872" ); + SetupResult.For( _view.InvoiceDate ).Return( "1/5/2007 12:00:00 AM" ); + SetupResult.For( _view.InvoiceTotal ).Return( "116.54" ); + SetupResult.For( _view.PaymentTotal ).Return( "116.54" ); + SetupResult.For( _view.CreditTotal ).Return( "0.00" ); + SetupResult.For( _view.DueDate ).Return( "3/4/2007 12:00:00 AM" ); + SetupResult.For( _view.PaymentDate ).Return( "2/22/2007 12:00:00 AM" ); + SetupResult.For( _termsDropDown.SelectedItem ).Return( new DropDownListItem( "10 days", "4" ) ); + + UpdateInvoiceDto dto = + new UpdateInvoiceDto( invoiceId, "QP58872", "1/5/2007 12:00:00 AM", "116.54", "116.54", "0.00", + "3/4/2007 12:00:00 AM", + "2/22/2007 12:00:00 AM", "4" ); + _task.UpdateInvoice( dto ); + } + + using ( _mockery.Playback( ) ) { + CreateSut( invoiceId ).UpdateInvoice( ); + } + } + + private EditInvoicePresenter CreateSut( string invoiceId ) { + return new EditInvoicePresenter( invoiceId, _view, _task, _termTask ); + } + } +} \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/Presentation/InvoicesMainPresenterTest.cs b/src/test/Cmpp298.Assignment3.Test/Presentation/InvoicesMainPresenterTest.cs new file mode 100644 index 0000000..283445d --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Presentation/InvoicesMainPresenterTest.cs @@ -0,0 +1,68 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Presentation; +using Cmpp298.Assignment3.Task; +using MbUnit.Framework; +using Rhino.Mocks; + +namespace Cmpp298.Assignment3.Test.Presentation { + [TestFixture] + public class InvoicesMainPresenterTest { + private MockRepository _mockery; + private IInvoicesMainView _view; + private IVendorTask _vendorsTask; + private IDropDownListAdapter _vendorNamesDropDown; + private IInvoiceTask _invoiceTask; + + [SetUp] + public void SetUp( ) { + _mockery = new MockRepository( ); + _view = _mockery.Stub< IInvoicesMainView >( ); + _vendorsTask = _mockery.Stub< IVendorTask >( ); + _invoiceTask = _mockery.Stub< IInvoiceTask >( ); + _vendorNamesDropDown = _mockery.Stub< IDropDownListAdapter >( ); + + SetupResult.For( _view.VendorNames ).Return( _vendorNamesDropDown ); + } + + [Test] + public void Should_Load_List_Of_Vendor_Names_On_Load( ) { + IList< IDropDownListItem > vendors = new List< IDropDownListItem >( ); + vendors.Add( new DropDownListItem( "US Postal Service", "1" ) ); + vendors.Add( new DropDownListItem( "National Information Data Ctr", "2" ) ); + vendors.Add( new DropDownListItem( "Register of Copyrights", "3" ) ); + + using ( _mockery.Record( ) ) { + Expect.Call( _vendorsTask.GetAllVendorNames( ) ).Return( vendors ).Repeat.Once( ); + _vendorNamesDropDown.BindTo( vendors ); + } + using ( _mockery.Playback( ) ) { + CreateSut( ).Initialize( ); + } + } + + [Test] + public void Should_Load_List_Of_Invoices_For_Vendor_On_Load( ) { + IList< DisplayInvoiceDto > invoices = new List< DisplayInvoiceDto >( ); + const string forVendorId = "1"; + invoices.Add( + new DisplayInvoiceDto( "1", "IBM", "QP58872", "1/5/2007 12:00:00 AM", "116.54", "116.5400", "0.0000", + "Net due 60 days", + "3/4/2007 12:00:00 AM", "2/22/2007 12:00:00 AM" ) ); + + using ( _mockery.Record( ) ) { + SetupResult.For( _vendorNamesDropDown.SelectedItem ).Return( new DropDownListItem( "IBM", forVendorId ) ); + + Expect.Call( _invoiceTask.GetAllInvoices( forVendorId ) ).Return( invoices ); + _view.BindTo( invoices ); + } + using ( _mockery.Playback( ) ) { + CreateSut( ).LoadInvoices( ); + } + } + + private InvoicesMainPresenter CreateSut( ) { + return new InvoicesMainPresenter( _view, _vendorsTask, _invoiceTask ); + } + } +} \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/Presentation/NewInvoicePresenterTest.cs b/src/test/Cmpp298.Assignment3.Test/Presentation/NewInvoicePresenterTest.cs new file mode 100644 index 0000000..2ccd4ca --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Presentation/NewInvoicePresenterTest.cs @@ -0,0 +1,114 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Presentation; +using Cmpp298.Assignment3.Task; +using MbUnit.Framework; +using Rhino.Mocks; +using Rhino.Mocks.Constraints; + +namespace Cmpp298.Assignment3.Test.Presentation { + [TestFixture] + public class NewInvoicePresenterTest { + private MockRepository _mockery; + private INewInvoiceView _view; + private IInvoiceTask _invoiceTask; + private IVendorTask _vendorTask; + private ITermTask _termTask; + private IDropDownListAdapter _termsDropDown; + + [SetUp] + public void SetUp( ) { + _mockery = new MockRepository( ); + _view = _mockery.Stub< INewInvoiceView >( ); + _invoiceTask = _mockery.Stub< IInvoiceTask >( ); + _vendorTask = _mockery.Stub< IVendorTask >( ); + _termTask = _mockery.Stub< ITermTask >( ); + _termsDropDown = _mockery.Stub< IDropDownListAdapter >( ); + + SetupResult.For( _view.Terms ).Return( _termsDropDown ); + } + + [Test] + public void Should_Load_Vendor_Names_On_Load( ) { + const string vendorId = "34"; + using ( _mockery.Record( ) ) { + DisplayVendorNameDto displayVendorNameDto = new DisplayVendorNameDto( vendorId, "IBM" ); + Expect.Call( _vendorTask.FindVendorNameBy( vendorId ) ).Return( displayVendorNameDto ); + _view.BindTo( displayVendorNameDto ); + } + using ( _mockery.Playback( ) ) { + CreateSut( vendorId ).Load( ); + } + } + + [Test] + public void Should_Load_Terms_On_Load( ) { + IList< IDropDownListItem > terms = new List< IDropDownListItem >( ); + terms.Add( new DropDownListItem( "Net due 10 days", "1" ) ); + terms.Add( new DropDownListItem( "Net due 20 days", "2" ) ); + terms.Add( new DropDownListItem( "Net due 30 days", "3" ) ); + terms.Add( new DropDownListItem( "Net due 60 days", "4" ) ); + terms.Add( new DropDownListItem( "Net due 90 days", "5" ) ); + + using ( _mockery.Record( ) ) { + Expect.Call( _termTask.GetAll( ) ).Return( terms ); + _termsDropDown.BindTo( terms ); + } + using ( _mockery.Playback( ) ) { + const string vendorId = "34"; + CreateSut( vendorId ).Load( ); + } + } + + [Test] + public void Should_Create_New_Invoice_Number_On_Load( ) { + using ( _mockery.Record( ) ) {} + using ( _mockery.Playback( ) ) { + CreateSut( "34" ).Load( ); + Assert.IsTrue( _view.InvoiceNumber != null, "Invoice number should have been generated" ); + } + } + + [Test] + public void Should_Save_New_Invoice( ) { + const string vendorId = "34"; + using ( _mockery.Record( ) ) { + SetupResult.For( _view.InvoiceDate ).Return( "1/5/2007 12:00:00 AM" ); + SetupResult.For( _view.InvoiceTotal ).Return( "116.54" ); + SetupResult.For( _view.PaymentTotal ).Return( "116.54" ); + SetupResult.For( _view.CreditTotal ).Return( "0.00" ); + SetupResult.For( _view.DueDate ).Return( "3/4/2007 12:00:00 AM" ); + SetupResult.For( _view.PaymentDate ).Return( "2/22/2007 12:00:00 AM" ); + Expect.Call( _termsDropDown.SelectedItem ).Return( new DropDownListItem( "Net due 60 days", "4" ) ); + + _invoiceTask.SaveNewInvoice( + new SaveInvoiceDto( vendorId, "QP58872", "1/5/2007 12:00:00 AM", "116.5400", "116.5400", "0.0000", + "3/4/2007 12:00:00 AM", + "2/22/2007 12:00:00 AM", "4" ) ); + } + using ( _mockery.Playback( ) ) { + CreateSut( vendorId ).SaveInvoice( ); + } + } + + [Test] + public void Should_Check_For_Valid_Input( ) { + const string vendorId = "34"; + using ( _mockery.Record( ) ) { + SetupResult.For( _view.InvoiceTotal ).Return( "abcd" ); + SetupResult.For( _view.PaymentTotal ).Return( "abcd" ); + SetupResult.For( _view.CreditTotal ).Return( "abcd" ); + + _view.ShowError( null ); + LastCall.Constraints( Is.NotNull( ) ); + } + using ( _mockery.Playback( ) ) { + CreateSut( vendorId ).SaveInvoice( ); + } + } + + private NewInvoicePresenter CreateSut( string vendorId ) { + return new NewInvoicePresenter( vendorId, _view, _invoiceTask, _vendorTask, _termTask ); + } + } +} \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/Properties/AssemblyInfo.cs b/src/test/Cmpp298.Assignment3.Test/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0d1864f --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cmpp298.Assignment3.Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cmpp298.Assignment3.Test")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a2246f12-aa13-4e38-8c32-0ebb14a0d19e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/test/Cmpp298.Assignment3.Test/Task/InvoiceTaskTest.cs b/src/test/Cmpp298.Assignment3.Test/Task/InvoiceTaskTest.cs new file mode 100644 index 0000000..e789e4c --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Task/InvoiceTaskTest.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Task; +using MbUnit.Framework; + +namespace Cmpp298.Assignment3.Test { + [TestFixture] + public class InvoiceTaskTest { + [Test] + [RollBack] + public void Should_Return_114( ) { + const string forVendorId = "122"; + Assert.IsTrue( new List< DisplayInvoiceDto >( CreateSut( ).GetAllInvoices( forVendorId ) ).Count == 9 ); + } + + [Test] + [RollBack] + public void Should_Return_2( ) { + const string forVendorId = "34"; + List< DisplayInvoiceDto > list = new List< DisplayInvoiceDto >( CreateSut( ).GetAllInvoices( forVendorId ) ); + Assert.IsTrue( list.Count == 2, "should equal 2 but has " + list.Count ); + } + + [Test] + [RollBack] + public void Should_Save_New_Invoice( ) { + const string vendorId = "1"; + const string termsId = "1"; + SaveInvoiceDto saveInvoiceDto = + new SaveInvoiceDto( vendorId, Guid.NewGuid( ).ToString( ), + DateTime.Now.ToString( ), "123.48", "123.48", "0.00", + DateTime.Now.AddDays( 1 ).ToString( ), + DateTime.Now.ToString( ), + termsId ); + InvoiceTask invoiceTask = CreateSut( ); + string invoiceId = invoiceTask.SaveNewInvoice( saveInvoiceDto ).ToString( ); + + bool foundInvoice = false; + foreach ( DisplayInvoiceDto displayInvoiceDto in invoiceTask.GetAllInvoices( vendorId ) ) { + if ( displayInvoiceDto.InvoiceId == invoiceId ) { + foundInvoice = true; + } + } + Assert.IsTrue( foundInvoice, "Couldn't find the inserted invoice record" ); + } + + [Test] + [RollBack] + public void Should_Be_Able_To_Find_Invoice_By_Id( ) { + InvoiceTask task = CreateSut( ); + string invoiceNumber = Guid.NewGuid( ).ToString( ); + int id = task.SaveNewInvoice( + new SaveInvoiceDto( "34", invoiceNumber, DateTime.Today.ToString( ), "1.00", "1.00", "0.00", + DateTime.Today.ToString( ), + DateTime.Today.ToString( ), "1" ) ); + + DisplayInvoiceDto dto = task.GetInvoiceBy( id.ToString( ) ); + + Assert.IsTrue( dto.CreditTotal == "0.0000", "Credit Total Actual: " + dto.CreditTotal ); + Assert.IsTrue( dto.DueDate == DateTime.Today.ToString( ), "Due Date Actual: " + dto.DueDate ); + Assert.IsTrue( dto.InvoiceDate == DateTime.Today.ToString( ), "Invoice Date Actual: " + dto.InvoiceDate ); + Assert.IsTrue( dto.InvoiceId == id.ToString( ), "Invoice Id Actual: " + dto.InvoiceId ); + Assert.IsTrue( dto.InvoiceNumber == invoiceNumber, "Invoice Number Actual: " + dto.InvoiceNumber ); + Assert.IsTrue( dto.InvoiceTotal == "1.0000", "Invoice Total Actual: " + dto.InvoiceTotal ); + Assert.IsTrue( dto.PaymentDate == DateTime.Today.ToString( ), "Payment Date Actual: " + dto.PaymentDate ); + Assert.IsTrue( dto.PaymentTotal == "1.0000", "Payment Total Actual: " + dto.PaymentTotal ); + } + + [Test] + [RollBack] + public void Should_Be_Able_To_Delete_Invoice( ) { + InvoiceTask task = CreateSut( ); + int id = task.SaveNewInvoice( + new SaveInvoiceDto( "34", Guid.NewGuid( ).ToString( ), DateTime.Today.ToString( ), "1.00", "1.00", "0.00", + DateTime.Today.ToString( ), + DateTime.Today.ToString( ), "1" ) ); + + task.DeleteInvoice( id.ToString( ) ); + Assert.IsTrue( task.GetInvoiceBy( id.ToString( ) ) == null ); + } + + [Test] + [RollBack] + public void Should_Be_Able_To_Update_Invoice_Details( ) { + InvoiceTask task = CreateSut( ); + int id = task.SaveNewInvoice( + new SaveInvoiceDto( "34", Guid.NewGuid( ).ToString( ), DateTime.Today.ToString( ), "1.00", "1.00", "0.00", + DateTime.Today.ToString( ), + DateTime.Today.ToString( ), "1" ) ); + + DisplayInvoiceDto dto = task.GetInvoiceBy( id.ToString( ) ); + task.UpdateInvoice( + new UpdateInvoiceDto( id.ToString( ), dto.InvoiceNumber, dto.InvoiceDate, dto.InvoiceTotal, "123.45", + dto.CreditTotal, dto.DueDate, dto.PaymentDate, "1" ) ); + + dto = task.GetInvoiceBy( id.ToString( ) ); + Assert.IsTrue( dto.PaymentTotal == "123.4500" ); + } + + private static InvoiceTask CreateSut( ) { + return new InvoiceTask( ); + } + } +} \ No newline at end of file diff --git a/src/test/Cmpp298.Assignment3.Test/Task/VendorTaskTest.cs b/src/test/Cmpp298.Assignment3.Test/Task/VendorTaskTest.cs new file mode 100644 index 0000000..2b76674 --- /dev/null +++ b/src/test/Cmpp298.Assignment3.Test/Task/VendorTaskTest.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using Cmpp298.Assignment3.Dto; +using Cmpp298.Assignment3.Task; +using MbUnit.Framework; + +namespace Cmpp298.Assignment3.Test { + [TestFixture] + public class VendorTaskTest { + [Test] + public void Should_Be_Able_To_Find_Vendor_By_Id( ) { + IVendorTask task = CreateSut( ); + const string vendorId = "1"; + DisplayVendorNameDto dto = task.FindVendorNameBy( vendorId ); + Assert.IsTrue( dto.VendorId == vendorId ); + Assert.IsTrue( dto.VendorName == "US Postal Service" ); + } + + [Test] + public void Should_Be_Able_To_Get_All_Vendor_Names( ) { + IVendorTask task = CreateSut( ); + IList< IDropDownListItem > list = new List< IDropDownListItem >( task.GetAllVendorNames( ) ); + Assert.IsTrue( list.Count > 0, "Should have at least 1 vendor name but has: " + list.Count ); + } + + private static IVendorTask CreateSut( ) { + return new VendorTask( ); + } + } +} \ No newline at end of file diff --git a/tools/MbUnit/MbUnit.AddIn.dll b/tools/MbUnit/MbUnit.AddIn.dll new file mode 100644 index 0000000..35464b9 Binary files /dev/null and b/tools/MbUnit/MbUnit.AddIn.dll differ diff --git a/tools/MbUnit/MbUnit.Cons.exe b/tools/MbUnit/MbUnit.Cons.exe new file mode 100644 index 0000000..ff5913a Binary files /dev/null and b/tools/MbUnit/MbUnit.Cons.exe differ diff --git a/tools/MbUnit/MbUnit.Cons.exe.config b/tools/MbUnit/MbUnit.Cons.exe.config new file mode 100644 index 0000000..7fd5edb --- /dev/null +++ b/tools/MbUnit/MbUnit.Cons.exe.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/tools/MbUnit/MbUnit.Framework.2.0.dll b/tools/MbUnit/MbUnit.Framework.2.0.dll new file mode 100644 index 0000000..ec1e6d7 Binary files /dev/null and b/tools/MbUnit/MbUnit.Framework.2.0.dll differ diff --git a/tools/MbUnit/MbUnit.Framework.dll b/tools/MbUnit/MbUnit.Framework.dll new file mode 100644 index 0000000..18108b9 Binary files /dev/null and b/tools/MbUnit/MbUnit.Framework.dll differ diff --git a/tools/MbUnit/MbUnit.GUI.exe b/tools/MbUnit/MbUnit.GUI.exe new file mode 100644 index 0000000..52b27d0 Binary files /dev/null and b/tools/MbUnit/MbUnit.GUI.exe differ diff --git a/tools/MbUnit/MbUnit.GUI.exe.config b/tools/MbUnit/MbUnit.GUI.exe.config new file mode 100644 index 0000000..46bf22b --- /dev/null +++ b/tools/MbUnit/MbUnit.GUI.exe.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/MbUnit/MbUnit.MSBuild.Tasks.dll b/tools/MbUnit/MbUnit.MSBuild.Tasks.dll new file mode 100644 index 0000000..2de3b3f Binary files /dev/null and b/tools/MbUnit/MbUnit.MSBuild.Tasks.dll differ diff --git a/tools/MbUnit/MbUnit.Tasks.dll b/tools/MbUnit/MbUnit.Tasks.dll new file mode 100644 index 0000000..47fab28 Binary files /dev/null and b/tools/MbUnit/MbUnit.Tasks.dll differ diff --git a/tools/MbUnit/NAnt.Core.dll b/tools/MbUnit/NAnt.Core.dll new file mode 100644 index 0000000..77489e3 Binary files /dev/null and b/tools/MbUnit/NAnt.Core.dll differ diff --git a/tools/MbUnit/NGraphviz.Helpers.dll b/tools/MbUnit/NGraphviz.Helpers.dll new file mode 100644 index 0000000..a84595f Binary files /dev/null and b/tools/MbUnit/NGraphviz.Helpers.dll differ diff --git a/tools/MbUnit/NGraphviz.Layout.dll b/tools/MbUnit/NGraphviz.Layout.dll new file mode 100644 index 0000000..291597c Binary files /dev/null and b/tools/MbUnit/NGraphviz.Layout.dll differ diff --git a/tools/MbUnit/NGraphviz.dll b/tools/MbUnit/NGraphviz.dll new file mode 100644 index 0000000..53b9fce Binary files /dev/null and b/tools/MbUnit/NGraphviz.dll differ diff --git a/tools/MbUnit/QuickGraph.Algorithms.Graphviz.dll b/tools/MbUnit/QuickGraph.Algorithms.Graphviz.dll new file mode 100644 index 0000000..2addea0 Binary files /dev/null and b/tools/MbUnit/QuickGraph.Algorithms.Graphviz.dll differ diff --git a/tools/MbUnit/QuickGraph.Algorithms.dll b/tools/MbUnit/QuickGraph.Algorithms.dll new file mode 100644 index 0000000..b70672e Binary files /dev/null and b/tools/MbUnit/QuickGraph.Algorithms.dll differ diff --git a/tools/MbUnit/QuickGraph.dll b/tools/MbUnit/QuickGraph.dll new file mode 100644 index 0000000..5f7dbbf Binary files /dev/null and b/tools/MbUnit/QuickGraph.dll differ diff --git a/tools/MbUnit/Refly.dll b/tools/MbUnit/Refly.dll new file mode 100644 index 0000000..a89da96 Binary files /dev/null and b/tools/MbUnit/Refly.dll differ diff --git a/tools/MbUnit/TestDriven.Framework.dll b/tools/MbUnit/TestDriven.Framework.dll new file mode 100644 index 0000000..1498507 Binary files /dev/null and b/tools/MbUnit/TestDriven.Framework.dll differ diff --git a/tools/MbUnit/TestFu.dll b/tools/MbUnit/TestFu.dll new file mode 100644 index 0000000..571f2b5 Binary files /dev/null and b/tools/MbUnit/TestFu.dll differ diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/autorunner.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/autorunner.snippet new file mode 100644 index 0000000..4cbfc99 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/autorunner.snippet @@ -0,0 +1,48 @@ + + + +
+ AutoRunner + MbUnit + Expansion snippet for a AutorRunner main. + autorunner + + Expansion + +
+ + + + name + Main class name + Program + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/combinatorialtest.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/combinatorialtest.snippet new file mode 100644 index 0000000..68abce0 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/combinatorialtest.snippet @@ -0,0 +1,56 @@ + + + +
+ CombinatorialTest + MbUnit + Inserts a combinatorial test with 2 parameters and 2 factories + http://www.mertner.com/confluence/display/MbUnit/CombinatorialTestAttribute + combinatorial +
+ + + + testName + Test + + + type1 + + + type2 + type2 + + + arg1Name + arg1Name + + + arg2Name + arg2Name + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/datafixture.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/datafixture.snippet new file mode 100644 index 0000000..2d29eb9 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/datafixture.snippet @@ -0,0 +1,63 @@ + + + +
+ DataFixture + MbUnit + Expansion snippet for DataFixture + http://www.mertner.com/confluence/display/MbUnit/DataFixture + datafixture + + Expansion + +
+ + + + namespace + Test namespace + + + name + Fixture name + My + + + resource + Resource name + Put the xml resource name here + + + resourceXPath + Data XPath + Put the data XPath here + + + testXPath + Resource XPath + Put the test case XPath here + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/model.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/model.snippet new file mode 100644 index 0000000..8ad72c3 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/model.snippet @@ -0,0 +1,101 @@ + + + +
+ Model + MbUnit + Expansion snippet for a Model + model + + Expansion + +
+ + + + namespace + Model namespace + + + type + Modelled type + Put the modelled type here + + + basetype + Modelled Base Type + Object + + + + /// A implementation for the + /// type. + /// + [Model(typeof($type$))] + // [State("Put a state name here")] + // [SubModel("Put a submodel name here")] + public class $type$Model : $basetype$Model + { + #region Constructors + /// + /// Initializes a new instance. + /// + public $type$Model() + :base() + {} + + /// + /// Initializes a new instance + /// to model the type. + /// + /// + /// Target of the model + /// + public $type$Model(Type modelledType) + :base(modelledType) + { + if (!typeof($type$).IsAssignableFrom(modelledType)) + throw new ArgumentException("$type$ is not assignable from "+modelledType.FullName,"modelledType"); + } + #endregion + + #region Transitions + [Transition] + public void SampleTransition($type$ target) + { + throw new NotImplemented(); + } + + /// + /// Gets the active instance for + /// current . + /// + /// + /// Collection of active names + /// + /// + /// Current tested instance + /// + protected override void GetActiveTransitions( + ITransitionNameCollection transitions, + Object target + ) + { + base.GetActiveTransitions(transitions,target); + $type$ current = ($type$)target; + + $end$ + } + #endregion + } +} + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/processtestfixture.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/processtestfixture.snippet new file mode 100644 index 0000000..c06df1f --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/processtestfixture.snippet @@ -0,0 +1,72 @@ + + + +
+ ProcessTestFixture + MbUnit + http://www.mertner.com/confluence/display/MbUnit/ProcessTestFixture + processfixture +
+ + + + namespace + MbUnitTests + + + testName1 + Test1 + + + testName2 + Test2 + + + testName3 + Test3 + + + testName4 + Test4 + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/rowtest.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/rowtest.snippet new file mode 100644 index 0000000..e16ae38 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/rowtest.snippet @@ -0,0 +1,114 @@ + + + +
+ RowTest + MbUnit + Inserts a row test with 5 rows and 3 parameters. + http://www.mertner.com/confluence/display/MbUnit/RowTestAttribute + rowtest +
+ + + + testName + Test + + + type1 + type1 + + + arg1Name + arg1Name + + + type2 + type2 + + + arg2Name + arg2Name + + + type3 + type3 + + + arg3Name + arg3Name + + + value1 + value1 + + + value2 + value2 + + + value3 + value3 + + + value4 + value4 + + + value5 + value5 + + + value6 + value6 + + + value7 + value7 + + + value8 + value8 + + + value9 + value9 + + + value10 + value10 + + + value11 + value11 + + + value12 + value12 + + + value13 + value13 + + + value14 + value14 + + + value15 + value15 + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/state.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/state.snippet new file mode 100644 index 0000000..5c116d9 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/state.snippet @@ -0,0 +1,30 @@ + + + +
+ IState wrapper + MbUnit + Expansion snippet for a IState wrapper + state + + Expansion + +
+ + + + name + State Name + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/submodel.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/submodel.snippet new file mode 100644 index 0000000..3d336da --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/submodel.snippet @@ -0,0 +1,34 @@ + + + +
+ ISubModel wrapper + MbUnit + Expansion snippet for a ISubModel wrapper + submodel + + Expansion + +
+ + + + model + Model type + + + name + SubModel Name + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/test.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/test.snippet new file mode 100644 index 0000000..1b91911 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/test.snippet @@ -0,0 +1,28 @@ + + + +
+ Test Method + Expansion snippet for a Test method + test + + Expansion + +
+ + + + name + TestName + Test + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testexpectedexception.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testexpectedexception.snippet new file mode 100644 index 0000000..4dbb7b8 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testexpectedexception.snippet @@ -0,0 +1,34 @@ + + + +
+ Test Method with ExpectedException + MbUnit + Expansion snippet for a Test method + http://www.mertner.com/confluence/display/MbUnit/ExpectedExceptionAttribute + testexpectedexception + + Expansion + +
+ + + + name + TestName + + + type + Expected Exception Type + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testfixture.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testfixture.snippet new file mode 100644 index 0000000..b023d63 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testfixture.snippet @@ -0,0 +1,71 @@ + + + +
+ TestFixture + MbUnit + Expansion snippet for TestFixture + testfixture + + Expansion + +
+ + + + namespace + Test namespace + + + type + Tested type + + + + /// A for the class. + /// + [TestFixture] + [TestsOn(typeof($type$))] + public class $type$Test + { + #region Fields, SetUp and TearDown + private $type$ target = null; + + /// + /// Sets up the fixture + /// + [SetUp] + public void SetUp() + { + this.target = new $type$(); + } + /// + /// Cleans up the fixture + /// + [TearDown] + public void TearDown() + { + IDisposable disposable = this.target as IDisposable; + if (disposable!=null) + disposable.Dispose(); + } + #endregion + + #region Test cases + [Test] + public void Test() + { + $end$ + } + #endregion + } +} + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testsuitefixture.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testsuitefixture.snippet new file mode 100644 index 0000000..c8de435 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/testsuitefixture.snippet @@ -0,0 +1,52 @@ + + + +
+ TestSuiteFixture + MbUnit + Expansion snippet for TestSuiteFixture + testsuitefixture + + Expansion + +
+ + + + namespace + Test namespace + + + name + Fixture name + My + + + suiteName + Suite name + Suite + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/typefixture.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/typefixture.snippet new file mode 100644 index 0000000..490e531 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/typefixture.snippet @@ -0,0 +1,67 @@ + + + +
+ TypeFixture + MbUnit + Expansion snippet for TypeFixture + http://www.mertner.com/confluence/display/MbUnit/TypeFixture + typefixture + + Expansion + +
+ + + + namespace + Test namespace + + + type + Tested type + + + + /// A for the class. + /// + [TypeFixture(typeof($type$))] + //[ProviderFactory(typeof($type$Factory),typeof($type$))] + [TestsOn(typeof($type$))] + public class $type$Test + { + #region SetUp and TearDown + /// + /// Initializes the fixture + /// + [SetUp] + public void SetUp($type$ value) + { + } + /// + /// Cleans up the fixture + /// + [TearDown] + public void TearDown($type$ value) + { + } + #endregion + + #region Test cases + [Test] + public void Test($type$ value) + { + $end$ + } + #endregion + } +} + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/typefixturewithproviderfactory.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/typefixturewithproviderfactory.snippet new file mode 100644 index 0000000..72da00b --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/typefixturewithproviderfactory.snippet @@ -0,0 +1,77 @@ + + + +
+ TypeFixture with Provider Factory + MbUnit + Expansion snippet for TypeFixture + typefixturefac + + Expansion + +
+ + + + namespace + Test namespace + MbUnitTests + + + type + Tested type + + + + ''' A TypeFixture for the $type$ class. + ''' + _ + Public Class $type$Test + + #Region "SetUp and TearDown" + ''' + ''' Initializes the fixture + ''' + _ + Public Sub SetUp(ByVal value As $type$) + + End Sub + ''' + ''' Cleans up the fixture + ''' + _ + Public Sub TearDown(ByVal value As $type$) + + End Sub + #End Region + + #Region "Test cases" + _ + Public Sub Test(ByVal value As $type$) + + End Sub + #End Region + + End Class + + Public Class $type$Factory + _ + Public ReadOnly Property Factory As $type$ + Get + Return New $type$ + End Get + End Property + End Class + +End Namespace + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/usingmbunit.snippet b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/usingmbunit.snippet new file mode 100644 index 0000000..c1d9113 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitCSharpSnippets/usingmbunit.snippet @@ -0,0 +1,19 @@ + + + +
+ Using MbUnit Includes + MbUnit + Expansion snippet for the MbUnit using statements + usingMbUnit + + Expansion + +
+ + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/autorunner.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/autorunner.snippet new file mode 100644 index 0000000..3c9e51c --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/autorunner.snippet @@ -0,0 +1,45 @@ + + + +
+ AutoRunner + MbUnit + Expansion snippet for a AutorRunner main. + autorunner + + Expansion + +
+ + + + name + Main class name + Program + + + namespace + MbUnitTests + + + attribute. + + ' auto.Domain.Filter = FixtureFilters.Current + auto.Run() + auto.ReportToHtml() + End Using + End Sub + End Class +End Namespace]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/combinatorialtest.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/combinatorialtest.snippet new file mode 100644 index 0000000..bc46949 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/combinatorialtest.snippet @@ -0,0 +1,54 @@ + + + +
+ CombinatorialTest + MbUnit + Inserts a combinatorial test with 2 parameters and 2 factories + http://www.mertner.com/confluence/display/MbUnit/CombinatorialTestAttribute + combinatorial +
+ + + + testName + Test + + + type1 + + + type2 + type2 + + + arg1Name + arg1Name + + + arg2Name + arg2Name + + + _ + Public Sub $testName$( _ + _ + public IEnumerable $type1$Factory() + { + Dim values As $type1$() = New $type1$ { }; + Return values + } + + _ + Public Function $type2$Factory() As IEnumerable + Dim values As $type2$() = New $type2$ { }; + Return values + End Function]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/datafixture.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/datafixture.snippet new file mode 100644 index 0000000..5f8f402 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/datafixture.snippet @@ -0,0 +1,61 @@ + + + +
+ DataFixture + MbUnit + Expansion snippet for DataFixture + http://www.mertner.com/confluence/display/MbUnit/DataFixture + datafixture + + Expansion + +
+ + + + namespace + Test namespace + MbUnitTests + + + name + Fixture name + My + + + resource + Resource name + Put the xml resource name here + + + resourceXPath + Data XPath + Put the data XPath here + + + testXPath + Resource XPath + Put the test case XPath here + + + _ + Public Class $name$Test + #Region "Test cases" + _ + Public Sub ForEachTest(ByVal node As XmlNode) + + End Sub + #End Region + End Class +End Namespace + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/model.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/model.snippet new file mode 100644 index 0000000..354083c --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/model.snippet @@ -0,0 +1,95 @@ + + + +
+ Model + Expansion snippet for a Model + model + + Expansion + +
+ + + + namespace + Model namespace + MbUnitTests + + + type + Modelled type + Put the modelled type here + + + basetype + Modelled Base Type + Object + + + + ''' A IModel implementation for the $type$ type. + ''' + ' + ' + _ + Public Class $type$Model + Inherits $basetype$Model + + #Region "Constructors" + ''' + ''' Initializes a new $type$Model instance. + ''' + Public Sub New() + + End Sub + + ''' + ''' Initializes a new "$name$Model" instance to model the modelledType type. + ''' + ''' + ''' Target Type of the model + ''' + Public Sub New(ByVal modelledType As Type) + MyBase.New(modelledType) + If Not GetType($type$).IsAssignableFrom(modelledType) + Throw New ArgumentException("$type$ is not assignable from "+modelledType.FullName,"modelledType") + End If + End Sub + #End Region + + #Region "Transitions" + _ + Public Sub SampleTransition(ByVal target As $type$) + Throw New NotImplementedException() + End Sub + + ''' + ''' Gets the active ITransition instance for current target. + ''' + ''' + ''' Collection of active ITransition names + ''' + ''' + ''' Current tested instance + ''' + Protected Overrides Sub GetActiveTransitions( _ + ByVal transitions as ITransitionNameCollection , _ + ByVal target as Object) + + MyBase.GetActiveTransitions(transitions,target) + Dim current As $type$ = DirectCast(target, $type$) + + End Sub + #End Region + End Class +End Namespace + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/processtestfixture.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/processtestfixture.snippet new file mode 100644 index 0000000..8b53d58 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/processtestfixture.snippet @@ -0,0 +1,75 @@ + + + +
+ ProcessTestFixture + MbUnit + http://www.mertner.com/confluence/display/MbUnit/ProcessTestFixture + processfixture +
+ + + + namespace + MbUnitTests + + + testName1 + Test1 + + + testName2 + Test2 + + + testName3 + Test3 + + + testName4 + Test4 + + + type + The class being tested + type + + + _ + Public Class $type$Test + + _ + Public Sub $testName1$() + + End Sub + + _ + Public Sub $testName2$() + + End Sub + + _ + Public Sub $testName3$() + + End Sub + + _ + Public Sub $testName4$() + + End Sub + + End Class + +End Namespace]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/rowtest.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/rowtest.snippet new file mode 100644 index 0000000..8919619 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/rowtest.snippet @@ -0,0 +1,113 @@ + + + +
+ RowTest + MbUnit + Inserts a row test with 5 rows and 3 parameters. + http://www.mertner.com/confluence/display/MbUnit/RowTestAttribute + rowtest +
+ + + + testName + Test + + + type1 + type1 + + + arg1Name + arg1Name + + + type2 + type2 + + + arg2Name + arg2Name + + + type3 + type3 + + + arg3Name + arg3Name + + + value1 + value1 + + + value2 + value2 + + + value3 + value3 + + + value4 + value4 + + + value5 + value5 + + + value6 + value6 + + + value7 + value7 + + + value8 + value8 + + + value9 + value9 + + + value10 + value10 + + + value11 + value11 + + + value12 + value12 + + + value13 + value13 + + + value14 + value14 + + + value15 + value15 + + + _ + Public Sub $testName$(ByVal $arg1Name$ As $type1$, ByVal $arg2Name$ As $type2$, ByVal $arg3Name$ As $type3$) + + End Sub]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/state.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/state.snippet new file mode 100644 index 0000000..c60429a --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/state.snippet @@ -0,0 +1,27 @@ + + + +
+ IState wrapper + MbUnit + Expansion snippet for a IState wrapper + state + + Expansion + +
+ + + + name + State Name + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/submodel.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/submodel.snippet new file mode 100644 index 0000000..8f4f645 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/submodel.snippet @@ -0,0 +1,32 @@ + + + +
+ ISubModel wrapper + MbUnit + Expansion snippet for a ISubModel wrapper + submodel + + Expansion + +
+ + + + model + Model type + + + name + SubModel Name + + + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/test.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/test.snippet new file mode 100644 index 0000000..625c231 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/test.snippet @@ -0,0 +1,28 @@ + + + +
+ Test Method + MbUnit + Expansion snippet for a Test method + test + + Expansion + +
+ + + + name + TestName + Test + + + _ + Public Sub $name$() + + End Sub + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testexpectedexception.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testexpectedexception.snippet new file mode 100644 index 0000000..caac89d --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testexpectedexception.snippet @@ -0,0 +1,32 @@ + + + +
+ Test Method with ExpectedException + MbUnit + Expansion snippet for a Test method with and expected exception + testexpectedexception + + Expansion + +
+ + + + name + TestName + Test + + + type + Expected Exception Type + + + _ + Public Sub $name$() + + End Sub +]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testfixture.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testfixture.snippet new file mode 100644 index 0000000..9febc88 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testfixture.snippet @@ -0,0 +1,68 @@ + + + +
+ TestFixture + MbUnit + Expansion snippet for TestFixture + testfixture + + Expansion + +
+ + + + namespace + Test namespace + MbUnitTests + + + type + Tested type + + + + ''' A TestFixture for the $type$ class. + ''' + _ + Public Class $type$Test + #Region "Fields, SetUp and TearDown" + Private target As $type$ = Nothing + + ''' + ''' Sets up the fixture + ''' + _ + Public Sub SetUp() + Mew.target = New $type$() + End Sub + ''' + ''' Cleans up the fixture + '' + _ + public void TearDown() + Dim disposable As IDisposable = TryCast(this.target, IDisposable) + If disposable IsNot Nothing Then + disposable.Dispose() + End If + End Sub + #End Region + + #Region "Test cases" + _ + Public Sub Test() + + End Sub + #End Region + End Class +End Namespace]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testsuitefixture.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testsuitefixture.snippet new file mode 100644 index 0000000..c47decb --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/testsuitefixture.snippet @@ -0,0 +1,48 @@ + + + +
+ TestSuiteFixture + MbUnit + Expansion snippet for TestSuiteFixture + testsuitefixture + + Expansion + +
+ + + + namespace + Test namespace + MbUnitTests + + + name + Fixture name + My + + + suiteName + Suite name + Suite + + + _ + Public Class $name$Test + _ + Public Function $suiteName$() As TestSuite + Dim suite As TestSuite = New TestSuite("$suiteName$") + + Return suite + End Function + End Class +End Namespace + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/typefixture.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/typefixture.snippet new file mode 100644 index 0000000..60d4f66 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/typefixture.snippet @@ -0,0 +1,74 @@ + + + +
+ TypeFixture + MbUnit + Expansion snippet for TypeFixture + http://www.mertner.com/confluence/display/MbUnit/TypeFixture + typefixture + + Expansion + +
+ + + + namespace + Test namespace + MbUnitTests + + + type + Tested type + + + instanceName + instanceName + + + + ''' A TypeFixture for the $type$ class. + ''' + _ + Public Class $type$Test + #Region "SetUp and TearDown" + ''' + ''' Initializes the fixture + ''' + _ + Public Sub SetUp(ByVal value As $type$) + End Sub + ''' + ''' Cleans up the fixture + ''' + _ + Public Sub TearDown(ByVal value As $type$) + End Sub + #End Region + + #Region "Test cases" + _ + Public Sub Test(ByVal value As $type$) + End Sub + #End Region + + #Region "Providers" + _ + Public Function Provider$type$() As $type$ + Dim $instanceName$ As $type$ = New $type$() + Return $instanceName$ + End Function + #End Region + End Class +End Namespace + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/typefixturewithproviderfactory.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/typefixturewithproviderfactory.snippet new file mode 100644 index 0000000..72da00b --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/typefixturewithproviderfactory.snippet @@ -0,0 +1,77 @@ + + + +
+ TypeFixture with Provider Factory + MbUnit + Expansion snippet for TypeFixture + typefixturefac + + Expansion + +
+ + + + namespace + Test namespace + MbUnitTests + + + type + Tested type + + + + ''' A TypeFixture for the $type$ class. + ''' + _ + Public Class $type$Test + + #Region "SetUp and TearDown" + ''' + ''' Initializes the fixture + ''' + _ + Public Sub SetUp(ByVal value As $type$) + + End Sub + ''' + ''' Cleans up the fixture + ''' + _ + Public Sub TearDown(ByVal value As $type$) + + End Sub + #End Region + + #Region "Test cases" + _ + Public Sub Test(ByVal value As $type$) + + End Sub + #End Region + + End Class + + Public Class $type$Factory + _ + Public ReadOnly Property Factory As $type$ + Get + Return New $type$ + End Get + End Property + End Class + +End Namespace + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitVBSnippets/usingmbunit.snippet b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/usingmbunit.snippet new file mode 100644 index 0000000..413759c --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitVBSnippets/usingmbunit.snippet @@ -0,0 +1,19 @@ + + + +
+ Using MbUnit Includes + MbUnit + Expansion snippet for the MbUnit using statements + usingMbUnit + + Expansion + +
+ + + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitXMLSnippets/msbuild.snippet b/tools/MbUnit/VSSnippets/MbUnitXMLSnippets/msbuild.snippet new file mode 100644 index 0000000..fb788fd --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitXMLSnippets/msbuild.snippet @@ -0,0 +1,40 @@ + + + +
+ MSBuild task + MbUnit + Expansion snippet for a MSBuild task + msbuild + + Expansion + +
+ + + + name + Fixture name + My + + + + + + + + + + + + + + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/VSSnippets/MbUnitXMLSnippets/nant.snippet b/tools/MbUnit/VSSnippets/MbUnitXMLSnippets/nant.snippet new file mode 100644 index 0000000..4e58569 --- /dev/null +++ b/tools/MbUnit/VSSnippets/MbUnitXMLSnippets/nant.snippet @@ -0,0 +1,34 @@ + + + +
+ NAnt task + MbUnit + Expansion snippet for a NAnt task + nant + + Expansion + +
+ + + + name + Fixture name + My + + + + + + + $end$ + + + ]]> + +
+
\ No newline at end of file diff --git a/tools/MbUnit/XsdTidy.exe b/tools/MbUnit/XsdTidy.exe new file mode 100644 index 0000000..6639a48 Binary files /dev/null and b/tools/MbUnit/XsdTidy.exe differ diff --git a/tools/MbUnit/log4net.dll b/tools/MbUnit/log4net.dll new file mode 100644 index 0000000..46ecf22 Binary files /dev/null and b/tools/MbUnit/log4net.dll differ diff --git a/tools/MbUnit/uninst.exe b/tools/MbUnit/uninst.exe new file mode 100644 index 0000000..42a393f Binary files /dev/null and b/tools/MbUnit/uninst.exe differ diff --git a/tools/nant/bin/NAnt.CompressionTasks.dll b/tools/nant/bin/NAnt.CompressionTasks.dll new file mode 100644 index 0000000..acbb331 Binary files /dev/null and b/tools/nant/bin/NAnt.CompressionTasks.dll differ diff --git a/tools/nant/bin/NAnt.CompressionTasks.xml b/tools/nant/bin/NAnt.CompressionTasks.xml new file mode 100644 index 0000000..7189682 --- /dev/null +++ b/tools/nant/bin/NAnt.CompressionTasks.xml @@ -0,0 +1,609 @@ + + + + NAnt.CompressionTasks + + + + + Expands a file packed using GZip compression. + + + Expands "test.tar.gz" to "test2.tar". + + + ]]> + + + + + + Extracts the file from the gzip archive. + + + + + The file to expand. + + + + + The destination file. + + + + + Creates a tar file from the specified filesets. + + + Uses #ziplib (SharpZipLib), an open source Tar/Zip/GZip library written entirely in C#. + + + + Tar all files in ${build.dir} and ${doc.dir} into a file + called "backup.tar.gz", and apply gzip compression to it. + + + + + + + + + + + ]]> + + + + + + Creates the tar file. + + + + + The tar file to create. + + + + + Include empty directories in the generated tar file. The default is + . + + + + + The set of files to be included in the archive. + + + + + The compression method. The default is . + + + + + Specifies the compression methods supported by . + + + + + No compression. + + + + + GZIP compression. + + + + + BZIP2 compression. + + + + + Extracts files from a zip file. + + + Uses #ziplib (SharpZipLib), an open source Zip/GZip library written entirely in C#. + + + Extracts all the file from the zip, preserving the directory structure. + + + ]]> + + + + + + Extracts the files from the zip file. + + + + + Extracts a file entry from the specified stream. + + The containing the compressed entry. + The name of the entry including directory information. + The date of the entry. + The uncompressed size of the entry. + + The destination directory for the entry could not be created. + -or- + The entry could not be extracted. + + + We cannot rely on the fact that the directory entry of a given file + is created before the file is extracted, so we should create the + directory if it doesn't yet exist. + + + + + Extracts a directory entry from the specified stream. + + The containing the directory entry. + The name of the directory entry. + The date of the entry. + + The destination directory for the entry could not be created. + + + + + The archive file to expand. + + + + + The directory where the expanded files should be stored. The + default is the project base directory. + + + + + Overwrite files, even if they are newer than the corresponding + entries in the archive. The default is . + + + + + The character encoding that has been used for filenames inside the + zip file. The default is the system's OEM code page. + + + + + Creates a zip file from the specified filesets. + + + Uses #ziplib (SharpZipLib), an open source Tar/Zip/GZip library written entirely in C#. + + + + Zip all files in ${build.dir} and ${doc.dir} into a file + called "backup.zip". + + + + + + + + + + + ]]> + + + + + + Creates the zip file. + + + + + The zip file to create. + + + + + The comment for the file. + + + + + Date/time stamp for the files in the format MM/DD/YYYY HH:MM:SS. + + + + + Desired level of compression. Possible values are 0 (STORE only) + to 9 (highest). The default is 6. + + + + + Include empty directories in the generated zip file. The default is + . + + + + + The set of files to be included in the archive. + + + + + Specifies the behaviour when a duplicate file is found. The default + is . + + + + + The character encoding to use for filenames and comment inside the + zip file. The default is the system's OEM code page. + + + + + Specifies how entries with the same name should be processed. + + + + + Overwrite existing entry with same name. + + + + + Preserve existing entry with the same name. + + + + + Report failure when two entries have the same name. + + + + + A is a with extra + attributes useful in the context of the . + + + + + A 3 digit octal string, specify the user, group and other modes + in the standard Unix fashion. Only applies to plain files. The + default is 644. + + + + + A 3 digit octal string, specify the user, group and other modes + in the standard Unix fashion. Only applies to directories. The + default is 755. + + + + + The username for the tar entry. + + + + + The user identifier (UID) for the tar entry. + + + + + The groupname for the tar entry. + + + + + The group identifier (GID) for the tar entry. + + + + + The top level directory prefix. If set, all file and directory paths + in the fileset will have this value prepended. Can either be a single + directory name or a "/" separated path. + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Get the total number of files that are represented by the + filesets in this collection. + + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + A is a with extra + attributes useful in the context of the . + + + + + The top level directory prefix. If set, all file and directory paths + in the fileset will have this value prepended. Can either be a single + directory name or a "/" separated path. + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Get the total number of files that are represented by the + filesets in this collection. + + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + diff --git a/tools/nant/bin/NAnt.Core.dll b/tools/nant/bin/NAnt.Core.dll new file mode 100644 index 0000000..df9936b Binary files /dev/null and b/tools/nant/bin/NAnt.Core.dll differ diff --git a/tools/nant/bin/NAnt.Core.xml b/tools/nant/bin/NAnt.Core.xml new file mode 100644 index 0000000..a2435f4 --- /dev/null +++ b/tools/nant/bin/NAnt.Core.xml @@ -0,0 +1,14888 @@ + + + + NAnt.Core + + + + + Used to indicate that a property should be able to be converted into a + . + + + + + Base class for all validator attributes. + + + + + Validates the specified value. + + The value to be validated. + The validation fails. + + + + Initializes a new instance of the + class. + + + + + Checks if the specified value can be converted to a . + + The value to be checked. + cannot be converted to a . + + + + Indicates that property should be treated as a XML attribute for the + task. + + + Examples of how to specify task attributes + + #region Public Instance Properties + + [BuildAttribute("out", Required=true)] + public string Output { + get { return _out; } + set { _out = value; } + } + + [BuildAttribute("optimize")] + [BooleanValidator()] + public bool Optimize { + get { return _optimize; } + set { _optimize = value; } + } + + [BuildAttribute("warnlevel")] + [Int32Validator(0,4)] // limit values to 0-4 + public int WarnLevel { + get { return _warnLevel; } + set { _warnLevel = value; } + } + + [BuildElement("sources")] + public FileSet Sources { + get { return _sources; } + set { _sources = value; } + } + + #endregion Public Instance Properties + + #region Private Instance Fields + + private string _out = null; + private bool _optimize = false; + private int _warnLevel = 4; + private FileSet _sources = new FileSet(); + + #endregion Private Instance Fields + + + + + + Initializes a new instance of the with the + specified name. + + The name of the attribute. + is . + is a zero-length . + + + + Gets or sets the name of the XML attribute. + + + The name of the XML attribute. + + + + + Gets or sets a value indicating whether the attribute is required. + + + if the attribute is required; otherwise, + . The default is . + + + + + Gets or sets a value indicating whether property references should + be expanded. + + + if properties should be expanded; otherwise + . The default is . + + + + + Used to specify how this attribute will be handled as the XML is + parsed and given to the element. + + + if XML should be processed; otherwise + . The default is . + + + + + Indicates that property should be treated as a XML arrayList + + + + Should only be applied to properties exposing strongly typed arrays or + strongly typed collections. + + + The XML format is like this: + + + + + + + + ]]> + + + + + + + Indicates that the property should be treated as an XML element and + further processing should be done. + + + + Should only be applied to properties exposing strongly typed arrays or + strongly typed collections. + + + The XML format is like this: + + + + + + + ]]> + + + + + + + Initializes a new instance of the with the + specified name. + + The name of the attribute. + is . + is a zero-length . + + + + Gets or sets the name of the attribute. + + + The name of the attribute. + + + + + Gets or sets a value indicating whether the attribute is required. + + + if the attribute is required; otherwise, + . The default is . + + + + + Used to specify how this element will be handled as the XML is parsed + and given to the element. + + + if XML should be processed; otherwise + . The default is . + + + + + Initializes a new instance of the + with the specified name. + + The name of the attribute. + is . + is a zero-length . + + + + Gets or sets the type of objects that this container holds. + + + The type of the elements that this container holds. + + + + This can be used for validation and schema generation. + + + If not specified, the type of the elements will be determined using + reflection. + + + is . + + + + Indicates that the property should be treated as a container for a + collection of build elements. + + + + Should only be applied to properties exposing strongly typed arrays or + strongly typed collections. + + + The XML format is like this: + + + + + + + + + + ]]> + + + + + + + Initializes a new instance of the with the + specified name and child element name. + + The name of the collection. + The name of the child elements in the collection + is . + is a zero-length . + + + + The name of the child element within the collection. + + + The name to check for in the XML of the elements in the collection. + + + This can be used for validation and schema generation. + + + + + Used to indicate that a property should be able to be converted into a + . + + + + + Initializes a new instance of the + class. + + + + + Checks if the specified value can be converted to a . + + The value to be checked. + cannot be converted to a . + + + + Indicates that class should be treated as a NAnt element. + + + Attach this attribute to a subclass of Element to have NAnt be able + to recognize it. The name should be short but must not confict + with any other element already in use. + + + + + Initializes a new instance of the + with the specified name. + + The name of the element. + is . + is a zero-length . + + + + Gets or sets the name of the element. + + + The name of the element. + + + + + Indicates that a property should be treated as a XML file set for the + task. + + + + + Initializes a new instance of the with the + specified name. + + The name of the attribute. + is . + is a zero-length . + + + + Indicates that the value of the property to which the attribute is + assigned, can be configured on the framework-level in the NAnt application + configuration file. + + + + The following example shows a property of which the value can be + configured for a specific framework in the NAnt configuration file. + + + [FrameworkConfigurable("exename", Required=true)] + public virtual string ExeName { + get { return _exeName; } + set { _exeName = value; } + } + + + + + + Initializes a new instance of the + with the specified attribute name. + + The name of the framework configuration attribute. + is a . + is a zero-length . + + + + Gets or sets the name of the framework configuration attribute. + + The name of the framework configuration attribute. + + + + Gets or sets a value indicating whether the configuration attribute + is required. + + + if the configuration attribute is required; + otherwise, . The default is . + + + + + Gets or sets a value indicating whether property references should + be expanded. + + + if properties should be expanded; otherwise + . The default is . + + + + + Indicates that the method should be exposed as a function in NAnt build + files. + + + Attach this attribute to a method of a class that derives from + to have NAnt be able to recognize it. + + + + + Initializes a new instance of the + class with the specified name. + + The name of the function. + is . + is a zero-length . + + + + Gets or sets the name of the function. + + + The name of the function. + + + + + Indicates that class should be treated as a set of functions. + + + Attach this attribute to a class that derives from + to have NAnt be able to recognize it as containing custom functions. + + + + + Initializes a new instance of the + class with the specified name. + + The prefix used to distinguish the functions. + The category of the functions. + + is . + -or- + is . + + + is a zero-length . + -or- + is a zero-length . + + + + + Gets or sets the category of the function set. + + + The name of the category of the function set. + + + This will be displayed in the user docs. + + + + + Gets or sets the prefix of all functions in this function set. + + + The prefix of the functions in this function set. + + + + + Indicates that property should be able to be converted into a + within the given range. + + + + + Initializes a new instance of the + class. + + + + + Initializes a new instance of the + class with the specied minimum and maximum values. + + The minimum value. + The maximum value. + + + + Checks whether the specified value can be converted to an + and whether the value lies within the range defined by the + and properties. + + The value to be checked. + + + cannot be converted to an . + + -or- + + is not in the range defined by + and . + + + + + + Gets or sets the minimum value. + + + The minimum value. The default is . + + + + + Gets or sets the maximum value. + + + The maximum value. The default is . + + + + + The base of the number to validate, which must be 2, 8, 10, or 16. + + + The base of the number to validate. + + + The default is 10. + + + + + Defines possible locations in which a task executable can be located. + + + + + Locates the task executable in the current Framework directory. + + + + + Locates the task executable in the current Framework SDK directory. + + + + + Indicates the location that a task executable can be located in. + + + + + Initializes a new instance of the + with the specified location. + + The of the attribute. + + + + Gets or sets the of the task. + + + The location type of the task to which the attribute is assigned. + + + + + Used to indicate whether a property should allow + an empty string value or not. + + + + + Initializes a new instance of the + class. + + + + + Checks if the specified value adheres to the rules defined by the + properties of the . + + The value to be checked. + is an empty string value and is set to . + + + + Gets or sets a value indicating whether an empty string or + should be a considered a valid value. + + + if an empty string or + should be considered a valid value; otherwise, . + The default is . + + + + + Gets or sets a regular expression. The string will be validated to + determine if it matches the expression. + + + + + + + + An optional error message that can be used to better describe the + regular expression error. + + + + + Indicates that property should be treated as a XML attribute for the + task. + + + Examples of how to specify task attributes + + // task XmlType default is string + [TaskAttribute("out", Required=true)] + string _out = null; // assign default value here + + [TaskAttribute("optimize")] + [BooleanValidator()] + // during ExecuteTask you can safely use Convert.ToBoolean(_optimize) + string _optimize = Boolean.FalseString; + + [TaskAttribute("warnlevel")] + [Int32Validator(0,4)] // limit values to 0-4 + // during ExecuteTask you can safely use Convert.ToInt32(_optimize) + string _warnlevel = "0"; + + [BuildElement("sources")] + FileSet _sources = new FileSet(); + + NOTE: Attribute values must be of type of string if you want + to be able to have macros. The field stores the exact value during + InitializeTask. Just before ExecuteTask is called NAnt will expand + all the macros with the current values. + + + + + Initializes a new instance of the + with the specified attribute name. + + The name of the task attribute. + is a . + is a zero-length . + + + + Indicates that class should be treated as a task. + + + Attach this attribute to a subclass of Task to have NAnt be able + to recognize it. The name should be short but must not confict + with any other task already in use. + + + + + Initializes a new instance of the + with the specified name. + + The name of the task. + is . + is a zero-length . + + + + Functions as a chainable TextReader + + + Implements a abstraction over a TextReader that allows the class to represent + either a TextReader or another ChainableReader to which it is chained. + + By passing a ChainableReader as a constructor paramater it is possiable to + chain many ChainableReaders together. The last ChainableReader in the chain must + be based on a TextReader. + + + + + Models a NAnt XML element in the build file. + + + + Automatically validates attributes in the element based on attributes + applied to members in derived classes. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + from the specified element. + + The element that should be used to create a new instance of the class. + + + + Performs default initialization. + + + Derived classes that wish to add custom initialization should override + the method. + + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to be logged. + + The actual logging is delegated to the project. + + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to log, containing zero or more format items. + An array containing zero or more objects to format. + + The actual logging is delegated to the project. + + + + + Derived classes should override to this method to provide extra + initialization and validation not covered by the base class. + + The XML node of the element to use for initialization. + + + + Copies all instance data of the to a given + . + + + + + Performs initialization using the given set of properties. + + + + + Initializes all build attributes and child elements. + + + + + Locates the XML node for the specified attribute in the project + configuration node. + + The name of attribute for which the XML configuration node should be located. + The framework to use to obtain framework specific information, or if no framework specific information should be used. + + The XML configuration node for the specified attribute, or + if no corresponding XML node could be + located. + + + If there's a valid current framework, the configuration section for + that framework will first be searched. If no corresponding + configuration node can be located in that section, the framework-neutral + section of the project configuration node will be searched. + + + + + Returns the of the + assigned to the specified + . + + The of which the assigned should be retrieved. + + The assigned to the specified + or a null reference is no + is assigned to the . + + + + + Gets or sets the parent of the element. + + + The parent of the element. + + + This will be the parent , , or + depending on where the element is defined. + + + + + Gets the name of the XML element used to initialize this element. + + + The name of the XML element used to initialize this element. + + + + + Gets or sets the to which this element belongs. + + + The to which this element belongs. + + + + + Gets the properties local to this and the + . + + + The properties local to this and the . + + + + + Gets or sets the . + + + The . + + + The defines the current namespace + scope and provides methods for looking up namespace information. + + + + + Gets or sets the XML node of the element. + + + The XML node of the element. + + + + + Gets or sets the location in the build file where the element is + defined. + + + The location in the build file where the element is defined. + + + + + Gets a value indicating whether the element is performing additional + processing using the that was used to + initialize the element. + + + . + + + + Elements that need to perform additional processing of the + that was used to initialize the element, should + override this property and return . + + + When , no build errors will be reported for + unknown nested build elements. + + + + + + Configures an using meta-data provided by + assigned attributes. + + + + + Initializes a new instance of the + class for the given . + + The for which an should be created. + The to initialize the with. + The to use for property expansion. + The framework that the should target. + + is . + -or- + is . + -or- + is . + + + + + Creates a child using property set/get methods. + + The instance that represents the property of the current class. + The used to initialize the new instance. + The collection of property values to use for macro expansion. + The from which to obtain framework-specific information. + The child. + + + + Creates an for the given + . + + The for which an should be created. + + An for the given . + + + + + Holds the that should be initialized. + + + + + Holds the that should be used to initialize + the . + + + + + Holds the dictionary that should be used for property + expansion. + + + + + Holds the framework that should be targeted by the + that we're configuring, or + if there's no current target + framework. + + + + + Holds the names of the attributes that still need to be + processed. + + + + + Holds the names of the child nodes that still need to be + processed. + + + + + Holds the logger for the current class. + + + + + Holds the cache of instances. + + + + + Gets the . + + + The . + + + The defines the current namespace + scope and provides methods for looking up namespace information. + + + + + Internal interface used for setting element attributes. + + + + + Makes it so all calls to Read and Peek are passed the ChainableReader + passed as a parameter. + + ChainableReader to forward calls to + + + + Makes it so all calls to Read and Peek are passed the TextReader + passed as a parameter. + + TextReader to forward calls to + + + + Forwards Peek calls to the TextReader or ChainableReader passed in the corresponding constructor. + + Character or -1 if end of stream + + + + Forwards Read calls to the TextReader or ChainableReader passed in the corresponding constructor. + + + Character or -1 if end of stream. + + + + + Closes the reader. + + + + + Calls close and supresses the finalizer for the object. + + + + + Gets a value indicating if the reader is backed by a stream in the + chain. + + + if the reader is backed by a stream; + otherwise, . + + + + + Allows a file's content to be modified while performing an operation. + + + + + Called after construction and after properties are set. Allows + for filter initialization. + + + + + If then the filter will be used; otherwise, + skipped. The default is . + + + + + Opposite of . If + then the filter will be executed; otherwise, skipped. The default + is . + + + + + Creates a new instance of the class + for the specified class in the + specified. + + The containing the . + The class representing the . + + + + Gets the name of the class that can be created + using this . + + + The name of the class that can be created using + this . + + + + + Gets the from which the filter will be + created. + + + The containing the filter. + + + + + Gets the name of the filter which the + can create. + + + The name of the task which the can + create. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a for the specified + task is in the collection. + + The name of task for which the should be located in the collection. + + if a for + the specified task is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the for the specified task. + + The name of the filter for which the should be located in the collection. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Represent a chain of NAnt filters that can be applied to a . + + + + A FilterChain represents a collection of one or more filters that can + be appled to a such as the . + In the case of the , the contents of the copied + files are filtered through each filter specified in the filter chain. + Filtering occurs in the order the filters are specified with filtered + output of one filter feeding into another. + + + :--------:--->:----------:--->:----------: ... :----------:--->:--------:
+ :.Source.:--->:.Filter 1.:--->:.Filter 2.: ... :.Filter n.:--->:.target.:
+ :--------:--->:----------:--->:----------: ... :----------:--->:--------:
+
+ + A list of all filters that come with NAnt is available here. + + + The following tasks support filtering with a FilterChain: + + + + + + + + + +
+ + + Replace all occurrences of @NOW@ with the current date/time and + replace tabs with spaces in all copied files. + + + + + + + + + + + + + + + ]]> + + +
+ + + Provides the abstract base class for types. + + + + + Should be overridden by derived classes. clones the referenced types + data into the current instance. + + + + + Copies all instance data of the to a given + . + + + + + The ID used to be referenced later. + + + + + The ID to use as the reference. + + + + + Gets a value indicating whether a reference to the type can be + defined. + + + Only types with an assigned + to it, can be referenced. + + + + + Gets the name of the datatype. + + + The name of the datatype. + + + + + Initializes all build attributes and child elements. + + + needs to maintain the order in which the + filters are specified in the build file. + + + + + Used to to instantiate and return the chain of stream based filters. + + The that is the source of input to the filter chain. + + The is the first + in the chain, which is based on a physical stream that feeds the chain. + + + The last in the chain. + + + + + The filters to apply. + + + + + The encoding to assume when filter-copying files. The default is + system's current ANSI code page. + + + + + Configurator that initializes filters in the order in which they've + been specified in the build file. + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Represents a physical . That is a reader based + on a stream. + + + Used by to represent a + based on a in the chain. + + + + + Parses NAnt properties and expressions + + + + This filter parses any NAnt properties or expressions found in its input, + inlining their values in its output. + + + Note: Due to limitations on buffering, expressions longer than 2048 + characters are not guaranteed to be expanded. + + Filters are intended to be used as a element of a . + + + Replace all properties with their corresponding values. + + + ]]> + + + + + + Holds data for expression expansion between input and output. + + + + + Called after construction and after properties are set. Allows + for filter initialization. + + + + + Reads the next character applying the filter logic. + + Char as an int or -1 if at the end of the stream + + + + Reads the next character applying the filter logic without advancing the current position in the stream. + + Char as an int or -1 if at the end of the stream + + + + Moves to the next character. + + + + + Refills the buffer, running our input through + .) + + + + + Determines whether we've passed the end of our data. + + + + + Replaces all occurrences of a given string in the original input with + user-supplied replacement string. + + + + This filter replaces all occurrences of a given string in the original + input stream with a user-supplied replacement string. By default string + comparisons are case sensitive but this can be changed by setting the + optional attribute to . + + + To use this filter specify the string to be replaced with the + attribute and the string to replace it with using the + attribute. + + + Filters are intended to be used as a element of a . + + + + + Replace all occurrences of "3.14" with "PI". + + + + ]]> + + + + + Replace all occurrences of "string", "String", etc. with "System.String". + + + + ]]> + + + + + + Construct that allows this filter to be chained to the one + in the parameter chainedReader. + + Filter that the filter will be chained to + + + + Reads the next character applying the filter logic. + + Char as an int or -1 if at the end of the stream + + + + Reads the next character applying the filter logic without + advancing the current position in the stream. + + Peek currently is not supported. + + + Char as an int or -1 if at the end of the stream. + + + + + + Helper function used to search for the filter's traget string. If the string + is found the result is true. If the string was not found false is returned and + nonMatchingChars contains the characters that were read to determine if the + string is present. + + + + It is assumed the stream is positioned at the character after the first character + in the target string. + + + First character in target string + Ture if the stream ended while search for the string. + Characters that were read while searching for the string. + + + + + Returns the next character in the stream replacing the specified character. Using the + allows for the same implementation for Read and Peek + + Delegate to acquire the next character. (Read/Peek) + Char as an int or -1 if at the end of the stream + + + + Compares to characters taking into account the _ignoreCase flag. + + + + + + + + The string to be replaced. + + + + + The new value for the replaced string. + Am empty string is permissible. + + + + + Determines if case will be ignored. + The default is . + + + + + Delegate for Read and Peek. Allows the same implementation + to be used for both methods. + + + + + Replaces tokens in the original input with user-supplied values. + + + + This filter replaces all token surrounded by a beginning and ending + token. The default beginning and ending tokens both default to '@'. The + optional and attributes + can be specified to change either token. By default string + comparisons are case sensitive but this can be changed by setting the + optional attribute to . + + + Tokens are specified by using the element. It is + possible to specify from 1 to n tokens and replacement values. Values can + be any valid NAnt expression. + + + Filters are intended to be used as a element of a . + + + + + Replace all occurrences of the string @DATE@ with the value of property + "TODAY". + + + + + + ]]> + + + + + Replace all occurrences of the string <DATE> with the value of + property "TODAY". + + + + + + ]]> + + + + + + Construct that allows this filter to be chained to the one + in the parameter chainedReader. + + Filter that the filter will be chained to + + + + Reads the next character applying the filter logic. + + Char as an int or -1 if at the end of the stream + + + + Reads the next character applying the filter logic without + advancing the current position in the stream. + + Peek currently is not supported. + + + Char as an int or -1 if at the end of the stream. + + + + + Initialize the filter by setting its parameters. + + + + + Finds a token give that we are positioned at a beginning token character. Either a + token replacement is returned or the characters that were read looking for the token. + + A token was not found + A token was found by there is no replacement + The stream ended while looking for the token + Either the replacement token or the characters that were read looking for the token + + + + Returns the next character in the stream replacing the specified character. Using the + allows for the same implementation for Read and Peek + + Delegate to acquire the next character. (Read/Peek) + Char as an int or -1 if at the end of the stream + + + + Compares to characters taking into account. + + + + + + + + + Marks the beginning of a token. The default is "@". + + + + + Marks the end of a token. The default is "@". + + + + + Tokens and replacement values. + + + + + Determines if case will be ignored. + The default is . + + + + + Delegate for Read and Peek. Allows the same implementation + to be used for both methods. + + + + + Converts tabs to spaces. + + + + The filter replaces tabs in a text file + with spaces. + + + Filters are intended to be used as a element of a . + + + + Replace all tabs with four spaces. + + + ]]> + + + + + + Construct that allows this filter to be chained to the one + in the parameter chainedReader. + + Filter that the filter will be chained to + + + + Retrieves the next character with moving the position in the stream. + This method is not implemented + + -1 if end of stream otherwise a character + + + + Retrieves the next character in the stream. + + -1 if end of stream otherwise a character + + + + Returns the next character in the stream replacing the specified character. Using the + allows for the same implementation for Read and Peek + + Delegate to acquire the next character. (Read/Peek) + Char as an int or -1 if at the end of the stream + + + + The number of spaces used when converting a tab. The default is + "8". + + + + + Delegate for Read and Peek. Allows the same implementation + to be used for both methods. + + + + + Functions to return information for a given assembly. + + + + + Gets or sets the that this functionset will + reference. + + + The that this functionset will reference. + + + + + Loads an assembly given its file name or path. + + The name or path of the file that contains the manifest of the assembly. + + The loaded assembly. + + is an empty . + is not found, or the module you are trying to load does not specify a filename extension. + is not a valid assembly. + An assembly or module was loaded twice with two different evidences, or the assembly name is longer than MAX_PATH characters. + + + + Loads an assembly given the long form of its name. + + The long form of the assembly name. + + The loaded assembly. + + is a . + is not found. + + + Determine the location of the Microsoft Access 11 Primary Interop + Assembly by loading it using its fully qualified name, and copy it + to the build directory. + + + + + ]]> + + + + + + Gets the full name of the assembly, also known as the display name. + + The assembly to get the full name for. + + The full name of the assembly, also known as the display name. + + + + + Gets an for the specified assembly. + + The assembly to get an for. + + An for the specified assembly. + + + + + + Gets the physical location, in codebase format, of the loaded file + that contains the manifest. + + The assembly to get the location for. + + The location of the specified assembly. + + + + + Functions that return information about an assembly's identity. + + + + + Gets the location of the assembly as a URL. + + The of the assembly. + + The location of the assembly as a URL. + + + + + + Gets the URI, including escape characters, that represents the codebase. + + The of the assembly. + + The URI, including escape characters, that represents the codebase. + + + + + + Gets the full name of the assembly, also known as the display name. + + The of the assembly. + + The full name of the assembly, also known as the display name. + + + + Output the full name of the MBUnit.Framework assembly to the + build log. + + + + ]]> + + + + + + + Gets the simple, unencrypted name of the assembly. + + The of the assembly. + + The simple, unencrypted name of the assembly. + + + + Output the simple name of the MBUnit.Framework assembly to + the build log. + + + + ]]> + + + + + + + Gets the version of the assembly. + + The of the assembly. + + The version of the assembly. + + + + Output the major version of the MBUnit.Framework assembly + to the build log. + + + + ]]> + + + + + + + + Gets the for a given file. + + The assembly file for which to get the . + + An object representing the given file. + + is an empty . + does not exist. + is not a valid assembly. + + The assembly is not added to this domain. + + + + Output the full name of the MBUnit.Framework assembly to the + build log. + + + + ]]> + + + + + + Converts the specified string representation of a logical value to + its equivalent. + + A string containing the value to convert. + + if is equivalent to + "True"; otherwise, . + + is not equivalent to or . + + + + Converts the specified to its equivalent string + representation. + + A to convert. + + "True" if is , or + "False" if is . + + + + + Converts the argument to an integer. + + value to be converted + converted to integer. The function fails with an exception when the conversion is not possible. + + + + Converts the argument to double + + The value to be converted. + converted to double. The function fails with an exception when the conversion is not possible. + + + + Converts the argument to a string. + + The value to be converted. + + converted to string. The function fails + with an exception when the conversion is not possible. + + + Named method ConvertToString as a static ToString method would break + CLS compliance. + + + + + Converts the argument to a datetime. + + value to be converted + converted to datetime. The function fails with an exception when the conversion is not possible. + + + + Converts the argument to a boolean + + The string value to be converted to boolean. Must be 'true' or 'false'. + + converted to boolean. The function fails + with an exception when the conversion is not possible. + + + + + Gets a that is the current local date and + time on this computer. + + + A whose value is the current date and time. + + + + + Gets the year component of the specified date. + + The date of which to get the year component. + + The year, between 1 and 9999. + + + + + Gets the month component of the specified date. + + The date of which to get the month component. + + The month, between 1 and 12. + + + + + Gets the day of the month represented by the specified date. + + The date of which to get the day of the month. + + The day value, between 1 and 31. + + + + + Gets the hour component of the specified date. + + The date of which to get the hour component. + + The hour, between 0 and 23. + + + + + Gets the minute component of the specified date. + + The date of which to get the minute component. + + The minute, between 0 and 59. + + + + + Gets the seconds component of the specified date. + + The date of which to get the seconds component. + + The seconds, between 0 and 59. + + + + + Gets the milliseconds component of the specified date. + + The date of which to get the milliseconds component. + + The millisecond, between 0 and 999. + + + + + Gets the number of ticks that represent the specified date. + + The date of which to get the number of ticks. + + The number of ticks that represent the date and time of the + specified date. + + + + + Gets the day of the week represented by the specified date. + + The date of which to get the day of the week. + + The day of the week, ranging from zero, indicating Sunday, to six, + indicating Saturday. + + + + + Gets the day of the year represented by the specified date. + + The date of which to get the day of the year. + + The day of the year, between 1 and 366. + + + + + Returns the number of days in the specified month of the specified + year. + + The year. + The month (a number ranging from 1 to 12). + + The number of days in for the specified + . + + is less than 1 or greater than 12. + + + + Returns an indication whether the specified year is a leap year. + + A 4-digit year. + + if is a leap year; + otherwise, . + + + + + Converts the specified string representation of a date and time to + its equivalent. + + A string containing a date and time to convert. + + A equivalent to the date and time contained + in . + + does not contain a valid string representation of a date and time. + + The for the invariant culture is + used to supply formatting information about . + + + + + Converts the specified to its equivalent + string representation. + + A to convert. + + A string representation of formatted using + the general format specifier ("G"). + + + is formatted with the + for the invariant culture. + + + + + Groups a set of functions for dealing with directories. + + + + + Returns the creation date and time of the specified directory. + + The directory for which to obtain creation date and time information. + + The creation date and time of the specified directory. + + The specified directory does not exist. + is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both exceed the system-defined maximum length. + + + + Returns the date and time the specified directory was last written to. + + The directory for which to obtain write date and time information. + + The date and time the specified directory was last written to. + + The specified directory does not exist. + is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both exceed the system-defined maximum length. + + + + Returns the date and time the specified directory was last accessed. + + The directory for which to obtain access date and time information. + + The date and time the specified directory was last accessed. + + The specified directory does not exist. + is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both exceed the system-defined maximum length. + The parameter is in an invalid format. + + + + Gets the current working directory. + + + A containing the path of the current working + directory. + + + + + Retrieves the parent directory of the specified path. + + The path for which to retrieve the parent directory. + + The parent directory, or an empty if + is the root directory, including the root + of a UNC server or share name. + + The directory specified by is read-only. + is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both exceed the system-defined maximum length. + The specified path was not found. + + + Copy "readme.txt" from the current working directory to + its parent directory. + + + + + + ]]> + + + + + + Returns the volume information, root information, or both for the + specified path. + + The path for which to retrieve the parent directory. + + A string containing the volume information, root information, or + both for the specified path. + + is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both exceed the system-defined maximum length. + + + + Determines whether the given path refers to an existing directory + on disk. + + The path to test. + + if refers to an + existing directory; otherwise, . + + + Remove directory "test", if it exists. + + + ]]> + + + + + + Converts the specified string representation of a number to its + double-precision floating point number equivalent. + + A string containing a number to convert. + + A double-precision floating point number equivalent to the numeric + value or symbol specified in . + + is not a number in a valid format. + represents a number less than or greater than . + + The for the invariant culture is + used to supply formatting information about . + + + + + Converts the specified to its equivalent + string representation. + + A to convert. + + The string representation of formatted + using the general format specifier ("G"). + + + is formatted with the + for the invariant culture. + + + + + Provide information about the current environment and platform. + + + + + Gets the path to the system special folder identified by the + specified enumeration. + + An enumerated constant that identifies a system special folder. + + The path to the specified system special folder, if that folder + physically exists on your computer; otherwise, the empty string (""). + + is not a member of . + + + Copy "out.log" from the project base directory to the + program files directory. + + + + ]]> + + + + + + Gets the NetBIOS name of this local computer. + + + The NetBIOS name of this local computer. + + The name of this computer cannot be obtained. + + + + Gets an object that represents the + current operating system. + + + An object that contains the current + platform identifier and version number. + + + + Output string representation of the current operating system. + + + + ]]> + + If the operating system is Windows 2000, the output is: + + Microsoft Windows NT 5.0.2195.0 + + + + + + + Gets the user name of the person who started the current thread. + + + The name of the person logged on to the system who started the + current thread. + + + + Modify the home directory of the current user on unix-based systems. + + + + + + + + ]]> + + + + + + Returns the value of the specified environment variable. + + The environment variable of which the value should be returned. + + The value of the specified environment variable. + + Environment variable does not exist. + + + + Gets a value indicating whether the specified environment variable + exists. + + The environment variable that should be checked. + + if the environment variable exists; otherwise, + . + + + + Execute a set of tasks only if the "BUILD_DEBUG" environment + variable is set. + + + + ... + + ]]> + + + + + + Gets a object that describes the major, + minor, build, and revision numbers of the Common Language Runtime. + + + A Version object. + + + Output the major version of the CLR. + + + ]]> + + + + + + Groups a set of functions for dealing with files. + + + + + Returns the creation date and time of the specified file. + + The file for which to obtain creation date and time information. + + The creation date and time of the specified file. + + The specified file does not exist. + is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both exceed the system-defined maximum length. + The parameter is in an invalid format. + + + + Returns the date and time the specified file was last written to. + + The file for which to obtain write date and time information. + + The date and time the specified file was last written to. + + The specified file does not exist. + is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both exceed the system-defined maximum length. + + + + Returns the date and time the specified file was last accessed. + + The file for which to obtain access date and time information. + + The date and time the specified file was last accessed. + + The specified file does not exist. + is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both exceed the system-defined maximum length. + The parameter is in an invalid format. + + + + Determines whether the specified file exists. + + The file to check. + + if refers to an + existing file; otherwise, . + + + Execute a set of tasks, if file "output.xml" does not exist. + + + ... + + ]]> + + + + + + Determines whether is more or equal + up-to-date than . + + The file to check against the target file. + The file for which we want to determine the status. + + if is more + or equal up-to-date than ; otherwise, + . + + or is a zero-length string, contains only white space, or contains one or more invalid characters. + The specified path, file name, or both of either or exceed the system-defined maximum length. + + + + Gets the length of the file. + + filename + + Length in bytes, of the file named . + + The file specified cannot be found. + + + + Checks if a given file is an assembly. + + The name or path of the file to be checked. + True if the file is a valid assembly, false if it's not or if the assembly seems corrupted (invalid headers or metadata). + is a null . + is an empty . + is not found, or the file you are trying to check does not specify a filename extension. + The caller does not have path discovery permission. + + + + Functions that provide version information for a physical file on disk. + + + + + Returns a representing the version + information associated with the specified file. + + The file to retrieve the version information for. + + A containing information about the file. + + The file specified cannot be found. + + + + Gets the name of the company that produced the file. + + A instance containing version information about a file. + + The name of the company that produced the file. + + + + + Gets the file version of a file. + + A instance containing version information about a file. + + The file version of a file. + + + + + + Gets the name of the product the file is distributed with. + + A instance containing version information about a file. + + The name of the product the file is distributed with. + + + + + Gets the product version of a file. + + A instance containing version information about a file. + + The product version of a file. + + + + + + Converts the specified string representation of a number to its + 32-bit signed integer equivalent. + + A string containing a number to convert. + + A 32-bit signed integer equivalent to the number contained in + . + + is not of the correct format. + represents a number less than or greater than . + + The for the invariant culture is + used to supply formatting information about . + + + + + Converts the specified to its equivalent string + representation. + + A to convert. + + The string representation of , consisting + of a negative sign if the value is negative, and a sequence of + digits ranging from 0 to 9 with no leading zeroes. + + + is formatted with the + for the invariant culture. + + + + + Converts the specified string representation of a number to its + 64-bit signed integer equivalent. + + A string containing a number to convert. + + A 64-bit signed integer equivalent to the number contained in + . + + is not of the correct format. + represents a number less than or greater than . + + The for the invariant culture is + used to supply formatting information about . + + + + + Converts the specified to its equivalent string + representation. + + A to convert. + + The string representation of , consisting + of a negative sign if the value is negative, and a sequence of + digits ranging from 0 to 9 with no leading zeroes. + + + is formatted with the + for the invariant culture. + + + + + Rounds the value to the nearest whole number + + Number to be rounded, can be anything convertible to a double. + + Rounded value. + + + + + Returns the largest whole number less than or equal to the specified + number. + + value to be , can be anything convertible to a double + + The largest whole number less than or equal to the specified number. + + + + + Returns the smallest whole number greater than or equal to the specified number + + value + + The smallest whole number greater than or equal to the specified number. + + + + + Returns the absolute value of the specified number + + value to take the absolute value from + + when is greater + than or equal to zero; otherwise, -. + + + + + Gets the base directory of the appdomain in which NAnt is running. + + + The base directory of the appdomain in which NAnt is running. + + + + + Gets the NAnt assembly. + + + The NAnt assembly. + + + + + Gets the name of the current project. + + + The name of the current project, or an empty + if no name is specified in the build file. + + + + + Gets the form of the build file. + + + The form of the build file, or + an empty if the project is not file backed. + + + + + Gets the local path to the build file. + + + The local path of the build file, or an empty + if the project is not file backed. + + + + + Gets the name of the target that will be executed when no other + build targets are specified. + + + The name of the target that will be executed when no other build + targets are specified, or an empty if no + default target is defined for the project. + + + + + Gets the base directory of the current project. + + + The base directory of the current project. + + + + + Checks whether the specified target exists. + + The target to test. + + if the specified target exists; otherwise, + . + + + + Execute target "clean", if it exists. + + + + + + ]]> + + + + + + Gets the name of the target being executed. + + + A that contains the name of the target + being executed. + + No target is being executed. + + + + Checks whether the specified target has already been executed. + + The target to test. + + if the specified target has already been + executed; otherwise, . + + Target does not exist. + + + + Checks whether the specified task exists. + + The task to test. + + if the specified task exists; otherwise, + . + + + + + Returns the from which the specified task + was loaded. + + The name of the task to get the of. + + The from which the specified task was loaded. + + Task is not available. + + + + Checks whether the specified property exists. + + The property to test. + + if the specified property exists; otherwise, + . + + + + Execute a set of tasks if the "build.debug" property + exists. + + + + + + + + ]]> + + + + + + Checks whether the specified property is read-only. + + The property to test. + + if the specified property is read-only; + otherwise, . + + + Check whether the "debug" property is read-only. + property::is-readonly('debug') + + Property has not been set. + + + + Checks whether the specified property is a dynamic property. + + The property to test. + + if the specified property is a dynamic + property; otherwise, . + + Property has not been set. + + + Check whether the "debug" property is a dynamic property. + + property::is-dynamic('debug') + + + + + Checks whether the specified framework exists. + + The framework to test. + + if the specified framework exists; otherwise, + . + + + + + Checks whether the SDK for the specified framework is installed. + + The framework to test. + + if the SDK for specified framework is installed; + otherwise, . + + + + + + + Gets the identifier of the current target framework. + + + The identifier of the current target framework. + + + + + Gets the identifier of the runtime framework. + + + The identifier of the runtime framework. + + + + + Gets the family of the specified framework. + + The framework of which the family should be returned. + + The family of the specified framework. + + is not a valid framework identifier. + + + + + + Gets the version of the specified framework. + + The framework of which the version should be returned. + + The version of the specified framework. + + is not a valid framework identifier. + + + + + + Gets the description of the specified framework. + + The framework of which the description should be returned. + + The description of the specified framework. + + is not a valid framework identifier. + + + + + + Gets the Common Language Runtime version of the specified framework. + + The framework of which the Common Language Runtime version should be returned. + + The Common Language Runtime version of the specified framework. + + is not a valid framework identifier. + + + + + + Gets the framework directory of the specified framework. + + The framework of which the framework directory should be returned. + + The framework directory of the specified framework. + + is not a valid framework identifier. + + + + + + Gets the assembly directory of the specified framework. + + The framework of which the assembly directory should be returned. + + The assembly directory of the specified framework. + + is not a valid framework identifier. + + + + + + Gets the SDK directory of the specified framework. + + The framework of which the SDK directory should be returned. + + The SDK directory of the specified framework, or an empty + if the SDK of the specified framework is not + installed. + + is not a valid framework identifier. + + + + + + Gets the runtime engine of the specified framework. + + The framework of which the runtime engine should be returned. + + The full path to the runtime engine of the specified framework, or + an empty if no runtime engine is defined + for the specified framework. + + is not a valid framework identifier. + + + + + + Checks whether the specified framework is valid. + + The framework to check. + is not a valid framework identifier. + + + + Gets the name of the platform on which NAnt is running. + + + The name of the platform on which NAnt is running. + + + + + Checks whether NAnt is running on the win32 platform. + + + if NAnt is running on the win32 platform; + otherwise, . + + + + + Checks whether NAnt is running on unix. + + + if NAnt is running on unix; + otherwise, . + + + + + Functions that return information about an operating system. + + + + + Gets a value that identifies the operating + system platform. + + The operating system. + + value that identifies the operating system + platform. + + + + + + Gets a object that identifies this operating + system. + + The operating system. + + A object that describes the major version, + minor version, build, and revision of the operating system. + + + + + + Converts the value of the specified operating system to its equivalent + representation. + + The operating system. + + The representation of + . + + + + Output string representation of the current operating system. + + + + ]]> + + If the operating system is Windows 2000, the output is: + + Microsoft Windows NT 5.0.2195.0 + + + + + + + Returns the fully qualified path. + + The file or directory for which to obtain absolute path information. + + A string containing the fully qualified location of , + such as "C:\MyFile.txt". + + is a zero-length string, contains only white space, or contains one or more invalid characters. + contains a colon (":"). + The specified path, file name, or both exceed the system-defined maximum length. + + + + Combines two paths. + + first path + second path + + A string containing the combined paths. If one of the specified paths + is a zero-length string, this method returns the other path. If + contains an absolute path, this method + returns . + + or contain one or more invalid characters. + + + + Changes the extension of the path string. + + The path information to modify. The path cannot contain any of the characters + defined in InvalidPathChars. + The new extension (with a leading period). Specify a null reference + to remove an existing extension from . + + + A string containing the modified path information. + + + On Windows-based desktop platforms, if is + an empty , the path information is returned + unmodified. If has no extension, the returned + path contains + appended to the end of . + + + + For more information see the documentation. + + contains one or more invalid characters. + + + + Returns the directory information for the specified path string. + + The path of a file or directory. + + A containing directory information for + , or an empty if + denotes a root directory, or does not + contain directory information. + + contains invalid characters, is empty, or contains only white spaces. + + + + Returns the extension for the specified path string. + + The path string from which to get the extension. + + A containing the extension of the specified + (including the "."), or an empty + if does not have + extension information. + + contains one or more invalid characters. + + + + Returns the filename for the specified path string. + + The path string from which to obtain the file name and extension. + + + A consisting of the characters after the last + directory character in path. + + + If the last character of is a directory or + volume separator character, an empty is returned. + + + contains one or more invalid characters. + + + + Returns the filename without extension for the specified path string. + + The path of the file. + + A containing the returned + by , minus the last period (.) and all + characters following it. + + contains one or more invalid characters. + + + + Gets the root directory of the specified path. + + The path from which to obtain root directory information. + + A containing the root directory of + , such as "C:\", or an empty + if does not contain root directory information. + + contains invalid characters, or is empty. + + + + Returns a uniquely named zero-byte temporary file on disk and returns the full path to that file. + + + A containing the name of the temporary file. + + + + + Gets the path to the temporary directory. + + + A containing the path information of a + temporary directory. + + + + + Determines whether a path string includes an extension. + + The path to search for an extension. + + . if the characters that follow the last + directory separator or volume separator in the + include a period (.) followed by one or more characters; + otherwise, . + + contains one or more invalid characters. + + + + Determines whether a path string is absolute. + + The path to test. + + if path contains an absolute ; + otherwise, . + + contains one or more invalid characters. + + + + Gets the value of a variable for the specified package. + + The package for which the variable should be retrieved. + The name of the variable. + + The value of variable for the specified + package. + + pkg-config could not be started. + does not exist. + + + + Gets the link flags required to compile the package, including all + its dependencies. + + The package for which the link flags should be retrieved. + + The link flags required to compile the package. + + pkg-config could not be started. + does not exist. + + + + Gets the compile flags required to compile the package, including all + its dependencies. + + The package for which the compile flags should be retrieved. + + The pre-processor and compile flags required to compile the package. + + pkg-config could not be started. + does not exist. + + + + Determines the version of the given package. + + The package to get the version of. + + The version of the given package. + + pkg-config could not be started. + does not exist. + + + + Determines whether the given package is at least version + . + + The package to check. + The version the package should at least have. + + if the given package is at least version + ; otherwise, . + + pkg-config could not be started. + + + + Determines whether the given package is exactly version + . + + The package to check. + The version the package should have. + + if the given package is exactly version + ; otherwise, . + + pkg-config could not be started. + + + + Determines whether the given package is at no newer than version + . + + The package to check. + The version the package should maximum have. + + if the given package is at no newer than + version ; otherwise, . + + pkg-config could not be started. + + + + Determines whether the given package is between two versions. + + The package to check. + The version the package should at least have. + The version the package should maximum have. + + if the given package is between + and ; otherwise, . + + pkg-config could not be started. + + + + Determines whether the given package exists. + + The package to check. + + if the package exists; otherwise, + . + + pkg-config could not be started. + + + + Runs pkg-config with the specified arguments and returns a + based on the exit code. + + The arguments to pass to pkg-config. + + if pkg-config exited with exit code 0; + otherwise, + + + + + Runs pkg-config with the specified arguments and returns the result + as a . + + The arguments to pass to pkg-config. + + The result of running pkg-config with the specified arguments. + + + + + Factory method to return a new instance of ExecTask + + + + + + + Returns the length of the specified string. + + input string + + The string's length. + + + string::get-length('foo') ==> 3 + + + string::get-length('') ==> 0 + + + + + Returns a substring of the specified string. + + input string + position of the start of the substring + the length of the substring + + + If the is greater than zero, the + function returns a substring starting at character position + with a length of + characters. + + + If the is equal to zero, the function + returns an empty string. + + + or is less than zero. + is greater than the length of . + plus indicates a position not within . + + string::substring('testing string', 0, 4) ==> 'test' + + + string::substring('testing string', 8, 3) ==> 'str' + + + string::substring('testing string', 8, 0) ==> '' + + + string::substring('testing string', -1, 5) ==> ERROR + + + string::substring('testing string', 8, -1) ==> ERROR + + + string::substring('testing string', 5, 17) ==> ERROR + + + + + Tests whether the specified string starts with the specified prefix + string. + + test string + prefix string + + when is a prefix for + the string . Meaning, the characters at the + beginning of are identical to + ; otherwise, . + + + This function performs a case-sensitive word search using the + invariant culture. + + + string::starts-with('testing string', 'test') ==> true + + + string::starts-with('testing string', 'testing') ==> true + + + string::starts-with('testing string', 'string') ==> false + + + string::starts-with('test', 'testing string') ==> false + + + + + Tests whether the specified string ends with the specified suffix + string. + + test string + suffix string + + when is a suffix for + the string . Meaning, the characters at the + end of are identical to + ; otherwise, . + + + This function performs a case-sensitive word search using the + invariant culture. + + + string::ends-with('testing string', 'string') ==> true + + + string::ends-with('testing string', '') ==> true + + + string::ends-with('testing string', 'bring') ==> false + + + string::ends-with('string', 'testing string') ==> false + + + + + Returns the specified string converted to lowercase. + + input string + + The string in lowercase. + + + The casing rules of the invariant culture are used to convert the + to lowercase. + + + string::to-lower('testing string') ==> 'testing string' + + + string::to-lower('Testing String') ==> 'testing string' + + + string::to-lower('Test 123') ==> 'test 123' + + + + + Returns the specified string converted to uppercase. + + input string + + The string in uppercase. + + + The casing rules of the invariant culture are used to convert the + to uppercase. + + + string::to-upper('testing string') ==> 'TESTING STRING' + + + string::to-upper('Testing String') ==> 'TESTING STRING' + + + string::to-upper('Test 123') ==> 'TEST 123' + + + + + Returns a string corresponding to the replacement of a given string + with another in the specified string. + + input string + A to be replaced. + A to replace all occurrences of . + + A equivalent to but + with all instances of replaced with + . + + is an empty string. + + This function performs a word (case-sensitive and culture-sensitive) + search to find . + + + string::replace('testing string', 'test', 'winn') ==> 'winning string' + + + string::replace('testing string', 'foo', 'winn') ==> 'testing string' + + + string::replace('testing string', 'ing', '') ==> 'test str' + + + string::replace('banana', 'ana', 'ana') ==> 'banana' + + + + + Tests whether the specified string contains the given search string. + + The string to search. + The string to locate within . + + if is found in + ; otherwise, . + + + This function performs a case-sensitive word search using the + invariant culture. + + + string::contains('testing string', 'test') ==> true + + + string::contains('testing string', '') ==> true + + + string::contains('testing string', 'Test') ==> false + + + string::contains('testing string', 'foo') ==> false + + + + + Returns the position of the first occurrence in the specified string + of the given search string. + + The string to search. + The string to locate within . + + + The lowest-index position of in + if it is found, or -1 if + does not contain . + + + If is an empty string, the return value + will always be 0. + + + + This function performs a case-sensitive word search using the + invariant culture. + + + string::index-of('testing string', 'test') ==> 0 + + + string::index-of('testing string', '') ==> 0 + + + string::index-of('testing string', 'Test') ==> -1 + + + string::index-of('testing string', 'ing') ==> 4 + + + + + Returns the position of the last occurrence in the specified string + of the given search string. + + The string to search. + The string to locate within . + + + The highest-index position of in + if it is found, or -1 if + does not contain . + + + If is an empty string, the return value + is the last index position in . + + + + This function performs a case-sensitive word search using the + invariant culture. + + + string::last-index-of('testing string', 'test') ==> 0 + + + string::last-index-of('testing string', '') ==> 13 + + + string::last-index-of('testing string', 'Test') ==> -1 + + + string::last-index-of('testing string', 'ing') ==> 11 + + + + + Returns the given string left-padded to the given length. + + The that needs to be left-padded. + The number of characters in the resulting string, equal to the number of original characters plus any additional padding characters. + A Unicode padding character. + + If the length of is at least + , then a new identical + to is returned. Otherwise, + will be padded on the left with as many + characters as needed to create a length of . + + is less than zero. + + Note that only the first character of + will be used when padding the result. + + + string::pad-left('test', 10, ' ') ==> ' test' + + + string::pad-left('test', 10, 'test') ==> 'tttttttest' + + + string::pad-left('test', 3, ' ') ==> 'test' + + + string::pad-left('test', -4, ' ') ==> ERROR + + + + + Returns the given string right-padded to the given length. + + The that needs to be right-padded. + The number of characters in the resulting string, equal to the number of original characters plus any additional padding characters. + A Unicode padding character. + + If the length of is at least + , then a new identical + to is returned. Otherwise, + will be padded on the right with as many + characters as needed to create a length of . + + is less than zero. + + Note that only the first character of + will be used when padding the result. + + + string::pad-right('test', 10, ' ') ==> 'test ' + + + string::pad-right('test', 10, 'abcd') ==> 'testaaaaaa' + + + string::pad-right('test', 3, ' ') ==> 'test' + + + string::pad-right('test', -3, ' ') ==> ERROR + + + + + Returns the given string trimmed of whitespace. + + input string + + The string with any leading or trailing + white space characters removed. + + + string::trim(' test ') ==> 'test' + + + string::trim('\t\tfoo \r\n') ==> 'foo' + + + + + Returns the given string trimmed of leading whitespace. + + input string + + The string with any leading + whites pace characters removed. + + + string::trim-start(' test ') ==> 'test ' + + + string::trim-start('\t\tfoo \r\n') ==> 'foo \r\n' + + + + + Returns the given string trimmed of trailing whitespace. + + input string + + The string with any trailing + white space characters removed. + + + string::trim-end(' test ') ==> ' test' + + + string::trim-end('\t\tfoo \r\n') ==> '\t\tfoo' + + + + + Returns the total number of days represented by the specified + , expressed in whole and fractional days. + + A . + + The total number of days represented by the given . + + + + + Returns the total number of hours represented by the specified + , expressed in whole and fractional hours. + + A . + + The total number of hours represented by the given . + + + + + Returns the total number of minutes represented by the specified + , expressed in whole and fractional minutes. + + A . + + The total number of minutes represented by the given . + + + + + Returns the total number of seconds represented by the specified + , expressed in whole and fractional seconds. + + A . + + The total number of seconds represented by the given . + + + + + Returns the total number of milliseconds represented by the specified + , expressed in whole and fractional milliseconds. + + A . + + The total number of milliseconds represented by the given + . + + + + + Returns the number of whole days represented by the specified + . + + A . + + The number of whole days represented by the given + . + + + + Remove all files that have not been modified in the last 7 days from directory "binaries". + + + + + + + ]]> + + + + + + Returns the number of whole hours represented by the specified + . + + A . + + The number of whole hours represented by the given + . + + + + + Returns the number of whole minutes represented by the specified + . + + A . + + The number of whole minutes represented by the given + . + + + + + Returns the number of whole seconds represented by the specified + . + + A . + + The number of whole seconds represented by the given + . + + + + + Returns the number of whole milliseconds represented by the specified + . + + A . + + The number of whole milliseconds represented by the given + . + + + + + Returns the number of ticks contained in the specified + . + + A . + + The number of ticks contained in the given . + + + + + Returns a that represents a specified number + of days, where the specification is accurate to the nearest millisecond. + + A number of days, accurate to the nearest millisecond. + + A that represents . + + + + + Returns a that represents a specified number + of hours, where the specification is accurate to the nearest + millisecond. + + A number of hours, accurate to the nearest millisecond. + + A that represents . + + + + + Returns a that represents a specified number + of minutes, where the specification is accurate to the nearest + millisecond. + + A number of minutes, accurate to the nearest millisecond. + + A that represents . + + + + + Returns a that represents a specified number + of seconds, where the specification is accurate to the nearest + millisecond. + + A number of seconds, accurate to the nearest millisecond. + + A that represents . + + + + + Returns a that represents a specified number + of milliseconds. + + A number of milliseconds. + + A that represents . + + + + + Returns a that represents a specified time, + where the specification is in units of ticks. + + A number of ticks that represent a time. + + A that represents . + + + + + Constructs a from a time indicated by a + specified string. + + A string. + + A that corresponds to . + + has an invalid format. + At least one of the hours, minutes, or seconds components is outside its valid range. + + + + Converts the specified to its equivalent + string representation. + + A to convert. + + The string representation of . The format + of the return value is of the form: [-][d.]hh:mm:ss[.ff]. + + + + + Gets the value of the major component of a given version. + + A version. + + The major version number. + + + + + + + + Gets the value of the minor component of a given version. + + A version. + + The minor version number. + + + + + + + + Gets the value of the build component of a given version. + + A version. + + The build number, or -1 if the build number is undefined. + + + + + + + + Gets the value of the revision component of a given version. + + A version. + + The revision number, or -1 if the revision number is undefined. + + + + + + + + Converts the specified string representation of a version to + its equivalent. + + A string containing the major, minor, build, and revision numbers, where each number is delimited with a period character ('.'). + + A instance representing the specified + . + + has fewer than two components or more than four components. + A major, minor, build, or revision component is less than zero. + At least one component of does not parse to a decimal integer. + + + + Converts the specified to its equivalent + string representation. + + A to convert. + + The string representation of the values of the major, minor, build, + and revision components of the specified . + + + + + + + + Changes the file attributes of a file or set of files and directories. + + + + does not have the concept of turning + attributes off. Instead you specify all the attributes that you want + turned on and the rest are turned off by default. + + + Refer to the enumeration in the .NET SDK + for more information about file attributes. + + + + + Set the read-only file attribute for the specified file in + the project directory. + + + + ]]> + + + + + Set the normal file attribute for the specified file. + + + + ]]> + + + + + Set the normal file attribute for all executable files in + the current project directory and sub-directories. + + + + + + + + + ]]> + + + + + + Provides the abstract base class for tasks. + + + A task is a piece of code that can be executed. + + + + + Executes the task unless it is skipped. + + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to be logged. + + + The actual logging is delegated to the project. + + + If the attribute is set on the task and a + message is logged with level , the + priority of the message will be increased to + when the threshold of the build log is . + + + This will allow individual tasks to run in verbose mode while + the build log itself is still configured with threshold + . + + + The threshold of the project is not taken into account to determine + whether a message should be passed to the logging infrastructure, + as build listeners might be interested in receiving all messages. + + + + + + Logs a formatted message with the given priority. + + The message priority at which the specified message is to be logged. + The message to log, containing zero or more format items. + An array containing zero or more objects to format. + + + The actual logging is delegated to the project. + + + If the attribute is set on the task and a + message is logged with level , the + priority of the message will be increased to . + when the threshold of the build log is . + + + This will allow individual tasks to run in verbose mode while + the build log itself is still configured with threshold + . + + + + + + Determines whether build output is enabled for the given + . + + The to check. + + if messages with the given + should be passed on to the logging infrastructure; otherwise, + . + + + The threshold of the project is not taken into account to determine + whether a message should be passed to the logging infrastructure, + as build listeners might be interested in receiving all messages. + + + + + Initializes the configuration of the task using configuration + settings retrieved from the NAnt configuration file. + + + TO-DO : Remove this temporary hack when a permanent solution is + available for loading the default values from the configuration + file if a build element is constructed from code. + + + + Deprecated (to be deleted). + + + Initializes the task. + + + Executes the task. + + + + Determines if task failure stops the build, or is just reported. + The default is . + + + + + Determines whether the task should report detailed build log messages. + The default is . + + + + + If then the task will be executed; otherwise, + skipped. The default is . + + + + + Opposite of . If + then the task will be executed; otherwise, skipped. The default is + . + + + + + The name of the task. + + + + + The prefix used when sending messages to the log. + + + + + Gets or sets the log threshold for this . By + default the threshold of a task is , + causing no messages to be filtered in the task itself. + + + The log threshold level for this . + + + When the threshold of a is higher than the + threshold of the , then all messages will + still be delivered to the build listeners. + + + + + The name of the file which will have its attributes set. This is + provided as an alternate to using the task's fileset. + + + + + All the matching files and directories in this fileset will have + their attributes set. + + + + + Set the archive attribute. The default is . + + + + + Set the hidden attribute. The default is . + + + + + Set the normal file attributes. This attribute is only valid if used + alone. The default is . + + + + + Set the read-only attribute. The default is . + + + + + Set the system attribute. The default is . + + + + + Checks if a resource is available at runtime. + + + + The specified property is set to if the + requested resource is available at runtime, and + if the resource is not available. + + + we advise you to use the following functions instead: + + + + Function + Description + + + + Determines whether the specified file exists. + + + + Determines whether the given path refers to an existing directory on disk. + + + + Checks whether the specified framework exists.. + + + + Checks whether the SDK for the specified framework is installed. + + + + + + Sets the myfile.present property to if the + file is available on the filesystem and if the + file is not available. + + + + ]]> + + + + + Sets the build.dir.present property to + if the directory is available on the filesystem and + if the directory is not available. + + + + ]]> + + + + + Sets the mono-0.21.framework.present property to + if the Mono 0.21 framework is available on the current system and + if the framework is not available. + + + + ]]> + + + + + Sets the net-1.1.frameworksdk.present property to + if the .NET 1.1 Framework SDK is available on the current system and + if the SDK is not available. + + + + ]]> + + + + + + Executes the task. + + + + Sets the property identified by to + when the resource exists and to + when the resource doesn't exist. + + + The availability of the resource could not be evaluated. + + + + Evaluates the availability of a resource. + + + if the resource is available; otherwise, + . + + The availability of the resource could not be evaluated. + + + + Checks if the file specified in the property is + available on the filesystem. + + + when the file exists; otherwise, . + + + + + Checks if the directory specified in the + property is available on the filesystem. + + + when the directory exists; otherwise, . + + + + + Checks if the framework specified in the + property is available on the current system. + + + when the framework is available; otherwise, + . + + + + + Checks if the SDK for the framework specified in the + property is available on the current system. + + + when the SDK for the specified framework is + available; otherwise, . + + + + + The resource which must be available. + + + + + The type of resource which must be present. + + + + + The property that must be set if the resource is available. + + + + + Defines the possible resource checks. + + + + + Determines whether a given file exists. + + + + + Determines whether a given directory exists. + + + + + Determines whether a given framework is available. + + + + + Determines whether a given SDK is available. + + + + + Calls a NAnt target in the current project. + + + + When the is used to execute a target, both that + target and all its dependent targets will be re-executed. + + + To avoid dependent targets from being executed more than once, two + options are available: + + + + + Add an "unless" attribute with value "${target::has-executed('<target name>')}" + to the dependent targets. + + + + + Set the attribute on the + to (recommended). + + + + + + + Call the target "build". + + + + ]]> + + + + + This shows how a project could 'compile' a debug and release build + using a common compile target. + + + + + + + + + + + + + + + + + + ]]> + + + The parameter of the + defaults to , + causing the "init" target to be executed for both + the "debug" and "release" build. + + + This results in the following build log: + + + build: + + init: + + [echo] initializing + + compile: + + [echo] compiling with debug = false + + init: + + [echo] initializing + + compile: + + [echo] compiling with debug = true + + BUILD SUCCEEDED + + + If the "init" should only be executed once, set the + attribute of the + to . + + + The build log would then look like this: + + + build: + + init: + + [echo] initializing + + compile: + + [echo] compiling with debug = false + + compile: + + [echo] compiling with debug = true + + BUILD SUCCEEDED + + + + + + Executes the specified target. + + + + + Makes sure the is not calling its own + parent. + + The task XML node. + + + + NAnt target to call. + + + + + Force an execute even if the target has already been executed. The + default is . + + + + + Execute the specified targets dependencies -- even if they have been + previously executed. The default is . + + + + + Copies a file or set of files to a new file or directory. + + + + Files are only copied if the source file is newer than the destination + file, or if the destination file does not exist. However, you can + explicitly overwrite files with the attribute. + + + When a is used to select files to copy, the + attribute must be set. Files that are + located under the base directory of the will + be copied to a directory under the destination directory matching the + path relative to the base directory of the , + unless the attribute is set to + . + + + Files that are not located under the the base directory of the + will be copied directly under to the destination + directory, regardless of the value of the + attribute. + +

Encoding

+ + Unless an encoding is specified, the encoding associated with the + system's current ANSI code page is used. + + + An UTF-8, little-endian Unicode, and big-endian Unicode encoded text + file is automatically recognized, if the file starts with the + appropriate byte order marks. + + + If you employ filters in your copy operation, you should limit the copy + to text files. Binary files will be corrupted by the copy operation. + +
+ + + Copy a single file while changing its encoding from "latin1" to + "utf-8". + + + + ]]> + + + + Copy a set of files to a new directory. + + + + + + + ]]> + + + + + Copy a set of files to a directory, replacing @TITLE@ with + "Foo Bar" in all files. + + + + + + + + + + + + + ]]> + + +
+ + + Initialize new instance of the . + + + + + Checks whether the task is initialized with valid attributes. + + The used to initialize the task. + + + + Executes the Copy task. + + A file that has to be copied does not exist or could not be copied. + + + + Actually does the file copies. + + + + + The file to copy. + + + + + The file to copy to. + + + + + The directory to copy to. + + + + + Overwrite existing files even if the destination files are newer. + The default is . + + + + + Ignore directory structure of source directory, copy all files into + a single directory, specified by the + attribute. The default is . + + + + + Copy any empty directories included in the . + The default is . + + + + + Used to select the files to copy. To use a , + the attribute must be set. + + + + + Chain of filters used to alter the file's content as it is copied. + + + + + The encoding to use when reading files. The default is the system's + current ANSI code page. + + + + + The encoding to use when writing the files. The default is + the encoding of the input file. + + + + + The set of files to perform a file operation on. + + + + The key of the is the absolute path of + the destination file and the value is a + holding the path and last write time of the most recently updated + source file that is selected to be copied or moved to the + destination file. + + + On Windows, the is case-insensitive. + + + + + + Holds the absolute paths and last write time of a given file. + + + + + Initializes a new instance of the + class for the specified file and last write time. + + The absolute path of the file. + The last write time of the file. + + + + Gets the absolute path of the current file. + + + The absolute path of the current file. + + + + + Gets the time when the current file was last written to. + + + The time when the current file was last written to. + + + + + Deletes a file, fileset or directory. + + + + Deletes either a single file, all files in a specified directory and + its sub-directories, or a set of files specified by one or more filesets. + + + If the or attribute is + set then the fileset contents will be ignored. To delete the files + in the fileset ommit the and + attributes in the <delete> element. + + + If the specified file or directory does not exist, no error is + reported. + + + Read-only files cannot be deleted. Use the + first to remove the read-only attribute. + + + + Delete a single file. + + + ]]> + + + + + Delete a directory and the contents within. If the directory does not + exist, no error is reported. + + + + ]]> + + + + + Delete a set of files. + + + + + + + + + ]]> + + + + + + Ensures the supplied attributes are valid. + + Xml node used to define this task instance. + + + + The file to delete. + + + + + The directory to delete. + + + + + Remove any empty directories included in the . + The default is . + + + + + All the files in the file set will be deleted. + + + + + Controls whether to show the name of each deleted file or directory. + The default is . + + + + + An empty task that allows a build file to contain a description. + + + Set a description. + + This is a description. + ]]> + + + + + + Writes a message to the build log or a specified file. + + + + The message can be specified using the attribute + or as inline content. + + + Macros in the message will be expanded. + + + When writing to a file, the attribute is + ignored. + + + + + Writes a message with level to the build log. + + + + ]]> + + + + + Writes a message with expanded macro to the build log. + + + + ]]> + + + + + Functionally equivalent to the previous example. + + + Base build directory = ${nant.project.basedir} + ]]> + + + + + Writes the previous message to a file in the project directory, + overwriting the file if it exists. + + + Base build directory = ${nant.project.basedir} + ]]> + + + + + + Outputs the message to the build log or the specified file. + + + + + The message to output. + + + + + Gets or sets the inline content that should be output. + + + The inline content that should be output. + + + + + The file to write the message to. + + + + + Determines whether the should append to the + file, or overwrite it. By default, the file will be overwritten. + + + if output should be appended to the file; + otherwise, . The default is + . + + + + + The logging level with which the message should be output. The default + is . + + + + + Executes a system command. + + + Ping "nant.sourceforge.net". + + + + + ]]> + + + + + Execute a java application using IKVM.NET that requires the + Apache FOP jars, and a set of custom jars. + + + + + + + + + + + + + + + + + + + + + ]]> + + + Assuming the base directory of the build file is "c:\ikvm-test" and + the value of the "fop.dist.dir" property is "c:\fop", then the value + of the -cp argument that is passed toikvm.exe is + "c:\ikvm-test\conf;c:\fop\build\fop.jar;conf;c:\fop\lib\xercesImpl-2.2.1.jar;c:\fop\lib\avalon-framework-cvs-20020806.jar;c:\fop\lib\batik.jar;c:\ikvm-test\lib\mylib.jar;c:\ikvm-test\lib\otherlib.zip" + on a DOS-based system. + + + + + + Provides the abstract base class for tasks that execute external applications. + + + + + Defines the exit code that will be returned by + if the process could not be started, or did not exit (in time). + + + + + Will be used to ensure thread-safe operations. + + + + + Starts the external process and captures its output. + + + The external process did not finish within the configured timeout. + -or- + The exit code of the external process indicates a failure. + + + + + Updates the of the specified + . + + The of which the should be updated. + + + + Starts the process and handles errors. + + The that was started. + + + + Reads from the stream until the external program is ended. + + + + + Reads from the stream until the external program is ended. + + + + + Determines the path of the external program that should be executed. + + + A fully qualifies pathname including the program name. + + The task is not available or not configured for the current framework. + + + + The name of the executable that should be used to launch the + external program. + + + The name of the executable that should be used to launch the external + program, or if no name is specified. + + + If available, the configured value in the NAnt configuration + file will be used if no name is specified. + + + + + Gets the filename of the external program to start. + + + The filename of the external program. + + + Override in derived classes to explicitly set the location of the + external tool. + + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Gets the file to which the standard output should be redirected. + + + The file to which the standard output should be redirected, or + if the standard output should not be + redirected. + + + The default implementation will never allow the standard output + to be redirected to a file. Deriving classes should override this + property to change this behaviour. + + + + + Gets a value indicating whether output will be appended to the + . + + + if output should be appended to the ; + otherwise, . + + + + + Gets the working directory for the application. + + + The working directory for the application. + + + + + The maximum amount of time the application is allowed to execute, + expressed in milliseconds. Defaults to no time-out. + + + + + The command-line arguments for the external program. + + + + + Specifies whether the external program should be executed using a + runtime engine, if configured. The default is . + + + if the external program should be executed + using a runtime engine; otherwise, . + + + + + Gets or sets the to which standard output + messages of the external program will be written. + + + The to which standard output messages of + the external program will be written. + + + By default, standard output messages wil be written to the build log + with level . + + + + + Gets or sets the to which error output + of the external program will be written. + + + The to which error output of the external + program will be written. + + + By default, error output wil be written to the build log with level + . + + + + + Gets the value that the process specified when it terminated. + + + The code that the associated process specified when it terminated, + or -1000 if the process could not be started or did not + exit (in time). + + + + + Gets the command-line arguments, separated by spaces. + + + + + Performs additional checks after the task has been initialized. + + The used to initialize the task. + does not hold a valid file name. + + + + Executes the external program. + + + + + The program to execute without command arguments. + + + The path will not be evaluated to a full path using the project + base directory. + + + + + The command-line arguments for the program. + + + + + Environment variables to pass to the program. + + + + + The directory in which the command will be executed. + + + The directory in which the command will be executed. The default + is the project's base directory. + + + + The working directory will be evaluated relative to the project's + base directory if it is relative. + + + + + + + The name of a property in which the exit code of the program should + be stored. Only of interest if is + . + + + If the exit code of the program is "-1000" then the program could + not be started, or did not exit (in time). + + + + + + Specifies whether the external program should be executed using a + runtime engine, if configured. The default is . + + + if the external program should be executed + using a runtime engine; otherwise, . + + + + + Gets the filename of the external program to start. + + + The filename of the external program. + + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + The directory the program is in. + + + + The directory the program is in. The default is the project's base + directory. + + + The basedir will be evaluated relative to the project's base + directory if it is relative. + + + + + + The file to which the standard output will be redirected. + + + By default, the standard output is redirected to the console. + + + + + Gets or sets a value indicating whether output should be appended + to the output file. The default is . + + + if output should be appended to the ; + otherwise, . + + + + + Exits the current build by throwing a , + optionally printing additional information. + + + + The cause of the build failure can be specified using the + attribute or as inline content. + + + Macros in the message will be expanded. + + + + Exits the current build without giving further information. + + + ]]> + + + + Exits the current build and writes a message to the build log. + + + ]]> + + + + Functionally equivalent to the previous example. + + Something wrong here. + ]]> + + + + + + A message giving further information on why the build exited. + + + Inline content and are mutually exclusive. + + + + + Gets or sets the inline content that should be output in the build + log, giving further information on why the build exited. + + + The inline content that should be output in the build log. + + + Inline content and are mutually exclusive. + + + + + Gets a particular file from a URL source. + + + + Options include verbose reporting and timestamp based fetches. + + + Currently, only HTTP and UNC protocols are supported. FTP support may + be added when more pluggable protocols are added to the System.Net + assembly. + + + The option enables you to control downloads + so that the remote file is only fetched if newer than the local copy. + If there is no local copy, the download always takes place. When a file + is downloaded, the timestamp of the downloaded file is set to the remote + timestamp. + + + This timestamp facility only works on downloads using the HTTP protocol. + + + + + Gets the index page of the NAnt home page, and stores it in the file + help/index.html relative to the project base directory. + + + + ]]> + + + + + Gets the index page of a secured web site using the given credentials, + while connecting using the specified password-protected proxy server. + + + + + + + + + ]]> + + + + + + Initializes task and ensures the supplied attributes are valid. + + Xml node used to define this task instance. + + + + This is where the work is done + + + + + Sets the timestamp of a given file to a specified time. + + + + + The URL from which to retrieve a file. + + + + + The file where to store the retrieved file. + + + + + If inside a firewall, proxy server/port information + Format: {proxy server name}:{port number} + Example: proxy.mycompany.com:8080 + + + + + The network proxy to use to access the Internet resource. + + + + + The network credentials used for authenticating the request with + the Internet resource. + + + + + Log errors but don't treat as fatal. The default is . + + + + + Conditionally download a file based on the timestamp of the local + copy. HTTP only. The default is . + + + + + The length of time, in milliseconds, until the request times out. + The default is 100000 milliseconds. + + + + + The security certificates to associate with the request. + + + + + Checks the conditional attributes and executes the children if + . + + + + If no conditions are checked, all child tasks are executed. + + + If more than one attribute is used, they are &&'d. The first + to fail stops the check. + + + The order of condition evaluation is, , + , , + . + + + instead of using the deprecated attributes, we advise you to use the + following functions in combination with the + attribute: + + + + Function + Description + + + + Checks whether the specified property exists. + + + + Checks whether the specified target exists. + + + + + Tests the value of a property using expressions. + + + Build release configuration + + ]]> + + + + Tests the the output of a function. + + + + + ]]> + + + + (Deprecated) Check that a target exists. + + + + + + ]]> + + + + (Deprecated) Check existence of a property. + + + + + ]]> + + + + (Deprecated) Check that a property value is true. + + + + + ]]> + + + + + (Deprecated) Check that a property exists and is + (uses multiple conditions). + + + + + + ]]> + + which is the same as + + + + + + + ]]> + + + + + (Deprecated) Check file dates. If myfile.dll is uptodate, + then do stuff. + + + + + + ]]> + + or + + + + + + + + ]]> + + or + + + + + + + + + + + ]]> + + + + + + Executes embedded tasks in the order in which they are defined. + + + + + Automatically exclude build elements that are defined on the task + from things that get executed, as they are evaluated normally during + XML task initialization. + + used to initialize the container. + + + + Creates and executes the embedded (child XML nodes) elements. + + + Skips any element defined by the host that has + a defined. + + + + + Gets a value indicating whether the element is performing additional + processing using the that was use to + initialize the element. + + + , as a is + responsable for creating tasks from the nested build elements. + + + + + The file to compare if uptodate. + + + + + The file to check against for the uptodate file. + + + + + The that contains the comparison files for + the (s) check. + + + + + The that contains the uptodate files for + the (s) check. + + + + + Used to test whether a property is true. + + + + + Used to test whether a property exists. + + + + + Used to test whether a target exists. + + + + + Used to test arbitrary boolean expression. + + + + + The opposite of the if task. + + + Check that a property does not exist. + + + + + ]]> + + Check that a property value is not true. + + + + + ]]> + + + + Check that a target does not exist. + + + + + ]]> + + + + + + Includes an external build file. + + + + This task is used to break your build file into smaller chunks. You + can load a partial build file and have it included into the build file. + + + Any global (project level) tasks in the included build file are executed + when this task is executed. Tasks in target elements are only executed + if that target is executed. + + + The project element attributes are ignored. + + + This task can only be in the global (project level) section of the + build file. + + + This task can only include files from the file system. + + + + + Include a task that fetches the project version from the + GetProjectVersion.include build file. + + + + ]]> + + + + + + Used to check for recursived includes. + + + + + Verifies parameters. + + Xml taskNode used to define this task instance. + + + + Build file to include. + + + + + Load a text file into a single property. + + + + Unless an encoding is specified, the encoding associated with the + system's current ANSI code page is used. + + + An UTF-8, little-endian Unicode, and big-endian Unicode encoded text + file is automatically recognized, if the file starts with the appropriate + byte order marks. + + + + + Load file message.txt into property "message". + + + + ]]> + + + + + Load a file using the "latin-1" encoding. + + + + ]]> + + + + + Load a file, replacing all @NOW@ tokens with the current + date/time. + + + + + + + + + + ]]> + + + + + + The file to load. + + + + + The name of the property to save the content to. + + + + + The encoding to use when loading the file. The default is the encoding + associated with the system's current ANSI code page. + + + + + The filterchain definition to use. + + + + + Loads tasks form a given assembly or all assemblies in a given directory + or . + + + + Load tasks from a single assembly. + + + + ]]> + + + + + Scan a single directory for task assemblies. + + + + ]]> + + + + + Use a containing both a directory and an + assembly. + + + + + + + + + ]]> + + + + + + Executes the Load Tasks task. + + Specified assembly or path does not exist. + + + + Validates the attributes. + + Both and are set. + + + + An assembly to load tasks from. + + + + + A directory to scan for task assemblies. + + + + + Used to select which directories or individual assemblies to scan. + + + + + Loops over a set of items. + + + + Can loop over files in directory, lines in a file, etc. + + + The property value is stored before the loop is done, and restored + when the loop is finished. + + + The property is returned to its normal value once it is used. Read-only + parameters cannot be overridden in this loop. + + + + Loops over the files in c:\. + + + + + ]]> + + + + Loops over all files in the project directory. + + + + + + + + + + + + ]]> + + + + Loops over the folders in c:\. + + + + + ]]> + + + + Loops over all folders in the project directory. + + + + + + + + + + + + ]]> + + + + Loops over a list. + + + + + ]]> + + + + + Loops over lines in the file properties.csv, where each line + is of the format name,value. + + + + + + ]]> + + + + + + The NAnt property name(s) that should be used for the current + iterated item. + + + If specifying multiple properties, separate them with a comma. + + + + + The type of iteration that should be done. + + + + + The type of whitespace trimming that should be done. The default + is . + + + + + The source of the iteration. + + + + + The deliminator char. + + + + + Stuff to operate in. Just like the + attribute, but supports more complicated things like a + and such. + + Please remove the attribute if you + are using this element. + + + + + + Tasks to execute for each matching item. + + + + + Do not remove any white space characters. + + + + + Remove all white space characters from the end of the current + item. + + + + + Remove all white space characters from the beginning of the + current item. + + + + + Remove all white space characters from the beginning and end of + the current item. + + + + + Sends an SMTP message. + + + + Text and text files to include in the message body may be specified as + well as binary attachments. + + + + + Sends an email from nant@sourceforge.net to three recipients + with a subject about the attachments. The body of the message will be + the combined contents of all .txt files in the base directory. + All zip files in the base directory will be included as attachments. + The message will be sent using the smtpserver.anywhere.com SMTP + server. + + + + + + + + + + + ]]> + + + + + + Initializes task and ensures the supplied attributes are valid. + + Xml node used to define this task instance. + + + + This is where the work is done. + + + + + Reads a text file and returns the content + in a string. + + The file to read content of. + + The content of the specified file. + + + + + Email address of sender. + + + + + Semicolon-separated list of recipient email addresses. + + + + + Semicolon-separated list of CC: recipient email addresses. + + + + + Semicolon-separated list of BCC: recipient email addresses. + + + + + Host name of mail server. The default is localhost. + + + + + Text to send in body of email message. + + + + + Text to send in subject line of email message. + + + + + Format of the message. The default is . + + + + + Files that are transmitted as part of the body of the email message. + + + + + Attachments that are transmitted with the message. + + + + + Creates a directory and any non-existent parent directory if necessary. + + + Create the directory build. + + + ]]> + + + + Create the directory tree one/two/three. + + + ]]> + + + + + + Creates the directory specified by the property. + + The directory could not be created. + + + + The directory to create. + + + + + Moves a file or set of files to a new file or directory. + + + + Files are only moved if the source file is newer than the destination + file, or if the destination file does not exist. However, you can + explicitly overwrite files with the + attribute. + + + A can be used to select files to move. To use + a , the + attribute must be set. + +

Encoding

+ + Unless an encoding is specified, the encoding associated with the + system's current ANSI code page is used. + + + An UTF-8, little-endian Unicode, and big-endian Unicode encoded text + file is automatically recognized, if the file starts with the + appropriate byte order marks. + + + If you employ filters in your move operation, you should limit the + move to text files. Binary files will be corrupted by the move + operation. + +
+ + + Move a single file while changing its encoding from "latin1" to + "utf-8". + + + + ]]> + + + + Move a set of files. + + + + + + + ]]> + + + + + Move a set of files to a directory, replacing @TITLE@ with + "Foo Bar" in all files. + + + + + + + + + + + + + ]]> + + +
+ + + Actually does the file moves. + + + + + The file to move. + + + + + The file to move to. + + + + + The directory to move to. + + + + + Used to select the files to move. To use a , + the attribute must be set. + + + + + Ignore directory structure of source directory, move all files into + a single directory, specified by the + attribute. The default is . + + + + + Chain of filters used to alter the file's content as it is moved. + + + + + Creates an XSD File for all available tasks. + + + + This can be used in conjuntion with the command-line option to do XSD + Schema validation on the build file. + + + + Creates a NAnt.xsd file in the current project directory. + + + ]]> + + + + + + Creates a NAnt Schema for given types + + The output stream to save the schema to. If , writing is ignored, no exception generated. + The list of tasks to generate XML Schema for. + The list of datatypes to generate XML Schema for. + The target namespace to output. + The new NAnt Schema. + + + + Creates a new instance. + + The name of the attribute. + Value indicating whether the attribute should be required. + The new instance. + + + + Creates a new instance. + + The minimum value to allow for this choice + The maximum value to allow, Decimal.MaxValue sets it to 'unbound' + The new instance. + + + + The name of the output file to which the XSD should be written. + + + + + The target namespace for the output. Defaults to "http://tempuri.org/nant-donotuse.xsd" + + + + + The for which an XSD should be created. If not + specified, an XSD will be created for all available tasks. + + + + + Creates a new instance of the + class. + + Tasks for which a schema should be generated. + Data Types for which a schema should be generated. + The namespace to use. + http://tempuri.org/nant.xsd + + + + + Runs NAnt on a supplied build file, or a set of build files. + + + + By default, all the properties of the current project will be available + in the new project. Alternatively, you can set + to to not copy any properties to the new + project. + + + You can also set properties in the new project from the old project by + using nested property tags. These properties are always passed to the + new project regardless of the setting of . + This allows you to parameterize your subprojects. + + + References to data types can also be passed to the new project, but by + default they are not. If you set the to + , all references will be copied. + + + + + Build a project located in a different directory if the debug + property is not . + + + + ]]> + + + + + Build a project while adding a set of properties to that project. + + + + + + + + + + ]]> + + + + + Build all projects named default.build located anywhere under + the project base directory. + + + + + + + + + + ]]> + + + + + + Validates the element. + + The XML node of the task to use for initialization. + + + + The build file to build. + + + + + The target to execute. To specify more than one target seperate + targets with a space. Targets are executed in order if possible. + The default is to use target specified in the project's default + attribute. + + + + + Used to specify a set of build files to process. + + + + + Specifies whether current property values should be inherited by + the executed project. The default is . + + + + + Specifies whether all references will be copied to the new project. + The default is . + + + + + Specifies a collection of properties that should be created in the + executed project. Note, existing properties with identical names + that are not read-only will be overwritten. + + + + + Sets a property in the current project. + + + NAnt uses a number of predefined properties. + + + + Define a debug property with value . + + + + ]]> + + + + + Use the user-defined debug property. + + + + ]]> + + + + + Define a read-only property. This is just like passing in the param + on the command line. + + + + ]]> + + + + + Define a property, but do not overwrite the value if the property already exists (eg. it was specified on the command line). + + + + + + + ]]> + + + Executing this build file with the command line option -D:debug=false, + would cause the value specified on the command line to remain unaltered. + + + + + + + + + The name of the NAnt property to set. + + + + + The value to assign to the NAnt property. + + + + + Specifies whether the property is read-only or not. + The default is . + + + + + Specifies whether references to other properties should not be + expanded when the value of the property is set, but expanded when + the property is actually used. By default, properties will be + expanded when set. + + + + + Specifies whether the value of a property should be overwritten if + the property already exists (unless the property is read-only). + The default is . + + + + + Sets project properties based on the evaluatuion of a regular expression. + + + + The attribute must contain one or more + + named grouping constructs, which represents the names of the + properties to be set. These named grouping constructs can be enclosed + by angle brackets (?<name>) or single quotes (?'name'). + + + In the build file, use the XML element to specify <, + and to specify >. + + + The named grouping construct must not contain any punctuation and it + cannot begin with a number. + + + + + Find the last word in the given string and stores it in the property + lastword. + + + + + ]]> + + + + + Split the full filename and extension of a filename. + + + + ]]> + + + + + Split the path and the filename. (This checks for / or \ + as the path separator). + + + + ]]> + + + Results in path=d:\Temp\SomeDir\SomeDir\ and file=bla.xml. + + + + + + Executes the task. + + + + + Represents the regular expression to be evalued. + + + The regular expression to be evalued. + + + The pattern must contain one or more named constructs, which may + not contain any punctuation and cannot begin with a number. + + + + + A comma separated list of options to pass to the regex engine. The + default is . + + + + + Represents the input for the regular expression. + + + The input for the regular expression. + + + + + Sets an environment variable or a whole collection of them. Use an empty + attribute to clear a variable. + + + + Variables will be set for the current NAnt process and all child + processes that NAnt spawns (compilers, shell tools, etc). If the + intention is to only set a variable for a single child process, then + using the and its nested + element might be a better option. + + + Expansion of inline environment variables is performed using the syntax + of the current platform. So on Windows platforms using the string %PATH% + in the attribute will result in the value of + the PATH variable being expanded in place before the variable is set. + + + + Set the MONO_PATH environment variable on a *nix platform. + + + ]]> + + + + Set a collection of environment variables. Note the nested variable used to set var3. + + + + + + + ]]> + + + + Set environment variables using nested path elements. + + + + + + + + + + + + + + + + + ]]> + + + + + + Win32 DllImport for the SetEnvironmentVariable function. + + + + + + + + *nix dllimport for the setenv function. + + + + + + + + + Checks whether the task is initialized with valid attributes. + + + + + + Set the environment variables + + + + + Do the actual work here. + + The name of the environment variable. + The value of the environment variable. + + + + The name of a single Environment variable to set + + + + + The literal value for the environment variable. + + + + + The value for a file-based environment variable. NAnt will convert + it to an absolute filename. + + + + + The value for a directory-based environment variable. NAnt will + convert it to an absolute path. + + + + + The value for a PATH like environment variable. You can use + : or ; as path separators and NAnt will convert it to + the platform's local conventions. + + + + + A task for sleeping a specified period of time, useful when a build or deployment process + requires an interval between tasks. + + + Sleep 1 hour, 2 minutes, 3 seconds and 4 milliseconds. + + + ]]> + + + + Sleep 123 milliseconds. + + + ]]> + + + + + + Verify parameters. + + taskNode used to define this task instance + + + + Return time to sleep. + + + + + Sleeps for the specified number of milliseconds. + + Number of milliseconds to sleep. + + + + Hours to add to the sleep time. + + + + + Minutes to add to the sleep time. + + + + + Seconds to add to the sleep time. + + + + + Milliseconds to add to the sleep time. + + + + + Processes a document via XSLT. + + + Create a report in HTML. + + + ]]> + + + + Create a report in HTML, with a param. + + + + + + + ]]> + + + + Create a report in HTML, with a expanded param. + + + + + + + ]]> + + + + Create some code based on a directory of templates. + + + + + + + + + + ]]> + + + + + + Directory in which to store the results. The default is the project + base directory. + + + + + Desired file extension to be used for the targets. The default is + html. + + + + + URI or path that points to the stylesheet to use. If given as path, it can + be relative to the project's basedir or absolute. + + + + + Specifies a single XML document to be styled. Should be used with + the attribute. + + + + + Specifies the output name for the styled result from the + attribute. + + + + + Specifies a group of input files to which to apply the stylesheet. + + + + + XSLT parameters to be passed to the XSLT transformation. + + + + + XSLT extension objects to be passed to the XSLT transformation. + + + + + The network proxy to use to access the Internet resource. + + + + + Sets properties with system information. + + + Sets a number of properties with information about the system environment. The intent of this task is for nightly build logs to have a record of system information so that the build was performed on. + + + Property + Value + + + <>.clr.version + Common Language Runtime version number. + + + <>.env.* + Environment variables (e.g., <>.env.PATH). + + + <>.os.platform + Operating system platform ID. + + + <>.os.version + Operating system version. + + + <>.os + Operating system version string. + + + <>.os.folder.applicationdata + The directory that serves as a common repository for application-specific data for the current roaming user. + + + <>.os.folder.commonapplicationdata + The directory that serves as a common repository for application-specific data that is used by all users. + + + <>.os.folder.commonprogramfiles + The directory for components that are shared across applications. + + + <>.os.folder.desktopdirectory + The directory used to physically store file objects on the desktop. Do not confuse this directory with the desktop folder itself, which is a virtual folder. + + + <>.os.folder.programfiles + The Program Files directory. + + + <>.os.folder.system + The System directory. + + + <>.os.folder.temp + The temporary directory. + + + + When the name of an environment variable is not a valid property name, + the task will fail. In that case, set to + to allow that environment variable to be + skipped. + + + we advise you to use the following functions instead: + + + + Function + Description + + + + Gets a object that identifies this operating system. + + + + Gets the path to a system special folder. + + + + Returns the value of a environment variable. + + + + Gets the path to the temporary directory. + + + + Gets the Common Language Runtime version. + + + + + Register the properties with the default property prefix. + + + ]]> + + + + Register the properties without a prefix. + + + ]]> + + + + Register properties and display a summary. + + + ]]> + + + + + + The string to prefix the property names with. The default is "sys.". + + + + + Sets properties with the current date and time. + + + + By default the displays the current date + and time and sets the following properties: + + + tstamp.date to yyyyMMdd + tstamp.time to HHmm + tstamp.now using the default DateTime.ToString() method + + + To set an additional property with a custom date/time use the + and attributes. + To set a number of additional properties with the exact same date and + time use the nested element (see example). + + + The date and time string displayed by the + uses the computer's default long date and time string format. You + might consider setting these to the + ISO 8601 standard + for date and time notation. + + + + Set the build.date property. + + + ]]> + + + + Set a number of properties for Ant like compatibility. + + + + + + + ]]> + + + + + + The property to receive the date/time string in the given pattern. + + + + The date/time pattern to be used. + + The following table lists the standard format characters for each standard pattern. The format characters are case-sensitive; for example, 'g' and 'G' represent slightly different patterns. + + + Format Character + Description Example Format Pattern (en-US) + + dMM/dd/yyyy + Ddddd, dd MMMM yyyy + fdddd, dd MMMM yyyy HH:mm + Fdddd, dd MMMM yyyy HH:mm:ss + gMM/dd/yyyy HH:mm + GMM/dd/yyyy HH:mm:ss + m, MMMMM dd + r, Rddd, dd MMM yyyy HH':'mm':'ss 'GMT' + syyyy'-'MM'-'dd'T'HH':'mm':'ss + tHH:mm + THH:mm:ss + uyyyy'-'MM'-'dd HH':'mm':'ss'Z' + Udddd, dd MMMM yyyy HH:mm:ss + y, Yyyyy MMMM + + The following table lists the patterns that can be combined to construct custom patterns. The patterns are case-sensitive; for example, "MM" is recognized, but "mm" is not. If the custom pattern contains white-space characters or characters enclosed in single quotation marks, the output string will also contain those characters. Characters not defined as part of a format pattern or as format characters are reproduced literally. + + + Format + Pattern Description + + dThe day of the month. Single-digit days will not have a leading zero. + ddThe day of the month. Single-digit days will have a leading zero. + dddThe abbreviated name of the day of the week. + ddddThe full name of the day of the week. + MThe numeric month. Single-digit months will not have a leading zero. + MMThe numeric month. Single-digit months will have a leading zero. + MMMThe abbreviated name of the month. + MMMMThe full name of the month. + yThe year without the century. If the year without the century is less than 10, the year is displayed with no leading zero. + yyThe year without the century. If the year without the century is less than 10, the year is displayed with a leading zero. + yyyyThe year in four digits, including the century. + ggThe period or era. This pattern is ignored if the date to be formatted does not have an associated period or era string. + hThe hour in a 12-hour clock. Single-digit hours will not have a leading zero. + hhThe hour in a 12-hour clock. Single-digit hours will have a leading zero. + HThe hour in a 24-hour clock. Single-digit hours will not have a leading zero. + HHThe hour in a 24-hour clock. Single-digit hours will have a leading zero. + mThe minute. Single-digit minutes will not have a leading zero. + mmThe minute. Single-digit minutes will have a leading zero. + sThe second. Single-digit seconds will not have a leading zero. + ssThe second. Single-digit seconds will have a leading zero. + fThe fraction of a second in single-digit precision. The remaining digits are truncated. + ffThe fraction of a second in double-digit precision. The remaining digits are truncated. + fffThe fraction of a second in three-digit precision. The remaining digits are truncated. + ffffThe fraction of a second in four-digit precision. The remaining digits are truncated. + fffffThe fraction of a second in five-digit precision. The remaining digits are truncated. + ffffffThe fraction of a second in six-digit precision. The remaining digits are truncated. + fffffffThe fraction of a second in seven-digit precision. The remaining digits are truncated. + tThe first character in the AM/PM designator. + ttThe AM/PM designator. + zThe time zone offset ("+" or "-" followed by the hour only). Single-digit hours will not have a leading zero. For example, Pacific Standard Time is "-8". + zzThe time zone offset ("+" or "-" followed by the hour only). Single-digit hours will have a leading zero. For example, Pacific Standard Time is "-08". + zzzThe full time zone offset ("+" or "-" followed by the hour and minutes). Single-digit hours and minutes will have leading zeros. For example, Pacific Standard Time is "-08:00". + :The default time separator. + /The default date separator. + \ cPattern Where c is any character. Displays the character literally. To display the backslash character, use "\\". + + + + + + Touches a file or set of files -- corresponds to the Unix touch command. + + + + If the file specified does not exist, the task will create it. + + + + Touch the Main.cs file. The current time is used. + + + ]]> + + + + + Touch all executable files in the project base directory and its + subdirectories. + + + + + + + + + ]]> + + + + + + Ensures the supplied attributes are valid. + + Xml node used to define this task instance. + + + + The file to touch. + + + + + Specifies the new modification time of the file(s) in milliseconds + since midnight Jan 1 1970. + + + + + Specifies the new modification time of the file in the format + MM/DD/YYYY HH:MM:SS. + + + + + Used to select files that should be touched. + + + + + Check modification dates on groups of files. + + + If all are same or newer than all , the specified property is set to , otherwise it + is set to . + + + + Check file dates. If myfile.dll is same or newer than myfile.cs, then set myfile.dll.uptodate property + to either or . + + + + + + + + + + + ]]> + + + + + + Property that will be set to or depending on the + result of the date check. + + + + + The that contains list of source files. + + + + + The that contains list of target files. + + + + + Extracts text from an XML file at the location specified by an XPath + expression. + + + + If the XPath expression specifies multiple nodes the node index is used + to determine which of the nodes' text is returned. + + + + + The example provided assumes that the following XML file (App.config) + exists in the current build directory. + + + + + + + + + ]]> + + + + + The example will read the server value from the above + configuration file. + + + + + + + + ]]> + + + + + + Executes the XML peek task. + + + + + Loads an XML document from a file on disk. + + The file name of the file to load the XML document from. + + A document containing + the document object representing the file. + + + + + Gets the contents of the node specified by the XPath expression. + + The XPath expression used to determine which nodes to choose from. + The XML document to select the nodes from. + The node index in the case where multiple nodes satisfy the expression. + + The contents of the node specified by the XPath expression. + + + + + The name of the file that contains the XML document + that is going to be peeked at. + + + + + The index of the node that gets its text returned when the query + returns multiple nodes. + + + + + The property that receives the text representation of the XML inside + the node returned from the XPath expression. + + + + + The XPath expression used to select which node to read. + + + + + Namespace definitions to resolve prefixes in the XPath expression. + + + + + Replaces text in an XML file at the location specified by an XPath + expression. + + + + The location specified by the XPath expression must exist, it will + not create the parent elements for you. However, provided you have + a root element you could use a series of the tasks to build the + XML file up if necessary. + + + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML file: + + + + + + + + ]]> + + Build fragment: + + + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML file: + + + + + ]]> + + Build fragment: + + + + + + + ]]> + + + + + + Executes the XML poke task. + + + + + Loads an XML document from a file on disk. + + + The file name of the file to load the XML document from. + + + An containing + the document object model representing the file. + + + + + Given an XML document and an expression, returns a list of nodes + which match the expression criteria. + + + The XPath expression used to select the nodes. + + + The XML document that is searched. + + + An to use for resolving namespaces + for prefixes in the XPath expression. + + + An containing references to the nodes + that matched the XPath expression. + + + + + Given a node list, replaces the XML within those nodes. + + + The list of nodes to replace the contents of. + + + The text to replace the contents with. + + + + + Saves the XML document to a file. + + The XML document to be saved. + The file name to save the XML document under. + + + + The name of the file that contains the XML document that is going + to be poked. + + + + + The XPath expression used to select which nodes are to be modified. + + + + + The value that replaces the contents of the selected nodes. + + + + + Namespace definitions to resolve prefixes in the XPath expression. + + + + + Represents a command-line argument. + + + + A single command-line argument containing a space character. + + + + ]]> + + + + + Two separate command-line arguments. + + + + ]]> + + + + + A single command-line argument with the value \dir;\dir2;\dir3 + on DOS-based systems and /dir:/dir2:/dir3 on Unix-like systems. + + + + ]]> + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified command-line argument. + + + + + Initializes a new instance of the class + with the given file. + + + + + Initializes a new instance of the class + with the given path. + + + + + Returns the argument as a . + + + The argument as a . + + + File and individual path elements will be quoted if necessary. + + + + + Quotes a command line argument if it contains a single quote or a + space. + + The command line argument. + + A quoted command line argument if + contains a single quote or a space; otherwise, + . + + + + + A single command-line argument; can contain space characters. + + + + + The name of a file as a single command-line argument; will be + replaced with the absolute filename of the file. + + + + + The value for a directory-based command-line argument; will be + replaced with the absolute path of the directory. + + + + + The value for a PATH-like command-line argument; you can use + : or ; as path separators and NAnt will convert it + to the platform's local conventions, while resolving references to + environment variables. + + + Individual parts will be replaced with the absolute path, resolved + relative to the project base directory. + + + + + Sets a single command-line argument and treats it like a PATH - ensures + the right separator for the local platform is used. + + + + + List of command-line arguments; will be passed to the executable + as is. + + + + + Indicates if the argument should be passed to the external program. + If then the argument will be passed; + otherwise, skipped. The default is . + + + + + Indicates if the argument should not be passed to the external + program. If then the argument will be + passed; otherwise, skipped. The default is . + + + + + Gets string value corresponding with the argument. + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + value is in the collection. + + The argument value to locate in the collection. + + if a with value + is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified value. + + The value of the to get. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Provides credentials for password-based authentication schemes. + + + + + Initializes a new instance of the class. + + + + + Returns a instance representing + the current . + + + A instance representing the current + , or if the + credentials should not be used to provide authentication information + to the external resource. + + + + + The domain or computer name that verifies the credentials. + + + + + The password for the user name associated with the credentials. + + + + + The user name associated with the credentials. + + + + + Indicates if the credentials should be used to provide authentication + information to the external resource. If then + the credentials will be passed; otherwise, not. The default is + . + + + + + Indicates if the credentials should not be used to provide authentication + information to the external resource. If then the + credentials will be passed; otherwise, not. The default is + . + + + + + A specialized used for specifying a set of + directories. + + + Hint for supporting tasks that the included directories instead of + files should be used. + + + + + Filesets are groups of files. These files can be found in a directory + tree starting in a base directory and are matched by patterns taken + from a number of patterns. Filesets can appear inside tasks that support + this feature or at the project level, i.e., as children of <project>. + + +

Patterns

+ + As described earlier, patterns are used for the inclusion and exclusion. + These patterns look very much like the patterns used in DOS and UNIX: + + + + + '*' matches zero or more characters + For example: + + *.cs matches .cs, x.cs and FooBar.cs, + but not FooBar.xml (does not end with .cs). + + + + + + '?' matches one character + For example: + + ?.cs matches x.cs, A.cs, but not + .cs or xyz.cs (both don't have one character + before .cs). + + + + + + Combinations of *'s and ?'s are allowed. + + + Matching is done per-directory. This means that first the first directory + in the pattern is matched against the first directory in the path to match. + Then the second directory is matched, and so on. For example, when we have + the pattern /?abc/*/*.cs and the path /xabc/foobar/test.cs, + the first ?abc is matched with xabc, then * is matched + with foobar, and finally *.cs is matched with test.cs. + They all match, so the path matches the pattern. + + + To make things a bit more flexible, we added one extra feature, which makes + it possible to match multiple directory levels. This can be used to match a + complete directory tree, or a file anywhere in the directory tree. To do this, + ** must be used as the name of a directory. When ** is used as + the name of a directory in the pattern, it matches zero or more directories. + For example: /test/** matches all files/directories under /test/, + such as /test/x.cs, or /test/foo/bar/xyz.html, but not /xyz.xml. + + + There is one "shorthand" - if a pattern ends with / or \, then + ** is appended. For example, mypackage/test/ is interpreted as + if it were mypackage/test/**. + +

Default Excludes

+ + There are a set of definitions that are excluded by default from all + tasks that use filesets. They are: + + + + + **/*~ + + + + + **/#*# + + + + + **/.#* + + + + + **/%*% + + + + + **/CVS + + + + + **/CVS/** + + + + + **/.cvsignore + + + + + **/.svn + + + + + **/.svn/** + + + + + **/_svn + + + + + **/_svn/** + + + + + **/SCCS + + + + + **/SCCS/** + + + + + **/vssver.scc + + + + + **/_vti_cnf/** + + + + + If you do not want these default excludes applied, you may disable them + by setting to . + +
+ + + + Pattern + Match + + + **/CVS/* + + + Matches all files in CVS directories that can be + located anywhere in the directory tree. + + Matches: + + + CVS/Repository + + + org/apache/CVS/Entries + + + org/apache/jakarta/tools/ant/CVS/Entries + + + But not: + + + org/apache/CVS/foo/bar/Entries (foo/bar/ part does not match) + + + + + + org/apache/jakarta/** + + + Matches all files in the org/apache/jakarta directory + tree. + + Matches: + + + org/apache/jakarta/tools/ant/docs/index.html + + + org/apache/jakarta/test.xml + + + But not: + + + org/apache/xyz.java (jakarta/ part is missing) + + + + + + org/apache/**/CVS/* + + + Matches all files in CVS directories that are located + anywhere in the directory tree under org/apache. + + Matches: + + + org/apache/CVS/Entries + + + org/apache/jakarta/tools/ant/CVS/Entries + + + But not: + + + org/apache/CVS/foo/bar/Entries (foo/bar/ part does not match) + + + + + + **/test/** + + + Matches all files that have a test element in their + path, including test as a filename. + + + + + +
+ + + Initializes a new instance of the class. + + + + + copy constructor + + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Copies all instance data of the to a given + . + + + + + Determines if a file has a more recent last write time than the + given time, or no longer exists. + + A file to check the last write time against. + The datetime to compare against. + + The name of the file that has a last write time greater than + or that no longer exists; + otherwise, . + + + + + Determines if one of the given files has a more recent last write + time than the given time. If one of the given files no longer exists, + the target will be considered out-of-date. + + A collection of filenames to check the last write time against. + The datetime to compare against. + + The name of the first file that has a last write time greater than + ; otherwise, null. + + + + + When set to , causes the fileset element to + throw a when no files match the + includes and excludes criteria. The default is . + + + + + Indicates whether default excludes should be used or not. + The default is . + + + + + The base of the directory of this fileset. The default is the project + base directory. + + + + + Gets the collection of include patterns. + + + + + Gets the collection of exclude patterns. + + + + + Gets the collection of files that will be added to the + without pattern matching or checking if the + file exists. + + + + + Gets the collection of file names that match the fileset. + + + A collection that contains the file names that match the + . + + + + + Gets the collection of directory names that match the fileset. + + + A collection that contains the directory names that match the + . + + + + + Gets the collection of directory names that were scanned for files. + + + A collection that contains the directory names that were scanned for + files. + + + + + The items to include in the fileset. + + + + + The items to include in the fileset. + + + + + The items to exclude from the fileset. + + + + + The items to exclude from the fileset. + + + + + The files from which a list of patterns or files to include should + be obtained. + + + + + The files from which a list of patterns or files to include should + be obtained. + + + + + The files from which a list of patterns or files to exclude should + be obtained. + + + + + Determines the most recently modified file in the fileset (by LastWriteTime of the ). + + + The of the file that has the newest (closest to present) last write time. + + + + + The pattern or file name to exclude. + + + + + If then the pattern will be excluded; + otherwise, skipped. The default is . + + + + + Opposite of . If + then the pattern will be excluded; otherwise, skipped. The default + is . + + + + + If then the file name will be added to + the without pattern matching or checking + if the file exists. The default is . + + + + + If then the file will be searched for + on the path. The default is . + + + + + The pattern or file name to include. + + + + + If then the pattern will be included; + otherwise, skipped. The default is . + + + + + Opposite of . If + then the pattern will be included; otherwise, skipped. The default + is . + + + + + Gets the list of patterns in . + + + + + If then the patterns will be excluded; + otherwise, skipped. The default is . + + + + + Opposite of . If + then the patterns will be excluded; otherwise, skipped. The default + is . + + + + + The name of a file; each line of this file is taken to be a + pattern. + + + + + If then the patterns in the include file + will be added to the without pattern + matching or checking if the file exists. The default is + . + + + + + If then the patterns in the include file + will be searched for on the path. The default is . + + + + + If then the patterns will be included; + otherwise, skipped. The default is . + + + + + Opposite of . If + then the patterns will be included; otherwise, skipped. The default + is . + + + + + Initializes a new instance of the class. + + + + + Copy constructor for . Required in order to + assign references of type where + is used. + + A instance to create a from. + + + + Represents an environment variable. + + + + + Initializes a instance with the + specified name and value. + + The name of the environment variable. + The value of the environment variable. + + + + Initializes a instance. + + + + + The name of the environment variable. + + + + + The literal value for the environment variable. + + + + + The value for a file-based environment variable. NAnt will convert + it to an absolute filename. + + + + + The value for a directory-based environment variable. NAnt will + convert it to an absolute path. + + + + + The value for a PATH like environment variable. You can use + : or ; as path separators and NAnt will convert it to + the platform's local conventions. + + + + + Sets a single environment variable and treats it like a PATH - + ensures the right separator for the local platform is used. + + + + + Gets the value of the environment variable. + + + + + Indicates if the environment variable should be passed to the + external program. If then the environment + variable will be passed; otherwise, skipped. The default is + . + + + + + Indicates if the environment variable should not be passed to the + external program. If then the environment + variable will be passed; otherwise, skipped. The default is + . + + + + + A set of environment variables. + + + + + Environment variable to pass to a program. + + + + + Environment variable to pass to a program. + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + value is in the collection. + + The argument value to locate in the collection. + + if a with value + is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified name. + + The name of the to get. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + The name of the NAnt property to set. + + + + + The string pattern to use to format the property. + + + + + Indicates if the formatter should be used to format the timestamp. + If then the formatter will be used; + otherwise, skipped. The default is . + + + + + Indicates if the formatter should be not used to format the + timestamp. If then the formatter will be + used; otherwise, skipped. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Represents an option. + + + + + name, value constructor + + + + + + + Default constructor + + + + + Name of the option. + + + + + Value of the option. The default is . + + + + + Indicates if the option should be passed to the task. + If then the option will be passed; + otherwise, skipped. The default is . + + + + + Indicates if the option should not be passed to the task. + If then the option will be passed; + otherwise, skipped. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a for the specified + task is in the collection. + + The name of task for which the should be located in the collection. + + if a for the specified + task is found in the collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified name. + + The name of the option that should be located in the collection. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Represents a nested path element. + + + + + The name of a file to add to the path. Will be replaced with + the absolute path of the file. + + + + + The name of a directory to add to the path. Will be replaced with + the absolute path of the directory. + + + + + A string that will be treated as a path-like string. You can use + : or ; as path separators and NAnt will convert it + to the platform's local conventions, while resolving references + to environment variables. + + + + + If then the entry will be added to the + path; otherwise, skipped. The default is . + + + + + Opposite of . If + then the entry will be added to the path; otherwise, skipped. + The default is . + + + + + Gets the parts of a path represented by this element. + + + A containing the parts of a path + represented by this element. + + + + + + Paths are groups of files and/or directories that need to be passed as a single + unit. The order in which parts of the path are specified in the build file is + retained, and duplicate parts are automatically suppressed. + + + + + Define a global <path> that can be referenced by other + tasks or types. + + + + + + + ]]> + + + + + + Initializes a new instance of the class. + + + + + Invoked by for build + attributes with an underlying type. + + The to be used to resolve relative paths. + The string representing a path. + + + + Returns a textual representation of the path, which can be used as + PATH environment variable definition. + + + A textual representation of the path. + + + + + Defines a set of path elements to add to the current path. + + The to add. + + + + Defines a path element to add to the current path. + + The to add. + + + + Returns all path elements defined by this path object. + + + A list of path elements. + + + + + Splits a PATH (with ; or : as separators) into its parts, while + resolving references to environment variables. + + The to be used to resolve relative paths. + The path to translate. + + A PATH split up its parts, with references to environment variables + resolved and duplicate entries removed. + + + + + Contains HTTP proxy settings used to process requests to Internet + resources. + + + + + Initializes a new instance of the class. + + + + + Gets a instance representing the current + . + + + A instance representing the current + , or + if this proxy should not be used to connect to the external resource. + + + + + The name of the proxy host. + + + + + The port number on to use. + + + + + Specifies whether to bypass the proxy server for local addresses. + The default is . + + + + + The credentials to submit to the proxy server for authentication. + + + + + Indicates if the proxy should be used to connect to the external + resource. If then the proxy will be used; + otherwise, not. The default is . + + + + + Indicates if the proxy should not be used to connect to the external + resource. If then the proxy will be used; + otherwise, not. The default is . + + + + + Represents an element of which the XML is processed by its parent task + or type. + + + + + Gets the XML that this element represents. + + + + + Gets a value indicating whether the element is performing additional + processing using the that was use to + initialize the element. + + + , as the XML that represents this build + element is processed by the containing task or type. + + + + + ReplaceTokens filter token. + + + + + Token to be replaced. + + + + + New value of token. + + + + + Indicates if the token should be used to replace values. + If then the token will be used; + otherwise, not. The default is . + + + + + Indicates if the token should not be used to replace values. + If then the token will be used; + otherwise, not. The default is . + + + + + Represents an XML namespace. + + + + + The prefix to associate with the namespace. + + + + + The associated XML namespace URI. + + + + + Indicates if the namespace should be added to the . + If then the namespace will be added; + otherwise, skipped. The default is . + + + + + Indicates if the namespace should not be added to the . + list. If then the parameter will be + added; otherwise, skipped. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + value is in the collection. + + The argument value to locate in the collection. + + if a with + value is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified prefix. + + The prefix of the to get. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Represents an XSLT extension object. The object should have a default + parameterless constructor and the return value should be one of the + four basic XPath data types of number, string, Boolean or node set. + + + + + Initializes a new instance of the + class. + + + + + The namespace URI to associate with the extension object. + + + The namespace URI to associate with the extension object, or + if not set. + + + + + The full type name of the XSLT extension object. + + + + + The assembly which contains the XSLT extension object. + + + + + Indicates if the extension object should be added to the XSLT argument + list. If then the extension object will be + added; otherwise, skipped. The default is . + + + + + Indicates if the extension object should not be added to the XSLT argument + list. If then the extension object will be + added; otherwise, skipped. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the + class. + + + + + Initializes a new instance of the + class with the + specified instance. + + + + + Initializes a new instance of the + class with the + specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added + to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the + end of the collection. + + The array of + elements to be added to the end of the collection. + + + + Adds the elements of a + to the end of the collection. + + The + to be added to the end of the collection. + + + + Determines whether a is in the + collection. + + The to locate + in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the + specified value is in the collection. + + The argument value to locate in the + collection. + + if a + with value is found in the collection; + otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, + starting at the specified index of the target array. + + The one-dimensional array that is the + destination of the elements copied from the collection. The array + must have zero-based indexing. + The zero-based index in + at which copying begins. + + + + Retrieves the index of a specified + object in the collection. + + The object for + which the index is returned. + + The index of the specified . If the + is not currently a member of the + collection, it returns -1. + + + + + Inserts a into the collection at + the specified index. + + The zero-based index at which + should be inserted. + The to + insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire + collection. + + + + + Removes a member from the collection. + + The to remove + from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get + or set. + + + + Gets the with the specified name. + + The name of the + to get. + + + + Enumerates the elements of a + . + + + + + Initializes a new instance of the + class + with the specified . + + The collection that should be + enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Represents an XSLT parameter. + + + + + Initializes a new instance of the + class. + + + + + The name of the XSLT parameter. + + + The name of the XSLT parameter, or if + not set. + + + + + The namespace URI to associate with the parameter. + + + The namespace URI to associate with the parameter, or + if not set. + + + + + The value of the XSLT parameter. + + + The value of the XSLT parameter, or if + not set. + + + + + Indicates if the parameter should be added to the XSLT argument list. + If then the parameter will be added; + otherwise, skipped. The default is . + + + + + Indicates if the parameter should not be added to the XSLT argument + list. If then the parameter will be + added; otherwise, skipped. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + value is in the collection. + + The argument value to locate in the collection. + + if a with + value is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified name. + + The name of the to get. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Resolves assemblies by caching assemblies that were loaded. + + + + + Initializes an instanse of the + class. + + + + + Initializes an instanse of the + class in the context of the given . + + + + + Installs the assembly resolver by hooking up to the + event. + + + + + Uninstalls the assembly resolver. + + + + + Resolves an assembly not found by the system using the assembly + cache. + + The source of the event. + A that contains the event data. + + The loaded assembly, or if not found. + + + + + Occurs when an assembly is loaded. The loaded assembly is added + to the assembly cache. + + The source of the event. + An that contains the event data. + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to log, containing zero or more format items. + An array containing zero or more objects to format. + + The actual logging is delegated to the in which + the is executing + + + + + Holds the loaded assemblies. + + + + + Holds the in which the + is executing. + + + The in which the + is executing or if the + is not executing in the context of a . + + + + + Represents a valid command-line argument. + + + + + Sets the value of the argument on the specified object. + + The object on which the value of the argument should be set. + The argument is required and no value was specified. + + + The matching property is collection-based, but is not initialized + and cannot be written to. + + -or- + + The matching property is collection-based, but has no strongly-typed + Add method. + + -or- + + The matching property is collection-based, but the signature of the + Add method is not supported. + + + + + + Assigns the specified value to the argument. + + The value that should be assigned to the argument. + + Duplicate argument. + -or- + Invalid value. + + + + + Indicates whether the specified is a + . + + + if can be assigned + to ; otherwise, . + + + + + Indicates whether the specified is collection-based. + + + if can be assigned + to and is not backed by a + that can be assigned to ; + otherwise, . + + + + + Indicates whether the specified is an array. + + + if is an array; + otherwise, . + + + + + Gets the property that backs the argument. + + + The property that backs the arguments. + + + + + Gets the underlying of the argument. + + + The underlying of the argument. + + + If the of the argument is a collection type, + this property will returns the underlying type of that collection. + + + + + Gets the long name of the argument. + + The long name of the argument. + + + + Gets the short name of the argument. + + The short name of the argument. + + + + Gets the description of the argument. + + The description of the argument. + + + + Gets a value indicating whether the argument is required. + + + if the argument is required; otherwise, + . + + + + + Gets a value indicating whether a mathing command-line argument + was already found. + + + if a matching command-line argument was + already found; otherwise, . + + + + + Gets a value indicating whether the argument can be specified multiple + times. + + + if the argument may be specified multiple + times; otherwise, . + + + + + Gets a value indicating whether the argument can only be specified once + with a certain value. + + + if the argument should always have a unique + value; otherwise, . + + + + + Gets the of the property to which the argument + is applied. + + + The of the property to which the argument is + applied. + + + + + Gets a value indicating whether the argument is collection-based. + + + if the argument is backed by a + that can be assigned to and is not backed + by a that can be assigned to + ; otherwise, . + + + + + Gets a value indicating whether the argument is a set of name/value + pairs. + + + if the argument is backed by a + that can be assigned to ; otherwise, + . + + + + + Gets a value indicating whether the argument is array-based. + + + if the argument is backed by an array; + otherwise, . + + + + + Gets a value indicating whether the argument is the default argument. + + + if the argument is the default argument; + otherwise, . + + + + + Gets a value indicating whether the argument cannot be combined with + other arguments. + + + if the argument cannot be combined with other + arguments; otherwise, . + + + + + Allows control of command line parsing. + + + + + Initializes a new instance of the class + with the specified argument type. + + Specifies the checking to be done on the argument. + + + + Gets or sets the checking to be done on the argument. + + The checking that should be done on the argument. + + + + Gets or sets the long name of the argument. + + The long name of the argument. + + + + Gets or sets the short name of the argument. + + The short name of the argument. + + + + Gets or sets the description of the argument. + + The description of the argument. + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified name. + + The name of the to get. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + The exception that is thrown when one of the command-line arguments provided + is not valid. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a descriptive message. + + A descriptive message to include with the exception. + + + + Initializes a new instance of the class + with a descriptive message and an inner exception. + + A descriptive message to include with the exception. + A nested exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + + Used to control parsing of command-line arguments. + + + + + Indicates that this field is required. An error will be displayed + if it is not present when parsing arguments. + + + + + Only valid in conjunction with Multiple. + Duplicate values will result in an error. + + + + + Inidicates that the argument may be specified more than once. + Only valid if the argument is a collection + + + + + Inidicates that if this argument is specified, no other arguments may be specified. + + + + + The default type for non-collection arguments. + The argument is not required, but an error will be reported if it is specified more than once. + + + + + The default type for collection arguments. + The argument is permitted to occur multiple times, but duplicate + values will cause an error to be reported. + + + + + Commandline parser. + + + + + Initializes a new instance of the class + using possible arguments deducted from the specific . + + The from which the possible command-line arguments should be retrieved. + A value indicating whether or not a response file is able to be used. + is a null reference. + + + + Parses an argument list. + + The arguments to parse. + The destination object on which properties will be set corresponding to the specified arguments. + is a null reference. + The of does not match the argument specification that was used to initialize the parser. + + + + Splits a string and removes any empty strings from the + result. Same functionality as the + public string[] Split(char[] separator, StringSplitOptions options) + method in .Net 2.0. Replace with that call when 2.0 is standard. + + + + the array of strings + + + + Read a response file and parse the arguments as usual. + + + + + + Parse the argument list using the + + + + + + Returns the that's applied + on the specified property. + + The property of which applied should be returned. + + The that's applied to the + , or a null reference if none was applied. + + + + + Gets a logo banner using version and copyright attributes defined on the + or the + . + + + A logo banner. + + + + + Gets the usage instructions. + + The usage instructions. + + + + Gets a value indicating whether no arguments were specified on the + command line. + + + + + Marks a command-line option as being the default option. When the name of + a command-line argument is not specified, this option will be assumed. + + + + + Initializes a new instance of the class + with the specified argument type. + + Specifies the checking to be done on the argument. + + + + Provides modified version for Copy and Move from the File class that + allow for filter chain processing. + + + + + Copies a file filtering its content through the filter chain. + + The file to copy + The file to copy to + Chain of filters to apply when copying, or is no filters should be applied. + The encoding used to read the soure file. + The encoding used to write the destination file. + + + + Moves a file filtering its content through the filter chain. + + The file to move + The file to move move to + Chain of filters to apply when moving, or is no filters should be applied. + The encoding used to read the soure file. + The encoding used to write the destination file. + + + + Returns a uniquely named empty temporary directory on disk. + + + A representing the temporary directory. + + + + + Combines two path strings. + + The first path. + The second path. + + A string containing the combined paths. If one of the specified + paths is a zero-length string, this method returns the other path. + If contains an absolute path, this method + returns . + + + + On *nix, processing is delegated to . + + + On Windows, this method normalized the paths to avoid running into + the 260 character limit of a path and converts forward slashes in + both and to + the platform's directory separator character. + + + + + + Returns Absolute Path (Fix for 260 Char Limit of Path.GetFullPath(...)) + + The file or directory for which to obtain absolute path information. + Path Resolved + path is a zero-length string, contains only white space or contains one or more invalid characters as defined by . + is . + + + + Returns the home directory of the current user. + + + The home directory of the current user. + + + + + Helper class for determining whether assemblies are located in the + Global Assembly Cache. + + + + + Initializes a new instance of the class in + the context of the given . + + + + + Determines whether an assembly is installed in the Global + Assembly Cache given its file name or path. + + The name or path of the file that contains the manifest of the assembly. + + if is + installed in the Global Assembly Cache; otherwise, + . + + + + To determine whether the specified assembly is installed in the + Global Assembly Cache, the assembly is loaded into a separate + . + + + If the family of the current runtime framework does not match the + family of the current target framework, this method will return + for all assemblies as there's no way to + determine whether a given assembly is in the Global Assembly Cache + for another framework family than the family of the current runtime + framework. + + + + + + Holds the in which assemblies will be loaded + to determine whether they are in the Global Assembly Cache. + + + + + Holds the context of the . + + + + + Holds a list of assembly files for which already has been determined + whether they are located in the Global Assembly Cache. + + + + The key of the is the full path to the + assembly file and the value is a indicating + whether the assembly is located in the Global Assembly Cache. + + + + + + Holds a value indicating whether the object has been disposed. + + + + + Gets the context of the . + + + The context of the . + + + + + Obtains a lifetime service object to control the lifetime policy for + this instance. + + + An object of type used to control the lifetime + policy for this instance. This is the current lifetime service object + for this instance if one exists; otherwise, a new lifetime service + object initialized with a lease that will never time out. + + + + + Determines whether an assembly is installed in the Global + Assembly Cache given its file name or path. + + The name or path of the file that contains the manifest of the assembly. + + if is + installed in the Global Assembly Cache; otherwise, + . + + + + + Provides a set of helper methods related to reflection. + + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Loads the type specified in the type string with assembly qualified name. + + The assembly qualified name of the type to load. + Flag set to to throw an exception if the type cannot be loaded. + + is and + an error is encountered while loading the , or + is not an assembly qualified name. + + + If the cannot be instantiated from the assembly + qualified type name, then we'll try to instantiate the type using its + simple type name from an already loaded assembly with an assembly + name mathing the assembly in the assembly qualified type name. + + + The type loaded or if it could not be loaded. + + + + + Provides resource support to NAnt assemblies. This class cannot + be inherited from. + + + + + Prevents the class from being + instantiated explicitly. + + + + + Registers the assembly to be used as the fallback if resources + aren't found in the local satellite assembly. + + + A that represents the + assembly to register. + + + The following example shows how to register a shared satellite + assembly. + + + + + + + + Returns the value of the specified string resource. + + + A that contains the name of the + resource to get. + + + A that contains the value of the + resource localized for the current culture. + + + The returned resource is localized for the cultural settings of the + current . + + The GetString method is thread-safe. + + + + The following example demonstrates the GetString method using + the cultural settings of the current . + + + + + + + + Returns the value of the specified string resource localized for + the specified culture. + + + + + A that contains the value of the + resource localized for the specified culture. + + + + The GetString method is thread-safe. + + + + The following example demonstrates the GetString method using + a specific culture. + + + + + + + + Returns the value of the specified string resource localized for + the specified culture for the specified assembly. + + + A that contains the name of the + resource to get. + + + A that represents + the culture for which the resource is localized. + + + A + + + A that contains the value of the + resource localized for the specified culture. + + + + The GetString method is thread-safe. + + + + The following example demonstrates the GetString method using + specific culture and assembly. + + + + + + + + Registers the specified assembly. + + + A that represents the + assembly to register. + + + + + Determines the manifest resource name of the resource holding the + localized strings. + + The name of the assembly. + + The manifest resource name of the resource holding the localized + strings for the specified assembly. + + + The manifest resource name of the resource holding the localized + strings should match the name of the assembly, minus Tasks + suffix. + + + + + Groups a set of useful manipulation and validation + methods. + + + + + Initializes a new instance of the class. + + + Prevents instantiation of the class. + + + + + Determines whether the last character of the given + matches the specified character. + + The string. + The character. + + if the last character of + matches ; otherwise, . + + is . + + + + Indicates whether or not the specified is + or an string. + + The value to check. + + if is + or an empty string (""); otherwise, . + + + + + Converts an empty string ("") to . + + The value to convert. + + if is an empty + string ("") or ; otherwise, . + + + + + Converts to an empty string. + + The value to convert. + + An empty string if is ; + otherwise, . + + + + + Concatenates a specified separator between each + element of a specified , yielding a + single concatenated string. + + A . + A . + + A consisting of the elements of + interspersed with the separator string. + + + + For example if is ", " and the elements + of are "apple", "orange", "grape", and "pear", + returns "apple, orange, + grape, pear". + + + If is , an empty + string () is used instead. + + + + + + Creates a shallow copy of the specified . + + The that should be copied. + + A shallow copy of the specified . + + + + + Thrown whenever an error occurs during the build. + + + + + The location of the exception in the build document (xml file). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a descriptive message. + + A descriptive message to include with the exception. + + + + Initializes a new instance of the class + with the specified descriptive message and inner exception. + + A descriptive message to include with the exception. + A nested exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with a descriptive message and the location in the build file that + caused the exception. + + A descriptive message to include with the exception. + The location in the build file where the exception occured. + + + + Initializes a new instance of the class + with a descriptive message, the location in the build file and an + instance of the exception that is the cause of the current exception. + + A descriptive message to include with the exception. + The location in the build file where the exception occured. + A nested exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + + Creates and returns a string representation of the current + exception. + + + A string representation of the current exception. + + + + + Gets the raw message as specified when the exception was + constructed. + + + The raw message as specified when the exception was + constructed. + + + + + Gets the location in the build file of the element from which the + exception originated. + + + The location in the build file of the element from which the + exception originated. + + + + + Gets a message that describes the current exception. + + + The error message that explains the reason for the exception. + + + Adds location information to the message, if available. + + + + + Represents the set of command-line options supported by NAnt. + + + + + Gets or sets the target framework to use (overrides + NAnt.exe.config settings) + + + The framework that should be used. + + + For a list of possible frameworks, see NAnt.exe.config, possible + values include "net-1.0", "net-1.1", etc. + + + + + Gets or sets the target framework to use (overrides + NAnt.exe.config settings) + + + The framework that should be used. + + + For a list of possible frameworks, see NAnt.exe.config, possible + values include "net-1.0", "net-1.1", etc. + + + + + Gets or sets the buildfile that should be executed. + + + The buildfile that should be executed. + + + Can be both a file or an URI. + + + + + Gets or sets a value indicating whether more information should be + displayed during the build process. + + + if more information should be displayed; + otherwise, . The default is . + + + + + Gets or sets a value indicating whether debug information should be + displayed during the build process. + + + if debug information should be displayed; + otherwise, . The default is . + + + + + Gets or sets a value indicating whether only error and debug debug messages should be + displayed during the build process. + + + if only error or warning messages should be + displayed; otherwise, . The default is + . + + + + + Gets or sets a value indicating whether to produce emacs (and other + editor) friendly output. + + + if output is to be unadorned so that emacs + and other editors can parse files names, etc. The default is + . + + + + + Gets a value indicating whether parent directories should be searched + for a buildfile. + + + if parent directories should be searched for + a build file; otherwise, . The default is + . + + + + + Gets or sets the indentation level of the build output. + + + The indentation level of the build output. The default is 0. + + + + + Gets or sets the list of properties that should be set. + + + The list of properties that should be set. + + + + + Gets or sets the of logger to add to the list + of listeners. + + + The of logger to add to the list of + listeners. + + + The should derive from . + + + + + Gets or sets the name of the file to log output to. + + + The name of the file to log output to. + + + + + Gets a collection containing fully qualified type names of classes + implementating that should be added + to the project as listeners. + + + A collection of fully qualified type names that should be added as + listeners to the . + + + + + Gets a collection of assemblies to load extensions from. + + + A collection of assemblies to load extensions from. + + + + + Gets or sets a value indicating whether help + should be printed. + + + if help should be + printed; otherwise, . The default is + . + + + + + Gets or sets a value indicating whether the logo banner should be + printed. + + + if the logo banner should be printed; otherwise, + . The default is . + + + + + Gets or sets a value indicating whether the NAnt help should be + printed. + + + if NAnt help should be printed; otherwise, + . The default is . + + + + + Gets a collection containing the targets that should be executed. + + + A collection that contains the targets that should be executed. + + + + + Custom configuration section handler for the element. + + + + + This just passed things through. Return the node read from the config file. + + + + + Main entry point to NAnt that is called by the ConsoleStub. + + + + + Starts NAnt. This is the Main entry point. + + Command Line args, or whatever you want to pass it. They will treated as Command Line args. + + The exit code. + + + + + Prints the projecthelp to the console. + + The build file to show help for. + + is loaded and transformed with + ProjectHelp.xslt, which is an embedded resource. + + + + + Gets the file name for the build file in the specified directory. + + The directory to look for a build file. When in doubt use Environment.CurrentDirectory for directory. + Look for a build file with this pattern or name. If null look for a file that matches the default build pattern (*.build). + Whether or not to search the parent directories for a build file. + The path to the build file or null if no build file could be found. + + + + Loads the extension assemblies in the current + and scans them for extensions. + + The extension assemblies to load. + The which will be used to output messages to the build log. + + + + Dynamically constructs an instance of + the class specified. + + + + At this point, only looks in the assembly where + is defined. + + + The fully qualified name of the logger that should be instantiated. + Type could not be loaded. + does not implement . + + + + Dynamically constructs an instance of + the class specified. + + + + At this point, only looks in the assembly where + is defined. + + + The fully qualified name of the listener that should be instantiated. + Type could not be loaded. + does not implement . + + + + Add the listeners specified in the command line arguments, + along with the default listener, to the specified project. + + The command-line options. + The to add listeners to. + + + + Spits out generic help info to the console. + + + + + Creates a new instance of the + class for the specified class in the + specified. + + The containing the . + The class representing the . + + + + Gets the name of the class that can be + created using this . + + + The name of the class that can be created + using this . + + + + + Gets the from which the data type will be + created. + + + The containing the data type. + + + + + Gets the name of the data type which the + can create. + + + The name of the data type which the + can create. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a for the specified + task is in the collection. + + The name of task for which the should be located in the collection. + + if a for + the specified task is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the for the specified task. + + The name of task for which the should be located in the collection. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified capacity. + + + + + Inherits Properties from an existing property + dictionary Instance + + DataType list to inherit + + + + Used for searching filesystem based on given include/exclude rules. + + + Simple client code for testing the class. + + while (true) { + DirectoryScanner scanner = new DirectoryScanner(); + + Console.Write("Scan Basedirectory : "); + string s = Console.ReadLine(); + if (s.Length == 0) break; + scanner.BaseDirectory = s; + + while(true) { + Console.Write("Include pattern : "); + s = Console.ReadLine(); + if (s.Length == 0) break; + scanner.Includes.Add(s); + } + + while(true) { + Console.Write("Exclude pattern : "); + s = Console.ReadLine(); + if (s.Length == 0) break; + scanner.Excludes.Add(s); + } + + foreach (string name in scanner.FileNames) + Console.WriteLine("file:" + name); + foreach (string name in scanner.DirectoryNames) + Console.WriteLine("dir :" + name); + + Console.WriteLine(""); + } + + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Uses and search criteria (relative to + or absolute), to search for filesystem objects. + + + + + Parses specified NAnt search patterns for search directories and + corresponding regex patterns. + + In. NAnt patterns. Absolute or relative paths. + Out. Regex patterns. Absolute canonical paths. + Out. Non-regex files. Absolute canonical paths. + In. Whether to allow a pattern to add search directories. + + + + Given a NAnt search pattern returns a search directory and an regex + search pattern. + + Whether this pattern is an include or exclude pattern + NAnt searh pattern (relative to the Basedirectory OR absolute, relative paths refering to parent directories ( ../ ) also supported) + Out. Absolute canonical path to the directory to be searched + Out. Whether the pattern is potentially recursive or not + Out. Whether this is a regex pattern or not + Out. Regex search pattern (absolute canonical path) + + + + Searches a directory recursively for files and directories matching + the search criteria. + + Directory in which to search (absolute canonical path) + Whether to scan recursively or not + + + + Converts search pattern to a regular expression pattern. + + Search pattern relative to the search directory. + Regular expresssion + + + + Gets the collection of include patterns. + + + + + Gets the collection of exclude patterns. + + + + + The base directory to scan. The default is the + current directory. + + + + + Gets the list of files that match the given patterns. + + + + + Gets the list of directories that match the given patterns. + + + + + Gets the list of directories that were scanned for files. + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Creates a string representing a list of the strings in the collection. + + + A string that represents the contents. + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Determines whether the specified string is in the + . + + The string to locate in the . The value can be . + + if value is found in the ; otherwise, . + + + String comparisons within the + are only case-sensitive if the filesystem on which + is located, is case-sensitive. + + + + + Searches for the specified string and returns the zero-based index + of the first occurrence within the . + + The string to locate. The value can be . + + The zero-based index of the first occurrence of + in the , if found; otherwise, -1. + + + String comparisons within the + are only case-sensitive if the filesystem on which + is located, is case-sensitive. + + + + + Determines whether the filesystem on which the specified path is + located is case-sensitive. + + The path of which should be determined whether its on a case-sensitive filesystem. + + if is located on a + case-sensitive filesystem; otherwise, . + + + + + Gets the value of the specified property. + + The name of the property to get the value of. + + The value of the specified property. + + + + + Splits an input string into a sequence of tokens used during parsing. + + + + + Available tokens + + + + + Encalsulates information about installed frameworks incuding version + information and directory locations for finding tools. + + + + + Initializes a new instance of the class + with a name, description, version, runtime engine, directory information + and properties. + + The name of the framework. + The family of the framework. + The description of the framework. + The version number of the framework. + The Common Language Runtime version of the framework. + The directory of the framework. + The directory containing the SDK tools for the framework, if available. + The directory containing the system assemblies for the framework. + The name of the runtime engine, if required. + The used to initialized the framework. + + + + Gets the name of the framework. + + + The name of the framework. + + + + + Gets the family of the framework. + + + The family of the framework. + + + + + Gets the description of the framework. + + + The description of the framework. + + + + + Gets the version of the framework. + + + The version of the framework. + + + + + Gets the Common Language Runtime of the framework. + + + The Common Language Runtime of the framework. + + + + + Gets the Visual Studio version that corresponds with this + framework. + + + The Visual Studio version that corresponds with this framework. + + There is no version of Visual Studio .NET that corresponds with this framework. + + + + Gets the base directory of the framework tools for the framework. + + + The base directory of the framework tools for the framework. + + + + + Gets the path to the runtime engine for this framework. + + + The path to the runtime engine for the framework or + if no runtime engine is configured for the framework. + + + + + Gets the directory where the system assemblies for the framework + are located. + + + The directory where the system assemblies for the framework are + located. + + + + + Gets the directory containing the SDK tools for the framework. + + + The directory containing the SDK tools for the framework or a null + refererence if the sdk directory + + + + + Gets the used to initialize this framework. + + + The used to initialize this framework. + + + + + Gets or sets the collection of environment variables that should be + passed to external programs that are launched in the runtime engine + of the current framework. + + + The collection of environment variables that should be passed to + external programs that are launched in the runtime engine of the + current framework. + + + + + Gets the set of assemblies and directories that should scanned for + NAnt tasks, types or functions. + + + The set of assemblies and directories that should be scanned for + NAnt tasks, types or functions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified capacity. + + + + + Stores the file name, line number and column number to record a position + in a text file. + + + + + Creates a location consisting of a file name, line number and + column number. + + + can be a local URI resource, e.g., file:///C:/WINDOWS/setuplog.txt. + + + + + Creates a location consisting of a file name. + + + can be a local URI resource, e.g., file:///C:/WINDOWS/setuplog.txt. + + + + + Creates an "unknown" location. + + + + Private Init function. + + + + Returns the file name, line number and a trailing space. An error + message can be appended easily. For unknown locations, returns + an empty string. + + + + + Gets a string containing the file name for the location. + + + The file name includes both the file path and the extension. + + + + + Gets the line number for the location. + + + Lines start at 1. Will be zero if not specified. + + + + + Gets the column number for the location. + + + Columns start a 1. Will be zero if not specified. + + + + + Maps XML nodes to the text positions from their original source. + + + + + Initializes a new instance of the class. + + + + + Determines if a file has been loaded by the current project. + + The file to check. + + if the specified file has already been loaded + by the current project; otherwise, . + + + + + Adds an to the map. + + + An can only be added to the map once. + + + + + Returns the in the XML file for the given node. + + + The must be from an + that has been added to the map. + + + + + Represents a position in the build file. + + + + + Initializes a new instance of the + with the speified line and column. + + The line coordinate of the position. + The column coordinate of the position. + + + + The line coordinate of the position. + + + + + The column coordinate of the position. + + + + + Defines the set of levels recognised by the NAnt logging system. + + + + + Designates fine-grained informational events that are most useful + to debug a build process. + + + + + Designates events that offer a more detailed view of the build + process. + + + + + Designates informational events that are useful for getting a + high-level view of the build process. + + + + + Designates potentionally harmful events. + + + + + Designates error events. + + + + + Can be used to suppress all messages. + + + No events should be logged with this . + + + + + Class representing an event occurring during a build. + + + + An event is built by specifying either a project, a task or a target. + + + A level event will only have a + reference. + + + A level event will have and + references. + + + A level event will have , + and references. + + + + + + Initializes a new instance of the + class. + + + + + Initializes a new instance of the + class for a level event. + + The that emitted the event. + + + + Initializes a new instance of the + class for a level event. + + The that emitted the event. + + + + Initializes a new instance of the + class for a level event. + + The that emitted the event. + + + + Gets or sets the message associated with this event. + + + The message associated with this event. + + + + + Gets or sets the priority level associated with this event. + + + The priority level associated with this event. + + + + + Gets or sets the associated with this event. + + + The associated with this event. + + + + + Gets the that fired this event. + + + The that fired this event. + + + + + Gets the that fired this event. + + + The that fired this event, or a null reference + if this is a level event. + + + + + Gets the that fired this event. + + + The that fired this event, or + if this is a or level + event. + + + + + Represents the method that handles the build events. + + The source of the event. + A that contains the event data. + + + + Instances of classes that implement this interface can register to be + notified when things happen during a build. + + + + + Signals that a build has started. + + The source of the event. + A object that contains the event data. + + This event is fired before any targets have started. + + + + + Signals that the last target has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a target has started. + + The source of the event. + A object that contains the event data. + + + + Signals that a target has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a task has started. + + The source of the event. + A object that contains the event data. + + + + Signals that a task has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a message has been logged. + + The source of the event. + A object that contains the event data. + + + + Interface used by NAnt to log the build output. + + + Depending on the supplied command-line arguments, NAnt will set the + to or a + with a file as backend store. + + + + + Flushes buffered build events or messages to the underlying storage. + + + + + Gets or sets the highest level of message this logger should respond + to. + + The highest level of message this logger should respond to. + + Only messages with a message level higher than or equal to the given + level should actually be written to the log. + + + + + Gets or sets a value indicating whether to produce emacs (and other + editor) friendly output. + + + if output is to be unadorned so that emacs + and other editors can parse files names, etc. + + + + + Gets or sets the to which the logger is + to send its output. + + + + + Initializes a new instance of the + class. + + + + + Flushes buffered build events or messages to the underlying storage. + + + + + Signals that a build has started. + + The source of the event. + A object that contains the event data. + + This event is fired before any targets have started. + + + + + Signals that the last target has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a target has started. + + The source of the event. + A object that contains the event data. + + + + Signals that a task has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a task has started. + + The source of the event. + A object that contains the event data. + + + + Signals that a task has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a message has been logged. + + The source of the event. + A object that contains the event data. + + Only messages with a priority higher or equal to the threshold of + the logger will actually be output in the build log. + + + + + Empty implementation which allows derived classes to receive the + output that is generated in this logger. + + The message being logged. + + + + Outputs an indented message to the build log if its priority is + greather than or equal to the of the + logger. + + The priority of the message to output. + The message to output. + The number of characters that the message should be indented. + + + + Outputs an indented message to the build log if its priority is + greather than or equal to the of the + logger. + + The event to output. + + + + Outputs an indented message to the build log if its priority is + greather than or equal to the of the + logger. + + The event to output. + TODO + + + + Holds a stack of reports for all running builds. + + + + + Gets or sets the highest level of message this logger should respond + to. + + + The highest level of message this logger should respond to. + + + Only messages with a message level higher than or equal to the given + level should be written to the log. + + + + + Gets or sets a value indicating whether to produce emacs (and other + editor) friendly output. + + + if output is to be unadorned so that emacs + and other editors can parse files names, etc. The default is + . + + + + + Gets or sets the to which the logger is + to send its output. + + + The to which the logger sends its output. + + + + + Used to store information about a build, to allow better reporting to + the user. + + + + + Errors encountered so far. + + + + + Warnings encountered so far. + + + + + The start time of the build process. + + + + + Buffers log messages from DefaultLogger, and sends an e-mail with the + results. + + + The following properties are used to send the mail : + + + Property + Description + + + MailLogger.mailhost + Mail server to use. [default: localhost] + + + MailLogger.from + The address of the e-mail sender. + + + MailLogger.failure.notify + Send build failure e-mails ? [default: true] + + + MailLogger.success.notify + Send build success e-mails ? [default: true] + + + MailLogger.failure.to + The address to send build failure messages to. + + + MailLogger.success.to + The address to send build success messages to. + + + MailLogger.failure.subject + The subject of build failure messages. [default: "Build Failure"] + + + MailLogger.success.subject + The subject of build success messages. [default: "Build Success"] + + + MailLogger.success.attachments + The ID of a fileset holdng set of files to attach when the build is successful. + + + MailLogger.failure.attachments + The ID of a fileset holdng set of files to attach when the build fails. + + + MailLogger.body.encoding + The encoding type of the body of the e-mail message. [default: system's ANSI code page] + + + MailLogger.smtp.username + The name of the user to login to the SMTP server. + + + MailLogger.smtp.password + The password of the specified user. + + + MailLogger.smtp.enablessl + Specifies whether to use SSL to encrypt the connection. [default: false] + + + MailLogger.smtp.port + The SMTP server port to connect to. [default: 25] + + + + + + + Initializes a new instance of the + class. + + + + + Signals that a build has started. + + The source of the event. + A object that contains the event data. + + This event is fired before any targets have started. + + + + + Signals that the last target has finished, and send an e-mail with + the build results. + + The source of the event. + A object that contains the event data. + + + + Receives and buffers log messages. + + The message being logged. + + + + Gets the value of the specified property. + + Properties to obtain value from. + Suffix of property name. "MailLogger" will be prepended internally. + Value returned if property is not present in . + Value indicating whether the property should exist, or have a default value set. + + The value of the specified property; or the default value if the + property is not present in . + + is , and the specified property is not present and no default value has been given. + + + + Buffer in which the message is constructed prior to sending. + + + + + Holds the stack of currently executing projects. + + + + + Contains a strongly typed collection of + objects. + + + + + Initializes a new instance of the + class. + + + + + Initializes a new instance of the + class with the specified instance. + + + + + Initializes a new instance of the + class with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Implements a for writing information to + the NAnt logging infrastructure. + + + + + Initializes a new instance of the class + for the specified with the specified output + level and format provider. + + Determines the indentation level. + The with which messages will be output to the build log. + An object that controls formatting. + + + + Writes a character array to the buffer. + + The character array to write to the text stream. + + + + Writes a string to the buffer. + + + + + + Writes an empty string to the logging infrastructure. + + + + + Writes a string to the logging infrastructure. + + The string to write. If is a null reference, only the line termination characters are written. + + + + Writes out a formatted string using the same semantics as + . + + The formatting string. + The object array to write into format string. + + + + Causes any buffered data to be written to the logging infrastructure. + + + + + Closes the current writer and releases any system resources + associated with the writer. + + + + + Obtains a lifetime service object to control the lifetime policy for + this instance. + + + An object of type used to control the lifetime + policy for this instance. This is the current lifetime service object + for this instance if one exists; otherwise, a new lifetime service + object initialized with a lease that will never time out. + + + + + Gets the in which the output is written. + + + The always writes output in UTF8 + encoding. + + + + + Gets the with which messages will be output to + the build log. + + + + + Used to search for files on the PATH. + + + + The local directory is not searched (since this would already be covered + by normal use of the includes element). + + + Also, advanced pattern matching isn't supported: you need to know the + exact name of the file. + + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Adds a file to the list of files to be scanned for. + + The filename or search pattern to add to the list. + + + + Scans all direcetories in the PATH environment variable for files. + + + List of matching files found in the PATH. + + + + + Scans all directories in the given environment variable for files. + + The environment variable of which the directories should be scanned. + + List of matching files found in the directory of the given + environment variable. + + + + + Creates a shallow copy of the specified . + + The that should be copied. + + A shallow copy of the specified . + + + + + Central representation of a NAnt project. + + + + The method will initialize the project with the build + file specified in the constructor and execute the default target. + + + + + + + + If no target is given, the default target will be executed if specified + in the project. + + + + + + + + + Constant for the "visiting" state, used when traversing a DFS of + target dependencies. + + + + + Constant for the "visited" state, used when traversing a DFS of + target dependencies. + + + + + Holds the logger for this class. + + + + + Holds the default threshold for build loggers. + + + + + Initializes a new class with the given + document, message threshold and indentation level. + + Any valid build format will do. + The message threshold. + The project indentation level. + + + + Initializes a new class with the given + document, message threshold and indentation level, and using + the specified to load internal configuration + settings. + + Any valid build format will do. + The message threshold. + The project indentation level. + The NAnt should use to initialize configuration settings. + + This constructor is useful for developers using NAnt as a class + library. + + + + + Initializes a new class with the given + source, message threshold and indentation level. + + + The full path to the build file. + This can be of any form that accepts. + + The message threshold. + The project indentation level. + + If the source is a uri of form 'file:///path' then use the path part. + + + + + Initializes a new class with the given + source, message threshold and indentation level, and using + the specified to load internal configuration + settings. + + + The full path to the build file. + This can be of any form that accepts. + + The message threshold. + The project indentation level. + The NAnt should use to initialize configuration settings. + is . + + If the source is a uri of form 'file:///path' then use the path part. + + + + + Initializes a as subproject of the specified + . + + + The full path to the build file. + This can be of any form that accepts. + + The parent . + + Optimized for framework initialization projects, by skipping automatic + discovery of extension assemblies and framework configuration. + + + + + Initializes a with + set to , and + set to 0. + + An containing the build script. + + Optimized for framework initialization projects, by skipping automatic + discovery of extension assemblies and framework configuration. + + + + + Dispatches a event to the build listeners + for this . + + The source of the event. + A that contains the event data. + + + + Dispatches a event to the build listeners + for this . + + The source of the event. + A that contains the event data. + + + + Dispatches a event to the build listeners + for this . + + The source of the event. + A that contains the event data. + + + + Dispatches a event to the build listeners + for this . + + The source of the event. + A that contains the event data. + + + + Dispatches a event to the build listeners + for this . + + The source of the event. + A that contains the event data. + + + + Dispatches the event to the build listeners + for this . + + The source of the event. + A that contains the event data. + + + + Dispatches a event to the build listeners + for this . + + A that contains the event data. + + + + Writes a level message to the build log with + the given . + + The to log at. + The message to log. + + + + Writes a level formatted message to the build + log with the given . + + The to log at. + The message to log, containing zero or more format items. + An array containing zero or more objects to format. + + + + Writes a task level message to the build log + with the given . + + The from which the message originated. + The to log at. + The message to log. + + + + Writes a level message to the build log with + the given . + + The from which the message orignated. + The level to log at. + The message to log. + + + + Executes the default target. + + + No top level error handling is done. Any + will be passed onto the caller. + + + + + Executes a specific target, and its dependencies. + + The name of the target to execute. + + Global tasks are not executed. + + + + + Executes a specific target. + + The name of the target to execute. + Whether dependencies should be forced to execute + + Global tasks are not executed. + + + + + Executes the default target and wraps in error handling and time + stamping. + + + if the build was successful; otherwise, + . + + + + + Creates a new from the given . + + The definition. + The new instance. + + + + Creates a new from the given + within a . + + The definition. + The owner . + The new instance. + + + + Expands a from known properties. + + The with replacement tokens. + The location in the build file. Used to throw more accurate exceptions. + The expanded and replaced . + + + + Combines the specified path with the of + the to form a full path to file or directory. + + The relative or absolute path. + + A rooted path, or the of the + if the parameter is a null reference. + + + + + Creates the default and attaches it to + the . + + + + + Increases the of the . + + + + + Decreases the of the . + + + + + Detaches the currently attached instances + from the . + + + + + Attaches the specified build listeners to the . + + The instances to attach to the . + + The currently attached instances will + be detached before the new instances + are attached. + + + + + Inits stuff: + TypeFactory: Calls Initialize and AddProject + Log.IndentSize set to 12 + Project properties are initialized ("nant.* stuff set") + + NAnt Props: + nant.filename + nant.version + nant.location + nant.project.name + nant.project.buildfile (if doc has baseuri) + nant.project.basedir + nant.project.default = defaultTarget + nant.tasks.[name] = true + nant.tasks.[name].location = AssemblyFileName + + + An representing the project definition. + The project message threshold. + The project indentation level. + Optimization flags. + is . + + + + This method is only meant to be used by the + class and . + + + + + Creates a new based on the project + definition. + + + The full path to the build file. + This can be of any form that accepts. + + + An based on the specified project + definition. + + + + + Configures the platform properties for the current platform. + + NAnt does not support the current platform. + + + + Updates dependent properties when the + is set. + + + + + Topologically sorts a set of targets. + + The name of the root target. The sort is created in such a way that the sequence of targets up to the root target is the minimum possible such sequence. Must not be . + A collection of instances. + + A collection of instances in sorted order. + + There is a cyclic dependecy among the targets, or a named target does not exist. + + + + + Performs a single step in a recursive depth-first-search traversal + of the target dependency tree. + + + The current target is first set to the "visiting" state, and pushed + onto the "visiting" stack. + + + An exception is then thrown if any child of the current node is in + the visiting state, as that implies a circular dependency. The + exception contains details of the cycle, using elements of the + "visiting" stack. + + + If any child has not already been "visited", this method is called + recursively on it. + + + The current target is then added to the ordered list of targets. + Note that this is performed after the children have been visited in + order to get the correct order. The current target is set to the + "visited" state. + + + By the time this method returns, the ordered list contains the + sequence of targets up to and including the current target. + + + The current target to inspect. Must not be . + A collection of instances. + A mapping from targets to states The states in question are "VISITING" and "VISITED". Must not be . + A stack of targets which are currently being visited. Must not be . + The list to add target names to. This will end up containing the complete list of depenencies in dependency order. Must not be . + + A non-existent target is specified + -or- + A circular dependency is detected. + + + + + Builds an appropriate exception detailing a specified circular + dependency. + + The dependency to stop at. Must not be . + A stack of dependencies. Must not be . + + A detailing the specified circular + dependency. + + + + + Gets or sets the indendation level of the build output. + + + The indentation level of the build output. + + + To change the , the + and methods should be used. + + + + + Gets or sets the indentation size of the build output. + + + The indendation size of the build output. + + + + + Gets or sets the default threshold level for build loggers. + + + The default threshold level for build loggers. + + + + + Gets the name of the . + + + The name of the or an empty + if no name is specified. + + + + + Gets or sets the base directory used for relative references. + + + The base directory used for relative references. + + The directory is not rooted. + + + The gets and sets the built-in property + named "nant.project.basedir". + + + + + + Gets the . + + + The . + + + The defines the current namespace + scope and provides methods for looking up namespace information. + + + + + Gets the form of the current project definition. + + + The form of the current project definition. + + + + + Gets a collection of available .NET frameworks. + + + A collection of available .NET frameworks. + + + + + Gets the framework in which NAnt is currently running. + + + The framework in which NAnt is currently running. + + + + + Gets or sets the framework to use for compilation. + + + The framework to use for compilation. + + + We will use compiler tools and system assemblies for this framework + in framework-related tasks. + + + + + Gets the name of the platform on which NAnt is currently running. + + + The name of the platform on which NAnt is currently running. + + + + Possible values are: + + + + win32 + + + unix + + + + NAnt does not support the current platform. + + + + Gets the current target. + + + The current target, or if no target is + executing. + + + + + Gets the path to the build file. + + + The path to the build file, or if the build + document is not file backed. + + + + + Gets the active definition. + + + The active definition. + + + + + Gets the NAnt should use to initialize + configuration settings. + + + The NAnt should use to initialize + configuration settings. + + + + + Gets the name of the target that will be executed when no other + build targets are specified. + + + The name of the target that will be executed when no other + build targets are specified, or if no + default target is specified in the build file. + + + + + Gets a value indicating whether tasks should output more build log + messages. + + + if tasks should output more build log message; + otherwise, . + + + + + The list of targets to build. + + + Targets are built in the order they appear in the collection. If + the collection is empty the default target will be built. + + + + + Gets the properties defined in this project. + + The properties defined in this project. + + + This is the collection of properties that are defined by the system + and property task statements. + + + These properties can be used in expansion. + + + + + + Gets the framework-neutral properties defined in the NAnt + configuration file. + + + The framework-neutral properties defined in the NAnt configuration + file. + + + + This is the collection of read-only properties that are defined in + the NAnt configuration file. + + + These properties can only be used for expansion in framework-specific + and framework-neutral configuration settings. These properties are + not available for expansion in the build file. + + + + + + Gets the instances defined in this project. + + + The instances defined in this project. + + + + This is the collection of instances that + are defined by (eg fileset) declarations. + + + + + + Gets the targets defined in this project. + + + The targets defined in this project. + + + + + Gets the build listeners for this project. + + + The build listeners for this project. + + + + + Allow the project construction to be optimized. + + + Use this with care! + + + + + Do not perform any optimizations. + + + + + The project base directory must not be automatically scanned + for extension assemblies. + + + + + Do not scan the project configuration for frameworks, and + do not configure the runtime and target framework. + + + + + Holds a value indicating whether a scan for tasks, types and functions + has already been performed for the current runtime framework. + + + + + Initializes a new instance of the + class for the given . + + The that should be configured. + + + + Loads and processes settings from the specified + of the configuration file. + + + + + Processes the framework nodes of the given platform node. + + An representing the platform on which NAnt is running. + + + + Reads the list of global properties specified in the NAnt configuration + file. + + An representing global properties. + + + + Processes the framework environment variables. + + An representing framework environment variables. + The to obtain framework-specific information from. + + + + Gets the value of the specified attribute from the specified node. + + The node of which the attribute value should be retrieved. + The attribute of which the value should be returned. + + The value of the attribute with the specified name or + if the attribute does not exist or has no value. + + + + + Gets the underlying instance. + + + The underlying instance. + + + + + Gets the . + + + The . + + + The defines the current namespace + scope and provides methods for looking up namespace information. + + + + + Constant for the "visiting" state, used when traversing a DFS of + property references. + + + + + Constant for the "visited" state, used when travesing a DFS of + property references. + + + + + Initializes a new instance of the + class holding properties for the given + instance. + + The project for which the dictionary will hold properties. + + + + Performs additional custom processes before inserting a new element + into the instance. + + The key of the element to insert. + The value of the element to insert. + + + + Performs additional custom processes before removing an element + from the instance. + + The key of the element to remove. + The value of the element to remove. + + + + Performs additional custom processes when validating the element + with the specified key and value. + + The key of the element to validate. + The value of the element to validate. + + + + Adds a property that cannot be changed. + + The name of the property. + The value to assign to the property. + + Properties added with this method can never be changed. Note that + they are removed if the method is called. + + + + + Marks a property as a property of which the value is expanded at + execution time. + + The name of the property to mark as dynamic. + + + + Adds a property to the collection. + + The name of the property. + The value to assign to the property. + + + + Determines whether the specified property is listed as read-only. + + The name of the property to check. + + if the property is listed as read-only; + otherwise, . + + + + + Determines whether the specified property is listed as dynamic. + + The name of the property to check. + + if the property is listed as dynamic; + otherwise, . + + + + + Inherits properties from an existing property dictionary Instance. + + Property list to inherit. + The list of properties to exclude during inheritance. + + + + Expands a from known properties. + + The replacement tokens. + The to pass through for any exceptions. + The expanded and replaced string. + + + + Determines whether a property already exists. + + The name of the property to check. + + if the specified property already exists; + otherwise, . + + + + + Removes the property with the specified name. + + The name of the property to remove. + + + + Expands a from known properties. + + The replacement tokens. + The to pass through for any exceptions. + A mapping from properties to states. The states in question are "VISITING" and "VISITED". Must not be . + A stack of properties which are currently being visited. Must not be . + The expanded and replaced string. + + + + Evaluates the given expression string and returns the result + + + + + + + + + + Checks whether the specified property is deprecated. + + The property to check. + + + + Builds an appropriate exception detailing a specified circular + reference. + + The property reference to stop at. Must not be . + A stack of property references. Must not be . + + A detailing the specified circular + dependency. + + + + + Maintains a list of the property names that are readonly. + + + + + Maintains a list of the property names of which the value is expanded + on usage, not at initalization. + + + + + The project for which the dictionary holds properties. + + + + + Indexer property. + + + + + Gets the project for which the dictionary holds properties. + + + The project for which the dictionary holds properties. + + + + + Initializes a new instance of the class. + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Executes dependent targets first, then the target. + + + + + This indicates whether the target has already executed. + + + + + The name of the target. + + + + Hides to have + return the name of target, not the name of XML element - which + would always be target. + + + Note: Properties are not allowed in the name. + + + + + + If then the target will be executed; + otherwise, skipped. The default is . + + + + + Gets a value indicating whether the target should be executed. + + + if the target should be executed; otherwise, + . + + + + + Opposite of . If + then the target will be executed; otherwise, skipped. The default + is . + + + + + Gets a value indicating whether the target should NOT be executed. + + + if the target should NOT be executed; + otherwise, . + + + + + The description of the target. + + + + + Space separated list of targets that this target depends on. + + + + + A collection of target names that must be executed before this + target. + + + + + Finds a target by name. + + The name of the target to find. + + The with the specified name, or + if no exists with + the given name. + + + + + Gets the names of the targets in the + combined into one list separated by the given . + + + A that contains a list of the names of the + targets in the , separated by + the specified . + + + + + Gets the names of the targets in the + combined into one comma-separated list. + + + A that contains a comma-separated list of the + names of the targets in the . + + + + + Creates a new instance of the class + for the specified class in the + specified. + + The containing the . + The class representing the . + + + + Gets the name of the class that can be created + using this . + + + The name of the class that can be created using + this . + + + + + Gets the from which the task will be created. + + + The containing the task. + + + + + Gets the name of the task which the + can create. + + + The name of the task which the can + create. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a for the specified + task is in the collection. + + The name of task for which the should be located in the collection. + + if a for the + specified task is found in the collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the for the specified task. + + The name of task for which the should be located in the collection. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Comprises all of the loaded, and available, tasks. + Use these static methods to register, initialize and create a task. + + + + + Scans the given assembly for tasks, types, functions and filters. + + The assembly to scan for tasks, types, functions and filters. + The which will be used to output messages to the build log. + + + + Scans the given assembly for tasks, types, functions and filters. + + The assembly to scan for tasks, types, functions and filters. + The which will be used to output messages to the build log. + + if contains at + least one "extension"; otherwise, . + + + + + Scans the path for any task assemblies and adds them. + + The directory to scan in. + The which will be used to output messages to the build log. + indicating whether scanning of the directory should halt on first error. + + + + Adds any task assemblies in the project base directory + and its tasks subdirectory. + + The project to work from. + + + + Registers the project with , and optionally + scan the for extension assemblies. + + The project to work from. + Specified whether to scan the for extension assemblies. + + + + Looks up a function by name. + + The name of the function to lookup, including namespace prefix. + The in which the function is invoked. + + A representing the function, or + if a function with the given name does not + exist. + + + + + Creates a new instance for the given XML and + . + + The XML to initialize the task with. + The that the belongs to. + + The new instance. + + + + + Scans a given for tasks. + + The to scan. + The which will be used to output messages to the build log. + + if represents a + ; otherwise, . + + + + + Scans a given for data type. + + The to scan. + The which will be used to output messages to the build log. + + if represents a + data type; otherwise, . + + + + + Scans a given for functions. + + The to scan. + The which will be used to output messages to the build log. + + if represents a + valid set of funtions; otherwise, . + + + + + Scans a given for filters. + + The to scan. + The which will be used to output messages to the build log. + + if represents a + ; otherwise, . + + + + + Gets the list of loaded instances. + + + List of loaded instances. + + + + + Gets the list of loaded instances. + + + List of loaded instances. + + + + + Gets the list of loaded instances. + + + List of loaded instances. + + + + + Initializes a new instance of the + class. + + + + + Initializes a new instance of the + class with a descriptive message. + + A descriptive message to include with the exception. + + + + Initializes a new instance of the + class with the specified descriptive message and inner exception. + + A descriptive message to include with the exception. + A nested exception that is the cause of the current exception. + + + + Initializes a new instance of the + class with a descriptive message and the location in the build file + that caused the exception. + + A descriptive message to include with the exception. + The location in the build file where the exception occured. + + + + Initializes a new instance of the + class with a descriptive message, the location in the build file and + an instance of the exception that is the cause of the current + exception. + + A descriptive message to include with the exception. + The location in the build file where the exception occured. + A nested exception that is the cause of the current exception. + + + + Initializes a new instance of the + class with serialized data. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a descriptive message. + + A descriptive message to include with the exception. + + + + Initializes a new instance of the class + with the specified descriptive message and inner exception. + + A descriptive message to include with the exception. + A nested exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with the specified . + + of the invalid volume. + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + + Represents the different types of drives that may exist in a system. + + + + + Represents the different supporting flags that may be set on a file system. + + + + + Presents information about a volume. + + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Determines whether the file system is case sensitive. Performs a + P/Invoke to the Win32 API GetVolumeInformation. + + + + if the specified volume is case-sensitive; + otherwise, . + + + + + Used to wrap log messages in xml <message/> elements. + + + + + Holds the stack of currently executing projects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + + Populates with the data needed to serialize + the instance. + + The to populate with data. + The destination for this serialization. + + + + Returns the contents of log captured. + + + + + Signals that a build has started. + + The source of the event. + A object that contains the event data. + + This event is fired before any targets have started. + + + + + Signals that the last target has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a target has started. + + The source of the event. + A object that contains the event data. + + + + Signals that a target has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a task has started. + + The source of the event. + A object that contains the event data. + + + + Signals that a task has finished. + + The source of the event. + A object that contains the event data. + + This event will still be fired if an error occurred during the build. + + + + + Signals that a message has been logged. + + The source of the event. + A object that contains the event data. + + Only messages with a priority higher or equal to the threshold of + the logger will actually be output in the build log. + + + + + Flushes buffered build events or messages to the underlying storage. + + + + + Gets or sets the highest level of message this logger should respond + to. + + + The highest level of message this logger should respond to. + + + Only messages with a message level higher than or equal to the given + level should be written to the log. + + + + + Gets or sets a value indicating whether to produce emacs (and other + editor) friendly output. + + + as it has no meaning in XML format. + + + + + Gets or sets the to which the logger is + to send its output. + + +
+
diff --git a/tools/nant/bin/NAnt.DotNetTasks.dll b/tools/nant/bin/NAnt.DotNetTasks.dll new file mode 100644 index 0000000..ae0552c Binary files /dev/null and b/tools/nant/bin/NAnt.DotNetTasks.dll differ diff --git a/tools/nant/bin/NAnt.DotNetTasks.xml b/tools/nant/bin/NAnt.DotNetTasks.xml new file mode 100644 index 0000000..bded9bc --- /dev/null +++ b/tools/nant/bin/NAnt.DotNetTasks.xml @@ -0,0 +1,4825 @@ + + + + NAnt.DotNetTasks + + + + + Generates an AssemblyInfo file using the attributes given. + + + + Create a C# AssemblyInfo file containing the specified assembly-level + attributes. + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + Create a C# AssemblyInfo file containing an attribute with multiple + named properties by setting the + attribute on the element to + . + + + + + + + + + + + + + + ]]> + + + + + + Generates an AssemblyInfo file. + + + + + Determines whether the specified AssemblyInfo file in the given + needs to be persisted. + + holding the newly generated AssemblyInfo source. + + if the generated AssemblyInfo source needs + to be persisted; otherwise, . + + + + + Name of the AssemblyInfo file to generate. + + + The name of the AssemblyInfo file to generate. + + + + + The code language in which the AssemblyInfo file should be + generated. + + + + + The assembly-level attributes to generate. + + + The assembly-level attributes to generate. + + + + + The namespaces to import. + + + The namespaces to import. + + + + + Assembly files used to locate the types of the specified attributes. + + + + + Defines the supported code languages for generating an AssemblyInfo + file. + + + + + A value for generating C# code. + + + + + A value for generating JScript code. + + + + + A value for generating Visual Basic code. + + + + + Encapsulates functionality to generate a code file with imports + and assembly-level attributes. + + + + + Initializes a new instance of the + for the specified . + + The for which an instance of the class should be initialized. + The for which an instance of the class should be initialized. + + + + Generates code for the specified imports. + + The imports for which code should be generated. + The to which the generated code will be written. + + + + Generates code for the specified assembly attributes. + + The assembly attributes for which code should be generated. + Imports used to resolve the assembly attribute names to fully qualified type names. + Assembly that will be used to resolve the attribute names to instances. + The to which the generated code will be written. + + + + Gets the in which the AssemblyInfo + code will be generated. + + + + + Gets the that will be used to + generate the AssemblyInfo code. + + + + + Responsible for returning the specified value converted to a + accepted by a constructor for a given + . + + + + + Obtains a lifetime service object to control the lifetime policy for + this instance. + + + An object of type used to control the lifetime + policy for this instance. This is the current lifetime service object + for this instance if one exists; otherwise, a new lifetime service + object initialized with a lease that will never time out. + + + + + Retrieves the specified corresponding with the specified + type name from a list of assemblies. + + The collection of assemblies that the type should tried to be instantiated from. + The list of imports that can be used to resolve the typename to a full typename. + The typename that should be used to determine the type to which the specified value should be converted. + The value that should be converted to a typed value. + + + is and the identified by has no default public constructor. + -or- + cannot be converted to a value that's suitable for one of the constructors of the identified by . + -or- + The identified by has no suitable constructor. + -or- + A identified by could not be located or loaded. + + + + + Wraps al.exe, the assembly linker for the .NET Framework. + + + + All specified sources will be embedded using the /embed flag. + Other source types are not supported. + + + + + Create a library containing all icon files in the current directory. + + + + + + + + ]]> + + + + + + Generates an assembly manifest. + + + + + Determines whether the assembly manifest needs compiling or is + uptodate. + + + if the assembly manifest needs compiling; + otherwise, . + + + + + Specifies an algorithm (in hexadecimal) to hash all files in a + multifile assembly except the file that contains the assembly + manifest. The default algorithm is CALG_SHA1. + + + + + Specifies a string for the Company field in the assembly. + + + A string for the Company field in the assembly. + + + If is an empty string (""), the Win32 + Company resource appears as a single space. + + + + + Specifies a string for the Configuration field in the assembly. + + + A string for the Configuration field in the assembly. + + + If is an empty string (""), the Win32 + Configuration resource appears as a single space. + + + + + Specifies a string for the Copyright field in the assembly. + + + A string for the Copyright field in the assembly. + + + If is an empty string (""), the Win32 + Copyright resource appears as a single space. + + + + + The culture string associated with the output assembly. + The string must be in RFC 1766 format, such as "en-US". + + + + Corresponds with the /c[ulture]: flag. + + + + + + Specifies whether the assembly should be partially signed. The default + is . + + + + + Specifies a string for the Description field in the assembly. + + + A string for the Description field in the assembly. + + + If is an empty string (""), the Win32 + Description resource appears as a single space. + + + + + Security evidence file to embed. + + + The security evidence file to embed. + + + + Corresponds with the /e[vidence] flag. + + + + + + Specifies a string for the File Version field in the assembly. + + + A string for the File Version field in the assembly. + + + + + Specifies a value (in hexadecimal) for the Flags field in + the assembly. + + + A value (in hexadecimal) for the Flags field in the assembly. + + + + + Specifies a container that holds a key pair. + + + + + Specifies a file (filename) that contains a key pair or + just a public key to sign an assembly. + + + The complete path to the key file. + + + + Corresponds with the /keyf[ile]: flag. + + + + + + Specifies the fully-qualified name (class.method) of the method to + use as an entry point when converting a module to an executable file. + + + The fully-qualified name (class.method) of the method to use as an + entry point when converting a module to an executable file. + + + + + The name of the output file for the assembly manifest. + + + The complete output path for the assembly manifest. + + + + Corresponds with the /out flag. + + + + + + The target type (one of lib, exe, or winexe). + + + + Corresponds with the /t[arget]: flag. + + + + + + Specifies a string for the Product field in the assembly. + + + A string for the Product field in the assembly. + + + + + Specifies a string for the Product Version field in the assembly. + + + A string for the Product Version field in the assembly. + + + + + The set of resources to embed. + + + + + The set of compiled resources to embed. + + + Do not yet expose this to build authors. + + + + + Indicates whether the assembly linker for a given target framework + supports the "template" option, which takes an assembly from which + to get all options except the culture field. + The default is . + + + TODO: remove this once Mono bug #74814 is fixed. + + + + + Specifies an assembly from which to get all options except the + culture field. + + + The complete path to the assembly template. + + + + Corresponds with the /template: flag. + + + + + + Specifies a string for the Title field in the assembly. + + + A string for the Title field in the assembly. + + + + + Specifies a string for the Trademark field in the assembly. + + + A string for the Trademark field in the assembly. + + + + + Specifies version information for the assembly. The format of the + version string is major.minor.build.revision. + + + + + Icon to associate with the assembly. + + + + + Inserts a Win32 resource (.res file) in the output file. + + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program or + if the task is not being executed. + + + + + Provides the abstract base class for compiler tasks. + + + + + Contains a list of extensions for all file types that should be treated as + 'code-behind' when looking for resources. Ultimately this will determine + if we use the "namespace+filename" or "namespace+classname" algorithm, since + code-behind will use the "namespace+classname" algorithm. + + + + + Case-insensitive list of valid culture names for this platform. + + + The key of the is the culture name and + the value is . + + + + + Class constructor for . + + + + + Compiles the sources and resources. + + + + + Determines the manifest resource name of the given resource file. + + The containing information that will used to assemble the manifest resource name. + The resource file of which the manifest resource name should be determined. + The logical location of the resource file. + The source file on which the resource file depends. + + The manifest resource name of the specified resource file. + + + + + Determines the manifest resource name of the given resource file. + + The containing information that will used to assemble the manifest resource name. + The resource file of which the manifest resource name should be determined. + + The manifest resource name of the specified resource file. + + + For .resx resources, the name of the dependent is determined by + replacing the extension of the file with the extension of the + source files for the compiler, and removing the culture name from + the file name for localized resources. + + + + + Extracts the associated namespace/classname linkage found in the + given stream. + + The read-only stream of the source file to search. + + The namespace/classname of the source file matching the resource. + + + + + Writes package references to the specified . + + The to which the package references should be written. + + + + Writes list of warnings to (not) treat as errors to the specified + . + + The to which the list of warnings should be written. + + + + Writes list of warnings to suppress to the specified + . + + The to which the list of warnings to suppress should be written. + + + + Writes conditional compilation constants to the specified + . + + The to which the conditional compilation constants should be written. + + + + Writes module references to the specified . + + The to which the module references should be written. + + + + Allows derived classes to provide compiler-specific options. + + The to which the compiler options should be written. + + + + Writes an option using the default output format. + + The to which the compiler options should be written. + The name of the option which should be passed to the compiler. + + + + Writes an option and its value using the default output format. + + The to which the compiler options should be written. + The name of the option which should be passed to the compiler. + The value of the option which should be passed to the compiler. + + The combination of and + (separated by a colon) is quoted + unless is already surrounded by quotes. + + + + + Determines whether compilation is needed. + + + + + Finds the correct namespace/classname for a resource file from the + given dependent source file. + + The file from which the resource linkage of the resource file should be determined. + The culture of the resource file for which the resource linkage should be determined. + + The namespace/classname of the source file matching the resource or + if the dependent source file does not exist. + + + This behaviour may be overidden by each particular compiler to + support the namespace/classname syntax for that language. + + + + + Link a list of files into a resource assembly. + + The collection of resources. + Resource assembly to generate + Culture of the generated assembly. + + + + Compiles a set of resx files to a .resources files. + + The set of resx files to compile. + + + + Determines the culture associated with a given resource file by + scanning the filename for valid culture names. + + The resource file path to check for culture info. + The file on which the resource file depends. + + A valid instance if the resource is + associated with a specific culture; otherwise, . + + + + + Generate debug output. The default is . + + + Only used for <jsc> tasks, but retained for backward + compatibility (Clover.NET). + + + + + The output file created by the compiler. + + + + + Output type. Possible values are exe, winexe, + library or module. + + + + + Define conditional compilation symbol(s). + + + + Corresponds to /d[efine]: flag. + + + + + + Icon to associate with the application. + + + + Corresponds to /win32icon: flag. + + + + + + Instructs the compiler to treat all warnings as errors. The default + is . + + + + Corresponds to the /warnaserror[+|-] flag of the compiler. + + + When this property is set to , any messages + that would ordinarily be reported as warnings will instead be + reported as errors. + + + + + + Controls which warnings should be reported as errors. + + + + + Specifies a comma-separated list of warnings that should be suppressed + by the compiler. + + + Comma-separated list of warnings that should be suppressed by the + compiler. + + + + Corresponds with the /nowarn flag. + + + + + + Specifies a list of warnings that you want the compiler to suppress. + + + + + Instructs NAnt to recompile the output file regardless of the file timestamps. + + + When this parameter is to , NAnt will always + run the compiler to rebuild the output file, regardless of the file timestamps. + + + + + Specifies which type contains the Main method that you want to use + as the entry point into the program. + + + + Corresponds to the /m[ain]: flag of the compiler. + + + Use this property when creating an executable file. If this property + is not set, the compiler searches for a valid Main method in all + public classes. + + + + + + Specifies the key pair container used to strongname the assembly. + + + + + Specifies a strong name key file. + + + + + Additional directories to search in for assembly references. + + + + Corresponds with the /lib[path]: flag. + + + + + + Reference metadata from the specified assembly files. + + + + + Specifies list of packages to reference. + + + + + Resources to embed. + + + + This can be a combination of resx files and file resources. + + + .resx files will be compiled by and then + embedded into the resulting executable. + + + The property is used to make + up the resource name added to the assembly manifest for non-resx + files. + + + For .resx files the namespace from the matching source file is used + as prefix. This matches the behaviour of Visual Studio. + + + Multiple resources tags with different namespace prefixes may be + specified. + + + + + + Link the specified modules into this assembly. + + + + + The set of source files for compilation. + + + + + Indicates whether package references are supported by compiler for + a given target framework. The default is . + + + + + Indicates whether the compiler for a given target framework supports + the "warnaserror" option that takes a list of warnings. The default + is . + + + + + Indicates whether the compiler for a given target framework supports + a command line option that allows a list of warnings to be + suppressed. The default is . + + + + + Indicates whether the compiler for a given target framework supports + the "keycontainer" option. The default is . + + + + + Indicates whether the compiler for a given target framework supports + the "keyfile" option. The default is . + + + + + Gets the file extension required by the current compiler. + + + The file extension required by the current compiler. + + + + + Gets the class name regular expression for the language of the current compiler. + + class name regular expression for the language of the current compiler + + + + Gets the namespace regular expression for the language of the current compiler. + + namespace regular expression for the language of the current compiler + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Holds class and namespace information for resource (*.resx) linkage. + + + + + Initializes a new instance of the + class. + + The namespace the resource is under. + The class name the resource is associated with. + + + + Returns the resource linkage as a string. + + + A string representation of the resource linkage. + + + + + Gets a value indicating whether the + instances contains valid data. + + + if the + instance contains valid data; otherwise, . + + + + + Gets a value indicating whether a namespace name is available + for this instance. + + + if a namespace name is available for + this instance; otherwise, + . + + + + + Gets a value indicating whether a class name is available + for this instance. + + + if a class name is available for + this instance; otherwise, + . + + + + + Gets the name of namespace the resource is under. + + + The name of namespace the resource is under. + + + + + Gets the name of the class (most likely a form) that the resource + is associated with. + + + The name of the class the resource is associated with. + + + + + Gets the culture that the resource is associated with. + + + The culture that the resource is associated with. + + + + + Compiles C# programs. + + + + In order to have generate manifest resource names + that match those generated by Microsoft Visual Studio.NET, the value of + the attribute of the <> + element should match the "Default Namespace" of the C# project, and the + value of the attribute + should be set to "". + + + + Compile a "HelloWorld" application, including embedded resources. + + + + + + + + + + + + + + + + + + ]]> + + + + + + Writes the compiler options to the specified . + + to which the compiler options should be written. + + + + Determines whether compilation is needed. + + + + + The preferred base address at which to load a DLL. The default base + address for a DLL is set by the .NET Framework common language + runtime. + + + The preferred base address at which to load a DLL. + + + This address can be specified as a decimal, hexadecimal, or octal + number. + + + + + Specifies the type of debugging information generated by the + compiler. The default is . + + + + + No longer expose this to build authors. Use + instead. + + + + + The name of the XML documentation file to generate. + + + + Corresponds with the /doc: flag. + + + + + + Specifies the size of sections in the output file. Valid values are + 512, 1024, 2048, 4096, and 8192. + + + The size of sections in the output file. + + + + + Instructs the compiler not to import mscorlib.dll. The default is + . + + + + Corresponds with the /nostdlib[+|-] flag. + + + + + + Instructs the compiler not to use implicit references to assemblies. + The default is . + + + + Corresponds with the /noconfig flag. + + + + + + Specifies whether an integer arithmetic statement that is not in + the scope of the checked or unchecked keywords and + that results in a value outside the range of the data type should + cause a run-time exception. The default is . + + + + Corresponds with the /checked[+|-] flag. + + + + + + Instructs the compiler to allow code that uses the unsafe + keyword. The default is . + + + + Corresponds with the /unsafe[+|-] flag. + + + + + + Causes the compiler to only accept syntax that is included in a + given specification. + + + + Corresponds with the /langversion flag. + + + + + + Specifies whether the compiler should perform optimizations to the + make output files smaller, faster, and more effecient. The default + is . + + + if the compiler should perform optimizations; + otherwise, . + + + + Corresponds with the /optimize[+|-] flag. + + + + + + Specifies which platform version of common language runtime (CLR) + can run the output file. + + + The platform version of common language runtime (CLR) that can run + the output file. + + + + Corresponds with the /platform flag. + + + + + + Specifies the warning level for the compiler to display. Valid values + are 0-4. The default is 4. + + + The warning level for the compiler to display. + + + + Corresponds with the /warn flag. + + + + + + Specifies the code page to use for all source code files in the + compilation. + + + + Corresponds with the /codepage flag. + + + + + + Specifies whether the compiler for the active target framework + supports generation of XML Documentation file. The default is + . + + + + + Specifies whether the compiler for the active target framework + supports limiting the platform on which the compiled code can run. + The default is . + + + + + Specifies whether the compiler for the active target framework + supports accepting only a specific language syntax. + The default is . + + + + + Gets the file extension required by the current compiler. + + + For the C# compiler, the file extension is always cs. + + + + + Gets the class name regular expression for the language of the + current compiler. + + + Class name regular expression for the language of the current + compiler. + + + + + Gets the namespace regular expression for the language of the current compiler. + + + Namespace regular expression for the language of the current + compiler. + + + + + Signs delay-signed .NET Assemblies, or re-signs existing assemblies. + + + + The delay-signing mechanism takes a fileset (named targets) + and either a attribute for a file containing the + public and private keys, or to name a key + container. + + + + Sign partially-signed foo.dll with bar.snk. + + + + + + + ]]> + + + + + + Converts a single file or group of files. + + + + + List of assemblies/executables to sign. + + + + + Specifies the filesystem path to the signing key. + + + + + Specifies the key container. + + + + + Gets the command line arguments for the external program. + + + The command line arguments for the external program. + + + + + Compiles ILASM programs. + + + + Compiles helloworld.il to helloworld.exe. + + + + + + + + ]]> + + + + + + Compiles the sources. + + + + + Writes the compiler options. + + + + + Writes an option using the default output format. + + + The to which the compiler options should + be written. + + + A that contains the name of the + option which should be passed to the compiler. + + + + + Writes an option and its value using the default output format. + + + The to which the compiler options should + be written. + + + A that contains the name of the + option which should be passed to the compiler. + + + A that contains the value of the + option which should be passed to the compiler. + + + + + Determines whether or not compilation is needed. + + + if compilation is needed; otherwise, + . + + + + + Specifies whether or not the compiler should measure and report + the compilation times. + + + if the compilation times should be + measured and reported; otherwise, . The + default is . + + + + Corresponds to the /CLOCK flag. + + + + + + Specifies whether or not the compiler should generate debug + information. + + + if debug information should be generated; + otherwise, . The default is + . + + + + Corresponds to the /DEBUG flag. + + + + + + Specifies whether or not the compiler should attempt to create a + PE file even if compilation errors have been reported. + + + if a PE file has to be created even if + compilation errors have been reported; otherwise, + . The default is . + + + + Corresponds to the /ERROR flag. + + + + + + Instructs NAnt to recompile the output file regardless of the file + timestamps. + + + if the output file should be recompiled + regardless of its timestamps; otherwise . + The default is . + + + + + Specifies whether or not the compiler should type a formatted + listing of the compilation result. + + + if a formatted listing of the compilation + result should be typed; otherwise, . The + default is . + + + + Corresponds to the /LISTING flag. + + + + + + Instructs the compiler to set the FileAlignment value in + the PE header. + + + An that represents the FileAlignment + value to set in the PE header. The value must be a power of 2, in + range from 512 to 65536. + + + + Corresponds to the /ALIGNMENT flag. + + + + + + Instructs the compiler to set the ImageBase value in + the PE header. + + + A that represents the ImageBase + value to set in the PE header. + + + + Corresponds to the /BASE flag. + + + + + + Instructs the compiler to set the Flags value in the CLR + header. + + + An that represents the Flags + value to set in the CLR header. The most frequently value are 1 + (pre-IL code) and 2 (mixed code). The third bit indicating that + the PE file is strong signed, is ignored. + + + + Corresponds to the /FLAGS flag. + + + + + + Instructs the compiler to set the Subsystem value in the PE + header. + + + An that represents the Subsystem + value to set in the PE header. The most frequently value are 3 + (console application) and 2 (GUI application). + + + + Corresponds to the /SUBSYSTEM flag. + + + + + + Specifies which output type should be generated. + + + A that contains the target type. + Possible values are dll and exe. + + + + Corresponds to the /OUTPUT flag. + + + + + + Instructs the compiler to generate a strong signature of the PE + file. + + + A that contains the private + encryption key. + + + + Corresponds to the /KEY=keysource]]> + flag. + + + + + + Instructs the compiler to generate a strong signature of the PE + file. + + + A that represents the file + containing the private encryption key. + + + + Corresponds to the /KEY=keyfile]]> + flag. + + + + + + Specifies the name of the output file created by the compiler. + + + A that represents the name of + the output file. + + + + Corresponds to the /OUTPUT flag. + + + + + + Instructs the compiler to link the specified unmanaged resource + file into the resulting PE file. + + + A that represents the unmanaged + resource file to link. + + + + Corresponds to the /RESOURCE flag. + + + + + + Specifies the set of source files to compile. + + + A that represents the set + of source files to compile. + + + + + Gets the command-line arguments for the external program. + + + A that contains the command-line + arguments for the external program. + + + + + Compiles JScript.NET programs. + + + Compile helloworld.js to helloworld.exe. + + + + + + + ]]> + + + + + + Writes module references to the specified . + + The to which the module references should be written. + + + + Writes the compiler options to the specified . + + to which the compiler options should be written. + + + + Specifies which platform version of common language runtime (CLR) + can run the output file. + + + The platform version of common language runtime (CLR) that can run + the output file. + + + + Corresponds with the /platform flag. + + + + + + Specifies the warning level for the compiler to display. Valid + values are 0-4. The default is 4. + + + The warning level for the compiler to display. + + + + Corresponds with the /warn flag. + + + + + + Controls which warnings should be reported as errors. + + + Override to avoid exposing this to build authors, as the JScript.NET + compiler does not allow control over which warnings should be + reported as errors. + + + + + Specifies a comma-separated list of warnings that should be suppressed + by the compiler. + + + Override to avoid exposing this to build authors, as the JScript.NET + compiler does not support package references. + + + + + Specifies a list of warnings that you want the compiler to suppress. + + + Override to avoid exposing this to build authors, as the JScript.NET + compiler does not support suppressing warnings. + + + + + Specifies the code page to use for all source code files in the + compilation. + + + + Corresponds with the /codepage flag. + + + + + + Specifies the key pair container used to strongname the assembly. + + + Override to avoid exposing this to build authors, as the JScript.NET + does not support this. + + + + + Specifies a strong name key file. + + + Override to avoid exposing this to build authors, as the JScript.NET + does not support this. + + + + + Indicates whether the compiler for a given target framework supports + the "keycontainer" option. The default is . + + + . + + + Override to avoid exposing this to build authors, as the JScript.NET + does not support this. + + + + + Indicates whether the compiler for a given target framework supports + the "keyfile" option. The default is . + + + . + + + Override to avoid exposing this to build authors, as the JScript.NET + does not support this. + + + + + Specifies whether the compiler for the active target framework + supports limiting the platform on which the compiled code can run. + The default is . + + + + + Link the specified modules into this assembly. + + + Override to avoid exposing this to build authors, as the JScript.NET + compiler does not support linking modules. + + + + + Gets the file extension required by the current compiler. + + + For the JScript.NET compiler, the file extension is always js. + + + + + Gets the class name regular expression for the language of the + current compiler. + + + Class name regular expression for the language of the current + compiler. + + + + + Gets the namespace regular expression for the language of the + current compiler. + + + Namespace regular expression for the language of the current + compiler. + + + + + Generates a .licence file from a .licx file. + + + + If no output file is specified, the default filename is the name of the + target file with the extension .licenses appended. + + + + + Generate the file component.exe.licenses file from component.licx. + + + + ]]> + + + + + + Initializes the class. + + The used to initialize the task. + + + + Updates the of the specified + . + + The of which the should be updated. + + + + Generates the license file. + + + + + Determines whether the .licenses file needs to be recompiled + or is uptodate. + + The .licenses file. + + if the .licenses file needs compiling; + otherwise, . + + + + + Input file to process. + + + + + Name of the license file to output. + + + + + Names of the references to scan for the licensed component. + + + + + Specifies the executable for which the .licenses file is generated. + + + + + Specifies the executable for which the .licenses file is generated. + + + + + Indicates whether assembly references are supported by the current + target framework. The default is . + + + Applies only to frameworks having a command line tool for compiling + licenses files. + + + + + Indicates whether the current target framework has a command line + tool for compiling licenses files. The default is + . + + + + + Gets the working directory for the application. + + + The working directory for the application. + + + + + The command-line arguments for the external program. + + + Override to avoid exposing these elements in build file. + + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Gets the filename of the external program to start. + + + The filename of the external program. + + + Override in derived classes to explicitly set the location of the + external tool. + + + + + Responsible for reading the license and writing them to a license + file. + + + + + Obtains a lifetime service object to control the lifetime policy for + this instance. + + + An object of type used to control the lifetime + policy for this instance. This is the current lifetime service object + for this instance if one exists; otherwise, a new lifetime service + object initialized with a lease that will never time out. + + + + + Creates the whole license file. + + The instance for which the license file should be created. + The .licenses file to create. + + + + Determines whether the given object is serializable in binary + format. + + The object to check. + + if is + serializable in binary format; otherwise, . + + + + + Runs NDoc V1.3.1 to create documentation. + + + + See the NDoc home page for more + information. + + + By default, only the NDoc MSDN documenter ships as part of the NAnt + distribution. To make another NDoc documenter from the NDoc V1.3.1 + distribution available to the , copy the + documenter assembly (and possible dependencies) to the "lib" + directory corresponding with the CLR you're running NAnt on + (eg. <nant root>/bin/lib/net/1.1). + + + + + Document two assemblies using the MSDN documenter. The namespaces are + documented in NamespaceSummary.xml. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + Content of NamespaceSummary.xml : + + + + The Foo.Bar namespace reinvents the wheel. + + + The Foo.Bar.Tests namespace ensures that the Foo.Bar namespace reinvents the wheel correctly. + + + ]]> + + + + + + Initializes the taks and verifies the parameters. + + containing the XML fragment used to define this task instance. + + + + Generates an NDoc project and builds the documentation. + + + + + Represents the method that will be called to update the overall + percent complete value and the current step name. + + The source of the event. + A that contains the event data. + + + + Represents the method that will be called to update the current + step's precent complete value. + + The source of the event. + A that contains the event data. + + + + Returns the documenter for the given project. + + + Documenter is not found. + + + is . + + + + + Performs macro expansion for the given nodes. + + for which expansion should be performed. + + + + The set of assemblies to document. + + + + + The set of namespace summary files. + + + + + Specifies the formats in which the documentation should be generated. + + + + + Collection of additional directories to search for referenced + assemblies. + + + + + Installs or removes .NET Services. + + + + This tasks provides the same functionality as the regsvcs tool + provided in the .NET SDK. + + + It performs the following actions: + + + + Loads and registers an assembly. + + + Generates, registers, and installs a type library into a specified COM+ application. + + + Configures services that are added programmatically to your class. + + + + Refer to the .NET Services Installation Tool (Regsvcs.exe) for more information. + + + + + Adds all public classes contained in myTest.dll to a COM+ + application and produces the myTest.tlb type library. If the + application already exists, it is overwritten. + + + + ]]> + + + + + Adds all public classes contained in myTest.dll to myTargetApp + and produces the myTest.tlb type library. If the application already + exists, it is overwritten. + + + + ]]> + + + + + Adds all public classes contained in myTest.dll to a COM+ + application and produces the myTest.tlb type library. A new + application is always created. + + + + ]]> + + + + + Uninstalls the COM+ application contained in myTest.dll. + + + + ]]> + + + + + + Performs the specified action. + + + + + Defines the action to take with the assembly. The default is + . + + + + + The source assembly file. + + + The assembly must be signed with a strong name. + + + + + Specifies the type library file to install. + + + + + Uses an existing type library. The default is . + + + + + Do not reconfigure an existing target application. + The default is . + + + + + Configures components only; ignores methods and interfaces. + The default is . + + + + + Expect an existing application. The default is . + + + + + Specifies the name of the COM+ application to either find or create. + + + + + Specifies the name or id of the COM+ application to either find or + create. + + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Defines the possible actions for a .NET Service. + + + + + Finds or creates the target application. + + + + + Creates the target application. + + + + + Uninstalls the target application. + + + + + Converts files from one resource format to another. + + + + If no is specified, the resource file will + be created next to the input file. + + + + + Convert a resource file from the .resx to the .resources + format. + + + + ]]> + + + + + Convert a set of .resx files to the .resources format. + + + + + + + + ]]> + + + + + + Updates the of the specified + . + + The of which the should be updated. + + + + Converts a single file or group of files. + + + + + Cleans up generated files. + + + + + Determines whether the specified input file needs to be compiled. + + The input file. + The output file. + + if the input file need to be compiled; + otherwise . + + + + + Determines the full path and extension for the output file. + + The output file for which the full path and extension should be determined. + + The full path (with extensions) for the specified file. + + + + + Determines whether the specified resource file references third + party assemblies by checking whether a <data> element exists + with a "type" attribute that does not start with + "System.". + + The resource file to check. + + if the resource file references third party + assemblies, or an error occurred; otherwise, . + + + This check will only be accurate for 1.0 resource file, but the + 2.0 resx files can only be compiled with a resgen tool that supported + assembly references, so this method will not be used anyway. + + + + + Returns a list of external file references for the specified file. + + The resx file for which a list of external file references should be returned. + + A list of external file references for the specified file, or + if does not + exist or does not support external file references. + + + + + Input file to process. + + + The full path to the input file. + + + + + The resource file to output. + + + + + The target type. The default is resources. + + + + + The directory to which outputs will be stored. + + + + + Use each source file's directory as the current directory for + resolving relative file paths. The default is . + Only supported when targeting .NET 2.0 (or higher). + + + + + Takes a list of .resx or .txt files to convert to .resources files. + + + + + Reference metadata from the specified assembly files. + + + + + Indicates whether assembly references are supported by the + resgen tool for the current target framework. The default + is . + + + + + Indicates whether external file references are supported by the + resgen tool for the current target framework. The default + is . + + + + + For internal use only ! + + + + + Gets the working directory for the application. + + + The working directory for the application. + + + + + Gets the command line arguments for the external program. + + + The command line arguments for the external program. + + + + + Gets the filename of the external program to start. + + + The filename of the external program. + + + Override in derived classes to explicitly set the location of the + external tool. + + + + + For internal use only ! + + + + + Initializes a new instance of the + class for a given input and output file. + + The resource to compile. + The compiled resource. + + + + Gets the resource file to compile. + + + The resource file to compile. + + + + + Gets the compiled resource file. + + + The compiled resource file. + + + + + Executes the code contained within the task. This code can include custom extension function definitions. + Once the script task has executed those custom functions will be available for use in the buildfile. + + + + The must contain a single code + element, which in turn contains the script code. + + + A static entry point named ScriptMain is required if no custom functions have been defined. It must + have a single parameter. + + + The following namespaces are loaded by default: + + + + System + + + System.Collections + + + System.Collections.Specialized + + + System.IO + + + System.Text + + + System.Text.RegularExpressions + + + NAnt.Core + + + + + Run C# code that writes a message to the build log. + + <script language="C#"> + <code> + <![CDATA[ + public static void ScriptMain(Project project) { + project.Log(Level.Info, "Hello World from a script task using C#"); + } + ]]> + </code> + </script> + + + + Define a custom function and call it using C#. + + <script language="C#" prefix="test" > + <code> + <![CDATA[ + [Function("test-func")] + public static string Testfunc( ) { + return "some result !!!!!!!!"; + } + ]]> + </code> + </script> + <echo message='${test::test-func()}'/> + + + + Use a custom namespace in C# to create a database + + <script language="C#" > + <references> + <include name="System.Data.dll" /> + </references> + <imports> + <import namespace="System.Data.SqlClient" /> + </imports> + <code> + <![CDATA[ + public static void ScriptMain(Project project) { + string dbUserName = "nant"; + string dbPassword = "nant"; + string dbServer = "(local)"; + string dbDatabaseName = "NAntSample"; + string connectionString = String.Format("Server={0};uid={1};pwd={2};", dbServer, dbUserName, dbPassword); + + SqlConnection connection = new SqlConnection(connectionString); + string createDbQuery = "CREATE DATABASE " + dbDatabaseName; + SqlCommand createDatabaseCommand = new SqlCommand(createDbQuery); + createDatabaseCommand.Connection = connection; + + connection.Open(); + + try { + createDatabaseCommand.ExecuteNonQuery(); + project.Log(Level.Info, "Database added successfully: " + dbDatabaseName); + } catch (Exception e) { + project.Log(Level.Error, e.ToString()); + } finally { + connection.Close(); + } + } + ]]> + </code> + </script> + + + + + Run Visual Basic.NET code that writes a message to the build log. + + + <script language="VB"> + <code> + <![CDATA[ + Public Shared Sub ScriptMain(project As Project) + project.Log(Level.Info, "Hello World from a script task using Visual Basic.NET") + End Sub + ]]> + </code> + </script> + + + + Define a custom task and call it using C#. + + <script language="C#" prefix="test" > + <code> + <![CDATA[ + [TaskName("usertask")] + public class TestTask : Task { + #region Private Instance Fields + + private string _message; + + #endregion Private Instance Fields + + #region Public Instance Properties + + [TaskAttribute("message", Required=true)] + public string FileName { + get { return _message; } + set { _message = value; } + } + + #endregion Public Instance Properties + + #region Override implementation of Task + + protected override void ExecuteTask() { + Log(Level.Info, _message.ToUpper()); + } + #endregion Override implementation of Task + } + ]]> + </code> + </script> + <usertask message='Hello from UserTask'/> + + + + + Define a custom function and call it using Boo. + + + <script language="Boo.CodeDom.BooCodeProvider, Boo.CodeDom, Version=1.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67" + failonerror="true"> + <code> + <![CDATA[ + + [Function("test-func")] + def MyFunc(): + return "Hello from Boo !!!!!!" + ]]> + </code> + </script> + <echo message='${script::test-func()}'/> + + + + + + Initializes the task using the specified xml node. + + + + + Executes the script block. + + + + + The language of the script block. Possible values are "VB", "vb", "VISUALBASIC", "C#", "c#", "CSHARP". + "JS", "js", "JSCRIPT" "VJS", "vjs", "JSHARP" or a fully-qualified name for a class implementing + . + + + + + Any required references. + + + + + The name of the main class containing the static ScriptMain + entry point. + + + + + The namespace prefix for any custom functions defined in the script. + If ommitted the prefix will default to 'script' + + + + + The namespaces to import. + + + + + The code to execute. + + + + + Compiles Visual Basic.NET programs. + + + + In order to have generate manifest resource names + that match those generated by Microsoft Visual Studio.NET, the value of + the attribute of the <> + element should match the "Root namespace" of the VB.NET project, and the + value of the attribute + should be set to "". + + + + Example build file using this task. + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + Finds the correct namespace/classname for a resource file from the + given dependent source file, and ensure the + is prefixed. + + The file from which the resource linkage of the resource file should be determined. + The culture of the resource file for which the resource linkage should be determined. + + The namespace/classname of the source file matching the resource or + if the dependent source file does not exist. + + + + + Writes conditional compilation constants to the specified + . + + The to which the conditional compilation constants should be written. + + + + Writes the compiler options to the specified . + + to which the compiler options should be written. + + + + Determines whether compilation is needed. + + + + + The preferred base address at which to load a DLL. The default base + address for a DLL is set by the .NET Framework common language + runtime. + + + The preferred base address at which to load a DLL. + + + This address must be specified as a hexadecimal number. + + + + + Specifies the type of debugging information generated by the + compiler. The default is . + + + + + No longer expose this to build authors. Use + instead. + + + + + The name of the XML documentation file to generate. Only supported + when targeting .NET 2.0 (or higher). + + + + Corresponds with the /doc: flag. + + + + + + Specifies whether the /imports option gets passed to the + compiler. + + + The value of this attribute is a string that contains one or more + namespaces separated by commas. + + + See the Microsoft.NET Framework SDK documentation for details. + + Example of an imports attribute + + + + + + The namespaces to import. + + + + + Instructs the compiler not to reference standard libraries + (system.dll and VBC.RSP). The default is . + Only supported when targeting .NET 2.0 (or higher). + + + + Corresponds with the /nostdlib flag. + + + + + + Specifies whether /optioncompare option gets passed to the + compiler. + + + text, binary, or an empty string. If the value is + or an empty string, the option will not be + passed to the compiler. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether the /optionexplicit option gets passed to + the compiler. The default is . + + + if the option should be passed to the compiler; + otherwise, . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether the /optimize option gets passed to the + compiler. The default is . + + + if the option should be passed to the compiler; + otherwise, . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether the /optionstrict option gets passed to + the compiler. The default is . + + + if the option should be passed to the compiler; + otherwise, . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies which platform version of common language runtime (CLR) + can run the output file. + + + The platform version of common language runtime (CLR) that can run + the output file. + + + + Corresponds with the /platform flag. + + + + + + Specifies whether the /removeintchecks option gets passed to + the compiler. The default is . + + + if the option should be passed to the compiler; + otherwise, . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether the /rootnamespace option gets passed to + the compiler. + + + The value of this attribute is a string that contains the root + namespace of the project. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether the compiler for the active target framework + supports generation of XML Documentation file. The default is + . + + + + + Specifies whether the compiler for the active target framework + supports NOT referencing standard libraries (system.dll and VBC.RSP). + The default is . + + + + + Specifies whether the compiler for the active target framework + supports limiting the platform on which the compiled code can run. + The default is . + + + + + Gets the file extension required by the current compiler. + + + For the VB.NET compiler, the file extension is always vb. + + + + + Gets the class name regular expression for the language of the + current compiler. + + + Class name regular expression for the language of the current + compiler. + + + + + Gets the namespace regular expression for the language of the + current compiler. + + + Namespace regular expression for the language of the current + compiler. + + + + + Compiles Visual J# programs using vjc, Microsoft's J# compiler. + + + + In order to have generate manifest resource names + that match those generated by Microsoft Visual Studio.NET, the value of + the attribute of the <> + element should match the "Default Package" of the J#.NET project, and + the value of the attribute + should be set to "". + + + + Compile a "HelloWorld" application, including embedded resources. + + + + + + + + + + + + + + + + + ]]> + + + + + + Writes module references to the specified . + + The to which the module references should be written. + + + + Writes the compiler options to the specified . + + to which the compiler options should be written. + + + + The preferred base address at which to load a DLL. The default base + address for a DLL is set by the .NET Framework common language + runtime. + + + The preferred base address at which to load a DLL. + + + This address can be specified as a decimal, hexadecimal, or octal + number. + + + + + Specifies the type of debugging information generated by the + compiler. The default is . + + + + + No longer expose this to build authors. Use + instead. + + + + + Specifies whether package-scoped members are accessible outside of + the assembly. In other words, package scope is treated as assembly + scope when emitting metadata. The default is . + + + if the option should be passed to the compiler; + otherwise, . + + + + Corresponds to the /securescoping flag. + + + See the Visual J# Reference for details. + + + + ]]> + + + + + Specifies whether to disable language extensions. + + + The value of this property must be either all, net, + or an empty string. + + + + Corresponds to the /x flag. + + + See the Visual J# Reference for details. + + + + To disable only the .NET Framework extensions: + ]]> + To disable the .NET Framework extensions and the VJ++ 6.0 extensions: + ]]> + + + + + Specifies the location of assemblies referenced by way of the /reference flag. + + + + Corresponds to the /libpath:dir[;dir2] flag. + + + See the Visual J# Reference for details. + + + + + + Associate Java-language/COM package names. + + + The value of this propery. must be package=namespace, @filename, + or an empty string. + + + + Corresponds to the /jcpa:package=namespace and /jcpa:@filename flags. + + + See the Visual J# Reference for details. + + + + Map package 'x' to namespace 'y': + ]]> + + + + + Specifies the code page to use for all source code files in the + compilation. + + + + Corresponds with the /codepage flag. + + + See the Visual J# Reference for details. + + + + + + Specifies the warning level for the compiler to display. Valid values + are 0-4. The default is 4. + + + The warning level for the compiler to display. + + + + Corresponds with the /warn option. + + + + + + Controls which warnings should be reported as errors. + + + Override to avoid exposing this to build authors, as the Visual J# + compiler does not allow control over which warnings should be + reported as errors. + + + + + Reference packages + + + Override to avoid exposing this to build authors, as the Visual J# + compiler does not support package references. + + + + + Link the specified modules into this assembly. + + + Override to avoid exposing this to build authors, as the Visual J# + compiler does not support linking modules. + + + + + Gets the file extension required by the current compiler. + + + For the J# compiler, the file extension is always jsl. + + + + + Gets the class name regular expression for the language of the + current compiler. + + + Class name regular expression for the language of the current + compiler. + + + + + Gets the namespace regular expression for the language of the + current compiler. + + + Namespace regular expression for the language of the current + compiler. + + + + + Override to avoid exposing the configuration setting for this + task as Visual J# will never support package references. + + + , as the Visual J# compiler will never + support package references. + + + + + Represents an assembly-level attribute. + + + + + Initializes a new instance of the + class. + + + + + Typename of the assembly-level attribute. + + + + + Value of the attribute. + + + + + If then the value of the attribute will be + set as is, without actually looking for a matching constructor or + named properties. The default is . + + + if the value of the attribute should be set + as is; otherwise, . + + + + + Indicates if the attribute should be generated. + + + if the attribute should be generated; + otherwise, . + + + + + Indicates if the attribute should be not generated. + + + if the attribute should be not generated; + otherwise, . + + + + + Contains a strongly typed collection of + objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + value is in the collection. + + The argument value to locate in the collection. + + if a with + value is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified value. + + The value of the to get. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + A specialized used for setting the lib directories. + + + The primary reason for this class is to allow the + to always be the same value as the parent + + + + + + Initializes a new instance of the class. + + + + + + override this. We will always use the base directory of the parent. + overriding without the TaskAttribute attribute prevents it being set + in the source xml + + + + + Specialized class for managing assembly files. + + + + If an include pattern does not contain any wildcard characters then + the assembly will be searched for in following locations (in the order listed): + + + + + The base directory of the fileset. + + + + + The directories specified using the nested <lib> element. + + + + + The assembly directory of the current target framework. + + + + + + + Define a reference with name "sys.assemblies", holding + a set of system assemblies. + + + + + + + + ]]> + + + Use the predefined set of assemblies to compile a C# assembly. + + + + + + + + + ]]> + + + + + Compile a C# assembly using assembly references that are searched for + in the "Third Party Assemblies" and "Company Assemblies" + directories. + + + + + + + + + + + + + + + + ]]> + + + + + + + Initializes a new instance of the class. + + + + + copy constructor for FileSet. Required in order to + assign references of FileSet type where + AssemblyFileSets are used + + + + + + Do a normal scan and then resolve assemblies. + + + + + Resolves references to system assemblies and assemblies that can be + resolved using directories specified in . + + + + + Additional directories to search in for assembly references. + + + + loosely Corresponds with the /lib[path]: flag of the various compiler tasks. + + + + + + Represents a compiler warning. + + + + + A warning number, or comma-separated list of warnings, that you want + the compiler to suppress or report. + + + + + If then the element will be processed; + otherwise, skipped. The default is . + + + + + If then the element will be skipped; + otherwise, processed. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Specifies the type of debugging information generated by the compiler. + + + + For backward compatibility, the following string values can also be + used in build files: + + + + Value + Corresponding field + + + "true" + + + + "false" + + + + + When set to then the following conditional + compilation symbols will also be defined: + + + + DEBUG + + + TRACE + + + + + + + Create no debug information. + + + + + Enable attaching a debugger to the running program. + + + + + Enable attaching a debugger to the running program. + + + + + Only display assembler when the running program is attached to the + debugger. + + + + + Specialized that also supports + case-insensitive conversion of "true" to + and "false" to + . + + + + + Initializes a new instance of the + class. + + + + + Converts the given object to the type of this converter, using the + specified context and culture information. + + An that provides a format context. + A object. If a is passed, the current culture is assumed. + The to convert. + + An that represents the converted value. + + + + + Represents an embedded resource. + + + Do not yet expose this to build authors. + + + + + Initializes a new instance of the + with the specified file name and manifest resource name. + + The path of the compiled resource. + The manifest resource name of the embedded resource. + + + + Gets the physical location of the resource to embed. + + + The physical location of the resource to embed. + + + + + Gets the manifest resource name to use when embedding the resource. + + + The manifest resource name to use when embedding the resource. + + + + + Contains a collection of items. + + + Do not yet expose this to build authors. + + + + + Base class for collections that needs to be globally referencable. + + + + + Initializes a new instance of the + class. + + + + + Copies the items of the collection to an , + starting at a particular index. + + The one-dimensional that is the destination of the items copied from the collection. The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to iterate through + the collection. + + + + + Removes an item at a specific index. + + The zero-based index of the item to remove. + + + + Removes all items from the collection. + + + + + Used by methods that take instances as argument + to verify whether the instance is valid for the collection class. + + The instance to verify. + + + + Checks whether the specified index is within the range of this + collection. + + The index to check. + + + + Gets a value indicating whether access to the collection is + synchronized (thread-safe). + + + . + + + + + Gets the number of items in the collection. + + + The number of items in the collection. + + + + + Gets an object that can be used to synchronize access to the + collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets a value indicating whether the collection has a fixed size. + + + . + + + + + Gets a value indicating whether the collection has a fixed size. + + + . + + + + + Gets the list of elements contained in the + instance. + + + An containing the elements of the + collection. + + + + + Gets the of the items in this collection. + + + The of the items in this collection. + + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Inserts a into the collection at the + specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Removes the specified from the + collection. + + The to remove from the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Gets the location of a in the collection. + + The object to locate. + + The zero-based location of the in the + collection. + + + If the is not currently a member of + the collection, -1 is returned. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + + The position into which the new item was inserted. + + + + + Adds the items of a to the end of the collection. + + The to be added to the end of the collection. + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + + The position into which the new item was inserted. + + + + + Inserts a into the collection at the + specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Removes the specified from the + collection. + + The to remove from the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Gets the location of a in the collection. + + The object to locate. + + The zero-based location of the in the + collection. + + + If the is not currently a member of + the collection, -1 is returned. + + + + + Gets or sets the item at the specified index. + + The zero-based index of the item to get or set. + + + + Gets the with the specified manifest + resource name. + + The manifest resource name of the to get. + + + + Gets the of the items in this collection. + + + The of the items in this collection. + + + + + Gets or sets the item at the specified index. + + The zero-based index of the item to get or set. + + + + Enumerates the items of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next item of the collection. + + + if the enumerator was successfully advanced + to the next item; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first item in the collection. + + + + + Gets the current item in the collection. + + + The current item in the collection. + + + + + Gets the current item in the collection. + + + The current item in the collection. + + + + + Represents a namespace to import. + + + + + Initializes a new instance of the + class. + + + + + Initializes a new instance of the + class for the specified namespace. + + The namespace. + is . + + + + The name of the namespace to import. + + + The name of the namespace to import. + + + + + The name of the namespace to import. + + + The name of the namespace to import. + + + + + Indicates if the import should be generated. + + + if the import should be generated; otherwise, + . + + + + + Indicates if the import should be not generated. + + + if the import should be not generated; + otherwise, . + + + + + Contains a collection of items. + + + Define a reference with name "system.imports". + + + + + + ]]> + + Use the predefined set of imports to compile a VB.NET assembly. + + + + + + + + + + + + ]]> + + + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Returns a comma-delimited list of namespace imports. + + + A comma-delimited list of namespace imports, or an empty + if there are no namespace imports. + + + Each namespace import is quoted individually. + + + + + Inserts a into the collection at the + specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Removes the specified from the + collection. + + The to remove from the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Gets the location of a in the collection. + + The object to locate. + + The zero-based location of the in the + collection. + + + If the is not currently a member of + the collection, -1 is returned. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + + The position into which the new item was inserted. + + + + + Adds the items of a to the end of the collection. + + The to be added to the end of the collection. + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + + The position into which the new item was inserted. + + + + + Inserts a into the collection at the + specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Removes the specified from the + collection. + + The to remove from the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Gets the location of a in the collection. + + The object to locate. + + The zero-based location of the in the + collection. + + + If the is not currently a member of + the collection, -1 is returned. + + + + + Gets or sets the item at the specified index. + + The zero-based index of the item to get or set. + + + + Gets the with the specified namespace. + + The namespace of the to get. + + + + Gets the of the items in this collection. + + + The of the items in this collection. + + + + + Gets or sets the item at the specified index. + + The zero-based index of the item to get or set. + + + + Enumerates the items of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next item of the collection. + + + if the enumerator was successfully advanced + to the next item; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first item in the collection. + + + + + Gets the current item in the collection. + + + The current item in the collection. + + + + + Gets the current item in the collection. + + + The current item in the collection. + + + + + Represents a package. + + + + + Name of the package to reference. Multiple package can be specified + with a single element as a semi-colon separated list of + package names. + + + + + Indicates if the package should be passed to the task. + If then the package will be passed; + otherwise, skipped. The default is . + + + + + Indicates if the package should not be passed to the task. + If then the package will be passed; + otherwise, skipped. The default is . + + + + + Contains a strongly typed collection of + objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Specialized class for managing resource files. + + + + + Initializes a new instance of the class. + + + + + copy constructor for FileSet. Required in order to + assign references of FileSet type where + ResourceFileSet are used + + + + + + Creates a shallow copy of the . + + + A shallow copy of the . + + + + + Gets the manifest resource name for the specified resource file. + + The physical path of the resource file. + + The manifest resource name to be sent to the compiler. + + + + + Gets the manifest resource name for the file using both its physical + and logical path. + + The physical path of the resource file. + The logical location of the resource file. + + The manifest resource name to be sent to the compiler. + + + We use the relative path of the logical path, but the filename and + and the extension of the physical path to match VS.NET + + + + + Indicates the prefix to prepend to the actual resource. + This is usually the default namspace of the assembly. + + + + + Indicates that prefixes should be dynamically generated by taking + the path of the resource relative to the basedir and appending it + to the specified prefix. + + + + + Gets a containing all matching resx files. + + + A containing all matching resx files. + + + + + Gets a containing all matching non-resx + files. + + + A containing all matching non-resx files. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Controls the behaviour of a compiler with regards to the reporting of + warnings. + + + + Instruct a compiler to report warning 0519 as an error. + + + + + + ]]> + + + + + Instruct a compiler not to report warning 0519 as an error, if the + release property is . + + + + + + ]]> + + + + + + Specifies a list of warnings that the compiler should treat as + errors. This overrides the + attribute. Only supported when targeting .NET 2.0 or higher. + + + + + Specifies a list of warnings that the compiler should NOT treat as + errors. This is only useful if + is . Only supported when targeting .NET 2.0 + or higher. + + + + diff --git a/tools/nant/bin/NAnt.MSNetTasks.dll b/tools/nant/bin/NAnt.MSNetTasks.dll new file mode 100644 index 0000000..a679416 Binary files /dev/null and b/tools/nant/bin/NAnt.MSNetTasks.dll differ diff --git a/tools/nant/bin/NAnt.MSNetTasks.xml b/tools/nant/bin/NAnt.MSNetTasks.xml new file mode 100644 index 0000000..31e2584 --- /dev/null +++ b/tools/nant/bin/NAnt.MSNetTasks.xml @@ -0,0 +1,580 @@ + + + + NAnt.MSNetTasks + + + + + Disassembles any portable executable (PE) file that contains + intermediate language (IL) code. + + + + Files are only disassembled if the input file is newer than the output + file, or if the output file does not exist. However, you can + explicitly force files to be disassembled with the + attribute. + + + A can be used to select files to disassemble. + To use a , the + attribute must be set. The file name of the output file will be equal + to the file name of the input file, but with extension ".il". + + + + + Disassembles helloworld.exe to helloworld.il. + + + + ]]> + + + + + Disassembles a set of PE files into the specified directory. + + + + + + + + + ]]> + + + + + + Checks whether the task is initialized with valid attributes. + + The used to initialize the task. + + + + Disassembles the PE file(s). + + + + + Disassembles the specified PE file. + + The PE file to disassemble. + + + + Determines the full path and extension for the output file. + + + A that represents the PE file + file for which the corresponding output file should be determined. + + + A that represents the full path + for the output file. + + The path of the output file could not be determined. + + + + Writes the disassembler options. + + + + + Writes an option using the default output format. + + + The to which the disassembler options + should be written. + + + A that contains the name of the + option which should be passed to the disassembler. + + + + + Writes an option and its value using the default output format. + + + The to which the disassembler options + should be written. + + + A that contains the name of the + option which should be passed to the disassembler. + + + A that contains the value of the + option which should be passed to the disassembler. + + + + + Determines whether or not disassembling is needed. + + + if disassembling is needed; otherwise, + . + + + + + Specifies whether or not the disassembler should combine the + /HEADER, /BYTE, and /TOKENS options. The default + is . + + + if the disassembler should combine the + /HEADER, /BYTE, and /TOKENS options; + otherwise, . The default is + . + + + + Corresponds to the /ALL flag. + + + + + + Specifies whether or not the disassembler should generate the + IL stream bytes (in hexadecimal notation) as instruction comments. + The default is . + + + if the IL stream bytes should be generated + as instruction comments; otherwise, . The + default is . + + + + Corresponds to the /BYTE flag. + + + + + + Instructs NAnt to rebuild the output file regardless of the file + timestamps. The default is . + + + if the output file should be rebuilt + regardless of its timestamps; otherwise . + The default is . + + + + + Specifies whether or not the disassembler should include PE header + information and runtime header information in the output. The default + is . + + + if PE header information and runtime header + information should be included in the output; otherwise, + . The default is . + + + + Corresponds to the /HEADER flag. + + + + + + Specifies the PE file to disassemble. + + + A that represents the PE file + to disassemble. + + + + + Specifies whether or not the disassembler should include + references to original source lines. The default is . + + + if references to original source lines + should be included; otherwise, . The + default is . + + + + Corresponds to the /LINENUM flag. + + + + + + Specifies whether or not the disassembler should suppress ILASM + code output. The default is . + + + if ILASM code output should be suppresses; + otherwise, . The default is + . + + + + Corresponds to the /NOIL flag. + + + + + + Specifies whether or not the disassembler should disassemble + public items only. This is a shortcut for ="pub". + The default is . + + + if only public items should be + disassembled; otherwise, . The default is + . + + + + Corresponds to the /PUBONLY flag. + + + + + + Specifies whether or not the disassembler should enclose all names + in single quotation marks. By default, only names that don't match + the ILASM definition of a simple name are quoted. The default is + . + + + if all names should be enclosed in single + quotation marks; otherwise, . The default + is . + + + + Corresponds to the /QUOTEALLNAMES flag. + + + + + + Specifies whether or not the disassembler should generate + structured exception handling clauses in canonical (label) form. + The default is . + + + if structured exception handling clauses + should be generated in canonical form; otherwise, + . The default is . + + + + Corresponds to the /RAWEH flag. + + + + + + Specifies whether or not the disassembler should generate + original source lines as comments. The default is . + + + if original source lines should be + generated as comments; otherwise, . + The default is . + + + + Corresponds to the /SOURCE flag. + + + + + + Specifies whether or not the disassembler should generate metadata + token values as comments. The default is . + + + if metadata token values should be + generated as comments; otherwise, . The + default is . + + + + Corresponds to the /TOKENS flag. + + + + + + Specifies whether or not the disassembler should use the UNICODE + encoding when generating the output. The default is ANSI. + + + if the output should be generated using + the UNICODE encoding; otherwise, . The + default is . + + + + Corresponds to the /UNICODE flag. + + + + + + Specifies whether or not the disassembler should use the UTF-8 + encoding when generating the output. The default is ANSI. + + + if the output should be generated using + the UTF-8 encoding; otherwise, . The + default is . + + + + Corresponds to the /UTF8 flag. + + + + + + Instructs the disassembler to disassemble the specified item only. + + + A that specifies the item to + disassemble. + + + + Corresponds to the /ITEM flag. + + + + + + Instructs the disassembler to disassemble only the items with the + specified visibility. Possible values are PUB, PRI, + FAM, ASM, FAA, FOA, PSC, + or any combination of them separated by +. + + + A that contains the visibility + suboptions. + + + + Corresponds to the /VISIBILITY flag. + + + + + + Specifies the name of the output file created by the disassembler. + + + A that represents the name of + the output file. + + + + Corresponds to the /OUT flag. + + + + + + Specifies the directory to which outputs will be stored. + + + A that represents the + directory to which outputs will be stored. + + + + + Specifies a list of PE files to disassemble. To use a , + the attribute must be specified. + + + A that represents the set + of PE files to disassemble. + + + + + The command-line arguments for the external program. + + + Overridden to ensure the <arg> elements would not be exposed + to build authors. + + + + + Gets the command-line arguments for the external program. + + + A that contains the command-line + arguments for the external program. + + + + + Allows a Windows service to be controlled. + + + Starts the World Wide Web Publishing Service on the local computer. + + + ]]> + + + + Stops the Alerter service on computer 'MOTHER'. + + + ]]> + + + + + + Initializes a new instance of the + class. + + + + + Peforms actions on the service in order to reach the desired status. + + + + + Determines the desired status of the service based on the action + that should be performed on it. + + + The that should be reached + in order for the to be considered successful. + + + + + Starts the service identified by and + . + + instance for controlling the service identified by and . + + + + Stops the service identified by and + . + + instance for controlling the service identified by and . + + + + Restarts the service identified by and + . + + instance for controlling the service identified by and . + + + + Pauses the service identified by and + . + + instance for controlling the service identified by and . + + + + Continues the service identified by and + . + + instance for controlling the service identified by and . + + + + Holds the name of the service that should be controlled. + + + + + Holds the name of the computer on which the service resides. + + + + + Holds the action that should be performed on the service. + + + + + Holds the time, in milliseconds, the task will wait for a service + to reach the desired status. + + + + + The name of the service that should be controlled. + + + + + The name of the computer on which the service resides. The default + is the local computer. + + + + + The action that should be performed on the service. + + + + + The time, in milliseconds, the task will wait for the service to + reach the desired status. The default is 5000 milliseconds. + + + + + Defines the actions that can be performed on a service. + + + + + Starts a service. + + + + + Stops a service. + + + + + Restarts a service. + + + + + Pauses a running service. + + + + + Continues a paused service. + + + + diff --git a/tools/nant/bin/NAnt.NUnit.dll b/tools/nant/bin/NAnt.NUnit.dll new file mode 100644 index 0000000..e78b7b7 Binary files /dev/null and b/tools/nant/bin/NAnt.NUnit.dll differ diff --git a/tools/nant/bin/NAnt.NUnit.xml b/tools/nant/bin/NAnt.NUnit.xml new file mode 100644 index 0000000..39d46d6 --- /dev/null +++ b/tools/nant/bin/NAnt.NUnit.xml @@ -0,0 +1,353 @@ + + + + NAnt.NUnit + + + + + Carries data specified through the formatter element. + + + + + Gets or sets the type of the formatter. + + The type of the formatter. + + + + Gets or sets a value indicating whether output should be persisted + to a file. + + + if output should be written to a file; otherwise, + . The default is . + + + + + Gets or sets the extension to append to the output filename. + + The extension to append to the output filename. + + + + Gets or sets the directory where the output file should be written + to, if is . + + + The directory where the output file should be written to. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + The built-in formatter types. + + + + + A plaintext formatter. + + + + + An XML formatter. + + + + + Represents the FormatterElement of the NUnit task. + + + + + Type of formatter. + + + + + Extension to append to the output filename. + + + + + Determines whether output should be persisted to a file. The default + is . + + + + + Specifies the directory where the output file should be written to, + if is . If not + specified, the output file will be written to the directory where + the test module is located. + + + + + Gets the underlying for the element. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + diff --git a/tools/nant/bin/NAnt.NUnit1Tasks.dll b/tools/nant/bin/NAnt.NUnit1Tasks.dll new file mode 100644 index 0000000..a95b4d0 Binary files /dev/null and b/tools/nant/bin/NAnt.NUnit1Tasks.dll differ diff --git a/tools/nant/bin/NAnt.NUnit1Tasks.xml b/tools/nant/bin/NAnt.NUnit1Tasks.xml new file mode 100644 index 0000000..5df983d --- /dev/null +++ b/tools/nant/bin/NAnt.NUnit1Tasks.xml @@ -0,0 +1,538 @@ + + + + NAnt.NUnit1Tasks + + + + + The whole test suite started. + + + + + The whole test suite ended. + + + + + Sets the the formatter is supposed to write + its results to. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Prints information about running tests directly to the build log. + + + + Not used, all output goes to Log class. + + + Called when the whole test suite has started. + + + Called when the whole test suite has ended. + + + Convert a stack trace line into something that can be clicked on in an IDE output window. + The StackTrace string, see . + The string that gets appended to the end of file(line): portion. + + + + Runs tests using the NUnit V1.0 framework. + + + + See the NUnit home page for more + information. + + + The or + attributes are only used to stop more than one test suite to stop + running. If any test suite fails a build error will be thrown. + Set to to + ignore test errors and continue build. + + + + + Run tests in the MyProject.Tests.dll assembly. + + + The test results are logged in results.xml and results.txt + using the and + formatters, respectively. + + + + + + + + ]]> + + + + + + Stops running tests when a test causes an error. The default is + . + + + Implies haltonfailure. + + + + + Stops running tests if a test fails (errors are considered failures + as well). The default is . + + + + + Cancel the individual tests if they do not finish in the specified + time (measured in milliseconds). Ignored if fork is disabled. + + + + + Tests to run. + + + + + Formatters to output results of unit tests. + + + + + Represents a test element of an . + + + + + Base name of the test result. The full filename is determined by this + attribute and the extension of formatter. + + + + + Directory to write the reports to. + + + + + Class name of the test. + + + + + Assembly to load the test from. + + + + + Run the tests in a separate . + + + + + Stop the build process if an error occurs during the test run. + + + + + Stop the build process if a test fails (errors are considered failures + as well). + + + + + The application configuration file to use for the NUnit test domain. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Carries data specified through the test element. + + + + + Determines if the unit test needs running. + + + if unit test needs running, otherwise, + . + + + + Determines if the test needs running by looking at the date stamp + of the test assembly and the test results log. + + + + + + Runs a Suite extracted from a TestCase subclass. + + + + + Creates the formatters to be used when running this test. + + + + + Returns the output file or null if does not use a file. + + + + + Returns the test suite from a given class. + + + The assemblyQualifiedName parameter needs to be in form: + "full.qualified.class.name,Assembly" + + + + + Gets the collection of registered formatters. + + Collection of registered formatters. + + + + Gets the result of the test. + + The result of the test. + + + + Prints information about running tests in plain text. + + + + Sets the Writer the formatter is supposed to write its results to. + + + Called when the whole test suite has started. + + + Called when the whole test suite has ended. + + + Convert a stack trace line into something that can be clicked on in an IDE output window. + The StackTrace string, see . + The string that gets appended to the end of file(line): portion. + + + + Decorates NUnits with extra information such as + run-time. + + + + + Initializes a new instance of the + class. + + + + + Gets or sets the total run-time of a test. + + The total run-time of a test. + + + + Prints detailed information about running tests in XML format. + + + + + Initializes a new instance of the + class. + + + + + Sets the the formatter is supposed to + write its results to. + + + + + Called when the whole test suite has started. + + + + + Called when the whole test suite has ended. + + + + diff --git a/tools/nant/bin/NAnt.NUnit2Tasks.dll b/tools/nant/bin/NAnt.NUnit2Tasks.dll new file mode 100644 index 0000000..7eab179 Binary files /dev/null and b/tools/nant/bin/NAnt.NUnit2Tasks.dll differ diff --git a/tools/nant/bin/NAnt.NUnit2Tasks.xml b/tools/nant/bin/NAnt.NUnit2Tasks.xml new file mode 100644 index 0000000..14d85b3 --- /dev/null +++ b/tools/nant/bin/NAnt.NUnit2Tasks.xml @@ -0,0 +1,568 @@ + + + + NAnt.NUnit2Tasks + + + + + Controls the categories of tests to execute using the . + + + + Only include test cases and fixtures that require no internet access. + + + + + + ]]> + + + + + Exclude test cases and fixtures that are known to fail. + + + + + + ]]> + + + + + + Specifies a list of categories to include. + + + + + Specifies a list of categories to exclude. + + + + + Represents a certain group of test cases or fixtures. + + + + + A name of a category, or comma-separated list of names. + + + + + If then the category will be processed; + otherwise, skipped. The default is . + + + + + If then the category will be skipped; + otherwise, processed. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Returns a comma-delimited list of categories. + + + A comma-delimited list of categories, or an empty + if there are no categories. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + value is in the collection. + + The argument value to locate in the collection. + + if a with value + is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified name. + + The name of the to get. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Contains a strongly typed collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Runs tests using the NUnit V2.2 framework. + + + + The attribute is only useful when more + than one test suite is used, and you want to continue running other + test suites although a test failed. + + + Set to to + ignore any errors and continue the build. + + + In order to run a test assembly built with NUnit 2.0 or 2.1 using + , you must add the following node to your + test config file : + + + + ... + + + + + + + + + + ... + + ]]> + + + See the NUnit home page for more + information. + + + + + Run tests in the MyProject.Tests.dll assembly. + + + + + + + ]]> + + + + + Only run tests that are not known to fail in files listed in the tests.txt + file. + + + + + + + + + + + + + + ]]> + + + + + + Runs the tests and sets up the formatters. + + + + + Stop the test run if a test fails. The default is . + + + + + Tests to run. + + + + + Formatters to output results of unit tests. + + + + + Represents a test element of an . + + + + + Name of the assembly to search for tests. + + + + + Name of a specific testfixture to run. If not specified then all + testfixtures are run. + + + + + Assemblies to include in test. + + + + + Categories of test cases to include or exclude. + + + + + Build fails on failure. The default is . + + + + + XSLT transform file to use when using the + formatter. + + + + + The application configuration file to use for the NUnit test domain. + If not specified, NAnt will try to use a configuration name matching + the file name of the assembly with extension ".config". + + + + + Gets all assemblies specified for these tests. + + + All assemblies specified for these tests. + + + + + Custom TestDomain, similar to the one included with NUnit, in order + to workaround some limitations in it. + + + + + Initializes a new instance of the + class. + + + + + Runs a single testcase. + + The test assembly. + The application configuration file for the test domain. + + The result of the test. + + + + + Helper class called when an assembly resolve event is raised. + + + + + Initializes an instanse of the + class. + + + + + Called back when the CLR cannot resolve a given assembly. + + The source of the event. + A that contains the event data. + + The MBUnit.Framework we know to be in NAnts bin directory, if + that is the assembly that needs to be resolved; otherwise, + . + + + + + Occurs when an assembly is loaded. The loaded assembly is added + to the assembly cache. + + The source of the event. + An that contains the event data. + + + + Holds the list of directories that will be scanned for missing + assembly references. + + + + + Holds the loaded assemblies. + + + + diff --git a/tools/nant/bin/NAnt.SourceControlTasks.dll b/tools/nant/bin/NAnt.SourceControlTasks.dll new file mode 100644 index 0000000..c44fd3a Binary files /dev/null and b/tools/nant/bin/NAnt.SourceControlTasks.dll differ diff --git a/tools/nant/bin/NAnt.SourceControlTasks.xml b/tools/nant/bin/NAnt.SourceControlTasks.xml new file mode 100644 index 0000000..e8bc766 --- /dev/null +++ b/tools/nant/bin/NAnt.SourceControlTasks.xml @@ -0,0 +1,1285 @@ + + + + NAnt.SourceControlTasks + + + + + A base class for creating tasks for executing CVS client commands on a + CVS repository. + + + + + A base class for creating tasks for executing CVS client commands on a + CVS repository. + + + + + Name of the environmental variable specifying a users' home + in a *nix environment. + + + + + Used on windows to specify the location of application data. + + + + + The environment variable that holds path information. + + + + + The environment variable that holds the location of the + .cvspass file. + + + + + Property name used to specify the source control executable. This is + used as a readonly property. + + + + + Initializes a new instance of the + class. + + + + + Build up the command line arguments, determine which executable is being + used and find the path to that executable and set the working + directory. + + The process to prepare. + + + + Adds a new global option if none exists. If one does exist then + the use switch is toggled on or of. + + The common name of the option. + The option value or command line switch + of the option. + true if the option should be + appended to the commandline, otherwise false. + + + + Adds a new command option if none exists. If one does exist then + the use switch is toggled on or of. + + The common name of the option. + The option value or command line switch + of the option. + true if the option should be + appended to the commandline, otherwise false. + + + + Set up the environment variables for a process. + + A process to setup. + + + + Append the files specified in the fileset to the command line argument. + Files are changed to use a relative path from the working directory + that the task is spawned in. + + + + + Derive the location of the version control system from the environment + variable PATH. + + The file information of the version control system, + or null if this cannot be found. + + + + The name of the passfile, overriden for each version control system (VCS). + + + + + The path to the specific home directory of the version control system, + this can be where the binary files are kept, or other app + information. + + + + + The environment variable that defines where the version control system + (VCS) home variable is kept. + + + + + The name of the version control system (VCS) executable file. + + + + + + The root variable contains information on how to locate a repository. + Although this information is in different formats it typically must + define the following: + + server location + protocol used to communicate with the repository + repository location on the server + project location in the repository + + + + + + + Destination directory for the local sandbox. If destination is not specified + then the current directory is used. + + + Root path of the local sandbox. + + + + Root path of the local sandbox. + + + + + + The password for logging in to the repository. + + + The password for logging in to the repository. + + + + + The full path to the cached password file. If not specified then the + environment variables are used to try and locate the file. + + + + + Holds a collection of globally available options. + + + + + A collection of options that can be used to modify the default behavoir + of the version control commands. See the sub-tasks for implementation + specifics. + + + + + Command-line arguments for the program. The command line arguments are used to specify + any cvs command options that are not available as attributes. These are appended + after the command itself and are additive to whatever attributes are currently specified. + + + <cvs-checkout cvsroot=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant" + module="nant" + destination="e:\test\merillcornish\working" + readonly="true" + quiet="true" + commandline="-n" + cvsfullpath="C:\Program Files\TortoiseCVS\cvs.exe" + /> +
+ Produces the cvs command: + c:\Program Files\TortoiseCVS\cvs.exe -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant -q checkout -n nant +
+
+ + + The name of the command that is going to be executed. + + + + + Used to specify the version control system (VCS) files that are going + to be acted on. + + + + + The executable to use for ssh communication. + + + + + The environment name for the ssh variable. + + + + + The name of the version control system executable. + + + + + Get the command line arguments for the task. + + + + + Default value for the recursive directive. The default is + . + + + + + Default value for the quiet command. + + + + + Default value for the really quiet command. + + + + + An environment variable that holds path information about where + cvs is located. + + + + + Name of the password file that cvs stores pserver + cvsroot/ password pairings. + + + + + The default compression level to use for cvs commands. + + + + + The default use of binaries, defaults to use sharpcvs. + + + + + The name of the cvs executable. + + + + + The temporary name of the sharpcvslib binary file, to avoid + conflicts in the path variable. + + + + + Environment variable that holds the executable name that is used for + ssh communication. + + + + + Property name used to specify on a project level whether sharpcvs is + used or not. + + + + + Initializes a new instance of the + class. + + + + + Build up the command line arguments, determine which executable is being + used and find the path to that executable and set the working + directory. + + The process to prepare. + + + + Override to append any commands before the modele and files. + + + + + Append the command line options or commen names for the options + to the generic options collection. This is then piped to the + command line as a switch. + + + + + Add the given argument to the command line options. Note that are not explicitly + quoted are split into seperate arguments. This is to resolve a recent issue + with quoting command line arguments. + + + + + + The environment name for the ssh variable. + + + + + The name of the cvs binary, or cvs.exe at the time this + was written. + + + + + The name of the pass file, or .cvspass at the time + of this writing. + + + + + The name of the version control system specific home environment + variable. + + + + + Specify if the module is needed for this cvs command. It is + only needed if there is no module information on the local file + system. + + + + + Used to specify the version control system (VCS) files that are going + to be acted on. + + + + + Get the cvs file set. + + + + + The name of the cvs executable. + + + + + The full path to the cvs binary used. The cvs tasks will attempt to + "guess" the location of your cvs binary based on your path. If the + task is unable to resolve the location, or resolves it incorrectly + this can be used to manually specify the path. + + + A full path (i.e. including file name) of your cvs binary: + On Windows: c:\vcs\cvs\cvs.exe + On *nix: /usr/bin/cvs + + + + + + The cvs root variable has the following components: + + + [protocol]:[username]@[servername]:[server path] +
    +
  • protocol: ext, pserver, ssh (sharpcvslib); if you are not using sharpcvslib consult your cvs documentation.
  • +
  • username: [username]
  • +
  • servername: cvs.sourceforge.net
  • +
  • server path: /cvsroot/nant
  • +
+
+
+ + NAnt anonymous cvsroot: + + :pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant + + +
+ + + The module to perform an operation on. + + + The module to perform an operation on. This is a normal file/folder + name without path information. + + + In NAnt the module name would be: + nant + + + + + + if the SharpCvsLib binaries that come bundled + with NAnt should be used to perform the cvs commands, + otherwise. + + + You may also specify an override value for all cvs tasks instead + of specifying a value for each. To do this set the property + sourcecontrol.usesharpcvslib to . + + + If you choose not to use SharpCvsLib to checkout from cvs you will + need to include a cvs.exe binary in your path. + + + + To use a cvs client in your path instead of sharpcvslib specify + the property: + >property name="sourcecontrol.usesharpcvslib" value="false"< + + The default settings is to use sharpcvslib and the setting closest + to the task execution is used to determine which value is used + to execute the process. + + For instance if the attribute usesharpcvslib was set to false + and the global property was set to true, the usesharpcvslib is + closes to the point of execution and would be used and is false. + Therefore the sharpcvslib binary would NOT be used. + + + + + The executable to use for ssh communication. + + + + + Indicates if the output from the cvs command should be supressed. + The default is . + + + + + Indicates if the output from the cvs command should be stopped. + The default is . + + + + + if the sandbox files should be checked out in + read only mode. The default is . + + + + + if the sandbox files should be checked out in + read/write mode. The default is . + + + + + Compression level to use for all net traffic. This should be a value from 1-9. +
+
+ NOTE: This is not available on sharpcvslib. +
+
+ + + Produces an XML report that represents the cvs changes from the given + start day, to a given end date. + + + Report changes in NAnt from 1st of June 2004 until 25th of July 2004. + + + ]]> + + + + + + The command being executed. + + + + + Name of the xml file that will contain the cvs log information. + + + + + The earliest change to use in the cvs log command. + + + + + The latest date to use in the cvs log command. + + + + + The cvs command to execute. + + + + + Override use of sharpcvslib, needs to be true. + + + + + + The cvs root variable has the following components: + + + [protocol]:[username]@[servername]:[server path] +
    +
  • protocol: ext, pserver, ssh (sharpcvslib); if you are not using sharpcvslib consult your cvs documentation.
  • +
  • username: [username]
  • +
  • servername: cvs.sourceforge.net
  • +
  • server path: /cvsroot/nant
  • +
+
+ + If the cvsroot is not specified then the directory specified by the + attribute + is searched for CVS\Root. + +
+ + NAnt anonymous cvsroot: + + :pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant + + +
+ + + Checks out a CVS module to the required directory. + + + Checkout NAnt. + + + ]]> + + + + + Checkout NAnt revision named 0_85 to the + folder c:\src\nant\v0.85. + + + + ]]> + + So the nant module tagged with revision 0_85 will be checked + out in the folder v0.85 under the working/ destination directory. +
This could be used to work on different + branches of a repository at the same time.
+
+ + + Checkout NAnt with specified revision date to the + folder c:\src\nant\2003_08_16. + + + + ]]> + + +
+ + + The command being executed. + + + + + Initializes a new instance of the class. + + + + + Specify the revision to checkout. This corresponds to the "sticky-tag" + of the file. + + + + + Sticky tag or revision to checkout. + + + + + Specify the revision date to checkout. The date specified is validated + and then passed to the cvs binary in a standard format recognized by + cvs. + + + + + Specify a directory name to replace the module name. Valid names + include any valid filename, excluding path information. + + + + + Specify a directory name to replace the module name. Valid names + include any valid filename, excluding path information. + + + + + The name of the cvs command that is going to be executed. + + + + + Executes the cvs login command which appends or updates an entry to the + specified .cvspass file. + + + Update .cvspass file to include the NAnt anonymous login. + + + ]]> + + + + + + Ensures all information is available to execute the . + + The used to initialize the . + + + + Update the .cvspass file with the given password. If the passfile + is not specified then the default search locations are used: + + CVS_PASSFILE/.cvspass + HOME/.cvspass + USERPROFILE/.cvspass TODO: Confirm that this is valid + behavior or if it is going to give problems with the + cvsnt implementation. + + + + + + Password to append or update to the .cvspass file. + + + + + The full path to the .cvspass file. The default is ~/.cvspass. + + + + + + The current working directory. + + + + + The repository root string. + + + + + Executes the cvs command specified by the command attribute. + + + Checkout NAnt. + + + ]]> + + + + + + The cvs command to execute. + + + + + Specify if the module is needed for this cvs command. + + + + + Exports a cvs module in preperation for a release (i.e. the CVS version + folders are not exported). + + + Export the most recent NAnt sources from cvs. + + + ]]> + + + + + Export NAnt revision named your_favorite_revision_here to the + folder c:\src\nant\replacement_for_module_directory_name. + + **NOTE**: filesets names for the export task must be + prefixed with the module name. This is different than other tasks. + + + + + + + + + ]]> + + + + + + The command being executed. + + + + + Create a new instance of the . + + + The following values are set by default: +
    +
  • Recursive:
  • +
+
+
+ + + No shortening. Do not shorten module paths if -d specified. + + + + + Indicates whether the head revision should be used if the revison specified by + or the tags are not + found. The default is . + + + if the specified tag should be moved; + otherwise, . The default is . + + + + + If a directory is specified indicates whether sub-directories should + also be processed. + + + if the sub-directories should be tagged; + otherwise, . The default is . + + + + + Specify the revision to update the file to. This corresponds to the "sticky-tag" + of the file. + + + + + Specify the revision date to update to. The version of the file that + existed at the date specified is retrieved. + + + A valid date time value, which is then converted to a format that + cvs can parse. + + + + + Specify a directory name to replace the module name. Valid names + include any valid filename, excluding path information. + + + + + The export command name for the cvs client. + + + + + Tags all sources in the remote repository with a given tag. + + + + Unlike tag, the rtag command acts only on sources that are in the repository. + Any modified sources on the local file system will NOT be tagged with this + command, so a commit should be performed before an rtag is done. + + + NOTE: Although a working directory is not necessary to perform the command + one must be specified in order to remain in compliance with the cvs library. + + + + Tag NAnt sources remotely. + + + ]]> + + + + Remove a tag from the remote repository. + + + ]]> + + + + + + Initializes a new instance of the + class. + + + + + Append the tag information to the commandline. + + + + + The name of the tag to assign or remove. + + + The name of the tag to assign or remove. + + + + + Indicates whether the tag specified in should + be removed or not. + + + if the specified tag should be removed; + otherwise, . The default is . + + + + + Indicates whether the tag specified in should + be moved to the current file revision. If the tag does not exist + then it is created. + + + if the specified tag should be moved; + otherwise, . The default is . + + + + + If a directory is specified indicates whether sub-directories should + also be processed. + + + if the sub-directories should be tagged; + otherwise, . The default is . + + + + + Indicates the repository that is acted on + for the tag command. Note if is + then the tag specified is moved to the revision + of the file on the HEAD of the branch specified. + + + The tag (or more likely) branch that should be used to apply the new tag. + + + + + Indicates the revision date of the file that the tag should be + applied to. + + + A valid date which specifies the revision point that the tag will + be applied to. + + + + + Indicates whether the head revision should be used if the + or the tags are not + found. + + + if the specified tag should be moved; + otherwise, . The default is . + + + + + The name of the cvs command that is going to be executed. + + + + + Tags all local sources with the specified tag. + + + + This differs from the + in that it acts on references to the cvs files + contained in your local filesystem. As such the sticky tags and local + revisions can be considered in commits. It also allows you to verify that + all local files have been checked in before a tag is performed. + + + + Tag NAnt sources remotely. + + + ]]> + + + + Remove a tag from the remote repository. + + + ]]> + + + + + + Cvs command to be executed. + + + + + Initializes a new instance of the + class. + + + + + Append the tag information to the commandline. + + + + + The name of the tag to assign or remove. + + + The name of the tag to assign or remove. + + + + + Indicates whether the tag specified in should + be removed or not. + + + if the specified tag should be removed; + otherwise, . The default is . + + + + + Indicates whether the tag specified in should + be moved to the current file revision. If the tag does not exist + then it is created. + + + if the specified tag should be moved; + otherwise, . The default is . + + + + + If a directory is specified indicates whether sub-directories should + also be processed. + + + if the sub-directories should be tagged; + otherwise, . The default is . + + + + + Indicates the repository that is acted on + for the tag command. Note if is + then the tag specified is moved to the revision + of the file on the HEAD of the branch specified. + + + The tag (or more likely) branch that should be used to apply the new tag. + + + + + Indicates the revision date of the file that the tag should be + applied to. + + + A valid date which specifies the revision point that the tag will + be applied to. + + + + + Indicates whether the head revision should be used if the revision specified by + or the tags are not + found. + + + if the specified tag should be moved; + otherwise, . The default is . + + + + + Indicates whether the head revision should be used if the + or the tags are not + found. + + + if the specified tag should be moved; + otherwise, . The default is . + + + + + The name of the cvs command that is going to be executed. + + + + + Not used + + + + + Specify if the module is needed for this cvs command. It is + only needed if there is no module information on the local file + system. + + + + + Updates a CVS module in a local working directory. + + + Update nant. + + + ]]> + + + + + Update your NAnt revision named your_favorite_revision_here in + the folder c:\src\nant\replacement_for_module_directory_name. + + + + + + + + ]]> + + + + + + The command being executed. + + + + + Initializes a new instance of the + class. + + + Sets the build directory and prune empty directory properties to + . + + + + + If . new directories will be created on the local + sandbox. The default is . + + + + + If empty directories copied down from the + remote repository will be removed from the local sandbox. + The default is . + + + + + If the local copy of the file will be + overwritten with the copy from the remote repository. The default + is . + + + + + Specifies if the command should be executed recursively. The + default is . + + + The -R option is on by default in cvs. + + + + + Specify the revision to update the file to. This corresponds to the + "sticky-tag" of the file. + + + + + Sticky tag or revision to update the local file to. + + + A valid cvs tag. + + + + + Specify the revision date to update to. The version of the file that + existed at the date specified is retrieved. + + + A valid date time value, which is then converted to a format that + cvs can parse. + + + + + Specify if the module is needed for this cvs command. It is + only needed if there is no module information on the local file + system. + + + + + The name of the cvs command that is going to be executed. + + + + + A is a with extra + attributes useful in the context of the . + + + + + Initialize the object and locate the .cvsignore + files to add to the exclude list. + + + + + + Indicates whether the entires in the .cvsignore should be used to limit the + file list; to exclude files in .cvsignore, otherwise + . The default is . + + +
+
diff --git a/tools/nant/bin/NAnt.VSNetTasks.dll b/tools/nant/bin/NAnt.VSNetTasks.dll new file mode 100644 index 0000000..da9d975 Binary files /dev/null and b/tools/nant/bin/NAnt.VSNetTasks.dll differ diff --git a/tools/nant/bin/NAnt.VSNetTasks.xml b/tools/nant/bin/NAnt.VSNetTasks.xml new file mode 100644 index 0000000..a782968 --- /dev/null +++ b/tools/nant/bin/NAnt.VSNetTasks.xml @@ -0,0 +1,3881 @@ + + + + NAnt.VSNetTasks + + + + + Analyses Microsoft Visual Studio .NET 2003 (Everett) solution files. + + + + + Gets the project file of the project with the given unique identifier. + + The unique identifier of the project for which the project file should be retrieves. + + The project file of the project with the given unique identifier. + + No project with unique identifier could be located. + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to be logged. + + The actual logging is delegated to the underlying task. + + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to log, containing zero or more format items. + An array containing zero or more objects to format. + + The actual logging is delegated to the underlying task. + + + + + Loads the projects from the file system and stores them in an + instance variable. + + instance to use to determine whether an assembly is located in the Global Assembly Cache. + instance to use to determine location and references of assemblies. + TODO + A project GUID in the solution file does not match the actual GUID of the project in the project file. + + + + Translates a project path, in the form of a relative file path or + a URL, to an absolute file path. + + The directory of the solution. + The project path to translate to an absolute file path. + + The project path translated to an absolute file path. + + + + + Converts assembly references to projects to project references, adding + a build dependency.c + + The to analyze. + The solution configuration that is built. + containing list of projects that have been built. + containing list of projects that failed to build. + + + + Determines whether any of the project dependencies of the specified + project still needs to be built. + + The to analyze. + containing list of projects that have been built. + + if one of the project dependencies has not + yet been built; otherwise, . + + + + + Gets or sets the in memory representation of the project. + + + The in memory representation of the project, or + if the project is not (yet) loaded. + + + This property will always be for + projects that are not supported. + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + + The position into which the new element was inserted. + + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + GUID is in the collection, using a case-insensitive lookup. + + The GUID to locate in the collection. + + if a with GUID + is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified GUID. + + The GUID of the to get. + + Performs a case-insensitive lookup. + + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Analyses Microsoft Visual Studio .NET 2002 (Rainier) solution files. + + + + + Compiles VS.NET solutions (or sets of projects), automatically determining + project dependencies from inter-project references. + + + + This task support the following projects: + + + + Visual Basic .NET + + + Visual C# .NET + + + Visual J# .NET + + + Visual C++ .NET + + + + Right now, only Microsoft Visual Studio .NET 2002 and 2003 solutions + and projects are supported. Support for .NET Compact Framework projects + is also not available at this time. + + + The also supports the model of referencing + projects by their output filenames, rather than referencing them inside + the solution. It will automatically detect the existance of a file + reference and convert it to a project reference. For example, if project + "A" references the file in the release output directory of + project "B", the will automatically + convert this to a project dependency on project "B" and will + reference the appropriate configuration output directory at the final + build time (ie: reference the debug version of "B" if the + solution is built as debug). + + + The expects all project files to be valid + XML files. + +

Resx Files

+ + When building a project for a down-level target framework, special care + should be given to resx files. Resx files (can) contain references to + a specific version of CLR types, and as such are only upward compatible. + + + For example: if you want to be able to build a project both as a .NET 1.0 + and .NET 1.1 assembly, the resx files should only contain references to + .NET 1.0 CLR types. Failure to do this may result in a + failure at runtime on machines with only the .NET Framework 1.0 installed. + +
+ + + Compiles all of the projects in test.sln, in release mode, in + the proper order. + + + + ]]> + + + + + Compiles all of the projects in projects.txt, in the proper + order. + + + + + + + + ]]> + + + + + Compiles projects A, B and C, using the output of project X as a + reference. + + + + + + + + + + + + + ]]> + + + + + Compiles all of the projects in the solution except for project A. + + + + + + + + ]]> + + + + + Compiles all of the projects in the solution mapping the specific project at + http://localhost/A/A.csproj to c:\inetpub\wwwroot\A\A.csproj and any URLs under + http://localhost/B/[remainder] to c:\other\B\[remainder]. This allows the build + to work without WebDAV. + + + + + + + + + ]]> + + + + + Compiles all of the projects in the solution placing compiled outputs + in c:\temp. + + + ]]> + + +
+ + + Initializes a new instance of the class. + + + + + Expands the given macro. + + The macro to expand. + + The expanded macro or if the macro is not + supported. + + The macro cannot be expanded. + + + + Builds the list of folders that should be scanned for assembly + references. + + + The list of folders that should be scanned for assembly references. + + + + + The projects to build. + + + + + The projects to scan, but not build. + + + These projects are used to resolve project references and are + generally external to the solution being built. References to + these project's output files are converted to use the appropriate + solution configuration at build time. + + + + + The name of the VS.NET solution file to build. + + + + The can be used instead to supply a list + of Visual Studio.NET projects that should be built. + + + + + + The name of the solution configuration to build. + + + + Generally release or debug. Not case-sensitive. + + + + + + The directory where compiled targets will be placed. This + overrides path settings contained in the solution/project. + + + + + WebMap of URL's to project references. + + + + + Fileset of projects to exclude. + + + + + Set of folders where references are searched when not found in path + from project file (HintPath). + + + + + Includes Visual Studio search folders in reference search path. + The default is . + + + + + Allow the task to use WebDAV for retrieving/compiling the projects within solution. Use of + is preferred over WebDAV. The default is . + + + WebDAV support requires permission changes to be made on your project server. These changes may affect + the security of the server and should not be applied to a public installation. + Consult your web server or the NAnt Wiki documentation for more information. + + + + + Gets the list of folders to scan for assembly references. + + + The list of folders to scan for assembly references. + + + + + Defines how the project is using the ATL library. + + + + + Don't use ATL. + + + + + Use ATL in a Static Library. + + + + + Use ATL in a Shared DLL. + + + + + Defines how the project is using the MFC library. + + + + + Don't use MFC. + + + + + Use MFC in a Static Library. + + + + + Use MFC in a Shared DLL. + + + + + Indicates the possible ways in which precompiled header file use is + specified in a Visual C++ project. + + + The integer values assigned match those specified in the Visual C++ + project file for each setting. + > + + + + Precompiled header file use not specified. + + + + + Don't use a precompiled header file. + + + For further information on the use of this option + see the Microsoft documentation on the C++ compiler flag /Yc. + + + + + Create precompiled header file. + + + For further information on the use of this option + see the Microsoft documentation on the C++ compiler flag /Yc. + + + + + Automatically create precompiled header file if necessary. + + + For further information on the use of this option + see the Microsoft documentation on the C++ compiler flag /Yc. + + + + + Use a precompiled header file. + + + For further information on the use of this option + see the Microsoft documentation on the C++ compiler flag /Yu. + + + + + Represents a single mapping from URL project path to physical project + path. + + + + + Specifies the URL of the project file, or a URL fragment to match. + + + The URL of the project file or the URL fragment to match. + + + + + Specifies the actual path to the project file, or the path fragment + to replace. + + + The actual path to the project file or the path fragment to replace + the URL fragment with. + + + + + Specifies whether the mapping is case-sensitive or not. + + + A boolean flag representing the case-sensitivity of the mapping. Default is . + + + + + Indicates if the URL of the project file should be mapped. + + + if the URL of the project file should be + mapped; otherwise, . + + + + + Indicates if the URL of the project file should not be mapped. + + + if the URL of the project file should not + be mapped; otherwise, . + + + + + Contains a strongly typed collection of + objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Find the best matching for the given Uri. + + The value to match against the objects in the collection. + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + value is in the collection. + + The argument value to locate in the collection. + + if a with value + is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified value. + + The value of the to get. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Gets the output path of the reference, without taking the "copy local" + setting into consideration. + + The solution configuration that is built. + + The full output path of the reference. + + + + + Gets the complete set of output files of the reference for the + specified configuration. + + The solution configuration that is built. + The set of output files to be updated. + + The key of the case-insensitive is the + full path of the output file and the value is the path relative to + the output directory. + + + + + Gets the complete set of assemblies that need to be referenced when + a project references this component. + + The solution configuration that is built. + + The complete set of assemblies that need to be referenced when a + project references this component. + + + + + Gets the timestamp of the reference. + + The solution configuration that is built. + + The timestamp of the reference. + + + + + Gets a value indicating whether the reference is managed for the + specified configuration. + + The solution configuration that is built. + + if the reference is managed for the + specified configuration; otherwise, . + + + + + Returns the date and time the specified file was last written to. + + The file for which to obtain write date and time information. + + A structure set to the date and time that + the specified file was last written to, or + if the specified file does not + exist. + + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to be logged. + + The actual logging is delegated to the underlying task. + + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to log, containing zero or more format items. + An array containing zero or more objects to format. + + The actual logging is delegated to the underlying task. + + + + + Gets a value indicating whether the output file(s) of this reference + should be copied locally. + + + if the output file(s) of this reference + should be copied locally; otherwise, . + + + + + Gets a value indicating whether this reference represents a system + assembly. + + + if this reference represents a system + assembly; otherwise, . + + + + + Gets the project in which the reference is defined. + + + + + Gets a value indicating whether the reference is managed for the + specified configuration. + + The build configuration of the reference. + + . + + + + + Gets the complete set of output files for the specified assembly + and adds them to collection. + + The path of the assembly to get the output files for. + The set of output files to be updated. + + The key of the case-insensitive is the + full path of the output file and the value is the path relative to + the output directory. + + + + + Gets the path of the reference, without taking the "copy local" + setting into consideration. + + The solution configuration that is built. + + The output path of the reference. + + + + + Gets the complete set of output files for the referenced project. + + The solution configuration that is built. + The set of output files to be updated. + + The key of the case-insensitive is the + full path of the output file and the value is the path relative to + the output directory. + + + + + Gets the complete set of assemblies that need to be referenced when + a project references this component. + + The solution configuration that is built. + + The complete set of assemblies that need to be referenced when a + project references this component. + + + + + Gets the timestamp of the reference. + + The solution configuration that is built. + + The timestamp of the reference. + + + + + Resolves an assembly reference. + + + The full path to the resolved assembly, or + if the assembly reference could not be resolved. + + + + + Searches for the given file in all paths in . + + The folders to search. + The file to search for. + + The path of the assembly if was found + in ; otherwise, . + + + + + Resolves an assembly reference in the framework assembly directory + of the target framework. + + The file to search for. + + The full path of the assembly file if the assembly could be located + in the framework assembly directory; otherwise, . + + + + + Resolves an assembly reference using a path relative to the project + directory. + + + The full path of the assembly, or if + is or an + empty . + + + + + Gets a value indicating whether the output file(s) of this reference + should be copied locally. + + + if the output file(s) of this reference + should be copied locally; otherwise, . + + + + + Gets a value indicating whether this reference represents a system + assembly. + + + if this reference represents a system + assembly; otherwise, . + + + + + Base class for all project classes. + + + + + Initializes a new instance of the class. + + + + + Gets the complete set of output files for the project. + configuration. + + The solution configuration that is built. + The set of output files to be updated. + + The key of the case-insensitive is the + full path of the output file and the value is the path relative to + the output directory. + + + + + Gets a value indicating whether building the project for the specified + build configuration results in managed output. + + The build configuration. + + if the project output for the given build + configuration is managed; otherwise, . + + + + + Expands the given macro. + + The macro to expand. + + The expanded macro or if the macro is not + supported. + + + + + Returns the Visual Studio product version of the specified project + XML fragment. + + XML fragment representing the project file. + + The Visual Studio product version of the specified project XML + file. + + + The product version could not be determined. + -or- + The product version is not supported. + + + + + Verifies whether the specified XML fragment represents a valid project + that is supported by this . + + XML fragment representing the project file. + + The XML fragment is not supported by this . + -or- + The XML fragment does not represent a valid project (for this ). + + + + + Prepares the project for being built. + + The solution configuration that is built. + + The default implementation will ensure that none of the output files + are marked read-only. + + + + + Copies the specified file if the destination file does not exist, or + the source file has been modified since it was previously copied. + + The file to copy. + The destination file. + The in which context the operation will be performed. + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to be logged. + + The actual logging is delegated to the underlying task. + + + + + Logs a message with the given priority. + + The message priority at which the specified message is to be logged. + The message to log, containing zero or more format items. + An array containing zero or more objects to format. + + The actual logging is delegated to the underlying task. + + + + + Gets the Visual Studio product version of the project. + + + The Visual Studio product version of the project. + + + + + Gets the name of the VS.NET project. + + + + + Gets the type of the project. + + + The type of the project. + + + + + Gets the path of the VS.NET project. + + + + + Gets the directory containing the VS.NET project. + + + + + Get the location of the project. + + + + + Get the directory in which intermediate build output that is not + specific to the build configuration will be stored. + + + + For projects, this is defined + as <Project Directory<\obj. + + + For projects, this is defined + as %HOMEPATH%\VSWebCache\<Machine Name>\<Project Directory>\obj. + + + + + + Gets or sets the unique identifier of the VS.NET project. + + + + + Gets a case-insensitive list of project configurations. + + + The key of the is the name of the + configuration and the value is a + instance. + + + + + Gets a list of project configurations that can be build. + + + + Project configurations that are not in this list do not need to be + compiled (unless the project was not loaded through a solution file). + + + The key of the is the name of the + configuration and the value is a + instance. + + + + + + Gets the extra set of output files for the project. + + + The extra set of output files for the project. + + + The key of the case-insensitive is the + full path of the output file and the value is the path relative to + the output directory. + + + + + Gets the set of projects that the project depends on. + + + The set of projects that the project depends on. + + + + + TODO: refactor this !!! + + + + + Gets a value indicating whether building the project for the specified + build configuration results in managed output. + + The solution configuration that is built. + + . + + + + + Prepares the project for being built. + + The solution configuration that is built. + + Ensures the configuration-level object directory exists and ensures + that none of the output files are marked read-only. + + + + + Returns a for launching the compiler + for this project. + + The configuration to build. + The response file for the compiler. + + A for launching the compiler for + this project. + + + + + Returns the project location from the specified project XML fragment. + + XML fragment representing the project file. + + The project location of the specified project XML file. + + + The project location could not be determined. + -or- + The project location is invalid. + + + + + Gets the absolute path of the type library for the project + output. + + The configuration to build. + + The absolute path of the type library for the project output. + + + + + Generates a type library for the specified assembly, registers it. + + The project configuration that is built. + The path of the type library to generate. + + The regasm tool is used to generate the type library. + + + + + Unregister a type library for the specified assembly, and the types + in that assembly. + + The project configuration that is built. + + The regasm tool is used to unregister the type library, and + remove the COM registration for types in the specified assembly. + + + + + Returns containing culture-specific resources. + + + A containing culture-specific resources. + + + The key of the is + and the value is an instance + for that culture. + + + + + Creates and initializes a instance. + + + An initialized instance. + + + + + Returns the Visual Studio product version of the specified project + XML fragment. + + XML fragment representing the project to check. + + The Visual Studio product version of the specified project XML + fragment. + + + The product version could not be determined. + -or- + The product version is not supported. + + + + + Returns the of the specified project + XML fragment. + + XML fragment representing the project to check. + + The of the specified project XML + fragment. + + + The project location could not be determined. + -or- + The project location is invalid. + + + + + Holds a case-insensitive list of source files. + + + The key of the is the full path of the + source file and the value is . + + + + + Gets the default file extension of sources for this project. + + + The default file extension of sources for this project. + + + + + Gets a value indicating if this is a web project. + + + if this is a web project; otherwise, + . + + + If the url of a web project has been mapped to a local path + (using the <webmap> element), then this property will return + for a + project. + + + + + Gets the name of the VS.NET project. + + + + + Gets the path of the VS.NET project. + + + + + Gets the directory containing the VS.NET project. + + + + + Get the location of the project. + + + + + Gets or sets the unique identifier of the VS.NET project. + + + + + Groups a set of instances for a specific + culture. + + + + + Initializes a new instance + for the specified culture. + + A . + + + + Gets the intermediate build directory in which the satellite + assembly is built. + + The project build configuration. + + The intermediate build directory in which the satellite assembly + is built. + + + + + Gets a representing the path to the + intermediate file location of the satellite assembly. + + The project build configuration. + The project settings. + + A representing the path to the + intermediate file location of the satellite assembly. + + + + + Gets path of the satellite assembly, relative to the output + directory. + + The project settings. + + The path of the satellite assembly, relative to the output + directory. + + + + + Gets the of the + . + + + + + Gets the set of localized resources. + + + + + Verifies whether the specified XML fragment represents a valid project + that is supported by this . + + XML fragment representing the project file. + + The XML fragment is not supported by this . + -or- + The XML fragment does not represent a valid project (for this ). + + + + + Returns the Visual Studio product version of the specified project + XML fragment. + + The document element of the project. + + The Visual Studio product version of the specified project XML + fragment. + + + The product version could not be determined. + -or- + The product version is not supported. + + + + + Returns a for launching the compiler + for this project. + + The configuration to build. + The response file for the compiler. + + A for launching the compiler for + this project. + + + + + Returns the project location from the specified project XML fragment. + + XML fragment representing the project file. + + The project location of the specified project XML file. + + + The project location could not be determined. + -or- + The project location is invalid. + + + + + Returns a value indicating whether the project represented by the + specified XML fragment is supported by . + + XML fragment representing the project to check. + + if supports + the specified project; otherwise, . + + + + A project is identified as as C# project, if the XML fragment at + least has the following information: + + + + + ... + + + ]]> + + + + + + Gets the type of the project. + + + The type of the project. + + + + + Gets the default file extension of sources for this project. + + + For C# projects, the default file extension is ".cs". + + + + + Initializes a new instance of the + class with the given . + + The project of the configuration. + + + + Expands the given macro. + + The macro to expand. + + The expanded macro. + + + The macro is not supported. + -or- + The macro is not implemented. + -or- + The macro cannot be expanded. + + + Expansion of a given macro is not yet implemented. + + + + + Is called each time a regular expression match is found during a + operation. + + The resulting from a single regular expression match during a . + + The expanded . + + + + + Gets the project. + + + + + Gets the name of the configuration. + + + + + Get the directory in which intermediate build output will be stored + for this configuration. + + + + This is a directory relative to the project directory named + obj\<configuration name>. + + + .resx and .licx files will only be recompiled if the + compiled resource files in the are not + uptodate. + + + + + + Gets the output directory. + + + + + Gets the path for the output file. + + + + + Gets the path in which the output file will be created before its + copied to the actual output path. + + + + + Get the path of the output directory relative to the project + directory. + + + + + Gets the platform that the configuration targets. + + + The platform targeted by the configuration. + + + + + Gets the set of output files that is specific to the project + configuration. + + + The set of output files that is specific to the project + configuration. + + + The key of the case-insensitive is the + full path of the output file and the value is the path relative to + the output directory. + + + + + Gets the platform that the configuration targets. + + + The platform targeted by the configuration. + + + + + Gets the path in which the output file will be created before its + copied to the actual output path. + + + + + Gets a value indicating whether to register the project output for + use with COM components. + + + if the project output should be registered + for use with COM components; otherwise, . + + + + + Supports grouping of individual projects, and treating them as a solution. + + + + + Verifies whether the specified XML fragment represents a valid project + that is supported by this . + + XML fragment representing the project file. + + The XML fragment is not supported by this . + -or- + The XML fragment does not represent a valid project (for this ). + + + + + Returns the Visual Studio product version of the specified project + XML fragment. + + The document element of the project. + + The Visual Studio product version of the specified project XML + fragment. + + + The product version could not be determined. + -or- + The product version is not supported. + + + + + Prepares the project for being built. + + The solution configuration that is built. + + Ensures the configuration-level object directory exists and ensures + that none of the output files are marked read-only. + + + + + Returns a for launching the compiler + for this project. + + The configuration to build. + The response file for the compiler. + + A for launching the compiler for + this project. + + + + + Returns the project location from the specified project XML fragment. + + XML fragment representing the project file. + + The project location of the specified project XML file. + + + The project location could not be determined. + -or- + The project location is invalid. + + + + + Returns a value indicating whether the project represented by the + specified XML fragment is supported by . + + XML fragment representing the project to check. + + if supports + the specified project; otherwise, . + + + + A project is identified as as J# project, if the XML fragment at + least has the following information: + + + + + ... + + + ]]> + + + + + + Gets the type of the project. + + + The type of the project. + + + + + Gets the default file extension of sources for this project. + + + For J# projects, the default file extension is ".jsl". + + + + + Resolves an assembly reference. + + + The full path to the resolved assembly, or + if the assembly reference could not be resolved. + + + + Visual Studio .NET uses the following search mechanism : + + + + + The project directory. + + + + + The directories specified in the "ReferencePath" property, + which is stored in the .USER file. + + + + + The .NET Framework directory (see KB306149) + + + + + + The directories specified under the following registry + keys: + + + + + HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders + + + + + HKCU\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders + + + + + HKLM\SOFTWARE\Microsoft\VisualStudio\<major version>.<minor version>\AssemblyFolders + + + + + HKCU\SOFTWARE\Microsoft\VisualStudio\<major version>.<minor version>\AssemblyFolders + + + + + Future versions of Visual Studio .NET will also check + in: + + + + + HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFoldersEx + + + + + HKCU\SOFTWARE\Microsoft\.NETFramework\AssemblyFoldersEx + + + + + + + + The HintPath. + + + + + + + + Gets the name of the referenced assembly. + + + The name of the referenced assembly, or if + the name could not be determined. + + + + + Gets the Visual Studio .NET AssemblyFolders registry key matching + the current target framework. + + + The Visual Studio .NET AssemblyFolders registry key matching the + current target framework. + + The current target framework is not supported. + + We use the target framework instead of the product version of the + containing project file to determine what registry key to scan, as + we don't want to use assemblies meant for uplevel framework versions. + + + + + Indentifies the different output types of a managed project. + + + Visual Studio .NET does not support modules. + + + + + A class library. + + + + + A console application. + + + + + A Windows program. + + + + + Gets the output path of the reference, without taking the "copy local" + setting into consideration. + + The solution configuration that is built. + + The output path of the reference. + + + + + Gets the complete set of output files for the referenced project. + + The solution configuration that is built. + The set of output files to be updated. + + The complete set of output files for the referenced project. + + + The key of the case-insensitive is the + full path of the output file and the value is the path relative to + the output directory. + + + + + Gets the complete set of assemblies that need to be referenced when + a project references this project. + + The solution configuration that is built. + + The complete set of assemblies that need to be referenced when a + project references this project. + + + + Apparently, there's some hack in VB.NET that allows a type to be used + that derives from a type in an assembly that is not referenced by the + project. + + + When building from the command line (using vbc), the following error + is reported "error BC30007: Reference required to assembly 'X' + containing the base class 'X'. Add one to your project". + + + Somehow VB.NET can workaround this issue, without actually adding a + reference to that assembly. I verified this with both VS.NET 2003 and + VS.NET 2005. + + + For now, we have no other option than to return all assembly + references of the referenced project if the parent is a VB.NET + project. + + + + + + Gets the timestamp of the reference. + + The solution configuration that is built. + + The timestamp of the reference. + + + + + Gets a value indicating whether the output file(s) of this reference + should be copied locally. + + + if the output file(s) of this reference + should be copied locally; otherwise, . + + + + + Gets a value indicating whether this reference represents a system + assembly. + + + as a project by itself can never be a + system assembly. + + + + + Gets a value indicating whether the reference is managed for the + specified configuration. + + The solution configuration that is built. + + . + + + + + Gets the path of the reference, without taking the "copy local" + setting into consideration. + + The solution configuration that is built. + + The output path of the reference. + + + + + Gets the complete set of output files for the referenced project. + + The solution configuration that is built. + The set of output files to be updated. + + The key of the case-insensitive is the + full path of the output file and the value is the path relative to + the output directory. + + + + + Gets the complete set of assemblies that need to be referenced when + a project references this component. + + The solution configuration that is built. + + The complete set of assemblies that need to be referenced when a + project references this component. + + + + + Gets the timestamp of the reference. + + The solution configuration that is built. + + The timestamp of the reference. + + + + + Removes wrapper assembly from build directory, if wrapper assembly + no longer exists in output directory or is not in sync with build + directory, to force rebuild. + + The project configuration. + + + + Gets a value indicating whether the output file(s) of this reference + should be copied locally. + + + if the reference wraps a Primary Interop + Assembly; otherwise, . + + + + + Gets a value indicating whether this reference represents a system + assembly. + + + as none of the system assemblies are wrappers + or Primary Interop Assemblies anyway. + + + + + Gets the name of the tool that should be used to create the + . + + + The name of the tool that should be used to create the + . + + + + + Gets the path of the wrapper assembly. + + + The path of the wrapper assembly. + + + The wrapper assembly is stored in the object directory of the + project. + + + + + Gets a value indicating whether the wrapper assembly has already been + created. + + + + + Gets the path of the Primary Interop Assembly. + + + The path of the Primary Interop Assembly, or + if not available. + + + + + Gets the hex version of the type library as defined in the definition + of the reference. + + + The hex version of the type library. + + + + + Gets the GUID of the type library as defined in the definition + of the reference. + + + The GUID of the type library. + + + + + Gets the locale of the type library in hex notation. + + + The locale of the type library. + + + + + Gets the name of the type library. + + + The name of the type library. + + + + + Gets the name of the referenced assembly. + + + The name of the referenced assembly, or if + the name could not be determined. + + + + + Gets the name of the tool that should be used to create the + . + + + The name of the tool that should be used to create the + . + + + + + Gets the path of the wrapper assembly. + + + The path of the wrapper assembly. + + + The wrapper assembly is stored in the object directory of the + project. + + + + + Gets the path of the Primary Interop Assembly. + + + The path of the Primary Interop Assembly, or + if not available. + + + + + Gets the hex version of the type library as defined in the definition + of the reference. + + + The hex version of the type library. + + + + The definition of the reference does not contain a "VersionMajor" attribute. + + -or + + The definition of the reference does not contain a "VersionMinor" attribute. + + + + + + Gets the GUID of the type library as defined in the definition + of the reference. + + + The GUID of the type library. + + + + + Gets the locale of the type library in hex notation. + + + The locale of the type library. + + + + + Specifies the type of the project. + + + + + A Visual Basic.NET project. + + + + + A Visual C# project. + + + + + A Visual C++ project. + + + + + A Visual J# project. + + + + + Specifies the result of the build. + + + + + The build failed. + + + + + The build succeeded. + + + + + The build succeeded and the output was updated. + + + + + Visual Studio.NET 2002 + + + + + Visual Studio.NET 2003 + + + + + Indentifies the physical location of a managed project. + + + + + A local project. + + + + + A web project. + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Determines whether a with the specified + GUID is in the collection, using a case-insensitive lookup. + + The GUID to locate in the collection. + + if a with GUID + is found in the collection; otherwise, + . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Remove items with the specified guid from the collection. + + The guid of the project to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Gets the with the specified GUID. + + The GUID of the to get. + + Performs a case-insensitive lookup. + + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Factory class for VS.NET projects. + + + + + Initializes a new instance of the + class. + + + + + Holds a case-insensitive list of cached projects. + + + The key of the is the path of the project + file (for web projects this can be a URL) and the value is a + instance. + + + + + Holds a case-insensitive list of cached project GUIDs. + + + The key of the is the path of the project + file (for web projects this can be a URL) and the value is the GUID + of the project. + + + + + Holds a case-insensitive list of cached project GUIDs. + + + The key of the is the path of the project + file (for web projects this can be a URL) and the value is the Xml + of the project. + + + + + Determines the output type of the project from its XML definition. + + The XML definition of the project settings. + + The output type of the project. + + + + The output type of the project is not set in the specified XML + definition. + + -or- + + The output type of the project is not supported. + + + + + + Gets the project GUID from the given + holding a <VisualStudioProject> node. + + The path of the project file. + The <VisualStudioProject> node from which the project GUID should be retrieved. + + The project GUID from specified <VisualStudioProject> node. + + + + + Gets the .ico file to use as application icon. + + + The .ico file to use as application icon, or + if no application icon should be used. + + + + + Gets the key file to use to sign ActiveX/COM wrappers. + + + The path of the key file to use to sign ActiveX/COM wrappers, + relative to the project root directory, or + if the wrapper assembly should not be signed using a key file. + + + + + Gets the key name to use to sign ActiveX/COM wrappers. + + + The name of the key container to use to sign ActiveX/COM wrappers, + or if the wrapper assembly should not be + signed using a key container. + + + + + Gets the output type of this project. + + + + + Designates when the command line should + be run. Possible values are "OnBuildSuccess", "Always" or + "OnOutputUpdated". + + + + + Contains commands to be run before a build takes place. + + + Valid commands are those in a .bat file. For more info see MSDN. + + + + + Contains commands to be ran after a build has taken place. + + + Valid commands are those in a .bat file. For more info see MSDN. + + + + + Obtains a lifetime service object to control the lifetime policy for + this instance. + + + An object of type used to control the lifetime + policy for this instance. This is the current lifetime service object + for this instance if one exists; otherwise, a new lifetime service + object initialized with a lease that will never time out. + + + + + Gets the file name of the assembly with the given assembly name. + + The assembly name of the assembly of which the file name should be returned. + + The file name of the assembly with the given assembly name. + + + + + Compiles the resource file. + + The solution configuration that is built. + + A representing the compiled resource file. + + + + + Returns a representing the compiled resource + file. + + The solution configuration that is built. + + A representing the compiled resource file. + + + Calling this method does not force compilation of the resource file. + + + + + Gets a representing the physical location + of the resource file. + + + + + Gets a representing the logical location + of the resource file in the project. + + + When the resource file is not linked, this matches the + . + + + + + Gets a value indicating whether the resource is in fact a ResX file. + + + if the resource is a ResX file; otherwise, + . + + + + + Factory class for VS.NET solutions. + + + + + Initializes a new instance of the + class. + + + + + Verifies whether the specified XML fragment represents a valid project + that is supported by this . + + XML fragment representing the project file. + + The XML fragment is not supported by this . + -or- + The XML fragment does not represent a valid project (for this ). + + + + + Returns the Visual Studio product version of the specified project + XML fragment. + + The document element of the project. + + The Visual Studio product version of the specified project XML + fragment. + + + The product version could not be determined. + -or- + The product version is not supported. + + + This method is called from the ctor, and + at that time we're not sure the XML that is passed in, is indeed a + valid Visual Basic project. + + + + + Returns the project location from the specified project XML fragment. + + XML fragment representing the project file. + + The project location of the specified project XML file. + + + The project location could not be determined. + -or- + The project location is invalid. + + + + + Returns a for launching the compiler + for this project. + + The configuration to build. + The response file for the compiler. + + A for launching the compiler for + this project. + + + + + Returns a value indicating whether the project represented by the + specified XML fragment is supported by . + + XML fragment representing the project to check. + + if supports the + specified project; otherwise, . + + + + A project is identified as as Visual Basic project, if the XML + fragment at least has the following information: + + + + + ... + + + ]]> + + + + + + Gets the type of the project. + + + The type of the project. + + + + + Gets the default file extension of sources for this project. + + + For VB projects, the default file extension is ".vb". + + + + + A mapping from properties in the .vcproj file to command line arguments. + + + + + Initializes a new instance of the + class. + + + + + Gets the argument string corresponding with a configuration property + named with value . + An ignore mask can be used to eliminate some arguments from the search. + + The name of the configuration property. + The value of the configuration property. + Specify any groups that needs to be ignored. + + The argument string corresponding with a configuration property + named with value , + or if no corresponding argument exists. + + + + + Creates a mapping between configuration properties for the Visual + C++ compiler and corresponding command-line arguments. + + + A mapping between configuration properties for the Visual C++ + compiler and corresponding command-line arguments. + + + + The following configuration properties are processed by + : + + + + Category + Property + + + General + Addtional Include Directories (/I[path]) + + + General + Resolve #using References (/AI[path]) + + + Preprocessor + Preprocessor Definitions (/D[macro]) + + + Code Generation + Enable C++ Exceptions (/EHsc) + + + Precompiled Headers + Create/Use Precompiled Header + + + Precompiled Headers + Create/Use PCH Through File + + + Precompiled Headers + Precompiled Header File + + + Output Files + Assembler Output + + + Output Files + ASM List Location + + + Browse Information + Enable Browse Information + + + Browse Information + Browse File + + + Advanced + Force Includes (/FI[name]) + + + Advanced + Force #using (/FU[name]) + + + Advanced + Undefine Preprocessor Definitions (/U[macro]) + + + + + + + Creates a mapping between configuration properties for the Visual + C++ linker and corresponding command-line arguments. + + + A mapping between configuration properties for the Visual C++ + linker and corresponding command-line arguments. + + + + The following configuration properties are processed by + : + + + + Category + Property + + + General + Output File (/OUT:[file]) + + + General + Additional Library Directories (/LIBPATH:[dir]) + + + Input + Additional Dependencies + + + Input + Add Module to Assembly (/ASSEMBLYMODULE:file) + + + Input + Embed Managed Resource File (/ASSEMBLYRESOURCE:file) + + + Debugging + Generate Debug Info (/DEBUG) + + + Debugging + Generate Program Database File (/PDB:name) + + + Debugging + Generate Map File (/MAP) + + + Debugging + Map File Name (/MAP:[filename]) + + + System + Heap Reserve Size (/HEAP:reserve) + + + System + Heap Commit Size (/HEAP:reserve, commit) + + + System + Stack Reserve Size (/STACK:reserve) + + + System + Stack Commit Size (/STACK:reserve, commit) + + + + The following configuration properties are ignored: + + + + Category + Property + + + General + Show Progress (/VERBOSE, /VERBOSE:LIB) + + + General + Suppress Startup Banner (/NOLOGO) + + + + Support for the following configuration properties still needs to + be implemented: + + + + Category + Property + + + General + Ignore Import Library + + + General + Register Output + + + Input + Delay Loaded DLLs (/DELAYLOAD:[dll_name]) + + + Embedded IDL + MIDL Commands (/MIDL:[file]) + + + + + + + Gets the name of the command-line argument. + + + The name of the command-line argument. + + + + + Represents a command-line arguments of which the trailing backslashes + in the value should be duplicated. + + + + + Represents a command-line argument of which the value should be + quoted, and of which trailing backslahes should be duplicated. + + + + + Gets the string that the configuration setting should match in + order for the command line argument to be set. + + + + + Allow us to assign an argument to a specific group. + + + + + The argument is not assigned to any group. + + + + + The argument is ignored when the optimization level is set to + Minimum Size (1) or Maximum Size (2). + + + + + Resolves an assembly reference. + + + The full path to the resolved assembly, or + if the assembly reference could not be resolved. + + + + + Is called each time a regular expression match is found during a + operation. + + The resulting from a single regular expression match during a . + + The expanded . + + The macro is not supported. + Expansion of a given macro is not yet implemented. + + + + Gets the name of the referenced assembly. + + + The name of the referenced assembly, or if + the name could not be determined. + + + + + A single build configuration for a Visual C++ project or for a specific + file in the project. + + + + + Expands the given macro. + + The macro to expand. + + The expanded macro. + + + The macro is not supported. + -or- + The macro is not implemented. + -or- + The macro cannot be expanded. + + + + + Gets the value of a given setting for a specified tool. + + The name of the tool. + The name of the setting. + + The value of a setting for the specified tool, or + if the setting is not defined for the specified tool. + + + An empty setting value, which is used as a means to override the + project default, will be returned as a empty . + + + + + Gets the value of a given setting for a specified tool. + + The name of the tool. + The name of the setting. + The value to return if setting is not defined. + + The value of a setting for the specified tool, or + if the setting is not defined for + the specified tool. + + + An empty setting value, which is used as a means to override the + project default, will be returned as a empty . + + + + + Gets the intermediate directory, specified relative to project + directory. + + + The intermediate directory, specified relative to project directory. + + + + + Gets a comma-separated list of directories to scan for assembly + references. + + + A comma-separated list of directories to scan for assembly + references, or if no additional directories + should scanned. + + + + + Gets the name of the configuration, including the platform it + targets. + + + Tthe name of the configuration, including the platform it targets. + + + + + Gets the output directory. + + + + + Gets the path in which the output file will be created before its + copied to the actual output path. + + + For Visual C++ projects, the output file will be immediately + created in the output path. + + + + + Gets the name of the configuration. + + + The name of the configuration. + + + + + Gets the platform that the configuration targets. + + + The platform targeted by the configuration. + + + + + Represents the configuration of a file. + + + + + Expands the given macro. + + The macro to expand. + + The expanded macro. + + + The macro is not supported. + -or- + The macro is not implemented. + -or- + The macro cannot be expanded. + + + + + Gets the value of a given setting for a specified tool. + + The name of the tool. + The name of the setting. + The value to return if setting is not defined in both the file and project configuration. + + The value of a setting for the specified tool, or + if the setting is not defined in + both the file and project configuration. + + + + If the setting is not defined in the file configuration, then + the project level setting will be used. + + + An empty setting value, which is used as a means to override the + project default, will be returned as a empty . + + + + + + Gets a value indication whether the file should be excluded from + the build for this configuration. + + + if the file should be excluded from the + build for this configuration; otherwise, . + + + + + Gets the relative path of the file. + + + The path of the file relative to the project directory. + + + + + Get the path of the output directory relative to the project + directory. + + + + + Gets the intermediate directory, specified relative to project + directory. + + + The intermediate directory, specified relative to project directory. + + + + + Gets the path for the output file. + + + The path for the output file, or if there's + no output file for this configuration. + + + + + Gets a comma-separated list of directories to scan for assembly + references. + + + A comma-separated list of directories to scan for assembly + references, or if no additional directories + should scanned. + + + + + Visual C++ project. + + + + + Gets a value indicating whether building the project for the specified + build configuration results in managed output. + + The solution configuration that is built. + + if the project output for the specified build + configuration is either a Dynamic Library (dll) or an Application + (exe), and Managed Extensions are enabled; otherwise, + . + + + + + Verifies whether the specified XML fragment represents a valid project + that is supported by this . + + XML fragment representing the project file. + + The XML fragment is not supported by this . + -or- + The XML fragment does not represent a valid project (for this ). + + + + + Returns the Visual Studio product version of the specified project + XML fragment. + + The document element of the project. + + The Visual Studio product version of the specified project XML + fragment. + + + The product version could not be determined. + -or- + The product version is not supported. + + + + + Expands the given macro. + + The macro to expand. + + The expanded macro or if the macro is not + supported. + + + + + Build resource files for the given configuration. + + The resource files to build. + The project configuration. + The build configuration. + + TODO: refactor this as we should always get only one element in the + list. Each res file should be built + with its own file configuration. + + + + + Build Interface Definition Language files for the given + configuration. + + The IDL files to build. + The project configuration. + The build configuration. + + TODO: refactor this as we should always get only one element in the + list. Each IDL file should be built + with its own file configuration. + + + + + Merges the specified tool setting of + with . + + + The merge is suppressed when the flag $(noinherit) is defined in + . + + + + + Gets the absolute path to the object file or directory. + + The build configuration + + The absolute path to the object file or directory, or + + + We use an absolute path for the object file, otherwise + <cl> assumes a location relative to the output + directory - not the project directory. + + + + + Returns a value indicating whether the project represented by the + specified XML fragment is supported by . + + XML fragment representing the project to check. + + if supports the + specified project; otherwise, . + + + + A project is identified as as Visual C++ project, if the XML + fragment at least has the following information: + + + + + ]]> + + + + + + Removes leading and trailing quotes from the specified path. + + The path to clean. + + + + Returns the Visual Studio product version of the specified project + XML fragment. + + XML fragment representing the project to check. + + The Visual Studio product version of the specified project XML + fragment. + + + The product version could not be determined. + -or- + The product version is not supported. + + + + + Holds the files included in the project. + + + + For project files with no specific file configuration, the relative + path is added to the list. + + + For project files that have a specific file configuration, a + containing the + instance representing the file configurations is added. + + + + + + Gets the name of the Visual C++ project. + + + + + Gets the type of the project. + + + The type of the project. + + + + + Gets the path of the Visual C++ project. + + + + + Gets the directory containing the VS.NET project. + + + + + Get the location of the project. + + + . + + + For now, we only support local Visual C++ projects. + + + + + Get the directory in which intermediate build output that is not + specific to the build configuration will be stored. + + + This is a directory relative to the project directory, + named temp\. + + + + + Gets or sets the unique identifier of the Visual C++ project. + + + + + Represents a Visual C++ project configuration. + + + + + Expands the given macro. + + The macro to expand. + + The expanded macro. + + + The macro is not supported. + -or- + The macro is not implemented. + -or- + The macro cannot be expanded. + + + Expansion of a given macro is not yet implemented. + + + + + Gets the value of the specified attribute from the specified node. + + The node of which the attribute value should be retrieved. + The attribute of which the value should be returned. + + The value of the attribute with the specified name or + if the attribute does not exist or has no value. + + + + + Holds the output path for this build configuration. + + + Lazy initialized by . + + + + + Holds list of files to link in the order in which they are defined + in the project file. + + + + + Holds the C++ sources for each build configuration. + + + The key of the hashtable is a build configuration, and the + value is an ArrayList holding the C++ source files for that + build configuration. + + + + + Holds the resources for each build configuration. + + + The key of the hashtable is a build configuration, and the + value is an ArrayList holding the resources files for that + build configuration. + + + + + Holds the IDL files for each build configuration. + + + The key of the hashtable is a build configuration, and the + value is an ArrayList holding the IDL files for that build + configuration. + + + + + Tells the compiler which character set to use. + + + + + Gets a value indicating whether Managed Extensions for C++ are + enabled. + + + + + Gets a value indicating how MFC is used by the configuration. + + + + + Gets a value indicating how ATL is used by the configuration. + + + + + Gets the list of files to link in the order in which they are + defined in the project file. + + + + + Holds the C++ sources for each build configuration. + + + The key of the hashtable is a build configuration, and the + value is an ArrayList holding the C++ source files for that + build configuration. + + + + + Gets the resources for each build configuration. + + + The key of the hashtable is a build configuration, and the + value is an ArrayList holding the resources files for that + build configuration. + + + + + Get the IDL files for each build configuration. + + + The key of the hashtable is a build configuration, and the + value is an ArrayList holding the IDL files for that build + configuration. + + + + + Gets the target path for usage in macro expansion. + + + The target path, or a zero-length string if there's no output file + for this configuration. + + + + + Get the directory in which intermediate build output will be stored + for this configuration. + + + + This is a directory relative to the project directory named + obj\<configuration name>. + + + .resx and .licx files will only be recompiled if the + compiled resource files in the are not + uptodate. + + + + + + Get the path of the output directory relative to the project + directory. + + + + + Gets the intermediate directory, specified relative to project + directory. + + + The intermediate directory, specified relative to project directory. + + + + + Gets the absolute path for the output file. + + + The absolute path for the output file, or + if there's no output file for this configuration. + + + + + Gets a comma-separated list of directories to scan for assembly + references. + + + A comma-separated list of directories to scan for assembly + references, or if no additional directories + should scanned. + + + + + The type of output for a given configuration. + + + + + A Makefile. + + + + + Application (.exe). + + + + + Dynamic Library (.dll). + + + + + Static Library (.lib). + + + + + Utility. + + + + + Gets a instance representing the + absolute path to the import library to generate. + + + A representing the absolute path to the + import library to generate, or if no + import library must be generated. + + + + + Gets a value indicating whether the reference is managed for the + specified configuration. + + The build configuration of the reference. + + if the reference is managed for the + specified configuration; otherwise, . + + + + + Gets the name of the referenced assembly. + + + The name of the referenced assembly. + + + + + Gets the name of the tool that should be used to create the + . + + + The name of the tool that should be used to create the + . + + + + + Gets the path of the wrapper assembly. + + + The path of the wrapper assembly. + + + The wrapper assembly is stored in the object directory of the + project. + + + + + Gets the path of the Primary Interop Assembly. + + + The path of the Primary Interop Assembly, or + if not available. + + + + + Gets the hex version of the type library as defined in the definition + of the reference. + + + The hex version of the type library. + + The definition of the reference does not contain a "ControlVersion" attribute. + + + + Gets the GUID of the type library as defined in the definition + of the reference. + + + The GUID of the type library. + + + + + Gets the locale of the type library in hex notation. + + + The locale of the type library. + + +
+
diff --git a/tools/nant/bin/NAnt.VisualCppTasks.dll b/tools/nant/bin/NAnt.VisualCppTasks.dll new file mode 100644 index 0000000..4ca00ad Binary files /dev/null and b/tools/nant/bin/NAnt.VisualCppTasks.dll differ diff --git a/tools/nant/bin/NAnt.VisualCppTasks.xml b/tools/nant/bin/NAnt.VisualCppTasks.xml new file mode 100644 index 0000000..d27da40 --- /dev/null +++ b/tools/nant/bin/NAnt.VisualCppTasks.xml @@ -0,0 +1,1205 @@ + + + + NAnt.VisualCppTasks + + + + + Compiles C/C++ programs using cl.exe, Microsoft's C/C++ compiler. + + + This task is intended for version 13.00.9466 of cl.exe. + + + Compiles helloworld.cpp for the Common Language Runtime. + + + + + + + ]]> + + + + + + Initializes a new instance of the class. + + + + + Compiles the sources. + + + + + Determines if the sources need to be compiled. + + + + + Determines whether the precompiled header file is up-to-date. + + + if no precompiled header file was specified; + otherwise, . + + + In order to determine accurately whether the precompile header file + is up-to-date, we'd need scan all the header files that are pulled + in. As this is not implemented right now, its safer to always + recompile. + + + + + Determines whether any file that are includes in the specified + source file has been updated after the obj was compiled. + + The source file to check. + The last write time of the compiled obj. + + The full path to the include file that was modified after the obj + was compiled, or if no include files were + modified since the obj was compiled. + + + + To determine what includes are defined in a source file, conditional + directives are not honored. + + + If a given include cannot be resolved to an existing file, then + it will be considered stable. + + + + + + Quotes an argument value and duplicates trailing backslahes. + + The argument value to quote. + + The quotes argument value. + + + + + Determines the file name of the OBJ file for the specified source + file. + + The source file for which the OBJ file should be determined. + The path of the object file. + + The file name of the OBJ file for the specified source file. + + + + + Directory where all output files are placed. + + + + + Specifies the path and/or name of the generated precompiled header + file - given either relative to or as an + absolute path. + + + + + The path of the boundary file when generating/using the + specified . If a precompiled header file is + not specified then this attribute is ignored. + + + + + The mode in which the specified (if any) is + used. The default is . + + + + + Specifies whether Managed Extensions for C++ should be enabled. + The default is . + + + + + Tells the compiler to use the specified character set. + + + + + Options to pass to the compiler. + + + + + The list of files to compile. + + + + + The list of directories in which to search for include files. + + + + + Directories that the compiler will search to resolve file references + passed to the #using directive. + + + + + Specifies metadata files to reference in this compilation as an + alternative to passing a file name to #using in source code. + + + + + Macro definitions to pass to cl.exe. + Each entry will generate a /D + + + + + Macro undefines (/U) to pass to cl.exe. + + + + + A name to override the default object file name; can be either a file + or directory name. The default is the output directory. + + + + + A name for the compiler-generated PDB file; can be either a file or + directory name. The default is the output directory. + + + + + Gets the filename of the external program to start. + + The filename of the external program. + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Defines the supported modes for the use of precompiled header files. + + + + + Create a precompiled header file. + + + For further information on the use of this option + see the Microsoft documentation on the C++ compiler flag /Yc. + + + + + Automatically create a precompiled header file if necessary. + + + For further information on the use of this option + see the Microsoft documentation on the C++ compiler flag /YX. + + + + + Use a (previously generated) precompiled header file. + + + For further information on the use of this option + see the Microsoft documentation on the C++ compiler flag /Yu. + + + + + Run lib.exe, Microsoft's Library Manager. + + + Create a library. + + + + + + + ]]> + + + + + + Creates the library. + + + + + Determines if the sources need to be linked. + + + + + Options to pass to the compiler. + + + + + The output file. + + + + + The module definition file. + + + + + The list of files to combine into the output file. + + + + + Symbols to add to the symbol table. + + + + + Names of default libraries to ignore. + + + + + The list of additional library directories to search. + + + + + Gets the filename of the external program to start. + + The filename of the external program. + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Links files using link.exe, Microsoft's Incremental Linker. + + + This task is intended for version 7.00.9466 of link.exe. + + + + Combine all object files in the current directory into helloworld.exe. + + + + + + + + ]]> + + + + + + Links the sources. + + + + + Determines if the output needs linking. + + + + + Quotes an argument value and duplicates trailing backslahes. + + The argument value to quote. + + The quotes argument value. + + + + + Options to pass to the compiler. + + + + + Create debugging information for the .exe file or DLL. The default is + . + + + + + The output file. + + + + + A user-specified name for the program database (PDB) that the linker + creates. The default file name for the PDB has the base name of the + and the extension .pdb. + + + + + Specified DLLs for delay loading. + + + + + The list of files to combine into the output file. + + + + + The list of additional library directories to search. + + + + + Link the specified modules into this assembly. + + + + + Embed the specified resources into this assembly. + + + + + Symbols to add to the symbol table. + + + + + Names of libraries that you want the linker to ignore when it + resolves external references. + + + + + Gets the filename of the external program to start. + + The filename of the external program. + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Compiles messages using mc.exe, Microsoft's Win32 message compiler. + + + + Compile text.mc using the default options. + + + + ]]> + + + Compile text.mc, passing a path to store the header, the rc + file and some additonal options. + + + + ]]> + + + + + + Compiles the sources. + + + + + Determine if source files need re-building. + + + + + Options to pass to the compiler. + + + + + Path to store header file. The default is the project base directory. + + + + + Path to store RC file. The default is the project base directory. + + + + + Input filename. + + + + + Gets the filename of the external program to start. + + + The filename of the external program. + + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + This tasks allows you to run MIDL.exe. + + + + This task only supports a small subset of the MIDL.EXE command line + switches, but you can use the options element to specify any other + unsupported commands you want to specify. + + + + + + + + + + + + + ]]> + + + + + + This is where the work is done. + + + + + Check output files to see if we need rebuilding. + + if a rebuild is needed; otherwise, + . + + + + Check output files to see if we need rebuilding. + + + if a rebuild is needed; otherwise, + . + + + + + Writes the response file for midl.exe. + + + + + The /acf switch allows the user to supply an + explicit ACF file name. The switch also + allows the use of different interface names in + the IDL and ACF files. + + + + + The /align switch is functionally the same as the + MIDL /Zp option and is recognized by the MIDL compiler + solely for backward compatibility with MkTypLib. + + The alignment value can be 1, 2, 4, or 8. + + + + The /app_config switch selects application-configuration + mode, which allows you to use some ACF keywords in the + IDL file. With this MIDL compiler switch, you can omit + the ACF and specify an interface in a single IDL file. + + + + + The /char switch helps to ensure that the MIDL compiler + and C compiler operate together correctly for all char + and small types. + + Can be one of signed | unsigned | ascii7 + + + + The /client switch directs the MIDL compiler to generate + client-side C source files for an RPC interface + + can be one of stub | none + + + + The /cstub switch specifies the name of the client + stub file for an RPC interface. + + + + + Specifies the file name for the generated dlldata file for a proxy + DLL. The default file name Dlldata.c is used if + is not specified. + + + + + The /env switch selects the + environment in which the application runs. + + It can take the values win32 and win64 + + + + The /Oi switch directs the MIDL compiler to + use a fully-interpreted marshaling method. + The /Oic and /Oicf switches provide additional + performance enhancements. + + + If you specify the Oi attribute, you must set it to + one of the values: + - Oi="" + - Oi="c" + - Oi="f" + - Oi="cf" + + + + + Specifies a file name for the type library generated by the MIDL + compiler. + + + + + Specifies the name of the header file. + + + + + Specifies the name of the interface identifier file for a COM + interface, overriding the default name obtained by adding _i.c + to the IDL file name. + + + + + Specifies the name of the interface proxy file for a COM interface. + + + + + Name of .IDL file to process. + + + + + Additional options to pass to midl.exe. + + + + + Macro definitions to pass to mdil.exe. + Each entry will generate a /D + + + + + Macro undefines (/U) to pass to mdil. + + + + + The list of directories in which to search for include files. + + + + + Filename of program to execute + + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Compiles resources using rc.exe, Microsoft's Win32 resource + compiler. + + + + Compile text.rc to text.res using the default options. + + + + ]]> + + + + + Compile text.rc, passing an additional option. + + + + ]]> + + + + + + Compile the resource file + + + + + Determines if the resource need compiling. + + + + + Check if a resource file has been updated. + + + + + + + Options to pass to the compiler. + + + + + Output file. + + + + + The resource file to compile. + + + + + Default language ID. + + + + + The list of directories in which to search for include files. + + + + + Macro definitions to pass to rc.exe. + Each entry will generate a /d + + + + + Filename of program to execute + + + + + Arguments of program to execute + + + + + Defines the character sets that can be used by the C++ compiler. + + + + + Have the compiler determine the character set. + + + + + Unicode character set. + + + + + Multi-byte character set. + + + + + Represents a library. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with + the specified name. + + is . + + + + The name of the library. + + + + + If then the element will be processed; + otherwise, skipped. The default is . + + + + + If then the element will be skipped; + otherwise, processed. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Represents a symbol. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with + the specified name. + + is . + + + + The name of the symbol. + + + + + If then the element will be processed; + otherwise, skipped. The default is . + + + + + If then the element will be skipped; + otherwise, processed. The default is . + + + + + Contains a collection of elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified instance. + + + + + Initializes a new instance of the class + with the specified array of instances. + + + + + Adds a to the end of the collection. + + The to be added to the end of the collection. + The position into which the new element was inserted. + + + + Adds the elements of a array to the end of the collection. + + The array of elements to be added to the end of the collection. + + + + Adds the elements of a to the end of the collection. + + The to be added to the end of the collection. + + + + Determines whether a is in the collection. + + The to locate in the collection. + + if is found in the + collection; otherwise, . + + + + + Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Retrieves the index of a specified object in the collection. + + The object for which the index is returned. + + The index of the specified . If the is not currently a member of the collection, it returns -1. + + + + + Inserts a into the collection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through the collection. + + + A for the entire collection. + + + + + Removes a member from the collection. + + The to remove from the collection. + + + + Gets or sets the element at the specified index. + + The zero-based index of the element to get or set. + + + + Enumerates the elements of a . + + + + + Initializes a new instance of the class + with the specified . + + The collection that should be enumerated. + + + + Advances the enumerator to the next element of the collection. + + + if the enumerator was successfully advanced + to the next element; if the enumerator has + passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the + first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Defines how to deal with backslashes in values of command line + arguments. + + + + + Does not perform any processing on backslashes. + + + + + Duplicates the trailing backslash. + + + + + Fixes the trailing backslash by replaces trailing double backslashes + with only one backslash and removing single trailing backslashes. + + + + + Removes all the trailing backslashes. + + + + + Groups a set of useful manipulation methods for + command-line arguments. + + + + + Performs backslash processing on the specified value using a given + method. + + The to process. + The to use. + + with backslashes processed using the given + . + + + + + Duplicates the trailing backslash. + + The input string to check and duplicate the trailing backslash if necessary. + The result string after being processed. + + Also duplicates trailing backslash in quoted value. + + + + + Fixes the trailing backslash. This function replaces the trailing double backslashes with + only one backslash. It also, removes the single trailing backslash. + + The input string. + The result string after being processed. + + + + Removes all the trailing backslashes from the input. + + The input string. + The result string without trailing backslashes. + + + + Quotes an argument value and processes backslashes using a given + . + + The argument value to quote. + The to use. + + The quoted argument value. + + + + diff --git a/tools/nant/bin/NAnt.Win32Tasks.dll b/tools/nant/bin/NAnt.Win32Tasks.dll new file mode 100644 index 0000000..4979a83 Binary files /dev/null and b/tools/nant/bin/NAnt.Win32Tasks.dll differ diff --git a/tools/nant/bin/NAnt.Win32Tasks.xml b/tools/nant/bin/NAnt.Win32Tasks.xml new file mode 100644 index 0000000..059eb79 --- /dev/null +++ b/tools/nant/bin/NAnt.Win32Tasks.xml @@ -0,0 +1,690 @@ + + + + NAnt.Win32Tasks + + + + + Groups a set of functions that convert Windows native filenames to + Cygwin POSIX-style pathnames and vice versa. + + + It can be used when a Cygwin program needs to pass a file name to a + native Windows program, or expects to get a file name from a native + Windows program. + + + + + Initializes a new instance of the + class with the specified and properties. + + The in which the class is used. + The set of properties to use for macro expansion. + + + + Gets the DOS (short) form of the specified path. + + The path to convert. + + The DOS (short) form of the specified path. + + cygpath could not be started. + could not be converted to a short form. + + + + Gets the Unix form of the specified path. + + The path to convert. + + The Unix form of the specified path. + + cygpath could not be started. + could not be converted to a Unix form. + + + + Gets the Windows form of the specified path. + + The path to convert. + + The Windows form of the specified path. + + cygpath could not be started. + could not be converted to a Windows form. + + + + Runs cygpath with the specified arguments and returns the result + as a . + + The arguments to pass to cygpath. + + The result of running cygpath with the specified arguments. + + + + + Factory method to return a new instance of ExecTask + + + + + + + Generates a Windows Forms Control that wraps ActiveX Controls defined + in an OCX. + + + + + ]]> + + + + + + Import the ActiveX control. + + + + + Determines whether the assembly needs to be created again. + + + if the assembly needs to be created again; + otherwise, . + + + + + Filename of the .ocx file. + + + + + Filename of the generated assembly. + + + + + Specifies the file containing the public key to use to sign the + resulting assembly. + + + The file containing the public key to use to sign the resulting + assembly. + + + + + Specifies the publisher's official public/private key pair with which + the resulting assembly should be signed with a strong name. + + + The keyfile to use to sign the resulting assembly with a strong name. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the key container in which the public/private key pair + should be found that should be used to sign the resulting assembly + with a strong name. + + + The key container containing a public/private key pair that should + be used to sign the resulting assembly. + + + + + Specifies to sign the resulting control using delayed signing. + + + + + Determines whether C# source code for the Windows Form wrapper should + be generated. The default is . + + + + + Assembly to use for Runtime Callable Wrapper rather than generating + new one [.NET 1.1 or higher]. + + + + + Indicates whether aximp supports using an existing Runtime + Callable Wrapper for a given target framework. The default is + . + + + + + Gets the command-line arguments for the external program. + + + The command-line arguments for the external program. + + + + + Reads a value or set of values from the Windows Registry into one or + more NAnt properties. + + + Read a single value from the registry. + + + ]]> + + Read all the registry values in a key. + + + ]]> + + + + + + read the specified registry value + + + + + Returns the hive for a given key. + + + + + The hive for a given key. + + + + + Returns the key for a given registry hive. + + The registry hive to return the key for. + + The key for a given registry hive. + + + + + The property to set to the specified registry key value. + If this attribute is used then a single value will be read. + + + + + The prefix to use for the specified registry key values. + If this attribute is used then all registry values will be read and stored as properties with this prefix. + + + Registry values a, b, c will be turned into prefixa, prefixb, prefixc named properties + + + + + The registry key to read, including the path. + + + SOFTWARE\Microsoft\.NETFramework\sdkInstallRoot + + + + + Space separated list of registry hives to search for . + For a list of possible values, see . The + default is . + + + + + + + + Registers an assembly, or set of assemblies for use from COM clients. + + + + Refer to the Regasm + documentation for more information on the regasm tool. + + + + + Register types in a single assembly. + + + + ]]> + + + + + Register types of an assembly and generate a type library containing + definitions of accessible types defined within the assembly. + + + + ]]> + + + + + Register types of set of assemblies at once, while specifying a set + of reference assemblies. + + + + + + + + + + + + ]]> + + + + + + Updates the of the specified + . + + The of which the should be updated. + + + + Registers or unregisters a single assembly, or a group of assemblies. + + + + + The name of the file to register. This is provided as an alternate + to using the task's . + + + + + Registry file to export to instead of entering the types directly + into the registry. + + + + + Set the code base registry setting. + + + + + Only refer to already registered type libraries. + + + + + Export the assemblies to the specified type library and register it. + + + + + Unregister the assembly. The default is . + + + + + The set of assemblies to register, or unregister. + + + + + The set of assembly references. + + + + + Gets the working directory for the application. + + + The working directory for the application. + + + + + Gets the command line arguments for the external program. + + + The command line arguments for the external program. + + + + + Gets the filename of the external program to start. + + + The filename of the external program. + + + Override in derived classes to explicitly set the location of the + external tool. + + + + + Exports a .NET assembly to a type library that can be used from unmanaged + code (wraps Microsoft's tlbexp.exe). + + + + See the Microsoft.NET Framework SDK documentation for details. + + + + Export DotNetAssembly.dll to LegacyCOM.dll. + + + ]]> + + + + + + Exports the type library. + + + + + Determines whether the assembly needs to be exported to a type + library again. + + + if the assembly needs to be exported to a + type library; otherwise, . + + + + + Specifies the assembly for which to export a type library. + + + The assembly for which to export a type library. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the name of the type library file to generate. + + + The name of the type library file to generate. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the file used to determine capitalization of names in a + type library. + + + The file used to determine capitalization of names in a type library. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Gets the command line arguments for the external program. + + + The command line arguments for the external program. + + + + + Imports a type library to a .NET assembly (wraps Microsoft's tlbimp.exe). + + + + This task lets you easily create interop assemblies. By default, it will + not reimport if the underlying COM TypeLib or reference has not changed. + + + See the Microsoft.NET Framework SDK documentation for details. + + + + Import LegacyCOM.dll to DotNetAssembly.dll. + + + ]]> + + + + + Generate an assembly named "Interop.MSVidCtlLib.dll" for the + MS Video Control 1.0 Type Library, transforming any [out, retval] + parameters of methods on dispinterfaces in the type library into + return values in the managed library. + + + + + + + + ]]> + + + + + + Imports the type library to a .NET assembly. + + + + + Returns the path of the type library, removing the identifier of + the type library from the specified string. + + The path from which to extract the path of the type library. + + The path of the type library without the type library identifier. + + + An example of a path which includes the identifier of the type + library (in this case "2") is + C:\WINDOWS\system32\msvidctl.dll\2. + + + + + Determines whether the type library needs to be imported again. + + + if the type library needs to be imported; + otherwise, . + + + + + Specifies the name of the output file. + + + The name of the output file. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the namespace in which to produce the assembly. + + + The namespace in which to produce the assembly. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the version number of the assembly to produce. + + + + The version number of the assembly to produce. + + + The version number should be in the format major.minor.build.revision. + + + See the Microsoft.NET Framework SDK documentation for details. + + + + + + Specifies whether the resulting assembly should be signed with a + strong name using delayed signing. The default is . + + + if the resulting assembly should be signed + with a strong name using delayed signing; otherwise, . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether a primary interop assembly should be produced for + the specified type library. The default is . + + + if a primary interop assembly should be + produced; otherwise, . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the file containing the public key to use to sign the + resulting assembly. + + + The file containing the public key to use to sign the resulting + assembly. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the publisher's official public/private key pair with which + the resulting assembly should be signed with a strong name. + + + The keyfile to use to sign the resulting assembly with a strong name. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the key container in which the public/private key pair + should be found that should be used to sign the resulting assembly + with a strong name. + + + The key container containing a public/private key pair that should + be used to sign the resulting assembly. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies the assembly files to use to resolve references to types + defined outside the current type library. + + + The assembly files to use to resolve references to types defined + outside the current type library. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether a type library should not be imported if all + references within the current assembly or the reference assemblies + cannot be resolved. The default is . + + + if a type library should not be imported if + all references cannot be resolved; otherwise, . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether to import a COM style SafeArray as a managed + class type. The default is . + + + if a COM style SafeArray should be imported + as a managed class type; otherwise, + . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies how to transform the metadata [.NET 1.1 or higher]. + + + + + Specifies the source type library that gets passed to the type + library importer. + + + The source type library that gets passed to the type library + importer. + + See the Microsoft.NET Framework SDK documentation for details. + + + + Specifies whether interfaces should be produced without .NET Framework + security checks. The default is . + + + if interfaces without .NET Framework security + checks should be produced; otherwise, . + + See the Microsoft.NET Framework SDK documentation for details. + + + + Indicates whether tlbimp supports transforming metadata for + a given target framework. The default is . + + + + + Gets the command line arguments for the external program. + + + The command line arguments for the external program. + + + + diff --git a/tools/nant/bin/NAnt.exe b/tools/nant/bin/NAnt.exe new file mode 100644 index 0000000..689b1eb Binary files /dev/null and b/tools/nant/bin/NAnt.exe differ diff --git a/tools/nant/bin/NAnt.exe.config b/tools/nant/bin/NAnt.exe.config new file mode 100644 index 0000000..534d832 --- /dev/null +++ b/tools/nant/bin/NAnt.exe.config @@ -0,0 +1,1716 @@ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + csc + true + + + vbc + + + jsc + + + vjc + true + + + resgen + + + al + + + sn + + + lc + + + ilasm + + + ildasm + + + false + + + false + + + + + + + + + + + + + + + + + + + + + csc + true + + + vbc + + + jsc + + + vjc + true + + + resgen + + + al + + + sn + + + lc + + + ilasm + + + ildasm + + + + + + + + + + + + + + + + + + + + + csc + true + true + true + true + true + true + + + vbc + true + true + true + true + true + true + true + + + jsc + true + + + vjc + true + true + true + + + resgen + true + true + + + al + + + sn + + + lc + true + + + ilasm + + + ildasm + + + + + + + + + + + + + + + + + + + + + csc + true + true + true + true + true + true + + + vbc + true + true + true + true + true + true + true + + + jsc + true + + + vjc + true + true + true + + + resgen + true + true + + + al + + + sn + + + lc + true + + + ilasm + + + ildasm + + + + + + + + + + + + + + + + + + + + + csc + true + true + true + true + true + true + + + vbc + true + true + true + true + true + true + true + + + jsc + true + + + vjc + true + true + true + + + resgen + true + true + + + al + + + sn + + + lc + true + + + ilasm + + + ildasm + + + + + + + + + + + + The .NET Framework 1.1 SDK is not installed. + + + + csc + true + true + true + + + vbc + + + cfresgen + + + al + + + sn + + + ${path::combine(sdkInstallRoot.DesktopFramework, 'bin/lc.exe')} + + + ilasm + + + ildasm + + + + + + + + + + + + The .NET Framework 2.0 SDK is not installed. + + + + csc + true + true + true + + + vbc + true + + + resgen + + + al + + + sn + + + lc + true + + + ilasm + + + ildasm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + al + true + + + ${csc.tool} + true + true + true + ${csc.supportsdocgeneration} + true + true + true + + + ${mbas.tool} + true + + + ${resgen.tool} + true + + + sn + true + + + false + + + ilasm + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + al + true + + + ${path::combine(frameworkAssemblyDirectory, 'mono/2.0/gmcs.exe')} + true + true + true + ${csc.supportsdocgeneration} + true + true + true + + + + ${path::combine(frameworkAssemblyDirectory, 'mono/1.0/mbas.exe')} + true + + + ${resgen.tool} + true + + + sn + true + + + false + + + ilasm + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + al + true + + + ${path::combine(frameworkAssemblyDirectory, 'mono/2.0/gmcs.exe')} + true + true + true + ${csc.supportsdocgeneration} + true + true + true + + + + ${path::combine(frameworkAssemblyDirectory, 'mono/1.0/mbas.exe')} + true + + + ${resgen.tool} + true + + + sn + true + + + false + + + ilasm + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + al + true + + + ${path::combine(frameworkAssemblyDirectory, 'mono/2.0/gmcs.exe')} + true + true + true + ${csc.supportsdocgeneration} + true + true + true + + + + ${path::combine(frameworkAssemblyDirectory, 'mono/1.0/mbas.exe')} + true + + + ${resgen.tool} + true + + + sn + true + + + false + + + ilasm + true + + + + + + + + + + + csc + true + + + jsc + true + + + resgen + + + al + + + sn + + + false + + + ilasm + true + + + ildasm + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/. + + + + + + + + + + + + + + + + al + true + + + ${path::combine(prefix, 'lib/mono/1.0/mcs.exe')} + true + true + true + ${csc.supportsdocgeneration} + true + true + true + + + ${path::combine(prefix, 'lib/mono/1.0/mbas.exe')} + true + + + ${resgen.tool} + true + + + sn + true + + + false + + + ilasm + true + + + + + + + + + + + + + Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/. + + + + + + + + + + + + + + + + + + + + + + al + true + + + ${path::combine(prefix, 'lib/mono/2.0/gmcs.exe')} + true + true + true + ${csc.supportsdocgeneration} + true + true + true + + + + ${path::combine(prefix, 'lib/mono/1.0/mbas.exe')} + true + + + ${resgen.tool} + true + + + sn + true + + + false + + + ilasm + true + + + + + + + + + + + + + Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/. + + + + + + + + + + + + + + + + + + + + + + al + true + + + ${path::combine(prefix, 'lib/mono/2.0/gmcs.exe')} + true + true + true + ${csc.supportsdocgeneration} + true + true + true + + + + ${path::combine(prefix, 'lib/mono/1.0/mbas.exe')} + true + + + ${resgen.tool} + true + + + sn + true + + + false + + + ilasm + true + + + + + + + + + + + + + Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/. + + + + + + + + + + + + + + + + + + + + + + al + true + + + ${path::combine(prefix, 'lib/mono/2.0/gmcs.exe')} + true + true + true + ${csc.supportsdocgeneration} + true + true + true + + + + ${path::combine(prefix, 'lib/mono/1.0/mbas.exe')} + true + + + ${resgen.tool} + true + + + sn + true + + + false + + + ilasm + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/nant/bin/NAnt.xml b/tools/nant/bin/NAnt.xml new file mode 100644 index 0000000..fd75a54 --- /dev/null +++ b/tools/nant/bin/NAnt.xml @@ -0,0 +1,48 @@ + + + + NAnt + + + + + Stub used to created and launch real ConsoleDriver + class in Core assembly. + + + + + Entry point for executable + + Command Line arguments + The result of the real execution + + + + Helper class for invoking the application entry point in NAnt.Core + and passing the command-line arguments. + + + + + Initializes a new instance of the + class with the specified command-line arguments. + + The commandline arguments passed to NAnt.exe. + Directories relative to the base directory of the AppDomain to probe for missing assembly references. + + + + Invokes the application entry point in NAnt.Core. + + + + + Gets the status that the build process returned when it exited. + + + The code that the build process specified when it terminated. + + + + diff --git a/tools/nant/bin/NDoc.Documenter.NAnt.dll b/tools/nant/bin/NDoc.Documenter.NAnt.dll new file mode 100644 index 0000000..06dda7e Binary files /dev/null and b/tools/nant/bin/NDoc.Documenter.NAnt.dll differ diff --git a/tools/nant/bin/lib/ICSharpCode.SharpCvsLib.Console.dll b/tools/nant/bin/lib/ICSharpCode.SharpCvsLib.Console.dll new file mode 100644 index 0000000..fcca99e Binary files /dev/null and b/tools/nant/bin/lib/ICSharpCode.SharpCvsLib.Console.dll differ diff --git a/tools/nant/bin/lib/ICSharpCode.SharpCvsLib.dll b/tools/nant/bin/lib/ICSharpCode.SharpCvsLib.dll new file mode 100644 index 0000000..fcd2d1a Binary files /dev/null and b/tools/nant/bin/lib/ICSharpCode.SharpCvsLib.dll differ diff --git a/tools/nant/bin/lib/ICSharpCode.SharpZipLib.dll b/tools/nant/bin/lib/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000..77bafe8 Binary files /dev/null and b/tools/nant/bin/lib/ICSharpCode.SharpZipLib.dll differ diff --git a/tools/nant/bin/lib/NUnitCore.dll b/tools/nant/bin/lib/NUnitCore.dll new file mode 100644 index 0000000..0f1873c Binary files /dev/null and b/tools/nant/bin/lib/NUnitCore.dll differ diff --git a/tools/nant/bin/lib/net/2.0/NDoc.Core.dll b/tools/nant/bin/lib/net/2.0/NDoc.Core.dll new file mode 100644 index 0000000..84931f6 Binary files /dev/null and b/tools/nant/bin/lib/net/2.0/NDoc.Core.dll differ diff --git a/tools/nant/bin/lib/net/2.0/NDoc.Documenter.Msdn.dll b/tools/nant/bin/lib/net/2.0/NDoc.Documenter.Msdn.dll new file mode 100644 index 0000000..bcda527 Binary files /dev/null and b/tools/nant/bin/lib/net/2.0/NDoc.Documenter.Msdn.dll differ diff --git a/tools/nant/bin/lib/net/2.0/NDoc.ExtendedUI.dll b/tools/nant/bin/lib/net/2.0/NDoc.ExtendedUI.dll new file mode 100644 index 0000000..2132a5c Binary files /dev/null and b/tools/nant/bin/lib/net/2.0/NDoc.ExtendedUI.dll differ diff --git a/tools/nant/bin/lib/net/2.0/nunit.core.dll b/tools/nant/bin/lib/net/2.0/nunit.core.dll new file mode 100644 index 0000000..a11e623 Binary files /dev/null and b/tools/nant/bin/lib/net/2.0/nunit.core.dll differ diff --git a/tools/nant/bin/lib/net/2.0/nunit.framework.dll b/tools/nant/bin/lib/net/2.0/nunit.framework.dll new file mode 100644 index 0000000..44704bd Binary files /dev/null and b/tools/nant/bin/lib/net/2.0/nunit.framework.dll differ diff --git a/tools/nant/bin/lib/net/2.0/nunit.util.dll b/tools/nant/bin/lib/net/2.0/nunit.util.dll new file mode 100644 index 0000000..8fff811 Binary files /dev/null and b/tools/nant/bin/lib/net/2.0/nunit.util.dll differ diff --git a/tools/nant/bin/log4net.dll b/tools/nant/bin/log4net.dll new file mode 100644 index 0000000..f377286 Binary files /dev/null and b/tools/nant/bin/log4net.dll differ diff --git a/tools/nant/bin/scvs.exe b/tools/nant/bin/scvs.exe new file mode 100644 index 0000000..34da1bc Binary files /dev/null and b/tools/nant/bin/scvs.exe differ diff --git a/tools/rhinomocks/Rhino.Mocks.dll b/tools/rhinomocks/Rhino.Mocks.dll new file mode 100644 index 0000000..0ee0ae5 Binary files /dev/null and b/tools/rhinomocks/Rhino.Mocks.dll differ diff --git a/tools/rhinomocks/Rhino.Mocks.xml b/tools/rhinomocks/Rhino.Mocks.xml new file mode 100644 index 0000000..453699c --- /dev/null +++ b/tools/rhinomocks/Rhino.Mocks.xml @@ -0,0 +1,7122 @@ + + + + Rhino.Mocks + + + + + Interface for constraints + + + + + determains if the object pass the constraints + + + + + And operator for constraints + + + + + Not operator for constraints + + + + + Or operator for constraints + + + + + Allow overriding of || or && + + + + + + + + + Allow overriding of || or && + + + + + + + + + Gets the message for this constraint + + + + + + + Constrain that the property matches another constraint. + + + + + Creates a new instance. + + Name of the property. + Constraint to place on the property value. + + + + Creates a new instance, specifying a disambiguating + for the property. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + Constraint to place on the property value. + + + + Determines if the object passes the constraint. + + + + + Gets the message for this constraint + + + + + + + Constrain that the property has a specified value + + + + + Creates a new instance. + + Name of the property. + Expected value. + + + + Creates a new instance, specifying a disambiguating + for the property. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + Expected value. + + + + Constrain that the parameter must be of the specified type + + + + + Creates a new instance. + + Type. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constraint that determines whether an object is the same object as another. + + + + + Creates a new instance. + + Obj. + + + + Determines if the object passes the constraints. + + + + + Gets the message for this constraint. + + + + + Evaluate a parameter using constraints + + + + + Create new instance + + + + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constrain that the list contains the same items as the parameter list + + + + + Creates a new instance. + + In list. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constrain that the parameter is one of the items in the list + + + + + Creates a new instance. + + In list. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constrain that the object is inside the parameter list + + + + + Creates a new instance. + + In list. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Applies another AbstractConstraint to the collection count. + + + + + Creates a new instance. + + The constraint that should be applied to the collection count. + + + + Determines if the parameter conforms to this constraint. + + + + + Gets the message for this constraint. + + + + + Applies another AbstractConstraint to a specific list element. + + + + + Creates a new instance. + + The zero-based index of the list element. + The constraint that should be applied to the list element. + + + + Determines if the parameter conforms to this constraint. + + + + + Gets the message for this constraint + + + + + + + Combines two constraints, constraint pass if either is fine. + + + + + Creates a new instance. + + C1. + C2. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Negate a constraint + + + + + Creates a new instance. + + C1. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Combines two constraints + + + + + + + Creates a new instance. + + C1. + C2. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constrain the argument to validate according to regex pattern + + + + + Creates a new instance. + + Pattern. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constraint that evaluate whatever an argument contains the specified string. + + + + + Creates a new instance. + + Inner string. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constraint that evaluate whatever an argument ends with the specified string + + + + + Creates a new instance. + + End. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constraint that evaluate whatever an argument start with the specified string + + + + + Creates a new instance. + + Start. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constraint that evaluate whatever an object equals another + + + + + Creates a new instance. + + Obj. + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constraint that always returns true + + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Constraint that evaluate whatever a comparable is greater than another + + + + + Creates a new instance. + + + + + determains if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + + Central location for constraints + + + + + Evaluate a greater than constraint for . + + The object the parameter should be greater than + + + + Evaluate a less than constraint for . + + The object the parameter should be less than + + + + Evaluate a less than or equal constraint for . + + The object the parameter should be less than or equal to + + + + Evaluate a greater than or equal constraint for . + + The object the parameter should be greater than or equal to + + + + Evaluate an equal constraint for . + + The object the parameter should equal to + + + + Evaluate a not equal constraint for . + + The object the parameter should not equal to + + + + Evaluate a same as constraint. + + The object the parameter should the same as. + + + + Evaluate a not same as constraint. + + The object the parameter should not be the same as. + + + + A constraints that accept anything + + + + + + + A constraint that accept only nulls + + + + + + + A constraint that accept only non null values + + + + + + + A constraint that accept only value of the specified type + + + + + A constraint that accept only value of the specified type + + + + + Evaluate a parameter using a predicate + + The predicate to use + + + + Central location for constraints about lists and collections + + + + + Determines whether the specified obj is in the paramter. + The parameter must be IEnumerable. + + Obj. + + + + + + Determains whatever the parameter is in the collection. + + + + + Determains that the parameter collection is identical to the specified collection + + + + + Determines that the parameter collection has the specified number of elements. + + The constraint that should be applied to the collection count. + + + + Determines that an element of the parameter collections conforms to another AbstractConstraint. + + The zero-based index of the list element. + The constraint which should be applied to the list element. + + + + Central location for constraints for object's properties + + + + + Constrains the parameter to have property with the specified value + + Name of the property. + Expected value. + + + + + + Constrains the parameter to have property with the specified value. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + Expected value. + + + + + + Constrains the parameter to have a property satisfying a specified constraint. + + Name of the property. + Constraint for the property. + + + + Constrains the parameter to have a property satisfying a specified constraint. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + Constraint for the property. + + + + Determines whether the parameter has the specified property and that it is null. + + Name of the property. + + + + + + Determines whether the parameter has the specified property and that it is null. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + + + + + + Determines whether the parameter has the specified property and that it is not null. + + Name of the property. + + + + + + Determines whether the parameter has the specified property and that it is not null. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + + + + + + Central location for all text related constraints + + + + + Constrain the argument to starts with the specified string + + + + + Constrain the argument to end with the specified string + + + + + Constrain the argument to contain the specified string + + + + + Constrain the argument to validate according to regex pattern + + + + + An expectaton violation was detected. + + + + + Creates a new instance. + + Message. + + + + Serialization constructor + + + + + Signals that an object was call on a mock repostiroy which doesn't + belong to this mock repository or not a mock + + + + + Creates a new instance. + + Message. + + + + Serialization constructor + + + + + Allows to set expectation on methods that has return values. + For methods with void return value, you need to use LastCall + + + + + The method options for the last call on /any/ proxy on /any/ repository on the current thread. + This method if not safe for multi threading scenarios, use . + + + + + Get the method options for the last method call on the mockInstance. + + + + + Interface to validate that a method call is correct. + + + + + Validate the arguments for the method. + This method can be called numerous times, so be careful about side effects + + The arguments with which the method was called + + + + Add an actual method call to this expectation + + + + + Returns the return value or throw the exception and setup any output / ref parameters + that has been set. + + + + + Gets the error message. + + + + + + + Range of expected calls + + + + + Number of call actually made for this method + + + + + If this expectation is still waiting for calls. + + + + + The return value for a method matching this expectation + + + + + Gets or sets the exception to throw on a method matching this expectation. + + + + + Gets a value indicating whether this instance's action is staisfied. + A staisfied instance means that there are no more requirements from + this method. A method with non void return value must register either + a return value or an exception to throw. + + + + + Gets the method this expectation is for. + + + + + Gets or sets what special condtions there are for this method + repeating. + + + + + Gets a value indicating whether this expectation was satisfied + + + + + Specify whatever this expectation has a return value set + You can't check ReturnValue for this because a valid return value include null. + + + + + An action to execute when the method is matched. + + + + + Set the out / ref parameters for the method call. + The indexing is zero based and ignores any non out/ref parameter. + It is possible not to pass all the parameters. This method can be called only once. + + + + + Documentation Message + + + + + Gets the invocation for this expectation + + The invocation. + + + + Abstract class that holds common information for + expectations. + + + + + Number of actuall calls made that passed this expectation + + + + + Range of expected calls that should pass this expectation. + + + + + The return value for a method matching this expectation + + + + + The exception to throw on a method matching this expectation. + + + + + The method this expectation is for. + + + + + The return value for this method was set + + + + + Whether this method will repeat + unlimited number of times. + + + + + A delegate that will be run when the + expectation is matched. + + + + + The arguments that matched this expectation. + + + + + Documentation message + + + + + The method originalInvocation + + + + + Get the hash code + + + + + Add an actual method call to this expectation + + + + + Returns the return value or throw the exception and setup output / ref parameters + + + + + Validate the arguments for the method on the child methods + + The arguments with which the method was called + + + + Creates a new instance. + + The originalInvocation for this method, required because it contains the generic type infromation + + + + Creates a new instance. + + Expectation. + + + + Validate the arguments for the method on the child methods + + The arguments with which the method was called + + + + Determines if this object equal to obj + + + + + The error message for these arguments + + + + + Asserts that the delegate has the same parameters as the expectation's method call + + + + + Setter for the outpur / ref parameters for this expecataion. + Can only be set once. + + + + + Specify whatever this expectation has a return value set + You can't check ReturnValue for this because a valid return value include null. + + + + + Gets the method this expectation is for. + + + + + Gets the originalInvocation for this expectation + + The originalInvocation. + + + + Gets or sets what special condtions there are for this method + + + + + Range of expected calls + + + + + Number of call actually made for this method + + + + + If this expectation is still waiting for calls. + + + + + Gets a value indicating whether this expectation was satisfied + + + + + The return value for a method matching this expectation + + + + + An action to execute when the method is matched. + + + + + Gets or sets the exception to throw on a method matching this expectation. + + + + + Gets a value indicating whether this instance's action is staisfied. + A staisfied instance means that there are no more requirements from + this method. A method with non void return value must register either + a return value or an exception to throw or an action to execute. + + + + + Documentation message + + + + + Gets the error message. + + + + + + + Expectation that matchs any arguments for the method. + + + + + Creates a new instance. + + Invocation for this expectation + + + + Creates a new instance. + + Expectation. + + + + Validate the arguments for the method. + + The arguments with which the method was called + + + + Determines if the object equal to expectation + + + + + Get the hash code + + + + + Gets the error message. + + + + + + + Summary description for ArgsEqualExpectation. + + + + + Creates a new instance. + + Expected args. + The invocation for this expectation + + + + Validate the arguments for the method. + + The arguments with which the method was called + + + + Determines if the object equal to expectation + + + + + Get the hash code + + + + + Gets the error message. + + + + + + + Get the expected args. + + + + + Call a specified callback to verify the expectation + + + + + Creates a new instance. + + Expectation. + Callback. + + + + Creates a new instance. + + Invocation for this expectation + Callback. + + + + Validate the arguments for the method on the child methods + + The arguments with which the method was called + + + + Determines if the object equal to expectation + + + + + Get the hash code + + + + + Gets the error message. + + + + + + + Expect the method's arguments to match the contraints + + + + + Creates a new instance. + + Invocation for this expectation + Constraints. + + + + Creates a new instance. + + Expectation. + Constraints. + + + + Validate the arguments for the method. + + The arguments with which the method was called + + + + Determines if the object equal to expectation + + + + + Get the hash code + + + + + Gets the error message. + + + + + + + Log expectations - allows to see what is going on inside Rhino Mocks + + + + + Logs the expectation as is was recorded + + The invocation. + The expectation. + + + + Logs the expectation as it was recorded + + The invocation. + The expectation. + + + + Logs the unexpected method call. + + The invocation. + The message. + + + + Doesn't log anything, just makes happy noises + + + + + Rudimetry implementation that simply logs methods calls as text. + + + + + Initializes a new instance of the class. + + The writer. + + + + Logs the expectation as is was recorded + + The invocation. + The expectation. + + + + Logs the expectation as it was recorded + + The invocation. + The expectation. + + + + Logs the unexpected method call. + + The invocation. + The message. + + + + Different actions on this mock + + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Verify that this mock expectations have passed. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Set the exception to throw when Verify is called. + This is used to report exception that may have happened but where caught in the code. + This way, they are reported anyway when Verify() is called. + + + + + Gets the matching verify state for this state + + + + + Get the options for the last method call + + + + + Records all the expectations for a mock + + + + + Set the exception to throw when Verify is called. + This is used to report exception that may have happened but where caught in the code. + This way, they are reported anyway when Verify() is called. + + + + + Creates a new instance. + + Repository. + The proxy that generates the method calls + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Verify that this mock expectations have passed. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Asserts the previous method is closed (had an expectation set on it so we can replay it correctly) + + + + + Gets the last expectation. + + + + + Gets the total method calls count. + + + + + Get the options for the last method call + + + + + Gets the matching verify state for this state + + + + + Behave like a stub, all properties and events acts normally, methods calls + return default values by default (but can use expectations to set them up), etc. + + + + + Initializes a new instance of the class. + + The proxy that generates the method calls + Repository. + + + + We don't care much about expectations here, so we will remove the exepctation if + it is not closed. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + + + Validate all expectations on a mock + + + + + The repository for this state + + + + + The proxy object for this state + + + + + Creates a new instance. + + The previous state for this method + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Add a method call for this state' mock. + This allows derived method to cleanly get a the setupresult behavior while adding + their own. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Set the exception to throw when Verify is called. + This is used to report exception that may have happened but where caught in the code. + This way, they are reported anyway when Verify() is called. + + + + + Verify that this mock expectations have passed. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Gets the matching verify state for this state + + + + + Validate expectations on recorded methods, but in general completely ignoring them. + Similar to except that it would return a + when BackToRecord is called. + + + + + Initializes a new instance of the class. + + The previous state for this method + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Gets a mock state that match the original mock state of the object. + + + + + Marker interface used to indicate that this is a partial mock. + + + + + Options for CallOriginalMethod + + + + + No expectation is created, the method will be called directly + + + + + Normal expectation is created, but when the method is later called, it will also call the original method + + + + + Adds optional new usage: + using(mockRepository.Record()) { + Expect.Call(mock.Method()).Return(retVal); + } + using(mockRepository.Playback()) { + // Execute code + } + N.B. mockRepository.ReplayAll() and mockRepository.VerifyAll() + calls are taken care of by Record/Playback + + + Creates proxied instances of types. + + + + + Delegate: CreateMockState + This is used internally to cleanly handle the creation of different + RecordMockStates. + + + + + This is used to record the last repository that has a method called on it. + + + + + this is used to get to the last proxy on this repository. + + + + + For mock delegates, maps the proxy instance from intercepted invocations + back to the delegate that was originally returned to client code, if any. + + + + + All the proxies in the mock repositories + + + + + + + + + + + + + + + + + Creates a new instance. + + + + + Move the repository to ordered mode + + + + + Move the repository to un-ordered mode + + + + + Creates a mock for the specified type. + + Type. + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a mock from several types, with strict semantics. + Only may be a class. + + + + + Creates a mock from several types, with strict semantics. + Only may be a class. + + The main type to mock. + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class. + + + + Creates a mock from several types, with dynamic semantics. + Only may be a class. + + The main type to mock. + Extra interface types to mock. + + + + Creates a mock from several types, with dynamic semantics. + Only may be a class. + + The main type to mock. + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class. + + + + Creates a dynamic mock for the specified type. + + Type. + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a mock object that defaults to calling the class methods. + + Type. + Arguments for the class' constructor. + + + + Creates a mock object that defaults to calling the class methods. + + Type. + Extra interface types to mock. + + + + Creates a mock object that defaults to calling the class methods. + + Type. + Extra interface types to mock. + Arguments for the class' constructor. + + + + Cause the mock state to change to replay, any further call is compared to the + ones that were called in the record state. + + the object to move to replay state + + + + Move the mocked object back to record state. + Will delete all current expectations! + + + + + Verify that all the expectations for this object were fulfilled. + + the object to verify the expectations for + + + + Get the method options for the last call on + mockedInstance. + + The mock object + Method options for the last call + + + + Maps an invocation proxy back to the mock object instance that was originally + returned to client code which might have been a delegate to this proxy. + + The mock object proxy from the intercepted invocation + The mock object + + + + This is provided to allow advance extention functionality, where Rhino Mocks standard + functionality is not enough. + + The type to mock + Delegate that create the first state of the mocked object (usualy the record state). + Additional types to be implemented, this can be only interfaces + optional arguments for the constructor + + + + + + Method: GetMockedObject + Get an IProxy from a mocked object instance, or throws if the + object is not a mock object. + + + + + Method: GetMockedObjectOrNull + Get an IProxy from a mocked object instance, or null if the + object is not a mock object. + + + + + Pops the recorder. + + + + + Pushes the recorder. + + New recorder. + + + + All the mock objects in this repository will be moved + to record state. + + + + + Replay all the mocks from this repository + + + + + Verify all the mocks from this repository + + + + + Set the exception to be thrown when verified is called. + + + + + Creates a mock for the spesified type. + + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a dynamic mock for the specified type. + + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a mock object from several types. + + + + + Create a mock object from several types with dynamic semantics. + + + + + Create a mock object from several types with partial semantics. + + + + + Create a mock object from several types with strict semantics. + + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class + + + + Create a mock object from several types with dynamic semantics. + + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class + + + + Create a mock object from several types with partial semantics. + + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class + + + + Create a mock object with from a class that defaults to calling the class methods + + Arguments for the class' constructor, if mocking a concrete class + + + + Create a stub object, one that has properties and events ready for use, and + can have methods called on it. It requires an explicit step in order to create + an expectation for a stub. + + The arguments for constructor. + + + + Create a stub object, one that has properties and events ready for use, and + can have methods called on it. It requires an explicit step in order to create + an expectation for a stub. + + The type. + The arguments for constructor. + + + + + + Generates a stub without mock repository + + The arguments for constructor. + + + + + + Generates the stub without mock repository + + The type. + The arguments for constructor. + + + + Gets the recorder. + + + + + + + Gets the replayer for this repository. + + + + + + + Gets the last proxy which had a method call. + + + + + Utility class for dealing with messing generics scenarios. + + + + + There are issues with trying to get this to work correctly with open generic types, since this is an edge case, + I am letting the runtime handle it. + + + + + Gets the real type, including de-constructing and constructing the type of generic + methods parameters. + + The type. + The invocation. + + + + + + Because we need to support complex types here (simple generics were handled above) we + need to be aware of the following scenarios: + List[T] and List[Foo[T]] + + + + + ExpectationsList + + + + + Dictionary + + + + + Dictionary class + + + + + Create a new instance of ProxyStateDictionary + + + + Interface to allows to call a method and immediatly get it's options. + + + + + Get the method options for the call + + The method call should go here, the return value is ignored + + + + Allows to call a method and immediatly get it's options. + + + + + Creates a new instance. + + + + + Get the method options for the call + + The method call should go here, the return value is ignored + + + + Allows to call a method and immediatly get it's options. + Set the expected number for the call to Any() + + + + + Creates a new instance. + + Proxy. + Mocked instance. + + + + Get the method options for the call + + The method call should go here, the return value is ignored + + + + This class is reponsible for taking a delegate and creating a wrapper + interface around it, so it can be mocked. + + + + + The scope for all the delegate interfaces create by this mock repositroy. + + + + + Gets a type with an "Invoke" method suitable for use as a target of the + specified delegate type. + + + + + + + + + Raise events for all subscribers for an event + + + + + Raise the event + + + + + Raise events for all subscribers for an event + + + + + Creates a new instance of EventRaiser + + + + Raise the event + + + + + Allows to define what would happen when a method + is called. + + + + + Set the return value for the method. + + The object the method will return + IRepeat that defines how many times the method will return this value + + + + Throws the specified exception when the method is called. + + Exception to throw + + + + Ignores the arguments for this method. Any argument will be matched + againt this method. + + + + + Add constraints for the method's arguments. + + + + + Set a callback method for the last call + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Call the original method on the class, bypassing the mocking layers. + + + + + + + Call the original method on the class, optionally bypassing the mocking layers. + + + + + + + Use the property as a simple property, getting/setting the values without + causing mock expectations. + + + + + Get an event raiser for the last subscribed event. + + + + + Set the parameter values for out and ref parameters. + This is done using zero based indexing, and _ignoring_ any non out/ref parameter. + + + + + Documentation message for the expectation + + Message + + + + Better syntax to define repeats. + + + + + Allows to specify the number of time for method calls + + + + + Repeat the method twice. + + + + + Repeat the method once. + + + + + Repeat the method at least once, then repeat as many time as it would like. + + + + + Repeat the method any number of times. + This has special affects in that this method would now ignore orderring. + + + + + Set the range to repeat an action. + + Min. + Max. + + + + Set the amount of times to repeat an action. + + + + + This method must not appear in the replay state. + This has special affects in that this method would now ignore orderring. + + + + + Allows to define what would happen when a method + is called. + + + + + Creates a new instance. + + the repository for this expectation + the recorder for this proxy + the proxy for this expectation + Expectation. + + + + Add constraints for the method's arguments. + + + + + Set a callback method for the last call + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set the return value for the method. + + The object the method will return + IRepeat that defines how many times the method will return this value + + + + Throws the specified exception when the method is called. + + Exception to throw + + + + Ignores the arguments for this method. Any argument will be matched + againt this method. + + + + + Call the original method on the class, bypassing the mocking layers. + + + + + + + Call the original method on the class, optionally bypassing the mocking layers + + + + + + + Use the property as a simple property, getting/setting the values without + causing mock expectations. + + + + + Gets the event raiser for the last event + + + + + Set the parameter values for out and ref parameters. + This is done using zero based indexing, and _ignoring_ any non out/ref parameter. + + + + + Repeat the method twice. + + + + + Repeat the method once. + + + + + Repeat the method at least once, then repeat as many time as it would like. + + + + + This method must not appear in the replay state. + + + + + Documentation message for the expectation + + Message + + + + Repeat the method any number of times. + + + + + Set the range to repeat an action. + + Min. + Max. + + + + Set the amount of times to repeat an action. + + + + + Better syntax to define repeats. + + + + + This class will provide hash code for hashtables without needing + to call the GetHashCode() on the object, which may very well be mocked. + This class has no state so it is a singelton to avoid creating a lot of objects + that does the exact same thing. See flyweight patterns. + + + + + Get the hash code for a proxy object without calling GetHashCode() + on the object. + + + + + Compares two instances of mocked objects + + + + + Compare two mocked objects + + + + + The next hash code value for a mock object. + This is safe for multi threading. + + + + + The sole instance of + + + + Interface to find the repository of a mocked object + + + + + Return true if it should call the original method on the object + instead of pass it to the message chain. + + The method to call + + + + Register a method to be called on the object directly + + + + + Register a property on the object that will behave as a simple property + + + + + Check if the method was registered as a property method. + + + + + Do get/set on the property, according to need. + + + + + Do add/remove on the event + + + + + Get the subscribers of a spesific event + + + + + Gets the declaring type of the method, taking into acccount the possible generic + parameters that it was created with. + + + + + Clears the state of the object, remove original calls, property behavior, subscribed events, etc. + + + + + The unique hash code of this mock, which is not related + to the value of the GetHashCode() call on the object. + + + + + Gets the repository. + + + + + Gets the implemented types by this mocked object + + The implemented. + + + + This is a dummy type that is used merely to give DynamicProxy the proxy instance that + it needs to create IProxy's types. + + + + + Create a new instance of + + + + Return true if it should call the original method on the object + instead of pass it to the message chain. + + The method to call + + + + Register a method to be called on the object directly + + + + + Register a property on the object that will behave as a simple property + + + + + Check if the method was registered as a property method. + + + + + Do get/set on the property, according to need. + + + + + Do add/remove on the event + + + + + Get the subscribers of a spesific event + + + + + Gets the declaring type of the method, taking into acccount the possible generic + parameters that it was created with. + + + + + Clears the state of the object, remove original calls, property behavior, subscribed events, etc. + + + + + The unique hash code of this proxy, which is not related + to the value of the GetHashCode() call on the object. + + + + + Gets the repository. + + + + + Gets the implemented types by this mocked object + + The implemented. + + + + Range for expected method calls + + + + + Creates a new instance. + + Min. + Max. + + + + Return the string representation of this range. + + + + + Gets or sets the min. + + + + + + + Gets or sets the max. + + + + + + + Records all the expectations for a mock and + return a ReplayDynamicMockState when Replay() + is called. + + + + + Creates a new instance. + + Repository. + The proxy that generates the method calls + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Records all the expectations for a mock and + return a ReplayPartialMockState when Replay() + is called. + + + + + Creates a new instance. + + Repository. + The proxy that generates the method calls + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Options for special repeat option + + + + + This method can be called only as many times as the IMethodOptions.Expect allows. + + + + + This method should never be called + + + + + This method can be call any number of times + + + + + This method will call the original method + + + + + This method will call the original method, bypassing the mocking layer + + + + + This method will simulate simple property behavior + + + + + Validate all expectations on a mock and ignores calls to + any method that was not setup properly. + + + + + Creates a new instance. + + The previous state for this method + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Gets a mock state that match the original mock state of the object. + + + + + Validate all expectations on a mock and ignores calls to + any method that was not setup properly. + + + + + Creates a new instance. + + The previous state for this method + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Gets a mock state that match the original mock state of the object. + + + + + Summary description for RhinoInterceptor. + + + + + Creates a new instance. + + + + + Intercept a method call and direct it to the repository. + + + + + Validate arguments for methods + + + + + Validate that the passed argument is not null. + + The object to validate + The name of the argument + + If the obj is null, an ArgumentNullException with the passed name + is thrown. + + + + + Validate that the arguments are equal. + + Expected args. + Actual Args. + + + + This method is safe for use even if any of the objects is a mocked object + that override equals. + + + + + Throw an object already verified when accessed + + + + + Create a new instance of VerifiedMockState + + The previous mock state, used to get the initial record state + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Verify that this mock expectations have passed. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Set the exception to throw when Verify is called. + This is used to report exception that may have happened but where caught in the code. + This way, they are reported anyway when Verify() is called. + + + + + Gets the matching verify state for this state + + + + + Get the options for the last method call + + + + + Records the actions on all the mocks created by a repository. + + + + + Records the specified call with the specified args on the mocked object. + + + + + Get the expectation for this method on this object with this arguments + + + + + This check the methods that were setup using the SetupResult.For() + or LastCall.Repeat.Any() and that bypass the whole expectation model. + + + + + Gets the all expectations for a mocked object and method combination, + regardless of the expected arguments / callbacks / contraints. + + Mocked object. + Method. + List of all relevant expectation + + + + Gets the all expectations for proxy. + + Mocked object. + List of all relevant expectation + + + + Removes all the repeatable expectations for proxy. + + Mocked object. + + + + Replaces the old expectation with the new expectation for the specified proxy/method pair. + This replace ALL expectations that equal to old expectations. + + Proxy. + Method. + Old expectation. + New expectation. + + + + Adds the recorder and turn it into the active recorder. + + Recorder. + + + + Moves to previous recorder. + + + + + Gets the recorded expectation or null. + + + + + Gets the next expected calls string. + + + + + Moves to parent recorder. + + + + + Set the expectation so it can repeat any number of times. + + + + + Removes the expectation from the recorder + + + + + Clear the replayer to call (and all its chain of replayers) + This also removes it from the list of expectations, so it will never be considered again + + + + + Get the expectation for this method on this object with this arguments + + + + + Gets a value indicating whether this instance has expectations that weren't satisfied yet. + + + true if this instance has expectations; otherwise, false. + + + + + Allows to set various options for the last method call on + a specified object. + If the method has a return value, it's recommended to use Expect + + + + + Allows to get an interface to work on the last call. + + The mocked object + Interface that allows to set options for the last method call on this object + + + + Set the return value for the method. + + The object the method will return + IRepeat that defines how many times the method will return this value + + + + Throws the specified exception when the method is called. + + Exception to throw + + + + Ignores the arguments for this method. Any argument will be matched + againt this method. + + + + + Add constraints for the method's arguments. + + + + + Set a callback method for the last call + + + + + Call the original method on the class, bypassing the mocking layers, for the last call. + + + + + Call the original method on the class, optionally bypassing the mocking layers, for the last call. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Gets an interface that will raise the last event when called. + + + + + Set the parameter values for out and ref parameters. + This is done using zero based indexing, and _ignoring_ any non out/ref parameter. + + + + + Documentation message for the expectation + + Message + + + + Use the property as a simple property, getting/setting the values without + causing mock expectations. + + + + + Better syntax to define repeats. + + + + + Base class for method recorders, handle delegating to inner recorder if needed. + + + + + List of the expected actions on for this recorder + The legal values are: + * Expectations + * Method Recorders + + + + + The current recorder. + + + + + The current replayer; + + + + + The parent recorder of this one, may be null. + + + + + This contains a list of all the replayers that should be ignored + for a spesific method call. A replayer gets into this list by calling + ClearReplayerToCall() on its parent. This list is Clear()ed on each new invocation. + + + + + All the repeatable methods calls. + + + + + Counts the recursion depth of the current expectation search stack + + + + + Creates a new instance. + + + + + Creates a new instance. + + Parent recorder. + + + + Records the specified call with the specified args on the mocked object. + + + + + Get the expectation for this method on this object with this arguments + + + + + Gets the all expectations for a mocked object and method combination, + regardless of the expected arguments / callbacks / contraints. + + Mocked object. + Method. + List of all relevant expectation + + + + Gets the all expectations for proxy. + + Mocked object. + List of all relevant expectation + + + + Replaces the old expectation with the new expectation for the specified proxy/method pair. + This replace ALL expectations that equal to old expectations. + + Proxy. + Method. + Old expectation. + New expectation. + + + + Remove the all repeatable expectations for proxy. + + Mocked object. + + + + Set the expectation so it can repeat any number of times. + + + + + Removes the expectation from the recorder + + + + + Adds the recorder and turn it into the active recorder. + + Recorder. + + + + Moves to previous recorder. + + + + + Moves to parent recorder. + + + + + Gets the recorded expectation or null. + + + + + Clear the replayer to call (and all its chain of replayers). + This also removes it from the list of expectations, so it will never be considered again + + + + + Get the expectation for this method on this object with this arguments + + + + + Gets the next expected calls string. + + + + + Handles the real getting of the recorded expectation or null. + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Should this replayer be considered valid for this call? + + + + + This check the methods that were setup using the SetupResult.For() + or LastCall.Repeat.Any() and that bypass the whole expectation model. + + + + + Gets a value indicating whether this instance has expectations that weren't satisfied yet. + + + true if this instance has expectations; otherwise, false. + + + + + Handle the real execution of this method for the derived class + + + + + Unordered collection of method records, any expectation that exist + will be matched. + + + + + The parent recorder we have redirected to. + Useful for certain edge cases in orderring. + See: FieldProblem_Entropy for the details. + + + + + Creates a new instance. + + Parent recorder. + + + + Creates a new instance. + + + + + Records the specified call with the specified args on the mocked object. + + Mocked object. + Method. + Expectation. + + + + Get the expectation for this method on this object with this arguments + + Invocation for this method + Mocked object. + Method. + Args. + True is the call was recorded, false otherwise + + + + Gets the all expectations for a mocked object and method combination, + regardless of the expected arguments / callbacks / contraints. + + Mocked object. + Method. + List of all relevant expectation + + + + Gets the all expectations for proxy. + + Mocked object. + List of all relevant expectation + + + + Replaces the old expectation with the new expectation for the specified proxy/method pair. + This replace ALL expectations that equal to old expectations. + + Proxy. + Method. + Old expectation. + New expectation. + + + + Handle the real execution of this method for the derived class + + + + + Handles the real getting of the recorded expectation or null. + + + + + Handle the real execution of this method for the derived class + + + + + Gets the next expected calls string. + + + + + Create an exception for an unexpected method call. + + + + + Gets a value indicating whether this instance has expectations that weren't satisfied yet. + + + true if this instance has expectations; otherwise, false. + + + + + Ordered collection of methods, methods must arrive in specified order + in order to pass. + + + + + Creates a new instance. + + Parent recorder. + + + + Creates a new instance. + + + + + Handles the real getting of the recorded expectation or null. + + + + + Get the expectation for this method on this object with this arguments + + + + + Gets the next expected calls string. + + + + + Hold an expectation for a method call on an object + + + + + Creates a new instance. + + Proxy. + Method. + Expectation. + + + + Determains if the object equal to this instance + + Obj. + + + + + + Gets the hash code. + + + + + + + Gets the proxy. + + + + + + + Gets the method. + + + + + + + Gets the expectation. + + + + + + + Holds a pair of mocked object and a method + and allows to compare them against each other. + This allows us to have a distinction between mockOne.MyMethod() and + mockTwo.MyMethod()... + + + + + Creates a new instance. + + Proxy. + Method. + + + + Determains whatever obj equals to this instance. + ProxyMethodPairs are equals when they point to the same /instance/ of + an object, and to the same method. + + Obj. + + + + + + Gets the hash code. + + + + + + + Gets the proxy. + + + + + + + Gets the method. + + + + + + + Change the recorder from ordered to unordered and vice versa + + + + + Creates a new instance. + + + + + Disposes this instance. + + + + + Accessor for the current mocker + + + + + The current mocker + + + + + Used for [assembly: InternalsVisibleTo(RhinoMocks.StrongName)] + Used for [assembly: InternalsVisibleTo(RhinoMocks.NormalName)] + + + + + Strong name for the Dynamic Proxy assemblies. Used for InternalsVisibleTo specification. + + + + + Normal name for dynamic proxy assemblies. Used for InternalsVisibleTo specification. + + + + + Logs all method calls for methods + + + + + Setup method calls to repeat any number of times. + + + + + Get the method options and set the last method call to repeat + any number of times. + This also means that the method would transcend ordering + + + + + Get the method options for the last method call on the mockInstance and set it + to repeat any number of times. + This also means that the method would transcend ordering + + + + + Utility class for working with method calls. + + + + + Delegate to format the argument for the string representation of + the method call. + + + + + Return the string representation of a method call and its arguments. + + The method + The method arguments + Invocation of the method, used to get the generics arguments + Delegate to format the parameter + The string representation of this method call + + + + Return the string representation of a method call and its arguments. + + The invocation of the method, used to get the generic parameters + The method + The method arguments + The string representation of this method call + + + + Utility to get the default value for a type + + + + + The default value for a type. + Null for reference types and void + 0 for value types. + First element for enums + Note that we need to get the value even for opened generic types, such as those from + generic methods. + + Type. + The invocation. + the default value + + + + Allows easier access to MockRepository, works closely with Mocker.Current to + allow access to a context where the mock repository is automatially verified at + the end of the code block. + + + + + A method with no arguments and no return value that will be called under the mock context. + + + + + Initialize a code block where Mocker.Current is initialized. + At the end of the code block, all the expectation will be verified. + This overload will create a new MockRepository. + + The code that will be executed under the mock context + + + + Initialize a code block where Mocker.Current is initialized. + At the end of the code block, all the expectation will be verified. + This overload will create a new MockRepository. + + The mock repository to use, at the end of the code block, VerifyAll() will be called on the repository. + The code that will be executed under the mock context + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Summary description for NewArrayExpression. + + + + + + + + + Handles replication of custom attributes + + + + + Here we try to match a constructor argument to its value. + Since we can't get the values from the assembly, we use some heuristics to get it. + a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument + b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string). + + + + + We have the following rules here. + Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that + we can convert it. + + + + + Attributes can only accept simple types, so we return null for null, + if the value is passed as string we call to string (should help with converting), + otherwise, we use the value as is (enums, integer, etc). + + + + + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Inspect the base method for generic definitions + and set the return type and the parameters + accordingly + + + + + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + + + + + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + + + + + Summary description for PropertiesCollection. + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Base class that exposes the common functionalities + to proxy generation. + + + TODO: + - Use the interceptor selector if provided + - Add tests and fixes for 'leaking this' problem + - Mixin support + + + + + Used by dinamically implement + + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + If callbackMethod is null the InvokeOnTarget implementation + is just the code to throw an exception + + + + + + + + + + + + + + + + + + + If callbackMethod is null the InvokeOnTarget implementation + is just the code to throw an exception + + + + + + + + + + + + + + If true the invocation will implement the IChangeProxyTarget interface + + + + + + Generates the constructor for the nested class that extends + + + + + + + + + + + + + Improvement: this cache should be static. We should generate a + type constructor instead + + + + + Performs some basic screening and invokes the + to select methods. + + + + + + + + + + + Checks if the method is public or protected. + + + + + + + + + Checks if the method has the same signature as a method that was marked as + one that should generate a new vtable slot. + + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + + + + + Initializes a new instance of the class. + + The emitter. + The add method. + The remove method. + The attributes. + + + + + + + + Finds the type of the method on target. + + The method on interface. + Type of the proxy target. + if set to true will check implementation on mixins. + + + + + + Checks whether the given types are the same. This is + more complicated than it looks. + + + + + + + + + + + This is used by the ProxyObjectReference class durin de-serialiation, to know + which generator it should use + + + + + Handles the deserialization of proxies. + See here for more details: + http://groups.google.com/group/castle-project-devel/msg/fb5ef9656d050ba5 + + + + + Usefull for test cases + + + + + Assists in serializing instances of the generated proxy types so that they can be deserialized via . + + + + + Used to circumvent a serialization bug, where direct self references and directly held delegates are not deserialized correctly. + + + + + Used during the target type inspection process. + Implementors have a chance to interfere in the + proxy generation process + + + + + Invoked by the generation process to know if + the specified member should be proxied + + + + + + + + + + + Invoked by the generation process to notify that a + member wasn't marked as virtual. + + + + + + + + + Invoked by the generation process to notify + that the whole process is completed. + + + + + Abstracts the implementation of proxy constructions + + + + + Implementors should return a proxy for the specified type. + + The proxy base class. + The proxy generation options. + The generated proxy type. + + + + Implementors should return a proxy for the specified + type and interfaces. The interfaces must be only "mark" interfaces + + + + + + + + + + + + + Implementors should return a proxy for the specified + interface that 'proceeds' executions to the + specified target. + + + + + + + + + + + + + + + Implementors should return a proxy for the specified + interface that delegate all executions to the + specified interceptor(s). + + + + + + + + + + + + + Implementors should return a proxy for the specified + interface that delegate all executions to the + specified interceptor(s) and uses an instance of the interface + as their targets, rather than a class. All IInvocation's + should then implement IChangeProxyTarget. + + + + + + + + + + + Determines whether this assembly has internals visisble to dynamic proxy. + + The asm. + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Summary description for ModuleScope. + + + + + Avoid leaks caused by non disposal of generated types. + + + + + Keep track of generated types + + + + + Used to lock the module builder creation + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + if set to true saves the generated module. + + + + Saves the generated assembly. + + + + + ProxyBuilder that persists the generated type. + + + The saved assembly contains just the last generated type. + + + + + Initializes a new instance of the class. + + + + + The proxy generation options, note that this is a statefull class with regard to mixin. + + + + + Gets the default options + + The default. + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + This is required because a mixin may implement more than a single interface. + In order to track that, we register them all here, and when we instansiate the proxy, we pass it the + mixins implementations, where each interface has an object that implements it. + Example: + FooBar foo implements IFoo and IBar + + proxy ctor would be: + + public Proxy(IFoo, IBar, IInterceptor[], object target) + + And will be invoked with: + new Proxy(foo, foo, inteceptors, target); + + The mixin. + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducable behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + + + Initializes a new instance of the class. + + The builder. + + + + Initializes a new instance of the class. + + + + + Creates the class proxy. + + Type of the target. + The interfaces. + The interceptors. + + + + + + Creates the class proxy. + + Type of the target. + The interceptors. + The constructor args. + + + + + + + + + + + + + + + + + + Creates the class proxy. + + Type of the target. + The interfaces. + The options. + The constructor args. + The interceptors. + + + + + + Gets the proxy builder instance. + + The proxy builder. + + + + + + + + + + + + + + For interface proxies, this will point to the + on the target class + + + + + Base for Attributes that want to express lifestyle + chosen by the component. + + + + + Initializes a new instance of the class. + + The type. + + + + Gets or sets the lifestyle. + + The lifestyle. + + + + This attribute is usefull only when you want to register all components + on an assembly as a batch process. + By doing so, the batch register will look + for this attribute to distinguish components from other classes. + + + + + Associates a custom component with a component + + + + + Initializes a new instance of the class. + + Type of the component activator. + + + + Gets the type of the component activator. + + The type of the component activator. + + + + Specifies the proxying behavior for a component. + + + + + Initializes a new instance of the class. + + + + + Determines if the component requires a single interface proxy. + + + true if the component requires a single interface proxy. + + + + Marks as property to be skipped and not be wired + by the IoC container + + + + + Used to declare that a component wants interceptors acting on it. + + + + + Constructs the InterceptorAttribute pointing to + a key to a interceptor + + + + + + + Constructs the InterceptorAttribute pointing to + a service + + + + + + + Indicates that the target components wants a + singleton lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + transient lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + per web request lifestyle. + + + + + Indicates that the target components wants a + pooled lifestyle. + + + + + Initializes a new instance of the class + using the default initial pool size (5) and the max pool size (15). + + + + + Initializes a new instance of the class. + + Initial size of the pool. + Max pool size. + + + + Gets the initial size of the pool. + + The initial size of the pool. + + + + Gets the maximum pool size. + + The size of the max pool. + + + + Indicates that the target components wants a + custom lifestyle. + + + + + Initializes a new instance of the class. + + The lifestyle handler. + + + + Gets the type of the lifestyle handler. + + The type of the lifestyle handler. + + + + New interface that is going to be used by DynamicProxy 2 + + + + + New interface that is going to be used by DynamicProxy 2 + + + + + Returns the concrete instantiation of , with any generic parameters bound to real types. + + The concrete instantiation of , or if not a generic method. + Can be slower than calling . + + + + Returns the concrete instantiation of , with any generic parameters bound to real types. + + The concrete instantiation of , or if not a generic method. + Can be slower than calling . + + + + + + + + + + The generic arguments of the method, or null if not a generic method. + + + + + + + + + For interface proxies, this will point to the + on the target class + + + + + Interceptors might implement this to receive the + ComponentModel on behalf of the component where the + interceptor is acting. + + + + + + + + + Get the proxy target (note that null is a valid target!) + + + + + + + Gets the interceptors for the proxy + + + + + + + Abstract representation of a vertex. + + + + + The nodes that dependes on this node + + + + + The nodes that this node depends + + + + + The node has not been visited yet + + + + + This node is in the process of being visited + + + + + This now was visited + + + + + Represents a collection of objects + which are guaranted to be unique + and holds a color for them + + + + + Holds a timestamp (integer) + for a given item + + + + + Returns the node at the specified index. + + The lookup index. + The node at the specified index. + + If the specified is greater than the + number of objects within the list. + + + + + Validates the specified index. + + The lookup index. + + If the index is invalid. + + + + + Lifecycle interface. If implemented by a component, + the method Initialized will be invoked by the container + before making the component available to the external world. + + + + + Implementors should perform any initialization logic. + + + + + Only called for components that + belongs to a pool when the component + comes back to the pool. + + + + + Implementors should perform any + initialization/clean up. + + + + + Interface for components that wish to be started by the container + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Provides a factory that can produce either or + classes. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + + Summary description for ConsoleFactory. + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + + + Creates outputing + to files. The name of the file is derived from the log name + plus the 'log' extension. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal error message. + + The Message + + + + Logs a fatal error message. + + The Message + The Exception + + + + Logs a fatal error message. + + Message format + Array of objects to write using format + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "fatalError" will be logged. + + True if "fatalError" messages will be logged. + + + + The Level Filtered Logger class. This is a base clase which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Creates a new LevelFilteredLogger. + + + + + Keep the instance alive in a remoting scenario + + + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + Message format + Array of objects to write using format + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + Message format + Array of objects to write using format + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + Message format + Array of objects to write using format + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + Message format + Array of objects to write using format + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + Message format + Array of objects to write using format + + + + Logs a fatal error message. + + The Message + + + + Logs a fatal error message. + + The Message + The Exception + + + + Logs a fatal error message. + + Message format + Array of objects to write using format + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + + + + + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + The name that this logger will be using. + Defaults to String.Empty + + + + Determines if messages of priority "debug" will be logged. + + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + + true if log level flags include the bit + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to String.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to String.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + The Logger using standart Diagnostics namespace. + + + + + Creates a logger based on . + + + + + + + + Creates a logger based on . + + + + + + + + + + + Creates a logger based on . + + + + + + + + + + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Creates a new NullLogger. + + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + The buffer size that will be used for this stream. + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + The WebLogger sends everything to the HttpContext.Trace + + + Trace must be enabled on the Asp.Net configuration file (web.config or machine.config) + + + + + Creates a new WebLogger with the priority set to DEBUG. + + + + + Creates a new WebLogger. + + The Log level typecode. + + + + Creates a new WebLogger. + + The Log name. + + + + Creates a new WebLogger. + + The Log name. + The Log level typecode. + + + + A Common method to log. + + The level of logging + The Log name. + The Message + The Exception + + + + Just returns this logger (WebLogger is not hierarchical). + + Ignored + This ILogger instance. + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Summary description for IConfiguration. + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the convertion fails. + + The Value converted into the specified type. + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the convertion fails. + + The Value converted into the specified type. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets node attributes. + + + All attributes of the node. + + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Adds an . + + The to add. + + The index at which the new element was inserted. + + + + + Adds an array of . + + The Array of to add. + + + + Adds a . + + The to add. + + + + Copies the elements to a one-dimensional instance at the specified index. + + + The one-dimensional must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Gets a value indicating whether the contains + in the collection. + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Removes a specific from the + collection. + + The to remove from the collection. + + is not found in the collection. + + + + + Represents the entry at the specified index of the . + + + The zero-based index of the entry to locate in the collection. + + + The entry at the specified index of the collection. + + + is outside the valid range of indexes for the collection. + + + + + Summary description for MutableConfiguration. + + + + + Initializes a new instance of the class. + + The name. + + + + Enumeration used to mark the component's lifestyle. + + + + + No lifestyle specified. + + + + + Singleton components are instantiated once, and shared + between all clients. + + + + + Thread components have a unique instance per thread. + + + + + Transient components are created on demand. + + + + + Optimization of transient components that keeps + instance in a pool instead of always creating them. + + + + + Any other logic to create/release components. + + + + + PerWebRequest components are created once per Http Request + + + + + + + + + Represents the collection of information and + meta information collected about a component. + + + + Name (key) of the component + + + Service exposed + + + Implementation for the service + + + Extended properties + + + Lifestyle for the component + + + Custom lifestyle, if any + + + Custom activator, if any + + + Dependencies the kernel must resolve + + + All available constructors + + + All potential properties that can be setted by the kernel + + + Steps of lifecycle + + + External parameters + + + Configuration node associated + + + Interceptors associated + + + + Constructs a ComponentModel + + + + + Sets or returns the component key + + + + + Gets or sets the service exposed. + + The service. + + + + Gets or sets the component implementation. + + The implementation. + + + + Gets or sets a value indicating whether the component requires generic arguments. + + + true if generic arguments are required; otherwise, false. + + + + + Gets or sets the extended properties. + + The extended properties. + + + + Gets the constructors candidates. + + The constructors. + + + + Gets the properties set. + + The properties. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets the lifecycle steps. + + The lifecycle steps. + + + + Gets or sets the lifestyle type. + + The type of the lifestyle. + + + + Gets or sets the strategy for + inspecting public properties + on the components + + + + + Gets or sets the custom lifestyle. + + The custom lifestyle. + + + + Gets or sets the custom component activator. + + The custom component activator. + + + + Gets the interceptors. + + The interceptors. + + + + Gets the parameter collection. + + The parameters. + + + + Dependencies are kept within constructors and + properties. Others dependencies must be + registered here, so the kernel (as a matter + of fact the handler) can check them + + + + + Represents a constructor of the component + that the container can use to initialize it properly. + + + + + Initializes a new instance of the class. + + The constructor info. + The dependencies. + + + + Gets the ConstructorInfo (from reflection). + + The constructor. + + + + Gets the dependencies this constructor candidate exposes. + + The dependencies. + + + + Collection of + + + + Adds the specified candidate. + + The candidate. + + + + Clears this instance. + + + + + Gets the fewer arguments candidate. + + The fewer arguments candidate. + + + + Represents a dependency (other component or a + fixed value available through external configuration). + + + + + Initializes a new instance of the class. + + The type. + The dependency key. + Type of the target. + if set to true [is optional]. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Serves as a hash function for a particular type, suitable + for use in hashing algorithms and data structures like a hash table. + + + A hash code for the current . + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + Gets or sets the type of the dependency. + + The type of the dependency. + + + + Gets or sets the dependency key. + + The dependency key. + + + + Gets the type of the target. + + The type of the target. + + + + Gets or sets whether this dependency is optional. + + + true if this dependency is optional; otherwise, false. + + + + + Collection of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The dependencies. + + + + Initializes a new instance of the class. + + The dependencies. + + + + Adds the specified model. + + The model. + + + + Removes the specified model. + + The model. + + + + Clears this instance. + + + + + Determines whether this collection contains the the specified model. + + The model. + + true if the collection contains the specified model; otherwise, false. + + + + + Represents an reference to a Interceptor component. + + + + + Initializes a new instance of the class. + + The component key. + + + + Initializes a new instance of the class. + + Type of the service. + + + + Gets the type of the service. + + The type of the service. + + + + Gets the interceptor component key. + + The component key. + + + + Gets the type of the reference. + + The type of the reference. + + + + Collection of + + + + Adds the specified interceptor. + + The interceptor. + + + + Adds the the specified interceptor as the first. + + The interceptor. + + + + Adds the the specified interceptor as the last. + + The interceptor. + + + + Inserts the specified interceptor at the specified index. + + The index. + The interceptor. + + + + When implemented by a class, copies the elements of + the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is . + + is less than zero. + + + is multidimensional. + -or- + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets a value indicating whether this instance has interceptors. + + + true if this instance has interceptors; otherwise, false. + + + + + Gets the number of + elements contained in the . + + + + + + + Gets an object that + can be used to synchronize access to the . + + + + + + + Gets a value + indicating whether access to the is synchronized + (thread-safe). + + + + + + + Represents a collection of ordered lifecycle steps. + + + + + Initializes a new instance of the class. + + + + + Returns all steps for the commission phase + + + + + + + Returns all steps for the decommission phase + + + + + + + Adds a step to the commission or decomission phases. + + + + + + + + + Copies the elements of + the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is . + + is less than zero. + + + is multidimensional. + -or- + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets a value indicating whether this instance has commission steps. + + + true if this instance has commission steps; otherwise, false. + + + + + Gets a value indicating whether this instance has decommission steps. + + + true if this instance has decommission steps; otherwise, false. + + + + + Gets the number of + elements contained in the . + + + + + + + Gets an object that + can be used to synchronize access to the . + + + + + + + Gets a value + indicating whether access to the is synchronized + (thread-safe). + + + + + + + Represents meta information associated with a method + (not yet defined) + + + + + Initializes a new instance of the class. + + The config node. + + + + Gets the config node. + + The config node. + + + + Collection of + + + + Adds the specified model. + + The model. + + + + Gets the method info2 model. + + The method info2 model. + + + + Represents a parameter. Usually the parameter + comes from the external world, ie, an external configuration. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets the name. + + The name. + + + + Gets the value. + + The value. + + + + Gets the config value. + + The config value. + + + + Collection of + + + + Initializes a new instance of the class. + + + + + Adds the specified name. + + The name. + The value. + + + + Adds the specified name. + + The name. + The config node. + + + + Determines whether this collection contains the specified key. + + The key. + + true if yes; otherwise, false. + + + + + Adds the specified key. + + + Not implemented + + The key. + The value. + + + + Clears this instance. + + + Not implemented + + + + + Removes the specified key. + + The key. + + Not implemented + + + + + Copy the content to the specified array + + target array + target index + + Not implemented + + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets the keys. + + The keys. + + Not implemented + + + + + Gets the values. + + The values. + + Not implemented + + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Gets a value indicating whether this instance is fixed size. + + + true if this instance is fixed size; otherwise, false. + + + + + Gets the with the specified key. + + + + + + + Gets the count. + + The count. + + + + Gets the sync root. + + The sync root. + + + + Gets a value indicating whether this instance is synchronized. + + + true if this instance is synchronized; otherwise, false. + + + + + Represents a property and the respective dependency. + + + + + Initializes a new instance of the class. + + The property info. + The dependency. + + + + Gets the property. + + The property. + + + + Gets the dependency. + + The dependency. + + + + Collection of + + + + Adds the specified property. + + The property. + + + + Clears this instance. + + + + + Finds a PropertySet the by PropertyInfo. + + The info. + + + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + + + + + + + Only valid for resources that + can be obtained through relative paths + + + + + + + + + Do not allow closing and disposal of the + underlying . + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identificator is supported + by the resource factory + + + + + + + + + Creates an instance + for the given resource identifier + + + + + + + + + Creates an instance + for the given resource identifier + + + + + + + + + + + + + + + + + + + + + + + Adapts a static string content as an + + + + Enable access to files on network shares + + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + \ No newline at end of file -- cgit v1.2.3