Skip to content

Instantly share code, notes, and snippets.

- task: VSTest@2
displayName: 'VsTest - Integration Tests'
inputs:
testAssemblyVer2: |
**\MyNamespace.IntegrationTests.dll
!**\*xunit.runner*.dll
!**\obj\**
codeCoverageEnabled: true
diagnosticsEnabled: true
rerunFailedTests: true
- task: VSTest@2
inputs:
testAssemblyVer2: |
**\$(BuildConfiguration)\**\*Tests*.dll
!**\$(BuildConfiguration)\**\*Models*.dll
!**\*TestAdapter.dll
!**\obj\**
!**\$(BuildConfiguration)\**\*IntegrationTests*.dll
codeCoverageEnabled: true
testRunTitle: '$(Build.DefinitionName) | $(Build.Reason) |$(Build.SourceVersion)'
public static class ConfigHelper
{
private static readonly IConfigurationRoot Config;
static ConfigHelper()
{
Config = new ConfigurationBuilder()
.SetBasePath(AppContext.BaseDirectory)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.Build();
}
{
"AppSettings":{
"AzureKeyVault":"https://hours-key-vault.vault.azure.net/",
"Title": "Something that is not secret"
},
"Comment":"Connection strings don't include passwords - these are stored in Secret Manager or Azure key Vault",
"ConnectionStrings": {
"BeautifulLoopProcessing" : "Server=tcp:xxx.database.windows.net,1433;Initial Catalog=xxx-xxx-xxx-dev;Persist Security Info=False;User ID=xxxxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
}
}
az keyvault set-policy --name {KEY VAULT NAME} --object-id {OBJECT ID} --secret-permissions get list
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using VSTestKeyVault.Models;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
using Azure.Core;
@aidangarnish
aidangarnish / Average duration per day by function.txt
Last active July 15, 2019 08:39
Average duration per day by function
requests | where name == "OperationName" |
where timestamp > ago(30d) and operation_Name != ""
| summarize avg(duration) by operation_Name, bin(timestamp, 1d)
@aidangarnish
aidangarnish / Average duration of operations.txt
Last active July 15, 2019 08:39
Average duration of operations
requests | where timestamp > ago(7d)
| summarize count(), min(duration) , max(duration), avg(duration) by operation_Name
@aidangarnish
aidangarnish / Count of http status codes.txt
Last active July 15, 2019 08:40
Count of http status codes
requests | where timestamp > ago(30d)
| summarize count() by resultCode
public class AuthorizeADAttribute : AuthorizeAttribute { public string GroupId { get; set; }
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (base.AuthorizeCore(httpContext))
{
if (String.IsNullOrEmpty(GroupId))
return true;
var identity = (ClaimsPrincipal)Thread.CurrentPrincipal;