* Remove xunit dependency from testdriver
* swap expected/actual as needed
* Convert Test.Common to nunit
* port hosting unit tests to nunit
* port batchparser integration tests to nunit
* port testdriver.tests to nunit
* fix target to copy dependency
* port servicelayer unittests to nunit
* more unit test fixes
* port integration tests to nunit
* fix test method type
* try using latest windows build for PRs
* reduce test memory use
* Update form .NET Core 2.2 to .NET Core 3.1
- Global variable for projects
- Change TFMs from netcoreapp2.2 to netcoreapp3.1
- Update global.json
- Update build.json
- Remove direct framework cake TestCore task
- Update travis dotnet version
- Update azure pipline file
- Update vscode launch.json
* Add Central Package Management
* Fix xUnit Breaking Change for MemberData type
* Fix xUnit breaking change for duplicate test method name
* Fix Rang/Index type conflict with System.Rang/Index
* Update vscode tasks.json
* Change serviceHostExecutable path in ServiceTestDriver.cs
* Downgrade SDK version (https://github.com/appveyor/ci/issues/3440)
- Appveyor hasn't installed latest SDK therefore I downgrade it until they install it.
* Dump Microsoft.SqlServer.DACFx
* Revert "Update SMO (#875)"
This reverts commit 96593d66e3.
* Revert "Switch Tools Service to new SMO and Microsoft.Data.SqlClient driver (#865)"
This reverts commit 9d140b53f3.
* Bump SMO to 160.1910315.0-preview
* send back success of include/exclude request
* update dacfx nuget package and use new api to get affected dependencies of include/exclude request
* addressing comments
* rename test
* Addressing comments
* switch to ambient props and targets files
* build against Microsoft.Data.SqlClient
* build tests
* fix test bug
* temporarily add SMO nuget to the repo
* update to released Microsoft.Data package
* pass AzureAcountToken if there is one
* Addressing comments
* formatting
* more formatting and moving getting connectionstring from constructor to CreateSchemaCompareEndpoint()
* Added endpoint for fetching all notebook jobs
* Refractored NotebookJobInfo to AgentNotebookInfo to make it more consistent with the rest of the codebase
* Added Notebook History endpoint in contracts.
* Added Create, Update, Delete notebook endpoints. Also added separate fetch template, materialized notebook endpoints. This will make the Notebook Request and Notebook History responses lighter.
* AgentNotebookInfo is now derived from AgentJobInfo
* added fetch noteook history endpoint
* Added fetching materialized notebook endpoint
* Added code for cleaning up the directory
* Added create notebook api
* Added Update and delete notebook job
* Fixed notebook history API
* Added last run info to the script and template folder
* Added execute database feature for notebook Jobs
* SQL commands are now using sqlparameters to prevent
any injection attacks
* Changed rundate and runtime to string to preserve
leading zeros
* integration test for agentnotebooks api
* Made some changes mentioned in PR
* Refactored the code, removed enpoint logic from the notebook handler and
wrote test cases
* changes select statements, fixed a bug in the test job cleanup
and fixed other stuff mentioned in the PR.
* added notebook_error column in notebook history select statement
* Added get template notebook endpoint
* updating dacfx with private nuget for testing
* Updating to real dacfx-preview version
* Removing additional refs added by nuget package manager (these were not there previously)
* successfully sends list of differences to ADS
* bumping dacfx nuget package version
* add second schema compare try for case when first db to db comparison fails but works on second try
* move schemacompare out of dacfx folders
* capitalizing
* more capitalizing
* addressing comments
* Switch to the unified SMO NuGet so all binaries are strong named and signed.
* use one AssemblyLoader instance for all loads
* Revert "use one AssemblyLoader instance for all loads"
This reverts commit 48c59ffd5c57152de281c87acdbcad7ddf7ab760.
* Stop creating multiple AssemblyLoadContext objects during composition, per https://github.com/dotnet/coreclr/issues/19632
* restore high entropyva property
* Improve the comment
* Update SMO to 150 and fix scripting for objects with a single quote in their name.
* restore newtonsoft reference
This change modifies the logging framework within sqltoolservice.
Moves away from custom Logger object to start using .Net tracing framework. It supports for the static Trace and TraceSource way of logging. For all new code it is recommend that we log the log messages using the existing static Logger class, while the code changes will continue to route the older Trace.Write* calls from the process to same log listeners (and thus the log targets) as used by the Logger class. Thus tracing in SMO code that uses Trace.Write* methods gets routed to the same file as the messages from rest of SQLTools Service code.
Make changes to start using .Net Frameworks codebase for all logging to unify our logging story.
Allows parameter to set tracingLevel filters that controls what kinds of message make it to the log file.
Allows a parameter to set a specific log file name so if these gets set by external code (the UI code using the tools service for example) then the external code is aware of the current log file in use.
Adding unittests to test out the existing and improved logging capabilities.
Sequences of checkins in development branch:
* Saving v1 of logging to prepare for code review. Minor cleanup and some end to end testing still remains
* Removing local launchSettings.json files
* added support for lazy listener to sqltoolsloglistener and removed incorrect changes to comments across files in previous checkin
* Converting time to local time when writing entries to the log
* move the hosting.v2 to new .net based logging code
* removing *.dgml files and addding them to .gitignore
* fixing typo of defaultTraceSource
* Addressing pull request feedback
* Adding a test to verify logging from SMO codebase
* propogating changes to v1 sqltools.hosting commandoptions.cs to the v2 version
* Fixing comments on start and stop callstack methods and whitespaces
* Commenting a test that got uncommented by mistake
* addding .gitattributes file as .sql file was observed to be misconstrued as a binary file
* Revert "fixed perf tests and added more scenarios (#683)"
This reverts commit aa2b30f486.
* Revert "Switch to the unified SMO NuGet so all binaries are strong named and signed. (#682)"
This reverts commit 69961992bb.
* Upgrade SMO packages to fix issue with scripting tables when Script Dependencies is true on the script options.
* use linux style import with case matching file name
* Refactoring sql script formatting helpers into To and From helpers
* Updates to make error messages for formatting errors more useful
* Fixing dumb breaks in unit tests
* Addressing comments from PR
* Updates to the SR files...
Porting of the vast majority of Azure-related code from SSDT. This is very large, so I want to put this out as one large "lift and shift" PR before I do the tools-service specific JSON-RPC service handlers, connect a new account handler (as the code to get necessary info from accounts and subscriptions isn't fully complete) and add tests over these
**What's in this PR**:
- Created 3 new projects:
- Microsoft.SqlTools.ResourceProvider will host the executable that accepts requests for Azure-related actions over the JSON-RPC protocol. This must be separate from other DLLs since a direct dependency on the Azure SDK DLLs fails (they're NetStandard 1.4 and you can't reference them if you have RuntimeIdentifiers in your .csproj file)
- Microsoft.SqlTools.ResourceProvider.Core is where all the main business logic is, including definitions and logic on how to navigate over resources and create firewall rules, etc.
- Microsoft.SqlTools.ResourceProvider.DefaultImpl is the actual Azure implementation of the resource provider APIs. The reason for separating this is to support eventual integration back into other tools (since their Azure and Identity services will be different).
- Implemented the AzureResourceManager that connects to Azure via ARM APIs and handles creating firewall rule and querying databases. The dependent DLLs have had major breaking changes, so will need additional verification to ensure this works as expected
- Ported the unit tests for all code that was not a viewmodel. Viewmodel test code will be ported in a future update as we plumb through a service-equivalent to these. Also, the DependencyManager code which has overlap with our service provider code is commented out. Will work to uncomment in a future update as it has value to test some scenarios
**What's not in this PR**:
- Identity Services. We currently just have a stub for the interface, and even that will likely change a little
- anything JSON-RPC or registered service related. These will be adapted from the viewmodels and added in a separate PR