Skip to content

Commit

Permalink
v2 refactoring & redesign to allow better customization. (#5)
Browse files Browse the repository at this point in the history
* Refactoring & redesign.
* Added azure pipelines yaml
* Added badges
* Coverage 80%
* Added GitVersion
  • Loading branch information
offbeatful authored Nov 20, 2019
1 parent 0fb8084 commit 07abbc2
Show file tree
Hide file tree
Showing 79 changed files with 2,699 additions and 1,052 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@
bin
obj
.vs
OfxClientIntegrationTests.cs
OfxClientIntegrationTests.cs
coverage.cobertura.xml
.codecov
12 changes: 12 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project>
<PropertyGroup>
<SkipCodeCoverageReport Condition="$(SkipCodeCoverageReport) == ''">false</SkipCodeCoverageReport>
<CoverletOutputFormat>cobertura</CoverletOutputFormat>
<CollectCoverage>true</CollectCoverage>
<ExcludeByFile>**/OFX_XSD_Generated.cs</ExcludeByFile>
<!-- <Threshold>80</Threshold> -->
<ThresholdType>line</ThresholdType>
<ThresholdStat>total</ThresholdStat>
</PropertyGroup>
</Project>
14 changes: 14 additions & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<ItemGroup>
<PackageReference Include="ReportGenerator" Version="4.3.6" >
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<Target Name="GenerateCoverageReport" AfterTargets="GenerateCoverageResult" Condition="!$(SkipCodeCoverageReport)">
<ItemGroup>
<CoverageFiles Include="coverage.cobertura.xml" />
</ItemGroup>
<ReportGenerator ReportFiles="@(CoverageFiles)" TargetDirectory="../../.codecov" ReportTypes="Html" />
</Target>
</Project>
30 changes: 30 additions & 0 deletions GitVersion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
assembly-versioning-scheme: Major
mode: ContinuousDeployment
next-version: 2.0.0
increment: Patch
legacy-semver-padding: 1
build-metadata-padding: 1
commits-since-version-source-padding: 1
continuous-delivery-fallback-tag: 'ci'
branches:
master:
regex: master
mode: ContinuousDeployment
tag: ''
increment: inherit
prevent-increment-of-merged-branch-version: true
tag-number-pattern: '[/-](?<number>\d+)[-/]'
pull-request:
regex: (pull|pull\-requests|pr)[/-]
mode: ContinuousDeployment
tag: "dev"
increment: Patch
tag-number-pattern: '[/-](?<number>\d+)[-/]'
develop:
regex: (!master)?
mode: ContinuousDeployment
tag: useBranchName
increment: Patch
ignore:
sha: []
merge-message-formats: {}
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
# ofx
# ofx

[![Nuget](https://img.shields.io/nuget/vpre/Mocoding.Ofx)](https://www.nuget.org/packages/Mocoding.Ofx)
[![Build Status](https://dev.azure.com/mocoding/GitHub/_apis/build/status/mocoding-software.ofx?branchName=master)](https://dev.azure.com/mocoding/GitHub/_build/latest?definitionId=83&branchName=master)
[![Code Coverage](https://img.shields.io/azure-devops/coverage/mocoding/GitHub/83/master)](https://dev.azure.com/mocoding/GitHub/_build?definitionId=83)
![Nuget Downloads](https://img.shields.io/nuget/dt/Mocoding.Ofx)


93 changes: 93 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

# name: $(majorVersion).$(minorVersion).$(patchVersion)$(channelVersion)$(buildVersion)$(Rev:.r)

trigger:
branches:
include:
- master
tags:
include:
- v*

pool:
vmImage: "ubuntu-18.04"

variables:
buildConfiguration: "Release"
projectName: "Mocoding.Ofx"
solutionFile: "ofx.sln"
# majorVersion: 2
# minorVersion: 0
# patchVersion: 0
# channelVersion: "-rc"
# buildVersion: $[format('-{0}.build', variables['Build.SourceBranchName'])]

steps:
- task: UseGitVersion@5
inputs:
versionSpec: '5.0.0'
useConfigFile: true
configFilePath: 'GitVersion.yml'

- task: DotNetCoreCLI@2
displayName: "dotnet restore"
inputs:
command: restore
projects: $(solutionFile)

- task: DotNetCoreCLI@2
displayName: "dotnet build"
inputs:
command: build
projects: $(solutionFile)

- task: DotNetCoreCLI@2
displayName: "dotnet test"
inputs:
command: test
projects: 'test/**/*.Tests.csproj'
arguments: "--no-build /p:SkipCodeCoverageReport=true /p:Threshold=80 /p:CoverletOutput=$(Agent.TempDirectory)/"

- task: PublishCodeCoverageResults@1
displayName: "publish code coverage"
inputs:
codeCoverageTool: "Cobertura"
summaryFileLocation: "$(Agent.TempDirectory)/*.xml"
condition: succeededOrFailed()

- task: DotNetCoreCLI@2
displayName: "dotnet pack $(projectName)"
inputs:
command: pack
packagesToPack: "src/$(projectName)/$(projectName).csproj"
configuration: $(buildConfiguration)
packDirectory: "$(Build.StagingDirectory)/$(projectName)"
buildProperties: "Version=$(Build.BuildNumber)"

- task: DotNetCoreCLI@2
displayName: "dotnet pack $(projectName).Client"
inputs:
command: pack
packagesToPack: "src/$(projectName).Client/$(projectName).Client.csproj"
configuration: $(buildConfiguration)
packDirectory: "$(Build.StagingDirectory)/$(projectName)"
buildProperties: "Version=$(Build.BuildNumber)"

- task: DotNetCoreCLI@2
displayName: "dotnet pack $(projectName).Client.Discover"
inputs:
command: pack
packagesToPack: "src/$(projectName).Client.Discover/$(projectName).Client.Discover.csproj"
configuration: $(buildConfiguration)
packDirectory: "$(Build.StagingDirectory)/$(projectName)"
buildProperties: "Version=$(Build.BuildNumber)"

- task: PublishBuildArtifacts@1
displayName: "Publish Artifact: nupkg"
inputs:
PathtoPublish: "$(Build.StagingDirectory)"
ArtifactName: nupkg
7 changes: 5 additions & 2 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
version: "2.4"

services:
devbox:
devbox: &devbox
image: mocoding/ofx
command: /bin/sh
build:
context: ./
dockerfile: docker/Dockerfile
volumes:
- .:/app
- .:/app

test:
<<: *devbox
4 changes: 0 additions & 4 deletions docker/Dockerfile

This file was deleted.

64 changes: 64 additions & 0 deletions docs/mocoding.ofx.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
@startuml

skinparam componentStyle uml2

' hide class circle
' hide interface circle
' hide abstract circle
' hide enum circle

' hide fields

hide interface fields
hide class fields
hide abstract fields
hide enum methods


enum OfxVersionEnum {
Version1x= 1,
Version2x= 2,
}

interface IOfxSerializer
{
Serialize(model: OFX) : string
Deserialize(intputString: string) : OFX
}

interface IOfxSerializerFactory {
IOfxSerializer Create(version: OfxVersionEnum)
}

abstract class BaseSerializer {
+ {abstract} Serialize(model:OFX) : string
+ {abstract} Deserialize(inputString:string) : OFX

# SerializeInternal(request:OFX) : string
# DeserializeInternal(input:string) : OFX
}

class XmlSerializer {
+ <<override>> Serialize(model:OFX) : string
+ <<override>> Deserialize(inputString:string) : OFX
}

class SgmlSerializer {
+ <<override>> Serialize(model:OFX) : string
+ <<override>> Deserialize(inputString:string) : OFX
}

class DefaultOfxSerializerFactory {
+ Create(version:OfxVersionEnum) : IOfxSerializer
}

IOfxSerializer <|--- BaseSerializer
IOfxSerializerFactory <|--- DefaultOfxSerializerFactory
BaseSerializer <|--- XmlSerializer
BaseSerializer <|--- SgmlSerializer

IOfxSerializerFactory -right-> IOfxSerializer

center footer @ Mocoding 2019

@enduml
30 changes: 15 additions & 15 deletions ofx.sln
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2010
# Visual Studio Version 16
VisualStudioVersion = 16.0.29409.12
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52EC7D92-4F1F-45CD-A25C-ABFC7E46759A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{313ABF6C-A107-4046-A2E0-455E5B681E57}"
ProjectSection(SolutionItems) = preProject
_stylecop\StyleCop.ruleset = _stylecop\StyleCop.ruleset
test.runsettings = test.runsettings
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{94A1D6B3-9112-4D1B-AA64-1AC6088E8E23}"
Expand All @@ -16,9 +17,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mocoding.Ofx", "src\Mocodin
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mocoding.Ofx.Tests", "test\Mocoding.Ofx.Tests\Mocoding.Ofx.Tests.csproj", "{DB558166-A4A7-4E32-8285-75D4CC1593AC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mocoding.Ofx.Client", "src\Mocoding.Ofx.Client\Mocoding.Ofx.Client.csproj", "{06F2F625-5121-46CE-A65C-963BB4E9EA3B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mocoding.Ofx.Client", "src\Mocoding.Ofx.Client\Mocoding.Ofx.Client.csproj", "{5D2B5B2B-3551-4E47-8BE8-88C516282F7B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mocoding.Ofx.Client.Tests", "test\Mocoding.Ofx.Client.Tests\Mocoding.Ofx.Client.Tests.csproj", "{2DD397E1-4408-4DE6-85D8-0DBFA8CCFB28}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mocoding.Ofx.Client.Discover", "src\Mocoding.Ofx.Client.Discover\Mocoding.Ofx.Client.Discover.csproj", "{ED991F3D-2F6E-496F-972A-F64B4284381C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -33,24 +34,23 @@ Global
{DB558166-A4A7-4E32-8285-75D4CC1593AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB558166-A4A7-4E32-8285-75D4CC1593AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB558166-A4A7-4E32-8285-75D4CC1593AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DB558166-A4A7-4E32-8285-75D4CC1593AC}.Release|Any CPU.Build.0 = Release|Any CPU
{06F2F625-5121-46CE-A65C-963BB4E9EA3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06F2F625-5121-46CE-A65C-963BB4E9EA3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06F2F625-5121-46CE-A65C-963BB4E9EA3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{06F2F625-5121-46CE-A65C-963BB4E9EA3B}.Release|Any CPU.Build.0 = Release|Any CPU
{2DD397E1-4408-4DE6-85D8-0DBFA8CCFB28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2DD397E1-4408-4DE6-85D8-0DBFA8CCFB28}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2DD397E1-4408-4DE6-85D8-0DBFA8CCFB28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2DD397E1-4408-4DE6-85D8-0DBFA8CCFB28}.Release|Any CPU.Build.0 = Release|Any CPU
{5D2B5B2B-3551-4E47-8BE8-88C516282F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5D2B5B2B-3551-4E47-8BE8-88C516282F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5D2B5B2B-3551-4E47-8BE8-88C516282F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5D2B5B2B-3551-4E47-8BE8-88C516282F7B}.Release|Any CPU.Build.0 = Release|Any CPU
{ED991F3D-2F6E-496F-972A-F64B4284381C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED991F3D-2F6E-496F-972A-F64B4284381C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED991F3D-2F6E-496F-972A-F64B4284381C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED991F3D-2F6E-496F-972A-F64B4284381C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{F2FB00D8-476F-41D8-9BBD-E706D3066C95} = {52EC7D92-4F1F-45CD-A25C-ABFC7E46759A}
{DB558166-A4A7-4E32-8285-75D4CC1593AC} = {94A1D6B3-9112-4D1B-AA64-1AC6088E8E23}
{06F2F625-5121-46CE-A65C-963BB4E9EA3B} = {52EC7D92-4F1F-45CD-A25C-ABFC7E46759A}
{2DD397E1-4408-4DE6-85D8-0DBFA8CCFB28} = {94A1D6B3-9112-4D1B-AA64-1AC6088E8E23}
{5D2B5B2B-3551-4E47-8BE8-88C516282F7B} = {52EC7D92-4F1F-45CD-A25C-ABFC7E46759A}
{ED991F3D-2F6E-496F-972A-F64B4284381C} = {52EC7D92-4F1F-45CD-A25C-ABFC7E46759A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C40D6E6A-BEDD-4CB9-9E43-EB415BE6B7BD}
Expand Down
Loading

0 comments on commit 07abbc2

Please sign in to comment.