Skip to content

grantcolley/authorisationmanager

Repository files navigation

The Authorisation Manager system comprises several decoupled configurable application layers: user interface, service layer, server, data access layer and database.

Technologies
  • WPF, MVVM, Prism, Unity, WebApi 2.2, WCF, Asp.Net Core, MVC6, HTML5, Bootstrap, MS SQL Server, MySql, Oracle
 

Alt text

Table of Contents

User Interface

  • WPF, MVVM, Prism, Unity, Asp.Net Core, MVC6, HTML5, Bootstrap, Origin framework
 

WPF

  • WPF, MVVM, Prism, Unity, Origin framework

The WPF UI uses the Origin framework which is a WPF shell application implementing MVVM, Prism and Unity for hosting line-of-business modules in a document style layout.

The UI contains presentation only logic and relies on the service layer for operational functionality via an instance of the AuthorisationManagerServiceProxy.

Alt text

Web App

  • Asp.Net, MVC6, HTML5, Bootstrap

Development in progress...

Service Layer

  • WebApi 2.2, WCF, Unity
 

The service layer takes requests from the UI via the AuthorisationManagerServiceProxy and is responsible for routing it to the configured service.

The service can be configured to send requests via either the WCF Client or the WebApi Client, both of which implement IAuthorisationManagerServiceAsync and is injected into the constructor of AuthorisationManagerServiceProxy.

<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    <alias alias="AuthorisationManagerServiceProxy" type="DevelopmentInProgress.AuthorisationManager.Service.AuthorisationManagerServiceProxy, DevelopmentInProgress.AuthorisationManager.Service" />
    <alias alias="IAuthorisationManagerServiceProxy" type="DevelopmentInProgress.AuthorisationManager.Service.IAuthorisationManagerServiceProxy, DevelopmentInProgress.AuthorisationManager.Service" />
    <alias alias="IAuthorisationManagerServiceAsync" type="DevelopmentInProgress.AuthorisationManager.Service.IAuthorisationManagerServiceAsync, DevelopmentInProgress.AuthorisationManager.Service" />    
    <alias alias="AuthorisationManagerWCFClient" type="DevelopmentInProgress.AuthorisationManager.WCFClient.AuthorisationManagerWCFClient, DevelopmentInProgress.AuthorisationManager.WCFClient" />
    <!--<alias alias="AuthorisationManagerWebApiClient" type="DevelopmentInProgress.AuthorisationManager.WebApiClient.AuthorisationManagerWebApiClient, DevelopmentInProgress.AuthorisationManager.WebApiClient" />-->

    <container>
      <register type="IAuthorisationManagerServiceProxy" mapTo="AuthorisationManagerServiceProxy"/>

<register type="IAuthorisationManagerServiceAsync" mapTo="AuthorisationManagerWCFClient"/>
      <!--<register type="IAuthorisationManagerServiceAsync" mapTo="AuthorisationManagerWebApiClient"/>-->
    </container>

  </unity>

WebApi

  • WebApi 2.2, Unity

The WebApi Client forwards the request onto the WebApi, which is simply host for the Server.

WCF Service

  • WCF, Unity

The WCF Client forwards the request onto the WCF Service Host, which is simply host for the Server.

Server

The server is for business logic and access to the data access layer via the IAuthorisationManagerDataProxy.

Data Access Layer

  • MS SQL Server, MySql, Oracle
 

The Data library provides the interface to the data access layer through IAuthorisationManagerData. The data access implementation can be configured for access to MS SQL Server, Oracle or MySql.

  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    
    <alias alias="AuthorisationManagerDataProxy" type="DevelopmentInProgress.AuthorisationManager.Data.AuthorisationManagerDataProxy, DevelopmentInProgress.AuthorisationManager.Data" />
    <alias alias="IAuthorisationManagerDataProxy" type="DevelopmentInProgress.AuthorisationManager.Data.IAuthorisationManagerDataProxy, DevelopmentInProgress.AuthorisationManager.Data" />
    <alias alias="IAuthorisationManagerData" type="DevelopmentInProgress.AuthorisationManager.Data.IAuthorisationManagerData, DevelopmentInProgress.AuthorisationManager.Data" />
    <!--<alias alias="AuthorisationManagerData" type="DevelopmentInProgress.AuthorisationManager.Data.SQL.AuthorisationManagerData, DevelopmentInProgress.AuthorisationManager.Data.Oracle" />-->
    <!--<alias alias="AuthorisationManagerData" type="DevelopmentInProgress.AuthorisationManager.Data.SQL.AuthorisationManagerData, DevelopmentInProgress.AuthorisationManager.Data.MySql" />-->
    <alias alias="AuthorisationManagerData" type="DevelopmentInProgress.AuthorisationManager.Data.SQL.AuthorisationManagerData, DevelopmentInProgress.AuthorisationManager.Data.SQL" />
    
    <container>
      <register type="IAuthorisationManagerDataProxy" mapTo="AuthorisationManagerDataProxy"/>
      <register type="IAuthorisationManagerData" mapTo="AuthorisationManagerData"/>
    </container>

  </unity>

MS SQL Server Data Access Library

The MS SQL Server data access library uses DipMapper for easy, fast and efficient access to MS SQL Server.

Oracle Data Access Library

The Oracle Server data access library uses DipMapper for easy, fast and efficient access to Oracle.

MySql Data Access Library

The MySql data access library uses DipMapper for easy, fast and efficient access to MySql.

Database

MS SQL Server

Oracle

MySql

About

A full stack development exercise implementing WPF, MVVM, Prism, Unity, WebApi 2.2, WCF, Asp.Net Core, MVC6, HTML5, Bootstrap, MS SQL Server, MySql, Oracle

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published