Skip to content

Commit

Permalink
Merge branch 'release/v0.4.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
James Stumme committed Feb 6, 2017
2 parents c698b76 + 5730df4 commit 789b713
Show file tree
Hide file tree
Showing 36 changed files with 1,071 additions and 832 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*.user
*.userosscache
*.sln.docstates
*.sln.DotSettings

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
Light weight REST service framework for ASP.NET Core

### Branch Status
[![NuGet](https://img.shields.io/nuget/v/RService.IO.svg)](https://www.nuget.org/packages/RService.IO/) [![NuGet](https://img.shields.io/nuget/v/RService.IO.Abstractions.svg)](https://www.nuget.org/packages/RService.IO.Abstractions/)
[![NuGet](https://img.shields.io/nuget/v/RService.IO.svg)](https://www.nuget.org/packages/RService.IO/)
[![NuGet](https://img.shields.io/nuget/v/RService.IO.Abstractions.svg)](https://www.nuget.org/packages/RService.IO.Abstractions/)
[![NuGet](https://img.shields.io/nuget/v/RService.IO.Authorization.svg)](https://www.nuget.org/packages/RService.IO.Authorization/)

#### Master
[![Build status](https://ci.appveyor.com/api/projects/status/t65h3ok91ljwm30t/branch/master?svg=true)](https://ci.appveyor.com/project/Stoom/rservice-io/branch/master)
[![Coverage Status](https://coveralls.io/repos/github/Stoom/RService.IO/badge.svg?branch=master)](https://coveralls.io/github/Stoom/RService.IO?branch=master)
[![Coverage Status](https://coveralls.io/repos/github/Stoom/RService.IO/badge.svg?branch=master)](https://coveralls.io/github/Stoom/RService.IO?branch=master)
[![Codecov branch](https://img.shields.io/codecov/c/github/Stoom/RService.IO/master.svg)](https://codecov.io/gh/Stoom/RService.IO/branch/master)
#### Develop
[![Build status](https://ci.appveyor.com/api/projects/status/t65h3ok91ljwm30t/branch/develop?svg=true)](https://ci.appveyor.com/project/Stoom/rservice-io/branch/develop)
Expand Down
132 changes: 73 additions & 59 deletions RService.IO.sln
Original file line number Diff line number Diff line change
@@ -1,59 +1,73 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B748CB97-7861-4FC7-828D-11C44E540630}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{64F366F9-AA78-455D-B3C7-94B9F14814AA}"
ProjectSection(SolutionItems) = preProject
appveyor.yml = appveyor.yml
global.json = global.json
LICENSE = LICENSE
NuGet.config = NuGet.config
README.md = README.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{1F1CF499-A7DD-4BEE-B9B5-E5A87E0ADDA4}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RService.IO.Tests", "test\RService.IO.Tests\RService.IO.Tests.xproj", "{29E250BF-7D21-4B2D-81DD-F527C0CC3286}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RService.IO", "src\RService.IO\RService.IO.xproj", "{80003DA0-A02B-487A-8E22-973B5A4BF0CD}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Rservice.IO.Tests.Integration", "test\Rservice.IO.Tests.Integration\Rservice.IO.Tests.Integration.xproj", "{CE9393A2-ED69-4748-913B-3C11143957F5}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RService.IO.Abstractions", "src\RService.IO.Abstractions\RService.IO.Abstractions.xproj", "{4474DEEE-06F5-4706-97A2-A437E258F485}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{29E250BF-7D21-4B2D-81DD-F527C0CC3286}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{29E250BF-7D21-4B2D-81DD-F527C0CC3286}.Debug|Any CPU.Build.0 = Debug|Any CPU
{29E250BF-7D21-4B2D-81DD-F527C0CC3286}.Release|Any CPU.ActiveCfg = Release|Any CPU
{29E250BF-7D21-4B2D-81DD-F527C0CC3286}.Release|Any CPU.Build.0 = Release|Any CPU
{80003DA0-A02B-487A-8E22-973B5A4BF0CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80003DA0-A02B-487A-8E22-973B5A4BF0CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80003DA0-A02B-487A-8E22-973B5A4BF0CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80003DA0-A02B-487A-8E22-973B5A4BF0CD}.Release|Any CPU.Build.0 = Release|Any CPU
{CE9393A2-ED69-4748-913B-3C11143957F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE9393A2-ED69-4748-913B-3C11143957F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CE9393A2-ED69-4748-913B-3C11143957F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE9393A2-ED69-4748-913B-3C11143957F5}.Release|Any CPU.Build.0 = Release|Any CPU
{4474DEEE-06F5-4706-97A2-A437E258F485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4474DEEE-06F5-4706-97A2-A437E258F485}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4474DEEE-06F5-4706-97A2-A437E258F485}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4474DEEE-06F5-4706-97A2-A437E258F485}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{29E250BF-7D21-4B2D-81DD-F527C0CC3286} = {1F1CF499-A7DD-4BEE-B9B5-E5A87E0ADDA4}
{80003DA0-A02B-487A-8E22-973B5A4BF0CD} = {B748CB97-7861-4FC7-828D-11C44E540630}
{CE9393A2-ED69-4748-913B-3C11143957F5} = {1F1CF499-A7DD-4BEE-B9B5-E5A87E0ADDA4}
{4474DEEE-06F5-4706-97A2-A437E258F485} = {B748CB97-7861-4FC7-828D-11C44E540630}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B748CB97-7861-4FC7-828D-11C44E540630}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{64F366F9-AA78-455D-B3C7-94B9F14814AA}"
ProjectSection(SolutionItems) = preProject
appveyor.yml = appveyor.yml
global.json = global.json
LICENSE = LICENSE
NuGet.config = NuGet.config
README.md = README.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{1F1CF499-A7DD-4BEE-B9B5-E5A87E0ADDA4}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RService.IO.Tests", "test\RService.IO.Tests\RService.IO.Tests.xproj", "{29E250BF-7D21-4B2D-81DD-F527C0CC3286}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RService.IO", "src\RService.IO\RService.IO.xproj", "{80003DA0-A02B-487A-8E22-973B5A4BF0CD}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Rservice.IO.Tests.Integration", "test\Rservice.IO.Tests.Integration\Rservice.IO.Tests.Integration.xproj", "{CE9393A2-ED69-4748-913B-3C11143957F5}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RService.IO.Abstractions", "src\RService.IO.Abstractions\RService.IO.Abstractions.xproj", "{4474DEEE-06F5-4706-97A2-A437E258F485}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RService.IO.Authorization", "src\RService.IO.Authorization\RService.IO.Authorization.xproj", "{4FA0A7F5-B8AC-4BE0-BD20-7E2CDB16AE8B}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RService.IO.Authorization.Tests", "test\RService.IO.Authorization.Tests\RService.IO.Authorization.Tests.xproj", "{44B66719-E3DC-4F39-A67D-196BCB9A0FA7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{29E250BF-7D21-4B2D-81DD-F527C0CC3286}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{29E250BF-7D21-4B2D-81DD-F527C0CC3286}.Debug|Any CPU.Build.0 = Debug|Any CPU
{29E250BF-7D21-4B2D-81DD-F527C0CC3286}.Release|Any CPU.ActiveCfg = Release|Any CPU
{29E250BF-7D21-4B2D-81DD-F527C0CC3286}.Release|Any CPU.Build.0 = Release|Any CPU
{80003DA0-A02B-487A-8E22-973B5A4BF0CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80003DA0-A02B-487A-8E22-973B5A4BF0CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80003DA0-A02B-487A-8E22-973B5A4BF0CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80003DA0-A02B-487A-8E22-973B5A4BF0CD}.Release|Any CPU.Build.0 = Release|Any CPU
{CE9393A2-ED69-4748-913B-3C11143957F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE9393A2-ED69-4748-913B-3C11143957F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CE9393A2-ED69-4748-913B-3C11143957F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE9393A2-ED69-4748-913B-3C11143957F5}.Release|Any CPU.Build.0 = Release|Any CPU
{4474DEEE-06F5-4706-97A2-A437E258F485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4474DEEE-06F5-4706-97A2-A437E258F485}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4474DEEE-06F5-4706-97A2-A437E258F485}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4474DEEE-06F5-4706-97A2-A437E258F485}.Release|Any CPU.Build.0 = Release|Any CPU
{4FA0A7F5-B8AC-4BE0-BD20-7E2CDB16AE8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4FA0A7F5-B8AC-4BE0-BD20-7E2CDB16AE8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FA0A7F5-B8AC-4BE0-BD20-7E2CDB16AE8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4FA0A7F5-B8AC-4BE0-BD20-7E2CDB16AE8B}.Release|Any CPU.Build.0 = Release|Any CPU
{44B66719-E3DC-4F39-A67D-196BCB9A0FA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{44B66719-E3DC-4F39-A67D-196BCB9A0FA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{44B66719-E3DC-4F39-A67D-196BCB9A0FA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{44B66719-E3DC-4F39-A67D-196BCB9A0FA7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{29E250BF-7D21-4B2D-81DD-F527C0CC3286} = {1F1CF499-A7DD-4BEE-B9B5-E5A87E0ADDA4}
{80003DA0-A02B-487A-8E22-973B5A4BF0CD} = {B748CB97-7861-4FC7-828D-11C44E540630}
{CE9393A2-ED69-4748-913B-3C11143957F5} = {1F1CF499-A7DD-4BEE-B9B5-E5A87E0ADDA4}
{4474DEEE-06F5-4706-97A2-A437E258F485} = {B748CB97-7861-4FC7-828D-11C44E540630}
{4FA0A7F5-B8AC-4BE0-BD20-7E2CDB16AE8B} = {B748CB97-7861-4FC7-828D-11C44E540630}
{44B66719-E3DC-4F39-A67D-196BCB9A0FA7} = {1F1CF499-A7DD-4BEE-B9B5-E5A87E0ADDA4}
EndGlobalSection
EndGlobal
16 changes: 13 additions & 3 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
version: '0.1.1-{build}'
configuration:
- Debug
- Release
platform: Any CPU
environment:
Expand All @@ -19,18 +18,29 @@ before_build:
build_script:
- dotnet build "src\RService.IO" -c %CONFIGURATION% --version-suffix %LABEL%
- dotnet build "src\RService.IO.Abstractions" -c %CONFIGURATION% --version-suffix %LABEL%
- dotnet build "src\RService.IO.Authorization" -c %CONFIGURATION% --version-suffix %LABEL%
test_script:
- ps: '& ${env:homedrive}${env:homepath}\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe "-target:C:\Program Files\dotnet\dotnet.exe" -targetargs:"test .\test\RService.IO.Tests" -register:user -filter:"+[RService.IO*]* -[RService.IO.Tests*]*" -output:coverage.xml -oldStyle'
- ps: '& ${env:homedrive}${env:homepath}\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe "-target:C:\Program Files\dotnet\dotnet.exe" -targetargs:"test .\test\RService.IO.Authorization.Tests" -register:user -filter:"+[RService.IO*]* -[RService.IO.Authorization.Tests*]*" -mergeoutput -output:coverage.xml -oldStyle'
- ps: '& ${env:homedrive}${env:homepath}\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe "-target:C:\Program Files\dotnet\dotnet.exe" -targetargs:"test .\test\RService.IO.Tests.Integration" -register:user -filter:"+[RService.IO*]* -[RService.IO.Tests*]*" -mergeoutput -output:coverage.xml -oldStyle'
- ps: '& ${env:homedrive}${env:homepath}\.nuget\packages\coveralls.io\1.3.4\tools\coveralls.net.exe --opencover coverage.xml'
- ps: pip install codecov; codecov -f coverage.xml -X gcov
after_test:
#- dotnet pack "src\LibNETStandard10" -c %CONFIGURATION% --no-build --version-suffix %LABEL% -o artifacts
#- dotnet publish "src\ConsoleApplication" -c %CONFIGURATION% --no-build --version-suffix %LABEL% -o artifacts\ConsoleApplication
- ps: dotnet pack "src\RService.IO" -c ${env:CONFIGUREATION} --no-build --version-suffix ${env:LABEL} -o artifacts
- ps: dotnet pack "src\RService.IO.Abstractions" -c ${env:CONFIGUREATION} --no-build --version-suffix ${env:LABEL} -o artifacts
- ps: dotnet pack "src\RService.IO.Authorization" -c ${env:CONFIGUREATION} --no-build --version-suffix ${env:LABEL} -o artifacts
artifacts:
- path: '**/RService.IO.*.nupkg'
name: NuGet Package
deploy:
- provider: NuGet
api_key:
secure: TafSc421VlrLm7iCk6Xm2/ss0aZT8EXfcU2DEarrIeoWxg+NxXH8apUKAV+oT8Kp
skip_symbols: false
artifact: /.*\.nupkg/
on:
branch: master
configuration: Release
appveyor_repo_tag: true
#cache:
#- '%USERPROFILE%\.nuget\packages'
6 changes: 3 additions & 3 deletions src/RService.IO.Abstractions/Delegate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ public static class Delegate
/// <returns>The service's response.</returns>
public delegate object Activator(object target, params object[] args);
/// <summary>
/// Creates a DTO based on JSON.
/// Creates a DTO based on a request body.
/// </summary>
/// <param name="json">JSON to create DTO from.</param>
/// <param name="body">The request body to create DTO from.</param>
/// <returns>The DTO.</returns>
public delegate object DtoCtor(string json);
public delegate object DtoCtor(string body);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using Delegate = RService.IO.Abstractions.Delegate;

namespace RService.IO
namespace RService.IO.Abstractions
{
public sealed class DelegateFactory
public static class DelegateFactory
{
/// <summary>
/// Generates a dynamic method call.
Expand Down Expand Up @@ -60,18 +59,17 @@ public static Delegate.Activator GenerateMethodCall(MethodInfo method)
/// Generates a dynamic DTO.
/// </summary>
/// <param name="dtoType">The <see cref="Type"/> of the DTO to create.</param>
/// <param name="deserializerMethod">The <see cref="MethodInfo"/> of the generic deserializer.</param>
/// <returns>A <see cref="Delegate.DtoCtor"/> delegate.</returns>
/// <remarks>The results from this function should be cached.</remarks>
public static Delegate.DtoCtor GenerateDtoCtor(Type dtoType)
public static Delegate.DtoCtor GenerateDtoCtor(Type dtoType, MethodInfo deserializerMethod)
{
// Methods
var deserializeMethod = typeof(NetJSON.NetJSON)
.GetMethod("Deserialize", new[] { typeof(string) })
.MakeGenericMethod(dtoType);
var deserializeMethod = deserializerMethod.MakeGenericMethod(dtoType);
var dtoCtor = dtoType.GetConstructors().First();

// Properties and fields
var jsonParam = Expression.Parameter(typeof(string), "Json Body");
var bodyParam = Expression.Parameter(typeof(string), "Body");
var reqDtoVar = Expression.Variable(dtoType, "Request Dto");

// Return
Expand All @@ -86,7 +84,7 @@ public static Delegate.DtoCtor GenerateDtoCtor(Type dtoType)
var callExpressions = new List<Expression>
{
// Deserialize or ctor
Expression.Assign(reqDtoVar, Expression.Call(deserializeMethod, jsonParam)),
Expression.Assign(reqDtoVar, Expression.Call(deserializeMethod, bodyParam)),
Expression.IfThen(
Expression.Equal(reqDtoVar, nullConst),
Expression.Assign(reqDtoVar, Expression.New(dtoCtor))
Expand All @@ -100,7 +98,7 @@ public static Delegate.DtoCtor GenerateDtoCtor(Type dtoType)

var lambda = Expression.Lambda<Delegate.DtoCtor>(
Expression.Convert(call, typeof(object)),
jsonParam);
bodyParam);

return lambda.Compile();
}
Expand Down
1 change: 0 additions & 1 deletion src/RService.IO.Abstractions/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;

namespace RService.IO.Abstractions
namespace RService.IO.Abstractions.Providers
{
/// <summary>
/// Determines if a service endpoint is authenticated and authorized to be executed.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using Microsoft.AspNetCore.Http;

namespace RService.IO.Abstractions
namespace RService.IO.Abstractions.Providers
{
/// <summary>
/// Describes how to hydrate (deserialize), and dehydrate (serialize)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;

namespace RService.IO.Abstractions
namespace RService.IO.Abstractions.Providers
{
/// <summary>
/// Supports reading request and calling user service endpoints.
Expand Down
7 changes: 4 additions & 3 deletions src/RService.IO.Abstractions/project.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"title": "RService.IO.Abstractions",
"version": "0.3.0",
"version": "0.4.0",

"packOptions": {
"summary": "The abstractions required for implementing a RService.IO service and routes.",
Expand All @@ -24,8 +24,9 @@
},

"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "1.0.0",
"Microsoft.AspNetCore.Routing.Abstractions": "1.0.0"
"Microsoft.AspNetCore.Http.Abstractions": "1.1.0",
"Microsoft.AspNetCore.Routing.Abstractions": "1.1.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "1.1.0"
},

"frameworks": {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using RService.IO.Abstractions.Providers;
using RService.IO.Authorization.Providers;

namespace RService.IO.Authorization.DependencyInjection
{
public static class ServiceCollectionExtensions
{
public static IServiceCollection AddRServiceIoAuthorization(
this IServiceCollection services)
{
services.AddOptions();

services.TryAddTransient<IAuthProvider, AuthProvider>();

return services;
}
}
}
25 changes: 25 additions & 0 deletions src/RService.IO.Authorization/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System.Reflection;
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("RService.IO.Authorization")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RService.IO.Authorization")]
[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("4FA0A7F5-B8AC-4BE0-BD20-7E2CDB16AE8B")]
Loading

0 comments on commit 789b713

Please sign in to comment.