The solution has two applications.
-
The first one is one Client Console Application: It creates a request to the server with the document text to be analyzed and the tag information to be extracted and shows the analysis results
-
The second is an Asp.NET Core Web API Application: It analyzes the submitted XML document and the requested tags. It stores the request and result infos in the database
-
Db: Request, response, and analysis informations store on MS Sql Server database
- Document Table: It stores XML file information to be analyzed (XMLDocument data, date, etc.)
- Tag Table: It stores the information of the elements to be extracted from the document and the contents of the tag (p, how comprehensible individual... e.g.)
- Analysis Table: It stores document analysis information (StartDate, EndDate, ElapsedMilliseconds e.g.)
- AnalysisItem Table: It stores the repeating vocabulary and the number of occurrences associated with the Analysis, Document, and Tag
The project uses .NET 5 Framework and MS SQL Server.
- If you do not have .NET >= 5.x installed, you can download it here: .NET 5
- If you do not have an MS SQL Server instance, you can download the Express version from here: MS SQL Express
- If you do not have Visual Studio 2019 Express, you can download it here: Visual Studio 2019
- git clone https://github.com/mehmetyagci/CongreeLang.git
- cd CongreeLang
- open CongreeLang.sln with Visual Studio 2019
- Rebuil Solution
-
Change MS SQL Server connection string setting in appsettings.json file on Server Project
-
Open Package Manager Console Window then run below commands
Add-Migration Initial
Update-Database
-
Server Application must start first. Run CongreeLang.sln for starting the Server project
-
Open Power shell then run below command for starting Client Application
cd CongreeLang\Client\bin\Debug\net5.0
- For starting Client App use the below command.
.\Client.exe "1.xml" "p;li" "2.xml" "p" "3.xml" "li" "4.xml" "p;li" "5.xml" "p" "6.xml" "li" "7.xml" "p;li" "8.xml" "p" "9.xml" "li"
-
Multiple requests sending asynchronously. You can see total elapsed milliseconds info. And also you can see elapsed milliseconds info for each request
Index - $indexnumber Document processing starting and Index - $indexnumber Document processing ended