Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(aTFV)
Solution Detailed Design
Application Environment Control
IT Service
ERNST & YOUNG and the stylized EY symbol are registered with the US Patent and Trademark Office
and with other trademark offices around the world. All other trademarks and registered trademarks
contained herein are the property of their respective owners.
Notice
The information contained in this document is confidential and proprietary information of Ernst & Young,
and may not be distributed outside of the global Ernst & Young organization. Unauthorized distribution
of this document or any of its contents to any individual or entity outside the firm is a violation of firm
policy that may result in disciplinary action.
Contents
Contents .......................................................................................................................................................................................... 3
1 Revision/Verification History......................................................................................................................................... 3
2 Purpose of the document .............................................................................................................................................. 3
3 Definitions, Acronyms and Abbreviations ....................................................................................................................... 4
4 Assumptions ................................................................................................................................................................ 4
5 Background .................................................................................................................................................................. 4
6 Development Tools ....................................................................................................................................................... 4
7 Implementation ............................................................................................................................................................ 5
7.1 High Level Data flow diagram ........................................................................................................................................ 5
8 Design and Implementation Scope................................................................................................................................ 5
9 Database schema ......................................................................................................................................................... 5
10 Tables .......................................................................................................................................................................... 5
11 Physical Model ............................................................................................................................................................. 6
12 Project Structure/Code/TFS Path ................................................................................................................................. 6
12.1 TFS Path ....................................................................................................................................................................... 6
12.2 Project Structure .......................................................................................................................................................... 6
13 Exception Handling ....................................................................................................................................................... 9
14 Initial Configurations/Logging and URL’s ....................................................................................................................10
15 Server Details .............................................................................................................................................................10
16 Security ......................................................................................................................................................................10
16.1 Database Connections ...............................................................................................................................................11
1 Revision/Verification History
The purpose of this document is to explain the technical details that are required to implement Automated Tax Form
Validation (aTFV) Application.
Page 3 of 11 v.0.1
Automated Tax Form Validation (aTFV) - SDD
4 Assumptions
TBD
5 Background
The aTFV is an automated tax form validation tool that will be used to support EY’s form
validation services. The aTFV uses OCR to extract data from our clients’ customers’
IRS Forms W-8, W-9, or CRS self-certifications. The tool then validates each data
point extracted using a rules engine with the logic developed in a prototyped version using MS Access for the performance
of the logic checks and processing of the data, and Captiva for OCR.
Since this access based prototype solution is not a long term solution by considering all security aspects. New aTFV will be
web based application which will be developed using .net and SQL server technologies.
6 Development Tools
Development:
o IDE - Microsoft Visual Studio 2017 with approved Service Pack
o Source code management - Microsoft TFS 2017
o Database - Microsoft SQL Server 2016 Enterprise Edition (64 bit) with approved Service Pack
o Framework - .Net core 2.1
o Development language - C# (following E&Y’s coding standards)
o SQL (following E&Y’s database development standards)
Components:
o User Interface - ASP.net Core Web Application
o Data Access – ADO.net
o Telerik Kendo UI for ASP.NET Core
Deployment Platform:
o Server Operating System - Windows Server 2012 R2 Enterprise Edition x64 – SP1
o Client Operating System - Windows 10 64 bit with approved Service Pack
Page 4 of 11 v.2
Automated Tax Form Validation (aTFV) - SDD
7 Implementation
7.1 High Level Data flow diagram
The following diagram depicts the data flow from all data sources to aTFV.
TBD
Implement a process to track logged-in details with first name, last name, time logged in, server details, page accessed and
their role.
Define the common E&Y approved naming standards/conventions throughout the applications.
9 Database schema
10 Tables
Page 5 of 11 v.0.1
Automated Tax Form Validation (aTFV) - SDD
11 Physical Model
$/Tax.CTORS/Dev/Source/aTFV/Development/EY.TAX.aTFV
aTFV fabricated upon multi-tier architecture to decouple Business logic from Data Access logic underneath. Following Projects are the
building blocks from aTFV –
EY.TAX.aTFV.Common
EY.TAX.aTFV.DTO
EY.TAX.aTFV.Database
EY.TAX.aTFV.DataAccess
EY.TAX.aTFV.Services
EY.TAX.aTFV.WebApp
EY.TAX.aTFV.Common – Common is a class library project which defines common components (objects, variables and methods) used
throughout the application. Common consist definition of constants (JS, Session etc.), enumerations, connection string and extension
methods etc.
Following projects add reference of Common project –
EY.TAX.aTFV.DataAccess
EY.TAX.aTFV.WebApp
EY.TAX.aTFV.DTO – DTO (Data Transfer objects) is a class library project which is a data container for moving data between layers. DTO
is only used to pass data and does not contain any business logic. They only have simple setters and getters. DTO objects consist of
properties depict DB tables and columns underneath.
Following projects add reference of DTO project –
EY.TAX.aTFV.DataAccess
EY.TAX.aTFV.Services
EY.TAX.aTFV.WebApp
Page 6 of 11 v.2
Automated Tax Form Validation (aTFV) - SDD
EY.TAX.aTFV.Database – Database project contains definition of all the DB objects (tables, SPs, functions, indexes etc.)
EY.TAX.aTFV.DataAccess – DataAccess is a class library project which holds the common set of methods that are required to perform
any operation in database. These classes have methods for Insert, Delete, Update and Select operation from a database. These
methods will get the parameters (DTOs) from Business logic layer or create DTO from the data received.
Decoupling – Concept which attach and detach components of any class without affecting another class.
For every DAL component interfaces and concrete implementations are created which helps to decouple the logic, enables to attach
the DAL component ( via interface reference) with Service layer without worrying about the underneath implementation of DAL
concrete classes.
EY.TAX.aTFV.Services – Services is a class library project which implements business logic of aTFV.
For every Services component interfaces and concrete implementations are created which helps to decouple the logic, enables to
attach the Services component ( via interface reference) with presentation layer without worrying about the underneath
implementation of Services concrete classes.
Following projects add reference of DAL project –
EY.TAX.aTFV.WebApp
EY.TAX.aTFV.WebApp – WebApp is a console application which is the presentation layer of UKI RND. WebApp follows MVC
architecture to build GUI and service interactions.
Page 7 of 11 v.0.1
Automated Tax Form Validation (aTFV) - SDD
aTFV Technical flow – Following is the project structure of aTFV Web App. ASP Core 2.1 is the framework underneath the aTFV
WebApp.
Program.cs - ASP.NET Core is a console application which means that the runtime environment looks for Main() method, like what we
were doing earlier in the actual console app. Now, Runtime environment looks for Main() method in Program.cs file.
main() method calls the CreateWebHostBuilder() method which actually creates web application host. The CreateDefaultBuilder()
encapsulates some default functionality, e.g. - UseKestrel(), UseStartup() etc.
Startup.cs – UseStartup method in Program.cs file uses the name of the startup class. This class is always a public class and contains
two important methods. Webhost automatically calls methods inside start up class in following sequence.
ConfigureServices method (optional) - Adding services to the service container makes them available within the app and in
the Configure method.
Configure method (mandatory) - Configure method defines how the application will respond to HTTP request and in order to
do that, it adds middleware to the Applicationbuilder
Appsettings.json – application setting (connection string, logging details etc.) defined in appsettings.
Create necessary DTO object (.cs class file) corresponds to the underneath database table and columns
Page 8 of 11 v.2
Automated Tax Form Validation (aTFV) - SDD
Add classes for DAL interface and Concrete (implementation class) in EY.TAX.aTFV.DataAccess project.
Add classes for Services interface and Concrete (implementation class) in EY.TAX.aTFV.Services project.
Add controller and required views inside folder (folder name should match with controller name) in EY.TAX.aTFV.WebApp
project.
Register newly created service into Start up class inside ConfigureServices() method so that the Service objects will be
available in application container.
Below code is used for DI\registering user defined services to container.
services.AddTransient<IHomeClientService, HomeService>();
Above steps are the basic blocks to start with any new feature in RND application.
13 Exception Handling
Application maintains Exception or Error log details in the ApplicationErrorLog table in aTFVMasterDatabase. Below given is
the table structure of ApplicationErrorLog table.
ErrorLogId bigint
ErrorDate datetime
RouteURL varchar(4000)
SamAccountName nvarchar(100)
IpAddress varchar(100)
Page 9 of 11 v.0.1
Automated Tax Form Validation (aTFV) - SDD
ErrorDesc varchar(MAX)
Source varchar(100)
StackTrace varchar(MAX)
URLs
16 Security
Page 10 of 11 v.2
Automated Tax Form Validation (aTFV) - SDD
Page 11 of 11 v.0.1