From db9da0f67d10eed5fb6cff7d8ef089d1094c522a Mon Sep 17 00:00:00 2001 From: Arnaud MAICHAC Date: Mon, 6 Jan 2020 17:53:53 +0100 Subject: [PATCH] Refresh with updated tools (#6) * Update website and function * Update setup instructions --- Provision/assets/deploy.ps1 | 21 +- Provision/assets/template.json | 701 +- SETUP.md | 30 +- Source/CatsReviewApp/CatsReviewApp.sln | 17 +- .../CatsReviewApp/App_Data/img-01.jpg | Bin 63220 -> 0 bytes .../CatsReviewApp/App_Data/img-02.jpg | Bin 86406 -> 0 bytes .../CatsReviewApp/App_Data/img-03.jpg | Bin 30726 -> 0 bytes .../CatsReviewApp/App_Start/BundleConfig.cs | 30 - .../CatsReviewApp/App_Start/FilterConfig.cs | 12 - .../CatsReviewApp/App_Start/RouteConfig.cs | 18 - .../CatsReviewApp/ApplicationInsights.config | 81 - .../CatsReviewApp/CatsReviewApp.csproj | 308 +- .../Components/StatusLabelViewComponent.cs | 12 + .../ConnectedService.json | 7 - .../Controllers/HomeController.cs | 2 +- .../Controllers/ReviewController.cs | 20 +- .../ErrorHandler/AiHandleErrorAttribute.cs | 1 - .../CatsReviewApp/CatsReviewApp/Global.asax | 1 - .../CatsReviewApp/Global.asax.cs | 23 - .../CatsReviewApp/Models/CreateCatReview.cs | 6 +- Source/CatsReviewApp/CatsReviewApp/Program.cs | 25 + .../CatsReviewApp/Properties/AssemblyInfo.cs | 35 - .../Properties/launchSettings.json | 27 + .../CatsReviewApp/Scripts/bootstrap.js | 2014 --- .../CatsReviewApp/Scripts/bootstrap.min.js | 21 - .../Scripts/jquery-1.10.2.intellisense.js | 2671 ---- .../CatsReviewApp/Scripts/jquery-1.10.2.js | 9803 --------------- .../Scripts/jquery-1.10.2.min.js | 23 - .../Scripts/jquery-1.10.2.min.map | 1 - .../Scripts/jquery.validate-vsdoc.js | 1302 -- .../CatsReviewApp/Scripts/jquery.validate.js | 1245 -- .../Scripts/jquery.validate.min.js | 16 - .../jquery.validate.unobtrusive.min.js | 19 - .../CatsReviewApp/Scripts/modernizr-2.6.2.js | 1416 --- .../CatsReviewApp/Scripts/respond.js | 340 - .../CatsReviewApp/Scripts/respond.min.js | 20 - .../CatsReviewApp/Services/ReviewProvider.cs | 40 +- Source/CatsReviewApp/CatsReviewApp/Startup.cs | 52 + .../CatsReviewApp/Views/Home/Index.cshtml | 2 +- .../CatsReviewApp/Views/Review/Create.cshtml | 32 +- .../CatsReviewApp/Views/Review/Details.cshtml | 31 +- .../CatsReviewApp/Views/Review/Index.cshtml | 8 +- .../Components/StatusLabel/Default.cshtml | 17 + .../CatsReviewApp/Views/Shared/_Layout.cshtml | 35 +- .../Shared/_ValidationScriptsPartial.cshtml | 2 + .../CatsReviewApp/Views/Web.config | 43 - .../CatsReviewApp/Views/_ViewImports.cshtml | 4 + .../CatsReviewApp/Views/_ViewStart.cshtml | 4 +- .../CatsReviewApp/Web.Debug.config | 30 - .../CatsReviewApp/Web.Release.config | 31 - Source/CatsReviewApp/CatsReviewApp/Web.config | 85 - .../appsettings.Development.json | 9 + .../CatsReviewApp/appsettings.json | 22 + .../fonts/glyphicons-halflings-regular.eot | Bin 14079 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 228 - .../fonts/glyphicons-halflings-regular.ttf | Bin 29512 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 16448 -> 0 bytes .../CatsReviewApp/packages.config | 39 - .../{Content => wwwroot/css}/bootstrap.css | 0 .../css}/bootstrap.min.css | 0 .../Site.css => wwwroot/css/site.css} | 0 .../CatsReviewApp/{ => wwwroot}/favicon.ico | Bin .../{Content => wwwroot}/images/logo.png | Bin .../wwwroot/lib/bootstrap/LICENSE | 22 + .../lib/bootstrap/dist/css/bootstrap-grid.css | 3719 ++++++ .../bootstrap/dist/css/bootstrap-grid.css.map | 1 + .../bootstrap/dist/css/bootstrap-grid.min.css | 7 + .../dist/css/bootstrap-grid.min.css.map | 1 + .../bootstrap/dist/css/bootstrap-reboot.css | 331 + .../dist/css/bootstrap-reboot.css.map | 1 + .../dist/css/bootstrap-reboot.min.css | 8 + .../dist/css/bootstrap-reboot.min.css.map | 1 + .../lib/bootstrap/dist/css/bootstrap.css | 10038 +++++++++++++++ .../lib/bootstrap/dist/css/bootstrap.css.map | 1 + .../lib/bootstrap/dist/css/bootstrap.min.css | 7 + .../bootstrap/dist/css/bootstrap.min.css.map | 1 + .../lib/bootstrap/dist/js/bootstrap.bundle.js | 7013 +++++++++++ .../bootstrap/dist/js/bootstrap.bundle.js.map | 1 + .../bootstrap/dist/js/bootstrap.bundle.min.js | 7 + .../dist/js/bootstrap.bundle.min.js.map | 1 + .../lib/bootstrap/dist/js/bootstrap.js | 4435 +++++++ .../lib/bootstrap/dist/js/bootstrap.js.map | 1 + .../lib/bootstrap/dist/js/bootstrap.min.js | 7 + .../bootstrap/dist/js/bootstrap.min.js.map | 1 + .../jquery-validation-unobtrusive/LICENSE.txt | 12 + .../jquery.validate.unobtrusive.js | 61 +- .../jquery.validate.unobtrusive.min.js | 5 + .../wwwroot/lib/jquery-validation/LICENSE.md | 22 + .../dist/additional-methods.js | 1158 ++ .../dist/additional-methods.min.js | 4 + .../jquery-validation/dist/jquery.validate.js | 1601 +++ .../dist/jquery.validate.min.js | 4 + .../wwwroot/lib/jquery/LICENSE.txt | 36 + .../wwwroot/lib/jquery/dist/jquery.js | 10364 ++++++++++++++++ .../wwwroot/lib/jquery/dist/jquery.min.js | 2 + .../wwwroot/lib/jquery/dist/jquery.min.map | 1 + Source/CatsReviewApp/Settings.StyleCop | 219 - .../ContentModeratorFunction.Tests/App.config | 11 - .../ContentModeratorFunction.Tests.csproj | 107 +- .../Properties/AssemblyInfo.cs | 20 - .../packages.config | 8 - .../ContentModeratorFunction/AnalyzeImage.cs | 59 +- .../ContentModeratorFunction.csproj | 27 +- .../SetLocalSettings.ps1 | 47 + Source/ContentModeratorFunction/Startup.cs | 24 + Source/ContentModeratorFunction/host.json | 3 +- .../local.settings.json | 1 + 107 files changed, 39636 insertions(+), 20746 deletions(-) delete mode 100644 Source/CatsReviewApp/CatsReviewApp/App_Data/img-01.jpg delete mode 100644 Source/CatsReviewApp/CatsReviewApp/App_Data/img-02.jpg delete mode 100644 Source/CatsReviewApp/CatsReviewApp/App_Data/img-03.jpg delete mode 100644 Source/CatsReviewApp/CatsReviewApp/App_Start/BundleConfig.cs delete mode 100644 Source/CatsReviewApp/CatsReviewApp/App_Start/FilterConfig.cs delete mode 100644 Source/CatsReviewApp/CatsReviewApp/App_Start/RouteConfig.cs delete mode 100644 Source/CatsReviewApp/CatsReviewApp/ApplicationInsights.config create mode 100644 Source/CatsReviewApp/CatsReviewApp/Components/StatusLabelViewComponent.cs delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Connected Services/Application Insights/ConnectedService.json delete mode 100644 Source/CatsReviewApp/CatsReviewApp/ErrorHandler/AiHandleErrorAttribute.cs delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Global.asax delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Global.asax.cs create mode 100644 Source/CatsReviewApp/CatsReviewApp/Program.cs delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Properties/AssemblyInfo.cs create mode 100644 Source/CatsReviewApp/CatsReviewApp/Properties/launchSettings.json delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/bootstrap.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/bootstrap.min.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/jquery-1.10.2.intellisense.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/jquery-1.10.2.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/jquery-1.10.2.min.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/jquery-1.10.2.min.map delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/jquery.validate-vsdoc.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/jquery.validate.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/jquery.validate.min.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/jquery.validate.unobtrusive.min.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/modernizr-2.6.2.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/respond.js delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Scripts/respond.min.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/Startup.cs create mode 100644 Source/CatsReviewApp/CatsReviewApp/Views/Shared/Components/StatusLabel/Default.cshtml create mode 100644 Source/CatsReviewApp/CatsReviewApp/Views/Shared/_ValidationScriptsPartial.cshtml delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Views/Web.config create mode 100644 Source/CatsReviewApp/CatsReviewApp/Views/_ViewImports.cshtml delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Web.Debug.config delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Web.Release.config delete mode 100644 Source/CatsReviewApp/CatsReviewApp/Web.config create mode 100644 Source/CatsReviewApp/CatsReviewApp/appsettings.Development.json create mode 100644 Source/CatsReviewApp/CatsReviewApp/appsettings.json delete mode 100644 Source/CatsReviewApp/CatsReviewApp/fonts/glyphicons-halflings-regular.eot delete mode 100644 Source/CatsReviewApp/CatsReviewApp/fonts/glyphicons-halflings-regular.svg delete mode 100644 Source/CatsReviewApp/CatsReviewApp/fonts/glyphicons-halflings-regular.ttf delete mode 100644 Source/CatsReviewApp/CatsReviewApp/fonts/glyphicons-halflings-regular.woff delete mode 100644 Source/CatsReviewApp/CatsReviewApp/packages.config rename Source/CatsReviewApp/CatsReviewApp/{Content => wwwroot/css}/bootstrap.css (100%) rename Source/CatsReviewApp/CatsReviewApp/{Content => wwwroot/css}/bootstrap.min.css (100%) rename Source/CatsReviewApp/CatsReviewApp/{Content/Site.css => wwwroot/css/site.css} (100%) rename Source/CatsReviewApp/CatsReviewApp/{ => wwwroot}/favicon.ico (100%) rename Source/CatsReviewApp/CatsReviewApp/{Content => wwwroot}/images/logo.png (100%) create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/LICENSE create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap.css create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/js/bootstrap.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt rename Source/CatsReviewApp/CatsReviewApp/{Scripts => wwwroot/lib/jquery-validation-unobtrusive}/jquery.validate.unobtrusive.js (92%) create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery-validation/LICENSE.md create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery-validation/dist/additional-methods.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery-validation/dist/additional-methods.min.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery-validation/dist/jquery.validate.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery/LICENSE.txt create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery/dist/jquery.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery/dist/jquery.min.js create mode 100644 Source/CatsReviewApp/CatsReviewApp/wwwroot/lib/jquery/dist/jquery.min.map delete mode 100644 Source/CatsReviewApp/Settings.StyleCop delete mode 100644 Source/ContentModeratorFunction.Tests/App.config delete mode 100644 Source/ContentModeratorFunction.Tests/Properties/AssemblyInfo.cs delete mode 100644 Source/ContentModeratorFunction.Tests/packages.config create mode 100644 Source/ContentModeratorFunction/SetLocalSettings.ps1 create mode 100644 Source/ContentModeratorFunction/Startup.cs diff --git a/Provision/assets/deploy.ps1 b/Provision/assets/deploy.ps1 index a157bd3..4cde1a7 100644 --- a/Provision/assets/deploy.ps1 +++ b/Provision/assets/deploy.ps1 @@ -14,9 +14,6 @@ .PARAMETER resourceGroupLocation Optional, a resource group location. If specified, will try to create a new resource group in this location. If not specified, assumes resource group is existing. - .PARAMETER deploymentName - The deployment name. - .PARAMETER templateFilePath Optional, path to the template file. Defaults to template.json. @@ -36,10 +33,6 @@ param( [string] $resourceGroupLocation, - [Parameter(Mandatory=$True)] - [string] - $deploymentName, - [string] $templateFilePath = "template.json", @@ -57,7 +50,7 @@ Function RegisterRP { ) Write-Host "Registering resource provider '$ResourceProviderNamespace'"; - Register-AzureRmResourceProvider -ProviderNamespace $ResourceProviderNamespace; + Register-AzResourceProvider -ProviderNamespace $ResourceProviderNamespace; } #****************************************************************************** @@ -68,11 +61,11 @@ $ErrorActionPreference = "Stop" # sign in Write-Host "Logging in..."; -Login-AzureRmAccount; +Login-AzAccount; # select subscription Write-Host "Selecting subscription '$subscriptionId'"; -Select-AzureRmSubscription -SubscriptionID $subscriptionId; +Select-AzSubscription -SubscriptionID $subscriptionId; # Register RPs $resourceProviders = @("microsoft.cognitiveservices","microsoft.documentdb","microsoft.insights","microsoft.storage","microsoft.web"); @@ -84,7 +77,7 @@ if($resourceProviders.length) { } #Create or check for existing resource group -$resourceGroup = Get-AzureRmResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue +$resourceGroup = Get-AzResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue if(!$resourceGroup) { Write-Host "Resource group '$resourceGroupName' does not exist. To create a new resource group, please enter a location."; @@ -92,7 +85,7 @@ if(!$resourceGroup) $resourceGroupLocation = Read-Host "resourceGroupLocation"; } Write-Host "Creating resource group '$resourceGroupName' in location '$resourceGroupLocation'"; - New-AzureRmResourceGroup -Name $resourceGroupName -Location $resourceGroupLocation + New-AzResourceGroup -Name $resourceGroupName -Location $resourceGroupLocation } else{ Write-Host "Using existing resource group '$resourceGroupName'"; @@ -101,7 +94,7 @@ else{ # Start the deployment Write-Host "Starting deployment..."; if(Test-Path $parametersFilePath) { - New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath -TemplateParameterFile $parametersFilePath; + New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath -TemplateParameterFile $parametersFilePath; } else { - New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath; + New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath; } \ No newline at end of file diff --git a/Provision/assets/template.json b/Provision/assets/template.json index 8036dd6..b87b60f 100644 --- a/Provision/assets/template.json +++ b/Provision/assets/template.json @@ -1,373 +1,370 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "unique_name": { - "type": "string" - } + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "unique_name": { + "type": "string" + } + }, + "variables": { + "WebSiteName": "[concat(parameters('unique_name'),'site')]", + "DocumentDBName": "[concat(parameters('unique_name'),'docdb')]", + "StorageAccountName": "[concat(parameters('unique_name'),'stor')]", + "AppInsightsInstanceName": "[concat(parameters('unique_name'),'insights')]" + }, + "resources": [ + { + "type": "Microsoft.CognitiveServices/accounts", + "sku": { + "name": "F0" + }, + "kind": "ComputerVision", + "name": "[concat(parameters('unique_name'),'computervision')]", + "apiVersion": "2017-04-18", + "location": "[resourceGroup().location]", + "properties": {}, + "dependsOn": [] }, - "variables": { - "WebSiteName": "[concat(parameters('unique_name'),'site')]", - "DocumentDBName": "[concat(parameters('unique_name'),'docdb')]", - "StorageAccountName": "[concat(parameters('unique_name'),'stor')]", - "AppInsightsInstanceName": "[concat(parameters('unique_name'),'insights')]" + { + "type": "Microsoft.CognitiveServices/accounts", + "sku": { + "name": "F0" + }, + "kind": "ContentModerator", + "name": "[concat(parameters('unique_name'),'contentmoderator')]", + "apiVersion": "2017-04-18", + "location": "[resourceGroup().location]", + "properties": {}, + "dependsOn": [] }, - "resources": [ - { - "type": "Microsoft.CognitiveServices/accounts", - "sku": { - "name": "S1" - }, - "kind": "ComputerVision", - "name": "[concat(parameters('unique_name'),'computervision')]", - "apiVersion": "2016-02-01-preview", - "location": "westus", - "properties": {}, - "dependsOn": [] - }, - { - "type": "Microsoft.CognitiveServices/accounts", - "sku": { - "name": "S0" - }, - "kind": "ContentModerator", - "name": "[concat(parameters('unique_name'),'contentmoderator')]", - "apiVersion": "2016-02-01-preview", - "location": "westus", - "properties": {}, - "dependsOn": [] + { + "type": "Microsoft.DocumentDB/databaseAccounts", + "kind": "GlobalDocumentDB", + "name": "[variables('DocumentDBName')]", + "apiVersion": "2019-08-01", + "location": "[resourceGroup().location]", + "tags": {}, + "properties": { + "databaseAccountOfferType": "Standard", + "consistencyPolicy": { + "defaultConsistencyLevel": "Session", + "maxIntervalInSeconds": 5, + "maxStalenessPrefix": 100 }, + "name": "[concat(parameters('unique_name'),'docdb')]" + }, + "dependsOn": [] + }, + { + "type": "Microsoft.Storage/storageAccounts", + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "kind": "StorageV2", + "name": "[variables('StorageAccountName')]", + "apiVersion": "2018-07-01", + "location": "[resourceGroup().location]", + "tags": {}, + "properties": {}, + "dependsOn": [] + }, + { + "type": "Microsoft.Web/serverfarms", + "sku": { + "name": "S1", + "tier": "Standard" + }, + "kind": "app", + "name": "[concat(parameters('unique_name'),'farm')]", + "apiVersion": "2018-02-01", + "location": "[resourceGroup().location]", + "properties": { + "numberOfWorkers": 1 + }, + "dependsOn": [] + }, + { + "type": "microsoft.insights/components", + "kind": "other", + "name": "[variables('AppInsightsInstanceName')]", + "apiVersion": "2014-04-01", + "location": "[resourceGroup().location]", + "properties": { + "ApplicationId": "[variables('AppInsightsInstanceName')]" + }, + "dependsOn": [] + }, + { + "type": "Microsoft.Web/sites", + "kind": "app", + "name": "[variables('WebSiteName')]", + "apiVersion": "2015-08-01", + "location": "[resourceGroup().location]", + "properties": { + "name": "[concat(parameters('unique_name'),'site')]", + "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', concat(parameters('unique_name'),'farm'))]" + }, + "dependsOn": [ + "[resourceId('Microsoft.Web/serverfarms', concat(parameters('unique_name'),'farm'))]", + "[resourceId('Microsoft.Storage/storageAccounts', concat(parameters('unique_name'),'stor'))]", + "[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('DocumentDBName'))]" + ], + "resources": [ { - "type": "Microsoft.DocumentDB/databaseAccounts", - "kind": "GlobalDocumentDB", - "name": "[variables('DocumentDBName')]", - "apiVersion": "2015-04-08", - "location": "West US", - "tags": {}, - "properties": { - "databaseAccountOfferType": "Standard", - "consistencyPolicy": { - "defaultConsistencyLevel": "Session", - "maxIntervalInSeconds": 5, - "maxStalenessPrefix": 100 + "name": "appsettings", + "type": "config", + "apiVersion": "2015-08-01", + "dependsOn": [ + "[resourceId('Microsoft.Web/sites', variables('WebSiteName'))]" + ], + "properties": { + "documentDbEndpoint": "[reference(concat('Microsoft.DocumentDb/databaseAccounts/', variables('DocumentDBName'))).documentEndpoint]", + "documentDbKey": "[listKeys(resourceId('Microsoft.DocumentDb/databaseAccounts', variables('DocumentDBName')), '2015-04-08').primaryMasterKey]", + "documentDbName": "customerReviewData", + "documentDbColl": "reviews", + "storageAccountConnectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=',variables('StorageAccountName'),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('StorageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value)]", + "containerName": "input-images", + "queueName": "review-queue", + "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.Insights/components', variables('AppInsightsInstanceName')), '2014-04-01').InstrumentationKey]" + } + } + ] + }, + { + "name": "ReviewsDashboard", + "type": "Microsoft.Portal/dashboards", + "location": "centralus", + "apiVersion": "2015-08-01-preview", + "tags": { + "hidden-title": "Reviews Insights" + }, + "properties": { + "lenses": { + "0": { + "order": 0, + "parts": { + "0": { + "position": { + "x": 0, + "y": 0, + "rowSpan": 4, + "colSpan": 6 }, - "name": "[concat(parameters('unique_name'),'docdb')]" - }, - "dependsOn": [] - }, - { - "type": "Microsoft.Storage/storageAccounts", - "sku": { - "name": "Standard_RAGRS", - "tier": "Standard" - }, - "kind": "Storage", - "name": "[variables('StorageAccountName')]", - "apiVersion": "2016-01-01", - "location": "westus", - "tags": {}, - "properties": {}, - "dependsOn": [] - }, - { - "type": "Microsoft.Web/serverfarms", - "sku": { - "name": "S1", - "tier": "Standard", - "size": "S1", - "family": "S", - "capacity": 1 - }, - "kind": "app", - "name": "[concat(parameters('unique_name'),'farm')]", - "apiVersion": "2015-08-01", - "location": "West US", - "properties": { - "name": "[concat(parameters('unique_name'),'farm')]", - "numberOfWorkers": 1 - }, - "dependsOn": [] - }, - { - "type": "microsoft.insights/components", - "kind": "other", - "name": "[variables('AppInsightsInstanceName')]", - "apiVersion": "2014-04-01", - "location": "southcentralus", - "properties": { - "ApplicationId": "[variables('AppInsightsInstanceName')]" - }, - "dependsOn": [] - }, - { - "type": "Microsoft.Web/sites", - "kind": "app", - "name": "[concat(parameters('unique_name'),'site')]", - "apiVersion": "2015-08-01", - "location": "West US", - "properties": { - "name": "[concat(parameters('unique_name'),'site')]", - "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', concat(parameters('unique_name'),'farm'))]" - }, - "dependsOn": [ - "[resourceId('Microsoft.Web/serverfarms', concat(parameters('unique_name'),'farm'))]", - "[resourceId('Microsoft.Storage/storageAccounts', concat(parameters('unique_name'),'stor'))]", - "[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('DocumentDBName'))]" - ], - "resources": [ - { - "name": "appsettings", - "type": "config", - "apiVersion": "2015-08-01", - "dependsOn": [ - "[resourceId('Microsoft.Web/sites', variables('WebSiteName'))]" - ], - "properties": { - "documentDbEndpoint": "[reference(concat('Microsoft.DocumentDb/databaseAccounts/', variables('DocumentDBName'))).documentEndpoint]", - "documentDbKey": "[listKeys(resourceId('Microsoft.DocumentDb/databaseAccounts', variables('DocumentDBName')), '2015-04-08').primaryMasterKey]", - "documentDbName": "customerReviewData", - "documentDbColl": "reviews","storageAccountConnectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=',variables('StorageAccountName'),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('StorageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value)]", - "containerName": "input-images", - "queueName": "review-queue", - "iKey": "[reference(resourceId('Microsoft.Insights/components', variables('AppInsightsInstanceName')), '2014-04-01').InstrumentationKey]" - } - } - ] - }, - { - "name": "ReviewsDashboard", - "type": "Microsoft.Portal/dashboards", - "location": "centralus", - "apiVersion": "2015-08-01-preview", - "tags": { - "hidden-title": "Reviews Insights" - }, - "properties": { - "lenses": { - "0": { - "order": 0, - "parts": { - "0": { - "position": { - "x": 0, - "y": 0, - "rowSpan": 4, - "colSpan": 6 - }, - "metadata": { - "inputs": [ - { - "name": "ComponentId", - "value": { - "SubscriptionId": "[subscription().subscriptionId]", - "ResourceGroup": "[resourceGroup().name]", - "Name": "[variables('AppInsightsInstanceName')]" - } - }, - { - "name": "Query", - "value": "set truncationmaxrecords= 1000;\ncustomMetrics\n| project name, value\n| extend ModerationResult =\n iff (name == \"ModerationResult\" and value == 0, \"Passed\",\n iff (name == \"ModerationResult\" and value == 1, \"Failed text\",\n iff (name == \"ModerationResult\" and value == 2, \"Failed image\",\n iff (name == \"ModerationResult\" and value == 3, \"Failed text and image\", \"Unknown\"))))\n| where ModerationResult != \"Unknown\"\n| summarize count() by ModerationResult\n| render columnchart\n| project ModerationResult, count_\n| order by ModerationResult desc" - }, - { - "name": "TimeRange", - "value": "P7D" - }, - { - "name": "Dimensions", - "value": { - "xAxis": { - "name": "ModerationResult", - "type": "String" - }, - "yAxis": [ - { - "name": "count_", - "type": "Int64" - } - ], - "splitBy": [], - "aggregation": "Sum" - } - }, - { - "name": "Version", - "value": "1.0" - }, - { - "name": "DashboardId", - "value": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Portal/dashboards/ReviewsDashboard')]" - }, - { - "name": "PartId", - "value": "a71f7336-8ac0-4c3b-90b5-e3af23306482" - }, - { - "name": "PartTitle", - "value": "Analytics" - }, - { - "name": "PartSubTitle", - "value": "Reviews" - }, - { - "name": "resourceTypeMode", - "value": "components" - } - ], - "type": "Extension/AppInsightsExtension/PartType/AnalyticsDonutPart", - "settings": {}, - "asset": { - "idInputName": "ComponentId", - "type": "ApplicationInsights" - } - } + "metadata": { + "inputs": [ + { + "name": "ComponentId", + "value": { + "SubscriptionId": "[subscription().subscriptionId]", + "ResourceGroup": "[resourceGroup().name]", + "Name": "[variables('AppInsightsInstanceName')]" + } }, - "1": { - "position": { - "x": 6, - "y": 0, - "rowSpan": 4, - "colSpan": 6 - }, - "metadata": { - "inputs": [ - { - "name": "ComponentId", - "value": { - "SubscriptionId": "[subscription().subscriptionId]", - "ResourceGroup": "[resourceGroup().name]", - "Name": "[variables('AppInsightsInstanceName')]" - } - }, - { - "name": "MetricsExplorerJsonDefinitionId", - "value": "InsightsTimelineMetrics" - }, - { - "name": "TimeContext", - "value": { - "durationMs": 86400000, - "endTime": null, - "createdTime": "2017-04-26T20:55:14.198Z", - "isInitialTime": true, - "grain": 1, - "useDashboardTimeRange": false - } - }, - { - "name": "Version", - "value": "1.0" - } - ], - "type": "Extension/AppInsightsExtension/Blade/GeneralAppOverview/Lens/ApplicationHealthLens/PartInstance/InsightsTimeline_MetricsExplorerPartReferenceOveriew", - "asset": { - "idInputName": "ComponentId", - "type": "ApplicationInsights" - } - } + { + "name": "Query", + "value": "set truncationmaxrecords= 1000;\ncustomMetrics\n| project name, value\n| extend ModerationResult =\n iff (name == \"ModerationResult\" and value == 0, \"Passed\",\n iff (name == \"ModerationResult\" and value == 1, \"Failed text\",\n iff (name == \"ModerationResult\" and value == 2, \"Failed image\",\n iff (name == \"ModerationResult\" and value == 3, \"Failed text and image\", \"Unknown\"))))\n| where ModerationResult != \"Unknown\"\n| summarize count() by ModerationResult\n| render columnchart\n| project ModerationResult, count_\n| order by ModerationResult desc" }, - "2": { - "position": { - "x": 12, - "y": 0, - "rowSpan": 4, - "colSpan": 2 - }, - "metadata": { - "inputs": [ - { - "name": "resourceGroup", - "value": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name)]" - } - ], - "type": "Extension/HubsExtension/PartType/ResourceGroupMapPinnedPart", - "viewState": { - "content": { - "selectableData": {} - } - }, - "asset": { - "idInputName": "resourceGroup", - "type": "ResourceGroups" - }, - "defaultMenuItemId": "overview" - } + { + "name": "TimeRange", + "value": "P7D" }, - "3": { - "position": { - "x": 0, - "y": 4, - "rowSpan": 5, - "colSpan": 14 + { + "name": "Dimensions", + "value": { + "xAxis": { + "name": "ModerationResult", + "type": "String" }, - "metadata": { - "inputs": [ - { - "name": "ComponentId", - "value": { - "SubscriptionId": "[subscription().subscriptionId]", - "ResourceGroup": "[resourceGroup().name]", - "Name": "[variables('AppInsightsInstanceName')]" - } - }, - { - "name": "DashboardTimeRange", - "binding": "timeRange", - "isOptional": true - }, - { - "name": "DataModel", - "isOptional": true - }, - { - "name": "TimeContext", - "value": { - "durationMs": 86400000, - "endTime": null, - "createdTime": "2017-04-26T20:23:45.99Z", - "isInitialTime": true, - "grain": 1, - "useDashboardTimeRange": false - }, - "isOptional": true - }, - { - "name": "ConfigurationId", - "value": "34f36974-2e50-41c2-8add-c97de8ae1129", - "isOptional": true - } + "yAxis": [ + { + "name": "count_", + "type": "Int64" + } ], - "type": "Extension/AppInsightsExtension/PartType/TopologyV2AdaptedPart", - "settings": { - "content": { - "DataModelJSON": "{\"sortMetric\":\"Telemetry count\",\"sortOrder\":2,\"filters\":[],\"warningThreshold\":5,\"criticalThreshold\":20,\"nodeConfigurations\":[],\"timeContext\":{\"durationMs\":604800000,\"endTime\":null,\"createdTime\":\"2017-04-27T17:20:44.864Z\",\"isInitialTime\":false,\"grain\":1,\"useDashboardTimeRange\":false},\"userSelectedActiveOnlySetting\":true,\"hasActiveNodes\":false,\"hasNotConfiguredNodes\":false,\"showActiveNodesOnly\":true}" - } - }, - "isAdapter": true, - "asset": { - "idInputName": "ComponentId", - "type": "ApplicationInsights" - }, - "defaultMenuItemId": "applicationMap" - } + "splitBy": [], + "aggregation": "Sum" + } + }, + { + "name": "Version", + "value": "1.0" + }, + { + "name": "DashboardId", + "value": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Portal/dashboards/ReviewsDashboard')]" + }, + { + "name": "PartId", + "value": "a71f7336-8ac0-4c3b-90b5-e3af23306482" + }, + { + "name": "PartTitle", + "value": "Analytics" + }, + { + "name": "PartSubTitle", + "value": "Reviews" + }, + { + "name": "resourceTypeMode", + "value": "components" } + ], + "type": "Extension/AppInsightsExtension/PartType/AnalyticsDonutPart", + "settings": {}, + "asset": { + "idInputName": "ComponentId", + "type": "ApplicationInsights" + } + } + }, + "1": { + "position": { + "x": 6, + "y": 0, + "rowSpan": 4, + "colSpan": 6 + }, + "metadata": { + "inputs": [ + { + "name": "ComponentId", + "value": { + "SubscriptionId": "[subscription().subscriptionId]", + "ResourceGroup": "[resourceGroup().name]", + "Name": "[variables('AppInsightsInstanceName')]" + } + }, + { + "name": "MetricsExplorerJsonDefinitionId", + "value": "InsightsTimelineMetrics" + }, + { + "name": "TimeContext", + "value": { + "durationMs": 86400000, + "endTime": null, + "createdTime": "2017-04-26T20:55:14.198Z", + "isInitialTime": true, + "grain": 1, + "useDashboardTimeRange": false + } + }, + { + "name": "Version", + "value": "1.0" } + ], + "type": "Extension/AppInsightsExtension/Blade/GeneralAppOverview/Lens/ApplicationHealthLens/PartInstance/InsightsTimeline_MetricsExplorerPartReferenceOveriew", + "asset": { + "idInputName": "ComponentId", + "type": "ApplicationInsights" + } } + }, + "2": { + "position": { + "x": 12, + "y": 0, + "rowSpan": 4, + "colSpan": 2 }, "metadata": { - "model": { - "timeRange": { - "value": { - "relative": { - "duration": 24, - "timeUnit": 1 - } - }, - "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange" - } + "inputs": [ + { + "name": "resourceGroup", + "value": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name)]" + } + ], + "type": "Extension/HubsExtension/PartType/ResourceGroupMapPinnedPart", + "viewState": { + "content": { + "selectableData": {} + } + }, + "asset": { + "idInputName": "resourceGroup", + "type": "ResourceGroups" + }, + "defaultMenuItemId": "overview" + } + }, + "3": { + "position": { + "x": 0, + "y": 4, + "rowSpan": 5, + "colSpan": 14 + }, + "metadata": { + "inputs": [ + { + "name": "ComponentId", + "value": { + "SubscriptionId": "[subscription().subscriptionId]", + "ResourceGroup": "[resourceGroup().name]", + "Name": "[variables('AppInsightsInstanceName')]" + } + }, + { + "name": "DashboardTimeRange", + "binding": "timeRange", + "isOptional": true + }, + { + "name": "DataModel", + "isOptional": true + }, + { + "name": "TimeContext", + "value": { + "durationMs": 86400000, + "endTime": null, + "createdTime": "2017-04-26T20:23:45.99Z", + "isInitialTime": true, + "grain": 1, + "useDashboardTimeRange": false + }, + "isOptional": true + }, + { + "name": "ConfigurationId", + "value": "34f36974-2e50-41c2-8add-c97de8ae1129", + "isOptional": true + } + ], + "type": "Extension/AppInsightsExtension/PartType/TopologyV2AdaptedPart", + "settings": { + "content": { + "DataModelJSON": "{\"sortMetric\":\"Telemetry count\",\"sortOrder\":2,\"filters\":[],\"warningThreshold\":5,\"criticalThreshold\":20,\"nodeConfigurations\":[],\"timeContext\":{\"durationMs\":604800000,\"endTime\":null,\"createdTime\":\"2017-04-27T17:20:44.864Z\",\"isInitialTime\":false,\"grain\":1,\"useDashboardTimeRange\":false},\"userSelectedActiveOnlySetting\":true,\"hasActiveNodes\":false,\"hasNotConfiguredNodes\":false,\"showActiveNodesOnly\":true}" } + }, + "isAdapter": true, + "asset": { + "idInputName": "ComponentId", + "type": "ApplicationInsights" + }, + "defaultMenuItemId": "applicationMap" + } + } + } + } + }, + "metadata": { + "model": { + "timeRange": { + "value": { + "relative": { + "duration": 24, + "timeUnit": 1 } + }, + "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange" } + } } - ] + } + } + ] } \ No newline at end of file diff --git a/SETUP.md b/SETUP.md index 2f97dff..fb1278a 100644 --- a/SETUP.md +++ b/SETUP.md @@ -3,31 +3,33 @@ SAMPLE SETUP - Azure Functions tools for Visual Studio 2017 This covers the pre-requisites and set up for the Azure Functions tools for Visual Studio 2017 sample. ## Setup ## -Below are set up instructions for your computer, Azure, and Visual Studio Team Services. +Below are set up instructions for your computer, Azure, and Azure DevOps. ## Machine Pre-requisites ## Install the following on your machine: -- [Visual Studio 2017 Enterprise Update 3 Preview](https://www.visualstudio.com/vs/preview/) (Enterprise is used for the Live Unit Tests) with the following selected: +- [Visual Studio Enterprise 2017 Update 3 or 2019](https://visualstudio.microsoft.com/downloads) (Enterprise is used for the Live Unit Tests) with the following selected: - ASP.NET and Web development - Azure development - .NET Core cross-platform development -- [Latest Azure Functions tools for Visual Studio 2017](https://marketplace.visualstudio.com/vsgallery/e3705d94-7cc3-4b79-ba7b-f43f30774d28). When you first use this it will also install the Azure Functions CLI tools. -- [Microsoft .NET Framework 4.6.2 Developer Pack](http://getdotnet.azurewebsites.net/target-dotnet-platforms.html) -- [Azure PowerShell](https://azure.microsoft.com/en-us/downloads/) or the [Azure CLI 2.0](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) (for the ARM template deployment) +- [Azure PowerShell](https://docs.microsoft.com/en-us/powershell/azure/install-az-ps) or the [Azure CLI 2.0](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) (for the ARM template deployment) - [Git tools for Windows](https://git-scm.com/download/win) + +Only for Visual Studio 2017: + +- [Latest Azure Functions tools for Visual Studio 2017](https://marketplace.visualstudio.com/vsgallery/e3705d94-7cc3-4b79-ba7b-f43f30774d28). When you first use this it will also install the Azure Functions CLI tools. - Optional: [Continuous Delivery Tools for Visual Studio](https://marketplace.visualstudio.com/items?itemName=VSIDEDevOpsMSFT.ContinuousDeliveryToolsforVisualStudio) --- Notes: -- You can still use the sample with other editions of `Visual Studio 2017 Update 3 Preview` (like Community), but Live Unit Tests feature won't be available. -- `Continuous Delivery Tools for Visual Studio` is needed to show the status of automated builds for your function, and is optional if you won't set up Visual Studio Team Services. +- You can still use the sample with other editions of `Visual Studio' (like Community), but Live Unit Tests feature won't be available. +- `Continuous Delivery Tools for Visual Studio` is needed to show the status of automated builds for your function, and is optional if you won't set up Azure DevOps. --- ## Fork the Repo and Clone it ## - Fork this repo to your own GitHub account -- Clone your fork to a folder of your preferenceon your machine. Or, if you downloded a zip file of the sample, expand the zip file to your preferred folder. +- Clone your fork to a folder of your preference on your machine. Or, if you downloded a zip file of the sample, expand the zip file to your preferred folder. - Windows may block Powershell and Batch script execution if the OS determines the scripts originated from an untrusted source. To bypass this, run ``Get-ChildItem -Recurse -Path 'c:\Code' | Unblock-File`` (*replacing the path value with your target code root*). - In order to run non-digitally signed Powershell scripts you will need to run ``Set-ExecutionPolicy -ExecutionPolicy Unrestricted``. @@ -81,7 +83,7 @@ Note: ## Deploy the Website Code ## Now let's deploy the Reviews site code to the Web App: -- Open Visual Studio 2017 Update 3 +- Open Visual Studio - Open the ``CatsReviewApp.sln`` solution from the ``\Source\CatsReviewApp`` folder - Right click and build the web app in Visual Studio to ensure it is building working correctly - Right click the ``CatReviewsApp `` project and select ``Publish``. Follow the publish web app wizard to publish to an **existing App Service**, then choose the web app in the Reviews resource group in your Azure Subscription. @@ -89,12 +91,12 @@ Now let's deploy the Reviews site code to the Web App: ![](Media/Setup4.png) -## Optional: Visual Studio Team Services ## +## Optional: Azure DevOps ## -You can also create a VSTS build definition to trigger from a code commit. To get it set up, follow these instructions: -- Use an existing VSTS account or [create a new one](https://www.visualstudio.com/en-us/docs/setup-admin/team-services/sign-up-for-visual-studio-team-services) +You can also create an Azure DevOps build definition to trigger from a code commit. To get it set up, follow these instructions: +- Use an existing Azure DevOps account or [create a new one](https://docs.microsoft.com/fr-fr/azure/devops/organizations/accounts/create-organization) - [Make sure you have Colin's ALM Corner Build & Release Tools installed on your VSTS account](https://marketplace.visualstudio.com/items?itemName=colinsalmcorner.colinsalmcorner-buildtasks) -- [Create a Personal Access Token (PAT)](https://www.visualstudio.com/en-us/docs/setup-admin/team-services/use-personal-access-tokens-to-authenticate) and save the value. +- [Create a Personal Access Token (PAT)](https://docs.microsoft.com/fr-fr/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate) and save the value. - Create a new Build Definition as documented in [this blog post](https://blogs.msdn.microsoft.com/appserviceteam/2017/06/01/deploying-visual-studio-2017-function-projects-with-vsts/) using your GitHub fork as the source - Create the following variables for your new build definitions: - AzureWebJobsStorage @@ -147,6 +149,6 @@ You can also create a VSTS build definition to trigger from a code commit. To ge If you want to clean up the sample: - Delete the 'Reviews' resource group from your Azure subscription -- Delete the 'Reviews' project from your Visual Studio Team Services account +- Delete the 'Reviews' project from your Azure DevOps account - Delete the folder on your machine where you cloned the repo(s) - Delete the fork of the code from your GitHub account \ No newline at end of file diff --git a/Source/CatsReviewApp/CatsReviewApp.sln b/Source/CatsReviewApp/CatsReviewApp.sln index 38b0148..beef205 100644 --- a/Source/CatsReviewApp/CatsReviewApp.sln +++ b/Source/CatsReviewApp/CatsReviewApp.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26403.3 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29609.76 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CatsReviewApp", "CatsReviewApp\CatsReviewApp.csproj", "{270BD635-CAD8-458B-BFFB-B40E62A36E49}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CatsReviewApp", "CatsReviewApp\CatsReviewApp.csproj", "{31C4FF77-19AF-4379-AAC9-944BE01142A6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,12 +11,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {270BD635-CAD8-458B-BFFB-B40E62A36E49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {270BD635-CAD8-458B-BFFB-B40E62A36E49}.Debug|Any CPU.Build.0 = Debug|Any CPU - {270BD635-CAD8-458B-BFFB-B40E62A36E49}.Release|Any CPU.ActiveCfg = Release|Any CPU - {270BD635-CAD8-458B-BFFB-B40E62A36E49}.Release|Any CPU.Build.0 = Release|Any CPU + {31C4FF77-19AF-4379-AAC9-944BE01142A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31C4FF77-19AF-4379-AAC9-944BE01142A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31C4FF77-19AF-4379-AAC9-944BE01142A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31C4FF77-19AF-4379-AAC9-944BE01142A6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2D8DC9B9-7584-4499-BD91-648AE2DD8B02} + EndGlobalSection EndGlobal diff --git a/Source/CatsReviewApp/CatsReviewApp/App_Data/img-01.jpg b/Source/CatsReviewApp/CatsReviewApp/App_Data/img-01.jpg deleted file mode 100644 index d150f5da473d8cb5a0b4be019e209fd307693f34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63220 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

mK|YD=PGbT164bPPi_ntzN6F2$E4-n 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 z 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 diff --git a/Source/CatsReviewApp/CatsReviewApp/App_Data/img-03.jpg b/Source/CatsReviewApp/CatsReviewApp/App_Data/img-03.jpg deleted file mode 100644 index 9b649df352e6f814b956020f8393ced001703569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30726 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 lNi3FF!WPTWKlC5I*O@$T - - - - - - - - - - search|spider|crawl|Bot|Monitor|AlwaysOn - - - - - - - - - - - - - - - - - - - - - - System.Web.Handlers.TransferRequestHandler - Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler - System.Web.StaticFileHandler - System.Web.Handlers.AssemblyResourceLoader - System.Web.Optimization.BundleHandler - System.Web.Script.Services.ScriptHandlerFactory - System.Web.Handlers.TraceHandler - System.Web.Services.Discovery.DiscoveryRequestHandler - System.Web.HttpDebugHandler - - - - - - - - 5 - - - - - - \ No newline at end of file diff --git a/Source/CatsReviewApp/CatsReviewApp/CatsReviewApp.csproj b/Source/CatsReviewApp/CatsReviewApp/CatsReviewApp.csproj index f805ceb..0ef3ef0 100644 --- a/Source/CatsReviewApp/CatsReviewApp/CatsReviewApp.csproj +++ b/Source/CatsReviewApp/CatsReviewApp/CatsReviewApp.csproj @@ -1,298 +1,22 @@ - - - - - + + - Debug - AnyCPU - - - 2.0 - {270BD635-CAD8-458B-BFFB-B40E62A36E49} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - CatsReviewApp - CatsReviewApp - v4.5.2 - false - true - - - - - - - - /subscriptions/e7e4debd-456e-45a8-8bec-ccb824b1f34c/resourcegroups/Reviews/providers/microsoft.insights/components/ImageReview - /subscriptions/e7e4debd-456e-45a8-8bec-ccb824b1f34c/resourcegroups/Reviews/providers/microsoft.insights/components/ImageReview + netcoreapp3.1 - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - true - pdbonly - true - bin\ - TRACE - prompt - 4 - - - - ..\packages\Microsoft.ApplicationInsights.TraceListener.2.2.0\lib\net45\Microsoft.ApplicationInsights.TraceListener.dll - - - ..\packages\Microsoft.Azure.DocumentDB.1.13.2\lib\net45\Microsoft.Azure.Documents.Client.dll - - - ..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll - - - ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - - - - ..\packages\Microsoft.Data.Edm.5.8.2\lib\net40\Microsoft.Data.Edm.dll - - - ..\packages\Microsoft.Data.OData.5.8.2\lib\net40\Microsoft.Data.OData.dll - - - ..\packages\Microsoft.Data.Services.Client.5.8.2\lib\net40\Microsoft.Data.Services.Client.dll - - - ..\packages\Microsoft.WindowsAzure.ConfigurationManager.3.2.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - - - ..\packages\WindowsAzure.Storage.8.1.1\lib\net45\Microsoft.WindowsAzure.Storage.dll - - - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - True - - - - - - ..\packages\System.Spatial.5.8.2\lib\net40\System.Spatial.dll - - - - - - - - - - - - - - - - - - True - ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - - - - - True - ..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll - - - True - ..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll - - - ..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll - - - True - ..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll - - - True - ..\packages\WebGrease.1.5.2\lib\WebGrease.dll - - - True - ..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll - - - - - ..\packages\Microsoft.ApplicationInsights.2.2.0\lib\net45\Microsoft.ApplicationInsights.dll - - - ..\packages\Microsoft.ApplicationInsights.Agent.Intercept.2.0.6\lib\net45\Microsoft.AI.Agent.Intercept.dll - - - ..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.2.0\lib\net45\Microsoft.AI.DependencyCollector.dll - - - ..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.2.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll - - - ..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.2.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll - - - ..\packages\Microsoft.ApplicationInsights.WindowsServer.2.2.0\lib\net45\Microsoft.AI.WindowsServer.dll - - - ..\packages\Microsoft.ApplicationInsights.Web.2.2.0\lib\net45\Microsoft.AI.Web.dll - - - - - - - - - - - Global.asax - - - - - - - - - - - - - - - - - - - - - PreserveNewest - Designer - - - - - - - - - - - - - - - - - - Designer - - - Web.config - - - Web.config - - - - - - - - - - + - + + + + + - + + + + + - - - - - - - - - Designer - - - - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - - - - False - True - 31625 - / - http://localhost:31625/ - False - False - - - False - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - \ No newline at end of file + + diff --git a/Source/CatsReviewApp/CatsReviewApp/Components/StatusLabelViewComponent.cs b/Source/CatsReviewApp/CatsReviewApp/Components/StatusLabelViewComponent.cs new file mode 100644 index 0000000..b183fed --- /dev/null +++ b/Source/CatsReviewApp/CatsReviewApp/Components/StatusLabelViewComponent.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; + +namespace CatsReviewApp.Components +{ + public class StatusLabelViewComponent : ViewComponent + { + public IViewComponentResult Invoke(bool? isApproved) + { + return View(isApproved); + } + } +} diff --git a/Source/CatsReviewApp/CatsReviewApp/Connected Services/Application Insights/ConnectedService.json b/Source/CatsReviewApp/CatsReviewApp/Connected Services/Application Insights/ConnectedService.json deleted file mode 100644 index cb82c19..0000000 --- a/Source/CatsReviewApp/CatsReviewApp/Connected Services/Application Insights/ConnectedService.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider", - "Version": "8.6.209.10", - "GettingStartedDocument": { - "Uri": "https://go.microsoft.com/fwlink/?LinkID=613413" - } -} \ No newline at end of file diff --git a/Source/CatsReviewApp/CatsReviewApp/Controllers/HomeController.cs b/Source/CatsReviewApp/CatsReviewApp/Controllers/HomeController.cs index 15d182b..f66dbdd 100644 --- a/Source/CatsReviewApp/CatsReviewApp/Controllers/HomeController.cs +++ b/Source/CatsReviewApp/CatsReviewApp/Controllers/HomeController.cs @@ -1,6 +1,6 @@ namespace CatsReviewApp.Controllers { - using System.Web.Mvc; + using Microsoft.AspNetCore.Mvc; public class HomeController : Controller { diff --git a/Source/CatsReviewApp/CatsReviewApp/Controllers/ReviewController.cs b/Source/CatsReviewApp/CatsReviewApp/Controllers/ReviewController.cs index 5a9ce3b..30bd407 100644 --- a/Source/CatsReviewApp/CatsReviewApp/Controllers/ReviewController.cs +++ b/Source/CatsReviewApp/CatsReviewApp/Controllers/ReviewController.cs @@ -1,31 +1,31 @@ namespace CatsReviewApp.Controllers { - using System; - using System.Threading.Tasks; - using System.Web.Mvc; using CatsReviewApp.Models; - using System.Linq; using CatsReviewApp.Services; + using Microsoft.AspNetCore.Mvc; + using System; + using System.Linq; + using System.Threading.Tasks; public class ReviewController : Controller { - private readonly ReviewProvider provider; + private readonly ReviewProvider reviewProvider; - public ReviewController() + public ReviewController(ReviewProvider reviewProvider) { - this.provider = new ReviewProvider(); + this.reviewProvider = reviewProvider; } // GET: Review public async Task Index() { - return this.View((await this.provider.GetReviewsAsync()).OrderByDescending(r => r.Created)); + return this.View((await this.reviewProvider.GetReviewsAsync()).OrderByDescending(r => r.Created)); } // GET: Review/Details/5 public async Task Details(Guid id) { - return this.View(await this.provider.GetReviewAsync(id)); + return this.View(await this.reviewProvider.GetReviewAsync(id)); } // GET: Review/Create @@ -40,7 +40,7 @@ public async Task Create(CreateCatReview newCatReview) { try { - var id = await this.provider.CreateReviewAsync(newCatReview.Image.InputStream, newCatReview.ReviewText); + var id = await this.reviewProvider.CreateReviewAsync(newCatReview.Image.OpenReadStream(), newCatReview.ReviewText); return this.RedirectToAction("Details", new { Id = id }); } diff --git a/Source/CatsReviewApp/CatsReviewApp/ErrorHandler/AiHandleErrorAttribute.cs b/Source/CatsReviewApp/CatsReviewApp/ErrorHandler/AiHandleErrorAttribute.cs deleted file mode 100644 index be43088..0000000 --- a/Source/CatsReviewApp/CatsReviewApp/ErrorHandler/AiHandleErrorAttribute.cs +++ /dev/null @@ -1 +0,0 @@ -using System; using System.Web.Mvc; using Microsoft.ApplicationInsights; namespace CatsReviewApp.ErrorHandler { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)] public class AiHandleErrorAttribute : HandleErrorAttribute { public override void OnException(ExceptionContext filterContext) { if (filterContext != null && filterContext.HttpContext != null && filterContext.Exception != null) { //If customError is Off, then AI HTTPModule will report the exception if (filterContext.HttpContext.IsCustomErrorEnabled) { var ai = new TelemetryClient(); ai.TrackException(filterContext.Exception); } } base.OnException(filterContext); } } } \ No newline at end of file diff --git a/Source/CatsReviewApp/CatsReviewApp/Global.asax b/Source/CatsReviewApp/CatsReviewApp/Global.asax deleted file mode 100644 index 048f05b..0000000 --- a/Source/CatsReviewApp/CatsReviewApp/Global.asax +++ /dev/null @@ -1 +0,0 @@ -<%@ Application Codebehind="Global.asax.cs" Inherits="CatsReviewApp.MvcApplication" Language="C#" %> diff --git a/Source/CatsReviewApp/CatsReviewApp/Global.asax.cs b/Source/CatsReviewApp/CatsReviewApp/Global.asax.cs deleted file mode 100644 index dd875e1..0000000 --- a/Source/CatsReviewApp/CatsReviewApp/Global.asax.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace CatsReviewApp -{ - using Microsoft.ApplicationInsights.Extensibility; - using System.Web.Mvc; - using System.Web.Optimization; - using System.Web.Routing; - - public class MvcApplication : System.Web.HttpApplication - { - protected void Application_Start() - { - AreaRegistration.RegisterAllAreas(); - FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); - RouteConfig.RegisterRoutes(RouteTable.Routes); - BundleConfig.RegisterBundles(BundleTable.Bundles); - - var iKey = System.Web.Configuration.WebConfigurationManager.AppSettings["iKey"]; - if (string.IsNullOrEmpty(iKey)) { throw new System.Exception("Missing instrumentation key in Web.config"); }; - - TelemetryConfiguration.Active.InstrumentationKey = iKey; - } - } -} diff --git a/Source/CatsReviewApp/CatsReviewApp/Models/CreateCatReview.cs b/Source/CatsReviewApp/CatsReviewApp/Models/CreateCatReview.cs index 0e91181..c452103 100644 --- a/Source/CatsReviewApp/CatsReviewApp/Models/CreateCatReview.cs +++ b/Source/CatsReviewApp/CatsReviewApp/Models/CreateCatReview.cs @@ -1,11 +1,11 @@ -using System.ComponentModel.DataAnnotations; -using System.Web; +using Microsoft.AspNetCore.Http; +using System.ComponentModel.DataAnnotations; namespace CatsReviewApp.Models { public class CreateCatReview : CatReview { [Display(Name = "Image File")] - public HttpPostedFileBase Image { get; set; } + public IFormFile Image { get; set; } } } \ No newline at end of file diff --git a/Source/CatsReviewApp/CatsReviewApp/Program.cs b/Source/CatsReviewApp/CatsReviewApp/Program.cs new file mode 100644 index 0000000..dc4270a --- /dev/null +++ b/Source/CatsReviewApp/CatsReviewApp/Program.cs @@ -0,0 +1,25 @@ +using Microsoft.AspNetCore; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; + +namespace CatsReviewApp +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.ConfigureKestrel(serverOptions => + { + // Set properties and call methods on options + }) + .UseStartup(); + }); + } +} diff --git a/Source/CatsReviewApp/CatsReviewApp/Properties/AssemblyInfo.cs b/Source/CatsReviewApp/CatsReviewApp/Properties/AssemblyInfo.cs deleted file mode 100644 index b4aa4c4..0000000 --- a/Source/CatsReviewApp/CatsReviewApp/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("CatsReviewApp")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CatsReviewApp")] -[assembly: AssemblyCopyright("Copyright © 2017")] -[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("a2bce1a3-8f65-4a22-a9fb-37b9d73b220d")] - -// 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/Source/CatsReviewApp/CatsReviewApp/Properties/launchSettings.json b/Source/CatsReviewApp/CatsReviewApp/Properties/launchSettings.json new file mode 100644 index 0000000..82ca6a2 --- /dev/null +++ b/Source/CatsReviewApp/CatsReviewApp/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:59884", + "sslPort": 44353 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "CatsReviewApp": { + "commandName": "Project", + "launchBrowser": true, + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/Source/CatsReviewApp/CatsReviewApp/Scripts/bootstrap.js b/Source/CatsReviewApp/CatsReviewApp/Scripts/bootstrap.js deleted file mode 100644 index 5aa9982..0000000 --- a/Source/CatsReviewApp/CatsReviewApp/Scripts/bootstrap.js +++ /dev/null @@ -1,2014 +0,0 @@ -/* NUGET: BEGIN LICENSE TEXT - * - * Microsoft grants you the right to use these script files for the sole - * purpose of either: (i) interacting through your browser with the Microsoft - * website or online service, subject to the applicable licensing or use - * terms; or (ii) using the files as included with a Microsoft product subject - * to that product's license terms. Microsoft reserves all other rights to the - * files not expressly granted by Microsoft, whether by implication, estoppel - * or otherwise. Insofar as a script file is dual licensed under GPL, - * Microsoft neither took the code under GPL nor distributes it thereunder but - * under the terms set out in this paragraph. All notices and licenses - * below are for informational purposes only. - * - * NUGET: END LICENSE TEXT */ - -/** -* bootstrap.js v3.0.0 by @fat and @mdo -* Copyright 2013 Twitter Inc. -* http://www.apache.org/licenses/LICENSE-2.0 -*/ -if (!jQuery) { throw new Error("Bootstrap requires jQuery") } - -/* ======================================================================== - * Bootstrap: transition.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#transitions - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd' - , 'MozTransition' : 'transitionend' - , 'OTransition' : 'oTransitionEnd otransitionend' - , 'transition' : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } - } - } - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false, $el = this - $(this).one($.support.transition.end, function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - }) - -}(window.jQuery); - -/* ======================================================================== - * Bootstrap: alert.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#alerts - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.hasClass('alert') ? $this : $this.parent() - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - $parent.trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one($.support.transition.end, removeElement) - .emulateTransitionEnd(150) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - var old = $.fn.alert - - $.fn.alert = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(window.jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#buttons - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - } - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state = state + 'Text' - - if (!data.resetText) $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout(function () { - state == 'loadingText' ? - $el.addClass(d).attr(d, d) : - $el.removeClass(d).removeAttr(d); - }, 0) - } - - Button.prototype.toggle = function () { - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - .prop('checked', !this.$element.hasClass('active')) - .trigger('change') - if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') - } - - this.$element.toggleClass('active') - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - var old = $.fn.button - - $.fn.button = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - $btn.button('toggle') - e.preventDefault() - }) - -}(window.jQuery); - -/* ======================================================================== - * Bootstrap: carousel.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#carousel - * ======================================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = - this.sliding = - this.interval = - this.$active = - this.$items = null - - this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) - } - - Carousel.DEFAULTS = { - interval: 5000 - , pause: 'hover' - , wrap: true - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getActiveIndex = function () { - this.$active = this.$element.find('.item.active') - this.$items = this.$active.parent().children() - - return this.$items.index(this.$active) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getActiveIndex() - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid', function () { that.to(pos) }) - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition.end) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || $active[type]() - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var fallback = type == 'next' ? 'first' : 'last' - var that = this - - if (!$next.length) { - if (!this.options.wrap) return - $next = this.$element.find('.item')[fallback]() - } - - this.sliding = true - - isCycling && this.pause() - - var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) - - if ($next.hasClass('active')) return - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - this.$element.one('slid', function () { - var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) - $nextIndicator && $nextIndicator.addClass('active') - }) - } - - if ($.support.transition && this.$element.hasClass('slide')) { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid') }, 0) - }) - .emulateTransitionEnd(600) - } else { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid') - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - var old = $.fn.carousel - - $.fn.carousel = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { - var $this = $(this), href - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - $target.carousel(options) - - if (slideIndex = $this.attr('data-slide-to')) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - }) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - $carousel.carousel($carousel.data()) - }) - }) - -}(window.jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#collapse - * ======================================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.transitioning = null - - if (this.options.parent) this.$parent = $(this.options.parent) - if (this.options.toggle) this.toggle() - } - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var actives = this.$parent && this.$parent.find('> .panel > .in') - - if (actives && actives.length) { - var hasData = actives.data('bs.collapse') - if (hasData && hasData.transitioning) return - actives.collapse('hide') - hasData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing') - [dimension](0) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('in') - [dimension]('auto') - this.transitioning = 0 - this.$element.trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - [dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element - [dimension](this.$element[dimension]()) - [0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse') - .removeClass('in') - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .trigger('hidden.bs.collapse') - .removeClass('collapsing') - .addClass('collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - var old = $.fn.collapse - - $.fn.collapse = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { - var $this = $(this), href - var target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - var $target = $(target) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - var parent = $this.attr('data-parent') - var $parent = parent && $(parent) - - if (!data || !data.transitioning) { - if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') - $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') - } - - $target.collapse(option) - }) - -}(window.jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#dropdowns - * ======================================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle=dropdown]' - var Dropdown = function (element) { - var $el = $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we we use a backdrop because click events don't delegate - $('