LOW/NO/FULL code EXTREMELY EASY TO DEVELOP ANY SYSTEM

For thinking, the development of tools and work with them worthy in the 21st century

The development of FRONTEND as an entire IS system as you do not know it - only 3 choices are enough

 Logic - everything in the database is a LIST (list of invoices)

-> This may or may not have a DETAIL (list of items) || OR it needs to be just settings, i.e. Detail (program settings, video processing, etc.)

And the result can be a system that SAP or anyone else can only dream of. Almost like tennis, you can publish one table after another, and by evening you have a small system.

DEFINITION OF 3 layer SYSTEM and necessary components

Database - place for DATA Backend Server - A service that securely conveys data to applications Frontend/User Application - A nice application to easily work with data Print support - creation and printing of any reports

START in 1 day you will start your new system in three steps


Development in EASYDATACenter UNIVERS RESTFULL/SOCKET BACKEND SERVER in three user steps

  • Create any database Table. Use the TemplateList Template and just insert your boxes into it. Remember Indexes, Foreign Keys, or look at already existing tables or consult with me. It IS for a few minutes

  • You export the tables as a model using the prepared CMD command to the BACKEND project [ EntityFramework 6 ] command: Scaffold-DbContext "Server=IP;Database=DB;User ID=USER;Password=PW;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DBModel done - the entire database is defined in the Backend server

  • From existing calls, e.g. UserList, copy and rename the new API call for the new table [GET,POST,PUT,PATCH,DELETE] COPY file -> PASTE file -> Rename to new API for example: /skladList and Build&Run Done, the API Server is WAITING at http://vaseip/skladList for your call and deployment at the client, in the company, anywhere


Development in EASYBuilder Modern WINDOWS XP+ thin application or system in three user steps

  • You copy the table definition from the model created in the BACKEND project to the FRONTEND project COPY Class from BE Model -> PASTE into FE application -> add new APIURL

  • Select the template you want, there are primarily 3 -> rename it, edit the form and connect it to the MAINMENU so you set the WHERE to search, COPY/PASTE boxes, write Translation in the dictionary and copy the connection to the MAINMENU done - the result is a new form with complete user control

  • Build&Run - you check the work one after the other, because typos are part of us, aren't they the full logging option slaps you in detail where the error is or HURRY GOES Done, the Application is WAITING for your work or deployment at the client, in the company, anywhere


evelopment of Press Reports in FYIREPORTING

  • You simply copy the existing DATALIST/DETAIL report and open it in the editor Rename to the new name of your table.

  • You edit your SQL SELECT and Test it, the parameters are already set ID/SEARCH/CONNECT Ideally in MSSQLMS or HEIDYSQL or something and debug it there. Remember everything is just a LIST or Detail. done - and you have the correct data that you just arrange for printing in the form.

  • And you import into the system in the REPORTING list menu, where you set the required link to APIURL/SEARCH/ID Done, the press kit is WAITING for your work or deployment at the client, in the company, anywhere

END OF KNOWLEDGE REQUIRED FOR SYSTEM DEVELOPMENT


Basic listing of almost unlimited skill application

  • Prepared with common agendas
  • Operation possible on WINDOWS XP, 7, 8, 10, 11
  • C# WFP, XAML, Drag&Drop technology
  • Complete management of any Agenda (Table) RESTORE/NEW/EDIT/COPY/DELETE
  • Automatically generated list data view.
  • Easy preparation of the form according to prepared templates and ready made agendas
  • more than 100 types of input fields
  • Search in content in the data list
  • also optimized for TOUCH TERMINALS for MANUFACTURING or BUSINESS, SELF*SERVICE environments
  • own printing system with direct printing support
  • Almost unlimited development possibilities with the possibility of own involvement
  • Support for controlling operating systems
  • thousands of already free tools on GitHub
  • connection to any third*party services
  • support for all known protocols EMAIL, IMAP, HTTPS, FTP, SSH, SMTP, TELNET
  • command line support, JavaScript, Telnet
  • Option to connect to 3*party systems, IS and OS systems
  • Support multimedia, hardware, 3D, devices, RFID readers, QR, BAR, EAN, VIDEO, SOUND, MS OFFICE, PDF, XPS, RTF, etc.
  • development of any customized system from 20,000 CZK. System already prepared as a template for any more than just IS SYSTEM
  • the possibility of creating any INFORMATION OR CONTROL, MONITORING, REPORTING system, and so on

EASYTOOLS IMPLEMENTED ADD-ONS

  • AddOns for touch panels, controls, data types, forms, media, documents, 3D,
  • They are completely free to download (including every license pack)
  • Open Source community to include more than 1000 tools in the system by community

BUILT SYSTEMS IN 14 DAYS

  1. LicenseSrv MultiOS license server with listening API GET/POST server / generation of unlimited static/dynamic CODES and management client
  2. GUIDES Windows XP+ Implementation Production Guides for Production Companies For office / touch panels with unlimited clients and printing options
  3. ShoPingER Windows XP+ MultiBranch Quotation/Order/Invoicing System with multimedia files supported by unlimited clients and printing capabilities
  4. LicenceShoper MultiOS License Server PLUS Windows XP+ MultiBranch Billing System [LicenseSrv + ShoPingER]

SOLUTION - WHERE TO FIND COMPLETE INFORMATION

All documentation, license, case study, price list, media, developer information, help, manuals, technology information, installation, images, videos, downloads, etc. can be found here or:


PROJECT IMPLEMENTATION CASE STUDY PROJECTS USING IDEAS

For thinking, the development of tools and work with them worthy in the 21st century

  • The first use of this solution was a big change in a manufacturing company For 1000 workers, but it was only four days work for the IT department
  • Implementation of production guides as a task for 4 days CZ In Case Studies
  • Creation of the Billing System as a replacement for the system with discontinued support.
  • Creation of the ShoPingER Invoicing System with a large overlap in 14 days]
  • All Windows Applications are available to try online in the Application ShowRoom https://KlikneteZde.Cz

EASYDATACenter - Backend Server Development Plan

  • Create Backend Server Generator
  • Create Full Customer Support with Project Managements

EASYBuilder - WPF Fronted System Builder Development Plan

  • Publish XAML Generator Graphical Tool with Templates Support
  • implement Global Context menu for all DataLists with Count of API record request setting, Properties of Datalist, DataRequest,DataList Controller
  • Convert WPF System to WebApplication for Windows/Linux with all graphics and possibilities
  • Create SYSTEM Generator
  • Create Metro4 Full compatible WEB SYSTEM Variant
  • Implement FastReport Tool (Replace FYI Reporting)

Using References of Variables or Classes - Maximum Saving Memory Performance

  • For All processes which is modified by One Person in One Time - Typical System Using

In simple explanation and absolut ideally working with Data - Maximum Clean Code Data flow modify one Variable or Class on Way Over More Sequenced Methods

  • From API List Logic You working only With Primary API Dataset and few sets of Dials
  • For standard Using its best way For Maximum clean code without Exeption

Is calculating that you Have Full or Extended Dataset for API everytime - Point For Data loading "'SetRecord' Method" - load data from model to Dataset Variable - Some Operations where you can change data values - Point For Recapitulate full Dataset and Save -


Complete Development Documentation and Smart Search: https://liborsvoboda.github.io/EASYSYSTEM-EASYSERVER-EN


Company contact for suppliers

Email:

  • Libor.Svoboda@GroupWare-Solution.eu
  • Libor.Svoboda@KlikneteZde.Cz

Address:
Street: Žlutava 173
City: Žlutava
PostCode: 761 63
State: Czech Republic
Phone: 00420 724 986 873

EASY-SYSTEM-Builder & EASY-DATA-Center & Visual Studio Help

OS GIT WINDOWS LINUX MARKDOWN DOC SCHEMA DATABASES

  • target of the new Groupware Solutions is set Maximal processes to this automatic solutions.
  • Result Will Be: Create Table and Set API Template - its Done for DATABASE and Backend API
  • Create Form from Templates In FrontEnd for the New Table - Its Done for New System Form (Agenda)
  • Share With World : World will share Agendas with you also
  • Agenda is Only 3 files: SQL(Table), API, FORM
  • Ideal Copy Class from generated By Scaffold to final Form
  • Its Absolute Perfect Solution For EASY Create Robust System in Few Months
  • All Systems Supported: Machines Control, IS Systems, Terminals, and All Sub Systems

Visual Studio Automatic MD File From XML Comments

  • Install 'Vsxmd' Library
  • add this code to 'PropertyGroup'
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<DocumentationMarkdown>$(MSBuildProjectDirectory)\EASYDATACenter.md</DocumentationMarkdown>

Visual Studio Automatic Code Cleaning

  • Install 'codemaid' Tool

Visual Studio Automatic DataBase Schema Snapshot

  • Install 'EntityFrameworkCoreScaffolding' Tool
  • Use Example file 'scaffoldingsettings.json' for OneClick Snapshot

GitHub Automatic MDBook

  • Enable 'MDBook' tool For Code
Use File: book.toml

GitHub/GitLab Automatic Publish to GCloud Docker

  • Enable Build
Use File: Dockerfile

GitHub/GitLab Automatic Publish to GCloud Docker

  • Enable Build
Use File: gitlab-ci.yml

Linux Create Backend System Service for Automatic Control

  • Read OS support
Use File: Linux-dotnet-MyProject-service.service

Windows Install application.exe as System Service for Automatic Control

  • Read OS support
Use File: install.bat

Visual Studio Automatic Generate windows Help File chm

  • Install 'GhostDoc' tool
  • Run on Project for Generate Full Code COmment and Structure Help file

MSSQL DATABASE Automatic BACKUP/RESTORE

  • Use files from MSSQL_DB
  • Can run from System Scheduler
  • Can Run from SQL command

Backend WebPages Automatic Controller from Pages Structure

  • Enable Razor WebPages Engine
  • Create new file 'cshtml' in folder ServerCorePages
  • Page is automatic included to Controller !must we different than API URLS

MarkDown Item Template



EASY-SYSTEM-Builder & EASY-DATA-Center Visual Studio Help


Migration between Database Types

  • Install 'Mysql WorkBench' SW
  • run migrations

Help: https://severalnines.com/blog/how-migrate-mssql-mysql/
SW: https://dev.mysql.com/downloads/file/?id=517975



Windows Apps & Windows Tools

  • in start menu Windows Kits
  • cmd Reset Store Settings
wsreset.exe

MarkDown Item Template



API Condition for Ignore In Swagger Docs


[ApiExplorerSettings(IgnoreApi = true)]


API Description For Descripting In Swagger Docs


[SwaggerTag("API Template with INSERT/UPDATE/DELETE/SELECT AND FILTERING APIs")]
public class TemplateListApi : ControllerBase {

[SwaggerOperation(Summary = "Get All records", Description = "Async standard select record API", OperationId = "Select all records", Tags = new[] { "TemplateListApi" })]
public async Task<string> GetTemplateList() {

[HttpDelete("/TemplateList/{id}")]
[Consumes("application/json")]
[SwaggerOperation(Summary = "Delete Record", Description = "Async standard Delete record API", OperationId = "Delete Record", Tags = new[] { "TemplateListApi" })]
public async Task<string> DeleteTemplateList(string id) {


EASY-SYSTEM-Builder & EASY-DATA-Center & Visual Studio Help


Create Linux service and control for BACKEND

  • Service Files are on Debian in folder: /lib/systemd/system
  • add this code to 'PropertyGroup'
create file: dotnet-Project-service.service

How to Create/Control LINUX service

  • command list
systemctl enable dotnet-TABackend-service.service
systemctl start dotnet-TABackend-service.service
systemctl status dotnet-TABackend-service.service
systemctl stop dotnet-TABackend-service.service

Linux Run project dll command

  • command list
dotnet application.dll

WINDOWS OS HELP & TIPS

  • Install Backend 'EXE' file as Windows service by SC/InstalUtil/ utility
  • Windows Service utilities and Service control from command Line examples are in 'WinServiceUtilities' folder

MarkDown Item Template



EASY-SYSTEM-Builder & EASY-DATA-Center & Visual Studio Help


Not generate Static file for MVC Razor pages WebPages

  • in project part by parameter:
  • add this code to 'PropertyGroup'
<StaticWebAssetsEnabled>false</StaticWebAssetsEnabled> 

MarkDown Item Template



Projects Legend

EB = EASYBuilder 
ED = EASYDATACenter
SD = EASYBuilderDataCenter
SP = EASYBuilder application
I  = Install file
DB = Database

Each changes IN EB/SP can be deployed to the second program
Each changes IN ED/SD can be deployed to the second program

Project/Program Install file are for absolute simple Installation with all Dependencies Documentation And Software for Testing you find on

https://groupware-solution.eu/webdav/Marketing/
login: marketing/marketing

ALL Applications Prepared for Simple Installation / Buy in more installation Types - by user friendly Install file and License Server

Application Clones FE + BE

LicenseSrv    -  MultiOS License Server with listen API GET/POST server / generate 
                 Unlimited Static/Dynamic CODES and Client for managing
PRUVODKY      -  Windows XP+ Implementation Production Guides for Production Companies 
                 For Office / Touch Panels using with unlimited Clients and printing possibilities
ShoPingER     -  Windows XP+ MultiBranch Offer/Order/Invoice System with multimedia Files 
                 Supported with Unlimited Clients and Printing possibilities
LicenceShoper -  MultiOS License Server PLUS Windows XP+ MultiBranch Invoice system 
                 [LicenseSrv + ShoPingER]

SOLUTION MAIN PARTS

EASYBuilder  Developing C# WPF Visual Studio Project With MustiVariable Menu Settings, 
			 With All DataForm Template types DATAView / DATADetail / With SubDATAview / 
			 With SubFullDataDetail / 3D / Document / Video
			 for Build ANY Information / Multimedia / Control / Flow / Reporting and More Systems
			 FOR NEXT COPY / PASTE DEVELOPMENT IN EXTREMELY LOW PRICE 5000Kč/200EURO - Project LICENSE

EASYDATACenter - Universal Secure MultiPlatform MultiDATABASE Backend Server Project 
                 WiTH RESTFULL / WEBSOCKET implementations
				 With All Template types for INSERT / UPDATE / DELETE / SELECT / 
				 PROCEDURE / SUBFORMDATA and more Other
				 With DATABASE , Table Template, Procedure Template, View Template, 
				 Backup/Restore and more Examples
				 With Tables, Indexes, ForeignKeys in All Standard DB Using 
				 FOR NEXT COPY / PASTE DEVELOPMENT IN EXTREMELY LOW PRICE 5000Kč/200EURO - Project LICENSE

FYI Reporting  - FreeWare Full Report Designer and Viewer for Printing All document Types 
                 / Barcodes, EAN, QR, Graphs, SubReport, etc.

SW Date Version Speed Development Description by one man Only

EB/SP/I		1.12.2022   1.5.78.925	Start of Developing steps describing
EB			1.12.2022				Added Link for FyiReportink 100 Examples to 
                                    Help_Commands
EB/SP/I		1.12.2022   1.5.78.944	Implemented DB Connection string to settings for All 
                                     Report as param, centralized
EB/SP		1.12.2022				Implemented new TreeView Menu for much more menu 
                                    items in Menu
SD/SP		1.12.2022				Implemented CurrencyList, UnitList, AddressList   
                                    ItemList Agendas
EB/SP		1.12.2022				Implemented Copy menu button for copy Each record in 
                                    listview
SD			1.12.2022               Describe existing API call to documentation
EB/SP		2.12.2022				Changed Settings for much more application menu Types   
                                    and implemented new Menu
EB/SP		2.12.2022	1.5.78.954	Publish new version EASYBuilder installers on 
                                    Google/WebDav/WebSite
EB/ED/SD/SP 2.12.2022               Publish Development Info on WebSite And Marketing 
EB/SP       3.12.2022               Repaired filtering on null values
EB/SP       3.12.2022               Centralized load Report List Control from ApiUrl 
                                    definition List for these addresses
SD			3.12.2022               Create TemplateList Table

to          15.12.2022             5 Applications Created IN  14 DAYS WITH 20-40 DB 
                                   tables / Agendas in ONE MAN ONLY 

CURRENT PRICE LIST - You will finally experience a record return and not only in money

For thinking, the development of tools and work with them worthy in the 21st century

Price Idea:

  • On the Implementation of production guides in a production company 5 Tables are sufficient
  • A CUSTOM REPORT usually takes 0.5 - 2 hours
  • The import of the dialer usually takes 1 hour

  • BUILDING A SMALL AVERAGE CUSTOM SYSTEM (5 Tables)
    from 20,000CZK or hourly 750CZK/Hour

  • BUILDING A SMALL AVERAGE CUSTOM SYSTEM (10 Tables)
    from CZK 35,000 or hourly CZK 750/Hour

  • Project License/Customer/Number and method of Use PRICE OF 1 SERVER LICENSE CZK 5000

  • PROGRAM WORK CZK 750/Hour

All offered Windows Applications are available to try online in the Application ShowRoom at https://KlikneteZde.Cz


Literature:

https://code-maze.com/net-core-web-development-part1/
https://docs.microsoft.com/cs-cz/aspnet/core/security/cors?view=aspnetcore-6.0 https://docs.microsoft.com/cs-cz/ef/core/cli/dotnet https://medium.com/free-code-camp/an-awesome-guide-on-how-to-build-restful-apis-with-asp-net-core-87b818123e28 https://stackoverflow.com/questions/48282223/scaffold-dbcontext-to-different-output-folder

https://codewithmukesh.com/blog/repository-pattern-caching-hangfire-aspnet-core/

Swagger Documentation

Administration tools included in Backend server

  • ApiDescription Generator - on url: /swagger
  • Data manager for connected DB - on url: /CoreAdmin
  • Server Health Service - on url: /ServerHealthService
  • WEB root - with Websocket test utility

JSON configuration Older Example (folder Data/config.json):

"DatabaseConnectionString": - MSSQL DB connection string. Its only in config file.
"ConfigJwtLocalKey": - Your JWT Local Key you can set random key.
"DefaultConfigServerStartupPort": - Default Port for HTTP/HTTPS/SOCKET.
"ConfigWebSocketTimeoutMin": - Default WebSocket Timeout.
"SocketBufferSizeKb": - Default WebSocket message size.
"ServerTimeTokenValidationEnabled": - Enable/Disable token Expiration.
"ConfigApiTokenTimeoutMin": - Minutes count to token expiration.
"HttpsProtocol": - Enable/Disable HTTP/ HTTPS on this port. Only one is always in use.
"ConfigCertificateDomain": - Certificate for HTTPS is generated automaticaly i fis HTTPS is enabled.
This domain is included in the certificate.
"ConfigCertificatePassword": - Password for generated certificate.Its required.
"DatabaseInternalCachingEnabled": - enable Microsoft internal cache for working with Data
"DatabaseInternalCacheTimeoutMin": - Time for Purging old chache data
"EnableApiDescription": true, - Enable full automatic API documentation generator with request sending for test included
"ModuleDataManagerEnabled": true, - Enable unsafed Data manager
"ModuleHealthServiceEnabled": - Enable Server Health Service with chedking if services running


EASYDATACenter Universal BACKEND Server Solution foe ANY LIN/WIN/DB

  • Universal Secure MultiPlatform MultiDATABASE BackEnd Server Project 
    
  • WiTH RESTFULL / WEBSOCKET implementations
    
  • With All Template types for INSERT / UPDATE / DELETE / SELECT / 
    
  • PROCEDURES / VIEWS/ SUBFORMDATA and more Other
    
  • With DATABASE , Table Template, Procedure Template, View Template, 
    
  • Backup/Restore and more Examples
    
  • With Tables, Indexes, ForeignKeys in All Standard DB Using 
    
  • FOR SIMPLE COPY / PASTE DEVELOPMENT IN EXTREMELY LOW PRICE 5000Kč/200EURO
    

USED TECHNOLOGIES (SUPPORT by CORE) IN SOLUTION CORE

  • DB types: SQL Server, Oracle, MySQL, SQLite, PostgreSQL, DB2, etc.
  • LINUX, WINDOWS, GCLOUD, DOCKER, AZURE implementation
  • HTTP/HTTPS/WebSocket/RestFull / GET,POST,PATCH,PUT,DELETE,OPTION,etc.
  • Detailed Logging, EASY Debugging ON ALL Dev layers
  • CookiePolicy , CorsPolicy / Authentication / Authorization / Basic–JwtBearer Tokens
  • Automatic API EndPoints /Controllers
  • IMPORT FULL DB Schema/Tables/Procedures/Views from DB by ONE Scaffold Command
  • DB Migrations AND Management of any layer supported
  • Implemented SWAGGER AUTO API Generator: API Tester and Documentation
  • Implemented DIRECT DATA MANAGER for view/editing data in Database
  • Implemented Server HEALTH Check with support All statuses,communications,etc. for Server Control
  • Custom WebPage for BackEnd Controlling supported
  • LOW/NO code developing supported by DB/TABLE/API/CLASS Templates
  • FULL code development supported
  • More others tools and AddOns are on GitHub for implement by Package Install

Databases - EASY Way with AUTO Management

  • ASPNETCORE6 and Entity Framework 6 are perfect managing solution for any DATABASE
  • Simple using is Domain for these Technologies, which is simple for each Power User
  • Automatic Code Correction, Auto Helper, Generation DB Schema for Visual Control will not allow to make a mistake
  • lot of Free Tools on GitHub, can be simple included with High effect

These Tools are Included to Solution Core

  • Complex Tool DB Data management
  • Automatic API Tester and Documentation Generator
  • System Checker with controlling and logging more than 100 Server/Network/DB/IS/OS events

Used Primary Technologies for Unlimited Vision - Older

  • AspNetCore 6
  • Entity Framework 6
  • Log4Net
  • MSSQL connection
  • HTTP/HTTPS/WebSocket/RestFull / [GET,POST,PATCH,PUT,DELETE,OPTION]
  • Windows Service / Docker Service / Console application
  • CookiePolicy
  • CorsPolicy
  • Authentication / Authorization / Basic – JwtBearer
  • Automatic EndPoints /Controllers

Database Model snapshot to Entity Entity Framework 6:

The first green descriptions commands is for simple direct working with MSSQL database. This command generating „full DB Model Entity“ and „full DB API documentation“. Command must be run from „package manager console“.

Command for: generate full Entity – Database Model Entity Framework Scaffold-DbContext "Server=SQLSRV\SQLEXPRESS;Database=DATAPUB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DBModel -ContextDir "DBContexts"

Scaffold-DbContext "Server=SQLSRV;Database=DATAPUB;Persist Security Info=False;User ID=datapub;Password=datapub;MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=False;Connection Timeout=30;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DBModel -ContextDir "DBContexts" Scaffold-DbContext "Server=192.168.1.35;Database=DATAPUB;User ID=datapub;Password=datapub;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DBModel

Command for: generate full DB Context – Database API documentation Scaffold-DbContext "Server=SQLSRV\SQLEXPRESS;Database=DATAPUB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -ContextDir "DbContexts"

Replace Connection string in DBContect folder/Context file with this program part. (here you can enable SQL debugging)

public DATAPUBContext(DbContextOptions<DATAPUBContext> options)
    : base(options)
{ 
    ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
}

if (!optionsBuilder.IsConfigured)
{

    optionsBuilder.ConfigureLoggingCacheTime(TimeSpan.FromMinutes(Program.ServerSettings.SimpleCacheTimeMinutes));
    optionsBuilder.EnableServiceProviderCaching(Program.ServerSettings.SimpleCachingEnabled);

    optionsBuilder.UseSqlServer(Program.ServerSettings.DatabaseConnectionString,
            x => x.MigrationsHistoryTable("MigrationsHistory", "dbo"));
    //.UseLoggerFactory(LoggerFactory.Create(builder => { builder.AddConsole(); }))
    //.LogTo(message => Debug.WriteLine(message));
    //.LogTo(Console.WriteLine);
}

  1. Disable ForeignKey control you must set JSONIgnore & ValidateNever params for key in DBModel. Example is in UserList:
[JsonIgnore]
[ValidateNever]
public virtual UserRoleList Role { get; set; } = null!;

Init Migrations files to DOTNET migration management for Upload/Manage Database Migrations:
Add-Migration Initial -Context Company.WebApplication1.Data.ApplicationDbContext

Upload migrations to DATABASE
dotnet ef database update

Export Database model to SQL script
dotnet ef dbcontext script --output Migrations/BasicDBModel.sql

These nexts commands are for working with database migrations:
Command for: generate script with full database model
dotnet ef dbcontext script --output Migrations/BasicDBModel.sql

Command for: generate new migration script
dotnet ef migrations add ServerSetting.sql

Command for: generate script for database update
dotnet ef migrations bundle --output Migrations/BasicDBModel.sql

Command for: show all migration List
dotnet ef migrations list

Command for: remove Last migration
dotnet ef migrations remove

Command for: run all waiting migrations scripts
dotnet ef database update


Generate executable Files

https://learn.microsoft.com/cs-cz/dotnet/core/tools/dotnet-publish


Run debug

dotnet run --project BACKENDCORE -r win-x64 -c Debug --self-contained

Generate exe file Without WebPage support dotnet publish BACKENDCORE -c Release -o bin -r win-x64 /p:PublishSingleFile=true


DB backup procedure in Linux

CREATE procedure [dbo].[DB_AUTOBACKUP]
AS
BEGIN 
	DECLARE @dbName as varchar(50) = DB_NAME();
	DECLARE @fileName as varchar(80) = CONCAT('/root/DBbackup/',@dbName,'_',FORMAT(GETDATE(),'yyyyMMdd'),'.bak');

	DBCC SHRINKFILE (2, 1); BACKUP DATABASE @dbName TO DISK = @fileName;
	DBCC SHRINKFILE (2, 1); BACKUP DATABASE @dbName TO DISK = @fileName;
END;
GO

One Project support More DBs = DBContexts

these can be used whatever, MOre Api for More App for example

The test version, if requested, should ideally be deployed separately for making changes


Solution for Data selection by Role - its needed in SELECT API only

if (Request.HttpContext.User.IsInRole("Admin"))
{ data = new EASYDATACenterContext().ImageGalleryLists.FromSqlRaw("SELECT * FROM ImageGalleryList WHERE 1=1 AND " + filter.Replace("+", " ")).AsNoTracking().ToList(); }
else
{
    data = new EASYDATACenterContext().ImageGalleryLists.FromSqlRaw("SELECT * FROM ImageGalleryList WHERE 1=1 AND " + filter.Replace("+", " "))
        .Include(a => a.User).Where(a => a.User.UserName == Request.HttpContext.User.Claims.First().Issuer)
        .AsNoTracking().ToList();
}

ASPNETCORE6 & ENTITY FRAMEWORK6 - SUPER SERVER

For thinking, the development of tools and work with them worthy in the 21st century

  • ASPNETCORE is a simple intuitive framework with a whisperer for easy development.
  • The Current Solution already contains templates and samples and can be developed with their help
  • robust system.
  • More information can be found with the linked folders.
  • The project is conceptually complex for complete laymen who learn a few steps over and over again.
  • DB Views behave the same as tables
  • Turn off foreign keys in the model To be able to work freely with the tables

Server configuration

The server loads the configuration from a file at startup and after connecting to the database replaces it with the settings from the database and starts the server according to the parameters

"DatabaseConnectionString":   -  MSSQL DB connection string. Its only in config file.
"ConfigJwtLocalKey": 	        - Your JWT Local Key you can set random key. 
"DefaultConfigServerStartupPort":	    - Default Port for HTTP/HTTPS/SOCKET. 
"ConfigWebSocketTimeoutMin": - Default WebSocket Timeout. 
"SocketBufferSizeKb":   - Default WebSocket message size.
"ServerTimeTokenValidationEnabled":  - Enable/Disable token Expiration.
"ConfigApiTokenTimeoutMin":  - Minutes count to token expiration.
"HttpsProtocol": - Enable/Disable HTTP/ HTTPS on this port. Only one is always in use. 
"ConfigCertificateDomain":    - Certificate for HTTPS is generated automaticaly i fis HTTPS is enabled.
                         This domain is included in the certificate. 
"ConfigCertificatePassword":     - Password for generated certificate.Its required.
"DatabaseInternalCachingEnabled":  - enable Microsoft internal cache for working with Data
"DatabaseInternalCacheTimeoutMin": - Time for Purging old chache data
"EnableApiDescription": true, - Enable full automatic API documentation generator with request sending for test included
"ModuleDataManagerEnabled": true,    - Enable unsafed Data manager
"ModuleHealthServiceEnabled":  - Enable Server Health Service with chedking if services running
  • /BackendCheckApi - Api for checking Server Availability
  • /Authentication - Basic authentication Standard message for receiving the Token

Unique Services of sever

  • /BackendCheckApi - Api for checking Server Availability

  • /Authentication - Basic authentication Standard message for receiving the Token

  • Web Services

  • /swagger - Automatic generator API model documentation and testing

  • /CoreAdmin - Data Manager for the connected database

  • /ServerHealthService - Service for setting health checks; server HW/SW


API Communication on the BACKEND server side

//Disable foreign keys in the model by adding JsonIgnore, ValidateNever : Sample

[JsonIgnore]
[ValidateNever]
public virtual UserList User { get; set; } = null!;

API Template

  • The template is ready for complete communication with the table Just RENAME
  • Authorization, INSERT/UPDATE/SELECT/DELETE

Standard Table API Template

//Inserting/Deleting Range Items into the Sub Table - for example Invoice Items  

var test = new EASYBUILDERContext(); test.OfferItemLists.AddRange(record);
result = test.SaveChanges();

var test = new EASYBUILDERContext(); test.OfferItemLists.RemoveRange(data);
int result = test.SaveChanges();                


EF6 DB procedure query with response

parameters = new List<SqlParameter> {
new SqlParameter { ParameterName = "@unlockCode", Value = unlockCode },
new SqlParameter { ParameterName = "@partNumber", Value = partNumber },
new SqlParameter { ParameterName = "@ipAddress", Value = clientIPAddr },
new SqlParameter { ParameterName = "@allowed" , Value = allowed, Direction = System.Data.ParameterDirection.Output} };
data = new GLOBALNETContext().Database.ExecuteSqlRaw("exec CheckUnlockKey @unlockCode, @partNumber , @ipAddress, @allowed output", parameters.ToArray()).ToString();
allowed = bool.Parse(parameters[3].Value.ToString());

MSSQL IN ASPNETCORE HELP COMMANDS AND TYPES

#Command for: Auto Generate full DB – complete Database Model Entity Framework
Scaffold-DbContext "Server=SQLSRV\SQLEXPRESS;Database=DATAPUB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DBModel -ContextDir "DBContexts"

EF6 Query Check Token.Role/Issuer - UserName, Include sub table Foreign Table

if (Request.HttpContext.User.IsInRole("Admin")) {
    data = new hotelsContext().AddressLists.ToList();
} else {
    data = new hotelsContext().AddressLists.Include(a => a.User)
        .Where(a => a.User.UserName == Request.HttpContext.User.Claims.First().Issuer).ToList();
}

Ignore more Sub Tables from include in API response

return JsonSerializer.Serialize(data, new JsonSerializerOptions() { ReferenceHandler = ReferenceHandler.IgnoreCycles,WriteIndented = true });

Advanced Query Select for Admin user Request suppport

if (Request.HttpContext.User.IsInRole("Admin"))
{ data = new hotelsContext().AddressLists.FromSqlRaw("SELECT * FROM AddressList WHERE 1=1 AND " + filter.Replace("+", " ")).AsNoTracking().ToList(); }
else {
    data = new hotelsContext().AddressLists.FromSqlRaw("SELECT * FROM AddressList WHERE 1=1 AND " + filter.Replace("+", " "))
        .Include(a => a.User).Where(a => a.User.UserName == Request.HttpContext.User.Claims.First().Issuer)
        .AsNoTracking().ToList();
}

Extend Table schema with columns from another table

data = new hotelsContext().DocumentTypeLists
.Include(d => (d.SystemNameNavigation)).Select(x => new ExtendedDocumentTypeList
{
    Id = x.Id,
    SystemName = x.SystemName,
    Description = x.Description,
    DescriptionCz = x.SystemNameNavigation.DescriptionCz,
    DescriptionEn = x.SystemNameNavigation.DescriptionEn,
    UserId = x.UserId,
    Timestamp = x.Timestamp
}).ToList();

Join Table with new custom join condition with exist record

**And next more condition in WHERE to List **
(_joiner, _joined) => _joiner.City

        [HttpGet("/GLOBALNETWebApi/Search/GetSearchDial/{language}")]
        public async Task<string> GetSearchDial(string language = "cz") {

            List<string> data;
            List<string> cityData;
            List<string> countryData;

            using (new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted })) {

                countryData = _dbContext.CountryLists.
                    Join(_dbContext.HotelLists.Where(a => a.Advertised && a.Approved == true), 
                    joiner => joiner.Id, joined => joined.CountryId, (_joiner, _joined) => _joiner.SystemName).ToList();
                
                cityData = _dbContext.CityLists.Join(_dbContext.HotelLists.Where(a => a.Advertised && a.Approved == true),
                    joiner => joiner.Id, joined => joined.CountryId, (_joiner, _joined) => _joiner.City).ToList();

                data = _dbContext.HotelLists.Where(a=> a.Approved == true && a.Advertised == true).Select(a => a.Name).ToList();
            }
            countryData.ForEach(item => data.Add(DBOperations.DBTranslate(item, language)));
            cityData.ForEach(item => data.Add(DBOperations.DBTranslate(item, language)));
            data = data.Distinct().ToList();
            data.Sort();
            return JsonSerializer.Serialize(data, new JsonSerializerOptions() { ReferenceHandler = ReferenceHandler.IgnoreCycles, WriteIndented = true });
        }

Join Table with new custom join condition with exist record to Tuple List

countryData = _dbContext.CountryLists.
                    Join(_dbContext.HotelLists.Where(a => a.Advertised && a.Approved == true),
                    joiner => joiner.Id, joined => joined.CountryId, (_joiner, _joined) => new Tuple<int, string>(_joined.Id, _joined.Name)).ToList();

MYSQL IN ASPNETCORE HELP COMMANDS AND TYPES

#Console command for download full database schema to Backend Server Project
Scaffold-DbContext "server=localhost;port=3306;database=lowercasedbname;uid=user;password=password;" Pomelo.EntityFrameworkCore.MySql -OutputDir DBModel
#MYSQL Entity DB Context Connection Code with loaded configuration settings
#Absolute Detailed Logging supported, uncomment only
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
    if (!optionsBuilder.IsConfigured) {
        optionsBuilder.ConfigureLoggingCacheTime(TimeSpan.FromMinutes(Program.ServerSettings.DatabaseInternalCacheTimeoutMin));
        optionsBuilder.EnableServiceProviderCaching(Program.ServerSettings.DatabaseInternalCachingEnabled);  
        optionsBuilder.UseMySql(Program.ServerSettings.DatabaseConnectionString,
            ServerVersion.AutoDetect(Program.ServerSettings.DatabaseConnectionString))
            ;
            //.UseLoggerFactory(LoggerFactory.Create(builder => { builder.AddConsole(); }))
            //.LogTo(message => Debug.WriteLine(message))
            //.LogTo(Console.WriteLine)
            ;
        }
    }

API Condition for Role Admin only


[Authorize(Roles = Role.Admin)]
[Authorize(Roles = "admin")]
[CustomAuthorize(Roles = "admin")]

if (Request.HttpContext.User.IsInRole("Admin"))


API Condition Ignore For Swagger Docs


//[ApiExplorerSettings(IgnoreApi = true)]


BACKEND server Templates and system rules COPY/PASTE/RENAME supported

For thinking, the development of tools and work with them worthy in the 21st century

  • The displayed template codes can also be found in the Database
  • Make the database model as honest as possible in relation to data and bindings
  • The best solution is to have the database check the correctness of the data (in 1 place)
  • The database contains a DBHELP help procedure
  • Document items are deleted with a linked key
  • Procedures for Backup/Restore are prepared in the DB
  • The system uses SLQ, EF6, Procedures, Views, Functions
  • That's all it takes to develop
-- The procedure setting the rights for the user to the necessary operations

USE [EASYBUILDER]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[DB_SETRIGHTS]
AS
BEGIN 
	BEGIN TRY CREATE USER [easybuilder] FOR LOGIN [easybuilder] END TRY BEGIN CATCH END CATCH;
	BEGIN TRY ALTER ROLE [db_datareader] ADD MEMBER [easybuilder]; END TRY BEGIN CATCH END CATCH;
	BEGIN TRY ALTER ROLE [db_datawriter] ADD MEMBER [easybuilder]; END TRY BEGIN CATCH END CATCH;
	BEGIN TRY GRANT EXECUTE TO [easybuilder]; END TRY BEGIN CATCH END CATCH;
END;
GO
/*
Template for creating standardized Tables (from Table -> CREATE TO)
The template is used by way of REPLACE 'TemplateList' after 'NewTableList'
edit fields correctly, set indexes and foreign keys
System ID Columns - AutoIncrement, TimeStamp - InsertTime
Keys: UserId - Binding to the UsersList Table
*/
USE [EASYBUILDER]
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[TemplateList](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [varchar](50) NOT NULL,
	[Description] [text] NULL,
	[Default] [bit] NOT NULL,
	[UserId] [int] NOT NULL,
	[Active] [bit] NOT NULL,
	[TimeStamp] [datetime2](7) NOT NULL,
 CONSTRAINT [PK_TemplateList] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
 CONSTRAINT [IX_TemplateList] UNIQUE NONCLUSTERED 
(
	[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[TemplateList] ADD  CONSTRAINT [DF_TemplateList_Active]  DEFAULT ((1)) FOR [Active]
GO

ALTER TABLE [dbo].[TemplateList] ADD  CONSTRAINT [DF_TemplateList_TimeStamp]  DEFAULT (getdate()) FOR [TimeStamp]
GO

ALTER TABLE [dbo].[TemplateList]  WITH CHECK ADD  CONSTRAINT [FK_TemplateList_UserList] FOREIGN KEY([UserId])
REFERENCES [dbo].[UserList] ([Id])
GO

ALTER TABLE [dbo].[TemplateList] CHECK CONSTRAINT [FK_TemplateList_UserList]
GO
/*
System procedure for Reports with advanced filtering The procedure is part of the Supplied Database
*/
USE [EASYBUILDER]
GO

/****** Object:  StoredProcedure [dbo].[ReportDataset]    Script Date: 11.03.2023 6:45:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[ReportDataset]
@TableName varchar(50) = null,
@Sequence int = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

-- Intended for use with param-ed reports.
-- To be called from various My-FyiReporting reports
--   - Various reports with their own layouts are called from VB app after setting Queue with usp_ReportQueue_Push()
--     each report then just contains : 

-- SET FMTONLY OFF;
-- EXEC usp_ReportQueue_Pop @TableName='SomeTablename', @Sequence='10'
-- 

DECLARE @ID int;
DECLARE @NAME varchar(50);
DECLARE @SQL nvarchar(MAX);
DECLARE @FILTER nvarchar(MAX);
DECLARE @SEARCH varchar(50);
DECLARE @SEARCHCOLUMNLIST nvarchar(MAX);
DECLARE @SEARCHFILTERIGNORE bit;
DECLARE @RECID varchar(50);
DECLARE @RECIDFILTERIGNORE bit;

DECLARE @SEPARATEDCOLUMNS nvarchar(MAX);


SELECT Top 1 
  @ID=[Id], 
  @NAME=[Name], 
  @SQL=[Sql], 
  @FILTER=[Filter], 
  @SEARCH=[Search], 
  @SEARCHCOLUMNLIST=[SearchColumnList],
  @SEARCHFILTERIGNORE=[SearchFilterIgnore],
  @RECID=[RecId],
  @RECIDFILTERIGNORE=[RecIdFilterIgnore]
FROM ReportQueueList WHERE [TableName]=@TableName AND [Sequence] = @Sequence; 

--PRERARE RECID
IF (@RECID = 0 OR (@RECIDFILTERIGNORE = 1 AND @FILTER <> '1=1')) BEGIN 
	SET @RECID = ''
END ELSE BEGIN
	SET @RECID = CONCAT(' AND Id=',@RECID);
END

--PRERARE SEARCH
IF (@SEARCH = '' OR (@SEARCHFILTERIGNORE = 1 AND @FILTER <> '1=1')) BEGIN
	SET @SEPARATEDCOLUMNS =  '1=1';
END ELSE BEGIN
	SELECT @SEPARATEDCOLUMNS = STRING_AGG (CONCAT(value,' LIKE ',char(39),'%',@SEARCH,'%',char(39)), ' OR ') FROM STRING_SPLIT (@SEARCHCOLUMNLIST, ',');  
END

	SET @SQL = CONCAT(@SQL,' WHERE 1=1 AND (', @FILTER,') AND (', @SEPARATEDCOLUMNS,') ',@RECID); 
	--PRINT @SQL; --FOR Debuging
	EXECUTE sp_executesql @SQL;
END
GO
--SQL Trigger for Table to set a single value for type 'Default'
USE [EASYBUILDER]
GO

/****** Object:  Trigger [dbo].[TR_UnitList]    Script Date: 11.03.2023 6:48:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE   TRIGGER [dbo].[TR_UnitList] ON [dbo].[UnitList]
FOR INSERT, UPDATE, DELETE
AS
DECLARE @Operation VARCHAR(15)
 
IF EXISTS (SELECT 0 FROM inserted)
BEGIN
	DECLARE @setDefault bit;DECLARE @RecId int;
	SET NOCOUNT ON;

    IF EXISTS (SELECT 0 FROM deleted)
    BEGIN --UPDADE
		SELECT @setDefault = ins.[Default] from inserted ins;
		SELECT @RecId = ins.Id from inserted ins;

		IF(@setDefault = 1) BEGIN
			UPDATE [dbo].UnitList SET [Default] = 0 WHERE Id <> @RecId; 		
		END
	END ELSE
		BEGIN -- INSERT
			SELECT @setDefault = ins.[Default] from inserted ins;
			SELECT @RecId = ins.Id from inserted ins;

			IF(@setDefault = 1) BEGIN
				UPDATE [dbo].UnitList SET [Default] = 0 WHERE Id <> @RecId; 		
			END
		
		END
END ELSE 
BEGIN --DELETE
	SELECT @setDefault = ins.[Default] from deleted ins;
	SELECT @RecId = ins.Id from deleted ins;

	IF(@setDefault = 1) BEGIN
		UPDATE [dbo].UnitList SET [Default] = 1  
		WHERE Id IN(SELECT TOP (1) Id FROM [dbo].UnitList WHERE Id <> @RecId)
		;
	END
END
GO

ALTER TABLE [dbo].[UnitList] ENABLE TRIGGER [TR_UnitList]
GO   

API communication - 4 TYPES is enough

For thinking, the development of tools and work with them worthy in the 21st century

It is so. INSERT/UPDATE/DETETE/SELECT are the mentioned types which are enough ensure the communication of any system. And top it all off with a single list of APIaddress calls and communication is resolved set up for this as a standardized automatic part of the kernel.

System kernel code dump, Where you just always add the address and don't care about anything else


System APIAddresList - all calls in one place

    /// <summary>
    /// ALL standard View AND Form API Call must end with "List" - These will automatic added for reports Definitions
    /// </summary>
    public enum ApiUrls
    {
        GlobalNETAttachmentList,
        GlobalNETAddressList,
        Authentication,
        BackendCheck,
        GlobalNETBranchList,
        GlobalNETCalendar,
        GlobalNETCreditNoteList,
        GlobalNETCreditNoteItemList,
        GlobalNETCurrencyList,
        GlobalNETDocumentAdviceList,
        GlobalNETExchangeRateList,
        GlobalNETIncomingInvoiceList,
        GlobalNETIncomingInvoiceItemList,
        GlobalNETIncomingOrderList,
        GlobalNETIncomingOrderItemList,

        GlobalNETTemplateClassList
    }

4 API Calls - SYSTEM Core module

    class ApiCommunication
    {
        public static async Task<Authentification> Authentification(ApiUrls apiUrl, string userName = null, string password = null)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes(userName + ":" + password)));
                    StringContent test = new StringContent("", Encoding.UTF8, "application/json");
                    HttpResponseMessage json = await httpClient.PostAsync(App.Setting.ApiAddress + "/" + apiUrl, test);
                    return JsonConvert.DeserializeObject<Authentification>(await json.Content.ReadAsStringAsync());
                }
                catch { return new Authentification() { Token = null, Expiration = null }; }
            }
        }

        public static async Task<T> GetApiRequest<T>(ApiUrls apiUrl, string key = null, string token = null) where T : new()
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try {
                    if (token != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); }
                    string json = await httpClient.GetStringAsync(App.Setting.ApiAddress + "/" + apiUrl + (!string.IsNullOrWhiteSpace(key) ? "/" + key : ""));
                    return JsonConvert.DeserializeObject<T>(json);
                } catch { return new T(); }
            }
        }

        public static async Task<DBResultMessage> PostApiRequest(ApiUrls apiUrl, HttpContent body, string key = null, string token = null)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    if (token != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); }
                    HttpResponseMessage json = await httpClient.PostAsync(App.Setting.ApiAddress + "/" + apiUrl + (!string.IsNullOrWhiteSpace(key) ? "/" + key : ""), body);
                    DBResultMessage result = JsonConvert.DeserializeObject<DBResultMessage>(await json.Content.ReadAsStringAsync());
                    if (result.ErrorMessage == null) { result.ErrorMessage = await json.Content.ReadAsStringAsync(); }
                    return result;
                }
                catch (Exception ex)
                { return new DBResultMessage() { RecordCount = 0, ErrorMessage = ex.Message + Environment.NewLine + ex.StackTrace, Status = "error" }; }
            }
        }

        public static async Task<DBResultMessage> PutApiRequest(ApiUrls apiUrl, HttpContent body, string key = null, string token = null)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    if (token != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); }
                    HttpResponseMessage json = await httpClient.PutAsync(App.Setting.ApiAddress + "/" + apiUrl + (!string.IsNullOrWhiteSpace(key) ? "/" + key : ""), body);
                    DBResultMessage result = JsonConvert.DeserializeObject<DBResultMessage>(await json.Content.ReadAsStringAsync());
                    if (result.ErrorMessage == null) { result.ErrorMessage = await json.Content.ReadAsStringAsync(); }
                    return result;
                }
                catch (Exception ex)
                { return new DBResultMessage() { RecordCount = 0, ErrorMessage = ex.Message + Environment.NewLine + ex.StackTrace, Status = "error" }; }
            }
        }

        public static async Task<DBResultMessage> DeleteApiRequest(ApiUrls apiUrl, string key = null, string token = null)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    if (token != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); }
                    HttpResponseMessage json = await httpClient.DeleteAsync(App.Setting.ApiAddress + "/" + apiUrl + (!string.IsNullOrWhiteSpace(key) ? "/" + key : ""));
                    return JsonConvert.DeserializeObject<DBResultMessage>(await json.Content.ReadAsStringAsync());
                }
                catch (Exception ex)
                { return new DBResultMessage() { RecordCount = 0, ErrorMessage = ex.Message + Environment.NewLine + ex.StackTrace, Status = "error" }; }
            }
        }

        public static async Task<bool> CheckApiConnection()
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    string json = await httpClient.GetStringAsync(App.Setting.ApiAddress + "/" + ApiUrls.BackendCheck);
                    return true;
                }
                catch
                { return false; }
            }
        }

    }

MarkDown Item Template



DATABASES on Modern way - finally

One Command and One Database in Project, never less - its my new Idea

Possible DB Technologies for immediately using by start click only

ALL MAIN DATABASE TYPES IN EASYDATACenter by EF6 (entity framework) are supported

ORACLE
MSSQL
MYSQL
POSTGRESQL
SQLITE
DB2
etc

SHARED PROJECT FILES

MSSQL EASYBuilder DB installation script


MSSQL ENGINE HELP COMMANDS AND TYPES

#Run stored procedure for Backup Database via MSSQL user login
sqlcmd -U ,username -P password -S .\SQLEXPRESS -d DatabaseName -Q "EXEC DB_BACKUP"
#Run stored procedure for Backup Database via Windows Login
sqlcmd -S .\SQLEXPRESS -d DatabaseName -Q "EXEC DB_BACKUP"
#Recovery Database via MSSQL user Login and set Right for Database by running stored procedure 'DB_SETRIGHTS
sqlcmd -U username -P password -S .\SQLEXPRESS -Q "ALTER DATABASE [LICENSESRV] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;RESTORE DATABASE [LICENSESRV] FROM DISK = N'C:\Database\DEFAULT_DATABASES\LICENSESRV.bak' WITH MOVE N'LICENSESRV' TO N'C:\Database\LICENSESRV.mdf',  MOVE N'LICENSESRV_log' TO N'C:\Database\LICENSESRV_log.ldf', FILE = 2,RECOVERY,  REPLACE,  STATS = 10;ALTER DATABASE [LICENSESRV] SET MULTI_USER;"

sqlcmd -U username -P password -S .\SQLEXPRESS -d LICENSESRV -Q "EXEC DB_SETRIGHTS"

DATABASE Templates and System Rules COPY/PASTE/RENAME supported

For thinking, the development of tools and work with them worthy in the 21st century

  • The displayed template codes can also be found in the Database
  • Make the database model as honest as possible in relation to data and bindings
  • The best solution is to have the database check the correctness of the data (in 1 place)
  • The database contains a DBHELP help procedure
  • Document items are deleted with a linked key
  • Procedures for Backup/Restore are prepared in the DB
  • The system uses SLQ, EF6, Procedures, Views, Functions
  • That's all it takes to discharge
-- The procedure setting the rights for the user to the necessary operations

USE [EASYBUILDER]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[DB_SETRIGHTS]
AS
BEGIN 
	BEGIN TRY CREATE USER [easybuilder] FOR LOGIN [easybuilder] END TRY BEGIN CATCH END CATCH;
	BEGIN TRY ALTER ROLE [db_datareader] ADD MEMBER [easybuilder]; END TRY BEGIN CATCH END CATCH;
	BEGIN TRY ALTER ROLE [db_datawriter] ADD MEMBER [easybuilder]; END TRY BEGIN CATCH END CATCH;
	BEGIN TRY GRANT EXECUTE TO [easybuilder]; END TRY BEGIN CATCH END CATCH;
END;
GO
/*
Template for creating standardized Tables (from Table -> CREATE TO)
The template is used by way of REPLACE 'TemplateList' after 'NewTableList'
edit fields correctly, set indexes and foreign keys
System ID Columns - AutoIncrement, TimeStamp - InsertTime
Keys: UserId - Binding to the UsersList Table
*/
USE [EASYBUILDER]
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[TemplateList](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [varchar](50) NOT NULL,
	[Description] [text] NULL,
	[Default] [bit] NOT NULL,
	[UserId] [int] NOT NULL,
	[Active] [bit] NOT NULL,
	[TimeStamp] [datetime2](7) NOT NULL,
 CONSTRAINT [PK_TemplateList] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
 CONSTRAINT [IX_TemplateList] UNIQUE NONCLUSTERED 
(
	[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[TemplateList] ADD  CONSTRAINT [DF_TemplateList_Active]  DEFAULT ((1)) FOR [Active]
GO

ALTER TABLE [dbo].[TemplateList] ADD  CONSTRAINT [DF_TemplateList_TimeStamp]  DEFAULT (getdate()) FOR [TimeStamp]
GO

ALTER TABLE [dbo].[TemplateList]  WITH CHECK ADD  CONSTRAINT [FK_TemplateList_UserList] FOREIGN KEY([UserId])
REFERENCES [dbo].[UserList] ([Id])
GO

ALTER TABLE [dbo].[TemplateList] CHECK CONSTRAINT [FK_TemplateList_UserList]
GO
/*
System procedure for Reports with advanced Filtering
The procedure is part of the Supplied Database
*/
USE [EASYBUILDER]
GO

/****** Object:  StoredProcedure [dbo].[ReportDataset]    Script Date: 11.03.2023 6:45:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[ReportDataset]
@TableName varchar(50) = null,
@Sequence int = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

-- Intended for use with param-ed reports.
-- To be called from various My-FyiReporting reports
--   - Various reports with their own layouts are called from VB app after setting Queue with usp_ReportQueue_Push()
--     each report then just contains : 

-- SET FMTONLY OFF;
-- EXEC usp_ReportQueue_Pop @TableName='SomeTablename', @Sequence='10'
-- 

DECLARE @ID int;
DECLARE @NAME varchar(50);
DECLARE @SQL nvarchar(MAX);
DECLARE @FILTER nvarchar(MAX);
DECLARE @SEARCH varchar(50);
DECLARE @SEARCHCOLUMNLIST nvarchar(MAX);
DECLARE @SEARCHFILTERIGNORE bit;
DECLARE @RECID varchar(50);
DECLARE @RECIDFILTERIGNORE bit;

DECLARE @SEPARATEDCOLUMNS nvarchar(MAX);


SELECT Top 1 
  @ID=[Id], 
  @NAME=[Name], 
  @SQL=[Sql], 
  @FILTER=[Filter], 
  @SEARCH=[Search], 
  @SEARCHCOLUMNLIST=[SearchColumnList],
  @SEARCHFILTERIGNORE=[SearchFilterIgnore],
  @RECID=[RecId],
  @RECIDFILTERIGNORE=[RecIdFilterIgnore]
FROM ReportQueueList WHERE [TableName]=@TableName AND [Sequence] = @Sequence; 

--PRERARE RECID
IF (@RECID = 0 OR (@RECIDFILTERIGNORE = 1 AND @FILTER <> '1=1')) BEGIN 
	SET @RECID = ''
END ELSE BEGIN
	SET @RECID = CONCAT(' AND Id=',@RECID);
END

--PRERARE SEARCH
IF (@SEARCH = '' OR (@SEARCHFILTERIGNORE = 1 AND @FILTER <> '1=1')) BEGIN
	SET @SEPARATEDCOLUMNS =  '1=1';
END ELSE BEGIN
	SELECT @SEPARATEDCOLUMNS = STRING_AGG (CONCAT(value,' LIKE ',char(39),'%',@SEARCH,'%',char(39)), ' OR ') FROM STRING_SPLIT (@SEARCHCOLUMNLIST, ',');  
END

	SET @SQL = CONCAT(@SQL,' WHERE 1=1 AND (', @FILTER,') AND (', @SEPARATEDCOLUMNS,') ',@RECID); 
	--PRINT @SQL; --FOR Debuging
	EXECUTE sp_executesql @SQL;
END
GO
--SQL Trigger pro Tabulku pro nastaven� jedin� hodnoty u typu 'Default' 
USE [EASYBUILDER]
GO

/****** Object:  Trigger [dbo].[TR_UnitList]    Script Date: 11.03.2023 6:48:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE   TRIGGER [dbo].[TR_UnitList] ON [dbo].[UnitList]
FOR INSERT, UPDATE, DELETE
AS
DECLARE @Operation VARCHAR(15)
 
IF EXISTS (SELECT 0 FROM inserted)
BEGIN
	DECLARE @setDefault bit;DECLARE @RecId int;
	SET NOCOUNT ON;

    IF EXISTS (SELECT 0 FROM deleted)
    BEGIN --UPDADE
		SELECT @setDefault = ins.[Default] from inserted ins;
		SELECT @RecId = ins.Id from inserted ins;

		IF(@setDefault = 1) BEGIN
			UPDATE [dbo].UnitList SET [Default] = 0 WHERE Id <> @RecId; 		
		END
	END ELSE
		BEGIN -- INSERT
			SELECT @setDefault = ins.[Default] from inserted ins;
			SELECT @RecId = ins.Id from inserted ins;

			IF(@setDefault = 1) BEGIN
				UPDATE [dbo].UnitList SET [Default] = 0 WHERE Id <> @RecId; 		
			END
		
		END
END ELSE 
BEGIN --DELETE
	SELECT @setDefault = ins.[Default] from deleted ins;
	SELECT @RecId = ins.Id from deleted ins;

	IF(@setDefault = 1) BEGIN
		UPDATE [dbo].UnitList SET [Default] = 1  
		WHERE Id IN(SELECT TOP (1) Id FROM [dbo].UnitList WHERE Id <> @RecId)
		;
	END
END
GO

ALTER TABLE [dbo].[UnitList] ENABLE TRIGGER [TR_UnitList]
GO

MarkDown Item Template



LOW/NO/FULL code EXTREMELY EASY TO DEVELOP ANY SYSTEM

For thinking, the development of tools and work with them worthy in the 21st century

The development of FRONTEND as an entire IS system as you do not know it - only 3 choices are enough

 Logic - everything in the database is a LIST (list of invoices)

-> This may or may not have a DETAIL (list of items) || OR it needs to be just settings, i.e. Detail (program settings, video processing, etc.)

And the result can be a system that SAP or anyone else can only dream of. Almost like tennis, you can publish one table after another, and by evening you have a small system.

DEFINITION OF 3 layer SYSTEM and necessary components

Database - place for DATA Backend Server - A service that securely conveys data to applications Frontend/User Application - A nice application to easily work with data Print support - creation and printing of any reports

START in 1 day you will start your new system in three steps


Development in EASYDATACenter UNIVERS RESTFULL/SOCKET BACKEND SERVER in three user steps

  • Create any database Table. Use the TemplateList Template and just insert your boxes into it. Remember Indexes, Foreign Keys, or look at already existing tables or consult with me. It IS for a few minutes

  • You export the tables as a model using the prepared CMD command to the BACKEND project [ EntityFramework 6 ] command: Scaffold-DbContext "Server=IP;Database=DB;User ID=USER;Password=PW;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DBModel done - the entire database is defined in the Backend server

  • From existing calls, e.g. UserList, copy and rename the new API call for the new table [GET,POST,PUT,PATCH,DELETE] COPY file -> PASTE file -> Rename to new API for example: /skladList and Build&Run Done, the API Server is WAITING at http://vaseip/skladList for your call and deployment at the client, in the company, anywhere


Development in EASYBuilder Modern WINDOWS XP+ thin application or system in three user steps

  • You copy the table definition from the model created in the BACKEND project to the FRONTEND project COPY Class from BE Model -> PASTE into FE application -> add new APIURL

  • Select the template you want, there are primarily 3 -> rename it, edit the form and connect it to the MAINMENU so you set the WHERE to search, COPY/PASTE boxes, write Translation in the dictionary and copy the connection to the MAINMENU done - the result is a new form with complete user control

  • Build&Run - you check the work one after the other, because typos are part of us, aren't they the full logging option slaps you in detail where the error is or HURRY GOES Done, the Application is WAITING for your work or deployment at the client, in the company, anywhere


evelopment of Press Reports in FYIREPORTING

  • You simply copy the existing DATALIST/DETAIL report and open it in the editor Rename to the new name of your table.

  • You edit your SQL SELECT and Test it, the parameters are already set ID/SEARCH/CONNECT Ideally in MSSQLMS or HEIDYSQL or something and debug it there. Remember everything is just a LIST or Detail. done - and you have the correct data that you just arrange for printing in the form.

  • And you import into the system in the REPORTING list menu, where you set the required link to APIURL/SEARCH/ID Done, the press kit is WAITING for your work or deployment at the client, in the company, anywhere

END OF KNOWLEDGE REQUIRED FOR SYSTEM DEVELOPMENT


Basic listing of almost unlimited skill application

  • Prepared with common agendas
  • Operation possible on WINDOWS XP, 7, 8, 10, 11
  • C# WFP, XAML, Drag&Drop technology
  • Complete management of any Agenda (Table) RESTORE/NEW/EDIT/COPY/DELETE
  • Automatically generated list data view.
  • Easy preparation of the form according to prepared templates and ready made agendas
  • more than 100 types of input fields
  • Search in content in the data list
  • also optimized for TOUCH TERMINALS for MANUFACTURING or BUSINESS, SELF*SERVICE environments
  • own printing system with direct printing support
  • Almost unlimited development possibilities with the possibility of own involvement
  • Support for controlling operating systems
  • thousands of already free tools on GitHub
  • connection to any third*party services
  • support for all known protocols EMAIL, IMAP, HTTPS, FTP, SSH, SMTP, TELNET
  • command line support, JavaScript, Telnet
  • Option to connect to 3*party systems, IS and OS systems
  • Support multimedia, hardware, 3D, devices, RFID readers, QR, BAR, EAN, VIDEO, SOUND, MS OFFICE, PDF, XPS, RTF, etc.
  • development of any customized system from 20,000 CZK. System already prepared as a template for any more than just IS SYSTEM
  • the possibility of creating any INFORMATION OR CONTROL, MONITORING, REPORTING system, and so on

EASYTOOLS IMPLEMENTED ADD-ONS

  • AddOns for touch panels, controls, data types, forms, media, documents, 3D,
  • They are completely free to download (including every license pack)
  • Open Source community to include more than 1000 tools in the system by community

BUILT SYSTEMS IN 14 DAYS

  1. LicenseSrv MultiOS license server with listening API GET/POST server / generation of unlimited static/dynamic CODES and management client
  2. GUIDES Windows XP+ Implementation Production Guides for Production Companies For office / touch panels with unlimited clients and printing options
  3. ShoPingER Windows XP+ MultiBranch Quotation/Order/Invoicing System with multimedia files supported by unlimited clients and printing capabilities
  4. LicenceShoper MultiOS License Server PLUS Windows XP+ MultiBranch Billing System [LicenseSrv + ShoPingER]

SOLUTION - WHERE TO FIND COMPLETE INFORMATION

All documentation, license, case study, price list, media, developer information, help, manuals, technology information, installation, images, videos, downloads, etc. can be found here or:


PROJECT IMPLEMENTATION CASE STUDY PROJECTS USING IDEAS

For thinking, the development of tools and work with them worthy in the 21st century

  • The first use of this solution was a big change in a manufacturing company For 1000 workers, but it was only four days work for the IT department
  • Implementation of production guides as a task for 4 days CZ In Case Studies
  • Creation of the Billing System as a replacement for the system with discontinued support.
  • Creation of the ShoPingER Invoicing System with a large overlap in 14 days]
  • All Windows Applications are available to try online in the Application ShowRoom https://KlikneteZde.Cz

EASYDATACenter - Backend Server Development Plan

  • Create Backend Server Generator
  • Create Full Customer Support with Project Managements

EASYBuilder - WPF Fronted System Builder Development Plan

  • Publish XAML Generator Graphical Tool with Templates Support
  • implement Global Context menu for all DataLists with Count of API record request setting, Properties of Datalist, DataRequest,DataList Controller
  • Convert WPF System to WebApplication for Windows/Linux with all graphics and possibilities
  • Create SYSTEM Generator
  • Create Metro4 Full compatible WEB SYSTEM Variant
  • Implement FastReport Tool (Replace FYI Reporting)

Using References of Variables or Classes - Maximum Saving Memory Performance

  • For All processes which is modified by One Person in One Time - Typical System Using

In simple explanation and absolut ideally working with Data - Maximum Clean Code Data flow modify one Variable or Class on Way Over More Sequenced Methods

  • From API List Logic You working only With Primary API Dataset and few sets of Dials
  • For standard Using its best way For Maximum clean code without Exeption

Is calculating that you Have Full or Extended Dataset for API everytime - Point For Data loading "'SetRecord' Method" - load data from model to Dataset Variable - Some Operations where you can change data values - Point For Recapitulate full Dataset and Save -


Complete Development Documentation and Smart Search: https://liborsvoboda.github.io/EASYSYSTEM-EASYSERVER-EN


Company contact for suppliers

Email:

  • Libor.Svoboda@GroupWare-Solution.eu
  • Libor.Svoboda@KlikneteZde.Cz

Address:
Street: Žlutava 173
City: Žlutava
PostCode: 761 63
State: Czech Republic
Phone: 00420 724 986 873

EASYDATACenter

Contents

AuthenticateResponse type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

The authenticate response.

Expiration property

Summary

Gets or Sets the expiration.

Id property

Summary

Gets or Sets the id.

Name property

Summary

Gets or Sets the name.

Role property

Summary

Gets or Sets the role.

Surname property

Summary

Gets or Sets the surname.

Token property

Summary

Gets or Sets the token.

BackendServer type

Namespace

EASYDATACenter

Summary

Server Main Definition Starting Point Of Project

ServerRuntimeData constants

Summary

Startup Server Initialization Server Runtime Data

ServerSettings constants

Summary

Startup Server Initialization Server Setting Data

BuildWebHost(args) method

Summary

Final Preparing Server HostBuilder Definition

Returns
Parameters
NameTypeDescription
argsSystem.String[]

Main(args) method

Summary

Server Startup Process

Parameters
NameTypeDescription
argsSystem.String[]

RestartServer() method

Summary

Server Restart Controller

Parameters

This method has no parameters.

ServerStartupDbDataLoading() method

Summary

Server Startup DB Data loading for minimize DB Connect TO Frequency Dials Without Changes Example: LanguageList

Parameters

This method has no parameters.

StartServer() method

Summary

Server Start Controller

Parameters

This method has no parameters.

CommunicationController type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

Server Communication Extensions for Controlling Data

HttpContext property

Summary

Server Request Accessory controller

CheckAdmin() method

Summary

Check Admin Role

Parameters

This method has no parameters.

CustomFtpUser type

Namespace

EASYDATACenter.ServerCoreServers.HostedFtpServerMembershipProvider

Summary

Custom FTP user implementation

#ctor(name) constructor

Summary

Initializes a new instance of the CustomFtpUser instance.

Parameters
NameTypeDescription
nameSystem.StringThe user name

Name property

Summary

Inherit from parent.

IsInGroup() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

CustomString type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Custom Definition for Returning string List from Stored Procedures Name is ColumnName from Stored Procedure Result

DBResult type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

Database response types definition

DBResultMessage type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

The DB result message.

ErrorMessage property

Summary

Gets or Sets the error message.

InsertedId property

Summary

Gets or Sets the inserted id.

RecordCount property

Summary

Gets or Sets the record count.

Status property

Summary

Gets or Sets the status.

DatabaseContextExtensions type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Database Context Extensions for All Types Procedures For Retun Data in procedure can be Simple SELECT * XXX and you Create Same Class for returned DataSet

DgmlSchemaApi type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Database Schema Diagram Controller

See Also

#ctor(context) constructor

Summary

Initializes a new instance of the DgmlSchemaApi class.

Parameters
NameTypeDescription
contextEASYDATACenter.ServerCoreDBSettings.EASYDATACenterContextThe context.

Get() method

Summary

Creates a DGML class diagram of most of the entities in the project wher you go to localhost/dgml See https://github.com/ErikEJ/SqlCeToolbox/wiki/EF-Core-Power-Tools

Returns

a DGML class diagram

Parameters

This method has no parameters.

EASYDATACenterContext type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Server Main Database Settings Here is Included ScaffoldContext which is connected via Visual Studio Tool Here can Be added customization which are not on the server Here is Extended the Context with Insert News Functionality Customizing and implement Settings for Automatic Adopted Database Schema for Unlimited Working and Operations For Specifics API schemas

GetApiUserId(httpContext) method

Summary

Return User From API Request if Exist other null

Returns
Parameters
NameTypeDescription
httpContextMicrosoft.AspNetCore.Http.HttpContext

IsAdmin(httpContext) method

Summary

Return User From API Request if Exist other null

Returns
Parameters
NameTypeDescription
httpContextMicrosoft.AspNetCore.Http.HttpContext

GLOBALNETAuthenticationApi type

Namespace

EASYDATACenter.ControllersExtensions

Authenticate(username,password) method

Summary

API Authenticated and Generate Token

Returns
Parameters
NameTypeDescription
usernameSystem.String
passwordSystem.String

LifetimeValidator(notBefore,expires,token,params) method

Summary

API Token LifeTime Validator

Returns
Parameters

RefreshUserToken(username,token) method

Summary

API Refresh User Token

Returns
Parameters

GLOBALNETBackendCheckApi type

Namespace

EASYDATACenter.ControllersExtensions

Summary

Simple Api for Checking Avaiability

See Also

GetBackendCheckApi() method

Summary

Gets the backend check API.

Returns
Parameters

This method has no parameters.

HostedFtpServer type

Namespace

EASYDATACenter.ServerCoreServers

#ctor(ftpServerHost) constructor

Summary

Initializes a new instance of the HostedFtpServer class.

Parameters
NameTypeDescription
ftpServerHostFubarDev.FtpServer.IFtpServerHostThe FTP server host that gets wrapped as a hosted service.

StartAsync() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

StopAsync() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

HostedFtpServerMembershipProvider type

Namespace

EASYDATACenter.ServerCoreServers

Summary

Custom membership provider for Authentication Validation Actual is Set by UserName and Password in Database

ValidateUser(username,password) method

Summary

FTP User Validation Its for Open FTP and User Validation

Returns
Parameters
NameTypeDescription
usernameSystem.StringThe username.
passwordSystem.StringThe password.

ValidateUserAsync(username,password) method

Summary

FTP User Validation Async Its for Open FTP and User Validation

Returns

The result of the validation.

Parameters
NameTypeDescription
usernameSystem.StringThe user name.
passwordSystem.StringThe password.

IdFilter type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Custom Class Definition for Filtering by record Id

MailRequest type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

Class Definition for Server Emailer In List of this claas you can use Mass Emailer

NameFilter type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Custom Class Definition for Filtering by string

SHOPINGERAuthenticationApi type

Namespace

SHOPINGER.Controllers

Authenticate(username,password) method

Summary

API Authenticated and Generate Token

Returns
Parameters
NameTypeDescription
usernameSystem.String
passwordSystem.String

LifetimeValidator(notBefore,expires,token,params) method

Summary

API Token LifeTime Validator

Returns
Parameters

RefreshUserToken(username,token) method

Summary

API Refresh User Token

Returns
Parameters

ServerConfigurationServices type

Namespace

EASYDATACenter.ServerCoreConfiguration

Summary

Server Core Configuration Settings of Security, Communications, Technologies, Modules Rules, Rights, Conditions, Formats, Services, Logging, etc..

ConfigureAuthentication(services) method

Summary

Server Core: Configure Server Authentication Support

Parameters

ConfigureControllers(services) method

Summary

Server Core: Configure Server Controllers options.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes = [ValidateNever] in Class options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore = [JsonIgnore] in Class

Parameters

ConfigureCookie(services) method

Summary

Server Core: Configure Cookie Politics

Parameters

ConfigureDatabaseContext(services) method

Summary

Server Core: Configure Custom Services

Parameters

ConfigureFTPServer(services) method

Summary

Custom Secure FTP Server

Parameters
NameTypeDescription
servicesMicrosoft.Extensions.DependencyInjection.IServiceCollection@The services.

ConfigureLogging(services) method

Summary

Server Core: Configure Server Logging

Parameters

ConfigureScopes(services) method

Summary

Server Core: Configure Custom Core Services

Parameters

ConfigureServerWebPages(services) method

Summary

Configures the MVC server pages.

Parameters
NameTypeDescription
servicesMicrosoft.Extensions.DependencyInjection.IServiceCollection@The services.

ConfigureThirdPartyApi(services) method

Summary

Server Core: Configure HTTP Client for work with third party API

Parameters

ConfigureWebSocketLoggerMonitor(services) method

Summary

Server core: Configures the WebSocket logger monitor. For multi monitoring and for Example Posibilities

Parameters
NameTypeDescription
servicesMicrosoft.Extensions.DependencyInjection.IServiceCollection@The services.

ServerCoreDbOperations type

Namespace

EASYDATACenter.ServerCoreMethods

Summary

All Server Definitions of Database Operation method

DBTranslate(word,language) method

Summary

Default Operation for Call Translation

Returns
Parameters
NameTypeDescription
wordSystem.String
languageSystem.String

DBTranslateOffline(word,language) method

Summary

Database LanuageList for Off-line Using Definitions

Returns
Parameters
NameTypeDescription
wordSystem.String
languageSystem.String

DBTranslateOnline(word,language) method

Summary

Database LanuageList for On-line Using Definitions

Returns
Parameters
NameTypeDescription
wordSystem.String
languageSystem.String

LoadStaticDbDials(onlyThis) method

Summary

Method for All Server Defined Table for Local Using As Off line AutoUpdated Tables

Parameters

WriteVisit(ipAddress,userId,userName) method

Summary

Trigger User Login History

Parameters
NameTypeDescription
ipAddressSystem.String
userIdSystem.Int32
userNameSystem.String

ServerCoreFunctions type

Namespace

EASYDATACenter.ServerCoreMethods

CheckDirectory(directory) method

Summary

Checks the directory.

Returns
Parameters
NameTypeDescription
directorySystem.StringThe directory.

CheckFile(file) method

Summary

Checks the file.

Returns
Parameters
NameTypeDescription
fileSystem.StringThe file.

CopyFile(from,to) method

Summary

Copies the file.

Returns
Parameters
NameTypeDescription
fromSystem.StringFrom.
toSystem.StringTo.

CreatePath(path) method

Summary

Creates the path.

Returns
Parameters
NameTypeDescription
pathSystem.StringThe path.

FileDetectEncoding(FileName) method

Summary

Files the detect encoding.

Returns
Parameters
NameTypeDescription
FileNameSystem.StringName of the file.

GetSelfSignedCertificate(password) method

Summary

Gets the self signed certificate For API Security HTTPS.

Returns
Parameters
NameTypeDescription
passwordSystem.StringThe password.

GetSelfSignedCertificateFromFile() method

Summary

Set Imported Certificate from file on Server for Https TODO

Returns
Parameters

This method has no parameters.

GetSystemErrMessage(exception,msgCount) method

Summary

Mined-ed Error Message For System Save to Database For Simple Solving Problem

Returns
Parameters
NameTypeDescription
exceptionSystem.Exception
msgCountSystem.Int32

GetUserApiErrMessage(exception,msgCount) method

Summary

Mined-ed Error Message For Answer in API Error Response with detailed info about problem

Returns
Parameters
NameTypeDescription
exceptionSystem.Exception
msgCountSystem.Int32

LoadSettings() method

Summary

Server Local Startup Configuration Its Running as First - Load from Congig.Json After DB connection Before Server Start Is This configuration Replaced By Data from DB And next Server Start. Its for situation - Bad Connection Server Start with Configuration from File

Parameters

This method has no parameters.

RandomString(length) method

Summary

Randoms the string.

Returns
Parameters
NameTypeDescription
lengthSystem.Int32The length.

ReadFile(fileName) method

Summary

Reads the file.

Returns
Parameters
NameTypeDescription
fileNameSystem.StringName of the file.

SendEmail(mailRequest,sendImmediately) method

Summary

System Mailer sending Emails To service email with detected fail for analyze and corrections on the Way provide better services every time !!! This You can implement everywhere, !!! In Debug mode is written to Console, in Release will be sent email Empty Sender And Recipients set email for Service Recipient

Parameters
NameTypeDescription
mailRequestEASYDATACenter.ServerCoreDefinition.MailRequest
sendImmediatelySystem.Boolean

SendMassEmail(mailRequests) method

Summary

Sends the mass mail.

Parameters

UnicodeToUTF8(strFrom) method

Summary

Unicodes to ut f8.

Returns
Parameters
NameTypeDescription
strFromSystem.StringThe string from.

ServerCoreHelpers type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

System Helpers for EASY working Here are extension for Database Model, WebSocket

AddSocketConnectionToCentalList(newWebSocket,socketAPIPath) method

Summary

Add WeSocket Connection To Central List

Parameters
NameTypeDescription
newWebSocketSystem.Net.WebSockets.WebSocketThe new web socket.
socketAPIPathSystem.StringThe socket path.

BindList``1(dt) method

Summary

Extension For Using Custom Defined Tables from Database Procedures Its used as Database Context Extension as 'CollectionFromSql' Method in Database Context

Returns
Parameters
NameTypeDescription
dtSystem.Data.DataTableThe dt.
Generic Types
NameDescription
T

DisposeSocketConnectionsWithTimeOut() method

Summary

!! Global Method for Simple Using WebSockets WebSocket Disposed - Cleaning monitored Sockets from Central List. Are Closed and Disposed Only with Timeout or with closed Connection

Parameters

This method has no parameters.

ListenClientWebSocketMessages(webSocket,socketAPIPath) method

Summary

Register Listening Client WebSocket Communication Ist for Receive messages from Client

Returns
Parameters
NameTypeDescription
webSocketSystem.Net.WebSockets.WebSocket
socketAPIPathSystem.String

SendMessageAndUpdateWebSocketsInSpecificPath(socketAPIPath,message) method

Summary

Sends the message and update web sockets in specific path.

Parameters
NameTypeDescription
socketAPIPathSystem.StringThe socket API path.
messageSystem.StringThe message.

SendMessageToClientSocket(webSocket,message) method

Summary

Sends the message to client WebSocket. This Is Used by "SendMessageAndUpdateWebSocketsInSpecificPath" For Update Informaions on All Connections in Same WebSocket Path Its Solution FOR Teminals, Group Communications, etc.

Parameters
NameTypeDescription
webSocketSystem.Net.WebSockets.WebSocketThe web socket.
messageSystem.StringThe message.

ServerCoreLoggerWS type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

WEBSocket Template still not used Ideal for Terminal Panels, chat, controlling services

Echo(context,webSocket) method

Summary

WebSocket Communication Set Examle

Returns
Parameters
NameTypeDescription
contextMicrosoft.AspNetCore.Http.HttpContextThe context.
webSocketSystem.Net.WebSockets.WebSocketThe web socket.

Get() method

Summary

WebSocket Registration Connection API Example

Returns
Parameters

This method has no parameters.

GetBySocketAPIPath(id) method

Summary

Universal WebSocket API Definitions for Connection Paths and Registering To Server Central List ow WebSocket Connections

Returns
Parameters
NameTypeDescription
idSystem.String

ServerCorePagesApi type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Server Core Web Pages Controller

See Also

ServerEmailerApi type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Server Email sender Api for logged Communication

See Also

ServerEnablingServices type

Namespace

EASYDATACenter.ServerCoreConfiguration

Summary

Server Core Enabling Settings of Security, API Communications, Technologies, Modules,Rules, Rights, Rules, Rights, Conditions, Cors, Cookies, Formats, Services, Logging, etc..

EnableCors() method

Summary

Server Cors Configuration

Parameters

This method has no parameters.

EnableEndpoints() method

Summary

Server Endpoints Configuration

Parameters

This method has no parameters.

EnableLogging(app,loggerFactory) method

Summary

Enable Server Logging in Debug Mode

Returns
Parameters

EnableWebSocket(app) method

Summary

Server WebSocket Configuration

Returns
Parameters

ServerLocalDbDials type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

Special Functions: Definition of Selected tables for Optimal Using to Data nature Its saves traffic, increases availability and for Example implemented Language is in Develop Auto Fill Table when is First Using Its can be used for more Dials

ServerModules type

Namespace

EASYDATACenter.ServerCoreConfiguration

Summary

Configure Server Ad-dons and Modules

ConfigureCoreAdmin(services) method

Summary

Server Module: Automatic DB Data Manager for work with data directly services.AddCoreAdmin("Admin"); is Token RoleName

Parameters

ConfigureDocumentation(services) method

Summary

Server Module: Generted Developer Documentation for Defvelopers Documentation contain full Server Structure for extremelly simple developing

Parameters

ConfigureHealthCheck(services) method

Summary

Server Module: Automatic DB Data Manager for work with data directly

Parameters

ConfigureSwagger(services) method

Summary

Server Module: Swagger Api Doc Generator And Online Tester Configuration

Parameters

ServerModulesEnabling type

Namespace

EASYDATACenter.ServerCoreConfiguration

Summary

Enable Configured Server Ad-dons and Modules

EnableCoreAdmin() method

Summary

Server Module: Enable Swagger Api Doc Generator And Online Tester

Parameters

This method has no parameters.

EnableDocumentation() method

Summary

Server Module: Enable Generated Developer Documentation

Parameters

This method has no parameters.

EnableSwagger() method

Summary

Server Module: Enable Swagger Api Doc Generator And Online Tester

Parameters

This method has no parameters.

ServerRestartApi type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Server Restart Api for Remote Control

See Also

ServerRootApi type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Server Root Controller

See Also

Index() method

Summary

Server Root "/" Redirection to "server" Folder

Returns
Parameters

This method has no parameters.

ServerRuntimeData type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

The server runtime data.

CentralWebSocketList constants

Summary

Central WebSocket List for Easy one place Using

LocalDBTableList constants

Summary

The local db table list.

ServerArgs constants

Summary

Server Starup Args

ServerCancelToken constants

Summary

Cancellation Token for Server Remote Control

ServerCoreStatus constants

Summary

Server Core Status

ServerFTPProvider constants

Summary

Server Securited FTP Provider for Remote Control

ServerRestartRequest constants

Summary

Server Restart Request Indicator

ConfigFile property

Summary

Gets or Sets the configure file.

DataPath property

Summary

Gets or Sets the data path.

DebugMode property

Summary

Gets or Sets the debug mode.

Setting_folder property

Summary

Gets or Sets the setting_folder.

Startup_path property

Summary

Gets or Sets the startup_path.

ServerSettings type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

The server settings.

ConfigApiTokenTimeoutMin property

Summary

Bearer Token Timeout Setting in Minutes. Connection must be Refreshed in Interval After Timeout connection Must Login Again. It is as needed. You Can Change Key for close All connections Immediately. Timeout is good for Webpages Recomended: 15

ConfigCertificateDomain property

Summary

Its Domain for include to Automatic Generated Certificate For Server running on HTTPS. Domain is for Your validation Certificate Domain. Can be Changed for commercial. Recommended: 127.0.0.1

ConfigCertificatePassword property

Summary

Password will be inserted to Server Generated Certificate for HTTPS. Recommended: empty = Maximal Security Randomly generated 20 chars string

ConfigJwtLocalKey property

Summary

Special Functions:Server AutoGenerated encryption Key For Securing Communication On Each Server Restart All Tokens not will be valid and the Login Reconnect is Requested. Its AntiHacker Security Rule Recommended: empty = Maximal Security Randomly generated 40 chars string

ConfigMaxWebSocketBufferSizeKb property

Summary

Maximum socket message size for control Traffic Recomended: 10

ConfigServerStartupOnHttps property

Summary

Setting for Server URL Services. Logically can run only one Http or Https Server has more Security Setting Politics. Recommended: true

ConfigServerStartupPort property

Summary

Set Server Startup Port on Http/HttpS/WebSocket and for All Engines, Modules, API Controler and WebPages Recommended: 5000

ConfigWebSocketTimeoutMin property

Summary

WebSocket Timeout Connection Settings in Minutes. After timeout when not detected any communication socket is closed Set according to your need Recommended: 2

DatabaseConnectionString property

Summary

Server Database Connection string for Full Service of Database Migration/Api/Check/Unlimited Develop !!!Warning: Check this connection for Read/Write/Exec is enabled

DatabaseInternalCacheTimeoutMin property

Summary

Time in Minutes for Database Valid Cache Data and Refreshing Duplicit Functionality with Database Server Recommended: 30

DatabaseInternalCachingEnabled property

Summary

Enable Disable Entity Framework Internal Cache I recommend turning it off : from Logic, Duplicit Functionality with Database Server in complex process can generate problems Recommended: false

EmailerSMTPLoginPassword property

Summary

SMTP Password for Login to External Mail Server Its Necessary for Correct running Server Internal Core Monitoring

EmailerSMTPLoginUsername property

Summary

SMTP UserName for Login to External Mail Server Its Necessary for Correct running Server Internal Core Monitoring

EmailerSMTPPort property

Summary

SMTP Port for Login to External Mail Server Its Necessary for Correct running Server Internal Core Monitoring

EmailerSMTPServerAddress property

Summary

SMTP Server Address for Login to External Mail Server Its Necessary for Correct running Server Internal Core Monitoring

EmailerSMTPSslIsEnabled property

Summary

EmailerSMTPSslIsEnabled SSl Email Protocol for Login to External Mail Server Its Necessary for Correct running Server Internal Core Monitoring

EmailerServiceEmailAddress property

Summary

Service email, for info about not available service from HeatchCheck Can be used for next Develop, automatic checking problems, missing data and all other Its Necessary for Correct running Server Internal Core Monitoring

ModuleDataManagerEnabled property

Summary

Special Function: AutoGenerated Database DataManager for working with Data Running only in Debug mode for simple Develop, can be modified. All changes are Reflected after restart server

ModuleDbDiagramGeneratorEnabled property

Summary

Enable Automatic Database Diagram for Simple show Database structure with All bingings

ModuleHealthServiceEnabled property

Summary

Special Function: More than 200 Server Statuses Can be monitored by HeathCheckService, Over Net can Control Other Company Services Also as Central Control Point With Email Service. For Example: Server/Memory/All DB Types/IP/HDD/Port/Api/NET/Cloud/Environment Must be run for Metrics AddOn https://learn.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/monitor-app-health

ModuleHealthServiceRefreshIntervalSec property

Summary

Special Function: More than 200 Server Statuses Can be monitored by HeathCheckService, Over Net can Control Other Company Services Also as Central Control Point With Email Service. For Example: Server/Memory/All DB Types/IP/HDD/Port/Api/NET/Cloud/Environment Must be run for Metrics AddOn !!! run in Release mode for Good Reading of Logs without HeathChecks Cycling info https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks https://testfully.io/blog/api-health-check-monitoring/

ModuleMdDocumentationEnabled property

Summary

Enable Server Structure Documentation for Developers Using RootPath, - Block File Browsing Is Good for Server with Documentation only Or Use for Show WebPage and Copy "Only HTML"

ModuleSwaggerApiDocEnabled property

Summary

Special Function: Server Automatically Generate Full Documentation of API structure AND Database Model. Plus Included API Interface for Online Testing All API Methods with Authentication Its Automatic Solution for Third Party cooperation. All changes are Reflected after restart server

ServerEnableWebSocketMonitor property

Summary

Server support online multi watch Logging Its Run on Websocket and the Log Messages are sent for All opened connections for wathing on Path: ServerCoreMonitor You can enable Mass Email Api

ServerFtpFreeEngineEnabled property

Summary

Enable FTP File Server oppened for every connection with full rights

ServerFtpSecurityEnabled property

Summary

Enable FTP Security For access to FTP must be logged

ServerMvcWebPagesEngineEnabled property

Summary

Enable Mvc WebPages support engine with Correct Configuration

ServerRazorWebPagesEngineEnabled property

Summary

Enable Razor WebPages support engine with Correct Configuration for Automaping form folder 'Pages'

ServerTimeTokenValidationEnabled property

Summary

Enable Disable Bearer Token Timeout Validation Token can be valid EveryTime to using: Example for machine connection Or is Control last activity

ServerWebBrowserEnabled property

Summary

Enable WebPages File Browsing from server Url on Server

ServerWebSocketEngineEnabled property

Summary

Enable WebSocket Engine with Default Example Api Controller

SpecialCoreCheckerEmailSenderActive property

Summary

Activation / Deactivation of Email Sender For Server Core Fails Checker All Catch Write to SendEmail, In Debug mode is Written in console in Release mode is Sended email (All incorrect server statuses are monitored) Can be writen to Database - !!! Warning for infinite Cycling (DB shutdown example) Recommended: true

SpecialEnableMassEmail property

Summary

Server support mass emailing as Service You can enable Mass Email Api

SpecialServerLanguage property

Summary

Server Language for Translating Server internal statuses Recommended: cz or en - other languages are not implemented

SpecialServerServiceName property

Summary

Server Service Name automatic figured in All IS/OS/Engines info Recommended: EASYDATACenter

SpecialUseDbLocalAutoupdatedDials property

Summary

Special Function: Using Selected Tables with AutoRefresh On change as Local DataSets, For Optimize Traffic. For Example LanguageList - Static table with often reading Recommended: true - functionality must be implemented in Server Code

ServiceHealthCheck type

Namespace

EASYDATACenter.ServerCoreDefinition

Microsoft#Extensions#Diagnostics#HealthChecks#IHealthCheck#CheckHealthAsync(context,cancellationToken) method

Summary

checks any service whether it ends normally or with an exception

Returns
Parameters

SetReportFilter type

Namespace

EASYDATACenter.ServerCoreDBSettings

Summary

Database Model Extension Definitions Its API Filter, Extended Classes, Translation, etc

Startup type

Namespace

EASYDATACenter

Summary

Server Startup Definitions

Configure(app,loggerFactory) method

Summary

Server Core: Main Enabling of Server Services, Technologies, Modules, etc..

Parameters

ConfigureServices(services) method

Summary

Server Core: Main Configure of Server Services, Technologies, Modules, etc..

Returns

void.

Parameters

TemplateList type

Namespace

EASYDATACenter.DBModel

Summary

Template System Class, This Class has all DBLogic auto Fields and user join for simple creating system Only Rename for your new table

WebSocketExtension type

Namespace

EASYDATACenter.ServerCoreDefinition

Summary

WebSocket Extension Definition For Simple Central Control All Connection By Connection Path and Timeout

WebSocketLogProvider type

Namespace

EASYDATACenter.ServerCoreDefinition.ServerCoreHelpers

Summary

!!! Implemented Server Core WebSocket System LogProvider Stream This Is Special Serice For Remote Monitoring On More Devices in OneTime

See Also

WebSocketLogger type

Namespace

EASYDATACenter.ServerCoreDefinition.ServerCoreHelpers

Summary

Server Core WebSocket System Logger Interface

See Also

Log``1(logLevel,eventId,state,exception,formatter) method

Summary

Used to log the entry.

Parameters
NameTypeDescription
logLevelMicrosoft.Extensions.Logging.LogLevelAn instance of LogLevel.
eventIdMicrosoft.Extensions.Logging.EventIdThe event's ID. An instance of EventId.
state``0The event's state.
exceptionSystem.ExceptionThe event's exception. An instance of Exception
formatterSystem.Func{``0,System.Exception,System.String}A delegate that formats
Generic Types
NameDescription
TState

EASYBuilder Description SYSTEM CORE

For thinking, the development of tools and work with them worthy in the 21st century

A full detailed description of the system core for easy development of any system with full support for automated functions, methods to make any of your applications work properly

this information is divided into information for

  • rapid development
  • complete information about the basic function of the system

Projects Documentation

Used automatic tools

  • Generating MD from XML Documentation from code

Generating MD from XML Documentation from code

<DocumentationFile>bin\Debug\Documentation\GlobalNET.xml</DocumentationFile>
<DocumentationMarkdown>$(MSBuildProjectDirectory)\GlobalNET.md</DocumentationMarkdown>

DECLARED SYSTEM CONDITIONS FOR DEVELOP NEW AGENDA

Basic Info what you minimal need for start Developing of new Agendas

  1. APP Initialization [INFO]

    • Starting APP with Welcome Page by JSON Setting
    • Initialize Technologies
    • Including Core Styles and themes
    • Set Global Properties
    • Set Global DataLists (Parameters, Setting, Tilts, System Classes, UserData, Error Handlers, API Security, etc)
    • Set CrashReporting join
  2. Welcome Page [INFO] - Video Start Page with Mottos

  3. NAMESPACES [CONDITIONS] Pages - Each Agenda must be in Namespace Pages Classes - All Agenda Classes are in Namespace Classes for developer Help

  4. DataClases [CONDITIONS] - DataList - Table Models Description (for Agendas/Pages)

    • Create By TemplateClass.cs file your new Class/DataModel Definition in your Agenda Folder
    • you can create Extended Table Model for more field in basic DataListModel - (example: ReceiptList, OutgoingOrderList, etc.)
    • Done
  5. ApiCommunications [CONDITIONS] - In the Class is in ENUM all API address list

    • All API Cals which has 'List' word on End is automatically supported for insert Report
    • Insert your New API address to this enum
    • Done
  6. Languages [CONDITIONS] - Each used 'Word' must exist in all Language Files Before Build

    • insert all new translations [check duplicity]to all dictionaries for your new Agenda field, menuName
    • Done
  7. PageTemplatesCodeHelp [INFO] - is central List of special methods in the system (Load/SaveFile, load, lang, number validation, etc..)

  8. Templates [INFO] - For simple create new ANY agengas by COPY/PASTE for simple modify INPUT fields only

    • for new Agenda Create new folder in Agendas and copy TemplateClass and correct TemplatePage to this folder
    • rename these files and change class model to your new class[COPY/PASTE from backend]
    • replace 'TemplateClass' for your new in XAML and CS file of your new Page/Agenda
    • now the form field change only and modify and check fields, translations, apiCalls in cs code for your new
    • Done
  9. MainMenu [CONDITIONS] - in MainWindow must be new Agenga inserted to the application menu

    • Insert new menu Item -im Xaml copy existing menu item and rename to your new Agenda
    • Translate menu item - In CS code insert the translate menu item in initialize Method
    • Set Menu Reaction - in MainWindows Method 'Cb_verticalMenuSelected' copy existing menuitem part code in the 'CASE' and change XAML menu name and name of called 'Page' Here on end case for List Report set the '/YourTableNameList' in Report line or for non report Table set 'cb_printReports.ItemsSource = null;'
    • Done
  10. Reports [INFO] - In system menu Reports you can upload Report file for your new Agenda

NOW Build and YOUR new Agenda is IN App Menu and After click is opened THIS IS ALL INFORMATIONS FOR SUCCESS DEVELOPING

SHORT SYSTEM DESCRIPTION

System is Fully dynamic Controlled For All menuInserted Pages/Agendas 
(Insert new Page/Agenda to menu + Translate for implement to full system only)

All method are implemented with global logic of using for central Core of this System and his Modification
For working with any standard system agenda (Typically IS System - SAP Example) 

INSERT/UPDATE/DELETE/SELECT/FILTER/PRINT/SHOW/MEDIA 3D/VIDEO/DOCS/EAN CODES/1000 FINISHED TOOLS on GITHUB/UNLIMITED ETC

FOR WINDOWS MODERN SYSTEMS/TERMINALS/ETC ON START (WEB FORMAT IS SUPPORTED BY TECHNOLOGY WILL BE DONE IN YEAR FUTURE

MAINWINDOW Central SYSTEM Control Manual

This is Core central point (MainWindow.xaml/cs) for full system Here are Defined All join for Central Control for All parts of System

  • MainWindow is Absolute Primary Control window off all actions in the application
  • Here are All global definitions, Messages, mainWindows and all Shared Controls for Pages
  • Here are Application Menu events, Update, Reports, New/Edit/.. for DataList, Filters, TabPages
  • MainWindow Has Defined 3Menu Types for More Systems: - Buttons in Header LINE -> For simple touch Terminal with few button for Agendas - SelectBox -> For TouchPanels with more MenuItems, but Touch functionality is Needed - TreeView -> For Robust Systems with a lot of MenuItems/Agendas
  • in Xaml are declared all shared input/Controls/ETC for Application
    App Update, Tools, Theme, Menus, Report Ctrl, Pages Controls, Graphics, ProgressRing, TabPages Types,

CORE SYSTEM METHODS - OLDER,Was modernized**

  • Initialize - Initiate Theme/Color/App menu/Load Config/Show Login

Here is Translate Menu Items**

  • Timer10sec_Elapsed - Auto Backend Timer cycling by Config [default 5sec]

    • check if Backend is Accesible - Server status Control
    • load Server Setting
    • Load Application Parameters for NULL user
  • ShowLoginDialog - Login, Load User Params, Token, Enable Menu Items

  • ShowMessage - Shared Message for call from Pages For show in MainWindow

  • SetServiceStop - connect/disconnect menuItems Pages on Backend Service Status


DATALIST GLOBAL METHODS - OLDER,Was modernized**

  • cb_FilterDropDownClosed - Reload Datalist with filtering
  • Mi_filter_Click - Generate and show advanced filter (for SQL conditioning):
  • Cb_PrintReportsSelected - save filter to DB, open selected Report
  • Cb_verticalMenuSelected - Open selected Page/Agenda and set all controls,input,filter,reports status !!NEW AGENDA MUST BE DEFINED ONLY HERE.

INFO METHOD LIST SYSTEM CORE NOT NEEDED CHANGES - OLDER,Was modernized

  • Btn_about_click - Show About Info

  • WinMain_KeyDown - Global Control for Keyboard press ,implemented F1/ALT+Q

  • Btn_LaunchHelp_Click - Open index.chm Windows Help File

  • ApplicationClosing - Save theme, close App

  • AppRestart - Restart for Configuration Reload

  • StringToFilter - upload seted filter in page for actual view

  • RemoveFilterItem_Click - Remove advanced filter Item

  • FilterField_SelectionChanged - support method for dynamic filter generation

  • MainGrid_IsDraggingChanged - For Draging TabPages - ACTUALLY DISABLED

  • Menu_action_Click - Automatic Datalist Controls Action Handler

  • AddNewTab - Automatic TabPages Controller

  • TabPanelOnSelectionChange - Automatic Controller for TabPages Changing

  • ChangeMenuView - Specific for Version with more menu types. Show/Hide used menu type

System Core Code Rules


/// <summary>
/// Library with standarztized Definitions and Methods For Develop Any System
/// </summary>
public class PageTemplatesCodeHelp
{
#region MyReStandartized Definitions  - OLDER,Was modernized

/// <summary>
/// Define Collection For Combobox Example
/// </summary>
public ObservableCollection<Language> Languages = new ObservableCollection<Language>() {
                                                        new Language() { Name = "System", Value = "system" },
                                                        new Language() { Name = "Czech", Value = "cs-CZ" },
                                                     };

#endregion



/// <summary>
/// Special Method for input limitation as number only
/// Its only for help
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void NumberValidationTextBox(object sender, TextCompositionEventArgs e)
{
    Regex regex = new Regex("[^0-9]+");
    e.Handled = regex.IsMatch(e.Text);
}


/// <summary>
/// Global Application Defined API Communication Types for Centalised using
/// </summary>
private async void DefinedAllAplicationApiComunicationTypes()
{
    ///ApiUrls variable is List With All API cals

    ///DBResultMessage is Class for Global using of All Api with all information of Request result
    DBResultMessage dBResult;

    /// Serialize Dataset for API sending INSERT/UPDATE
    TemplateClassList myRecord = new TemplateClassList();
    string json = JsonConvert.SerializeObject(myRecord);
    StringContent httpContent = new StringContent(json, Encoding.UTF8, "application/json");

    ///API for load/Select Data
    await ApiCommunication.GetApiRequest<List<TemplateClassList>>(ApiUrls.TemplateClassList, null, App.UserData.Authentification.Token);

    ///API for Data Insert
    dBResult = await ApiCommunication.PutApiRequest(ApiUrls.TemplateClassList, httpContent, null, App.UserData.Authentification.Token);

    ///API for Data Update
    dBResult = await ApiCommunication.PostApiRequest(ApiUrls.TemplateClassList, httpContent, null, App.UserData.Authentification.Token);

    ///API for Delete Data
    dBResult = await ApiCommunication.DeleteApiRequest(ApiUrls.TemplateClassList, "someId", App.UserData.Authentification.Token);

}

/// <summary>
/// Global Application avaiable Methods for All Pages for Centalised using
/// </summary>
private async void DefinedGlobalMainWindowMethodsForAllPages()
{

    ///Aplication Restart
    MainWindow.AppRestart();

    ///Progresring for Wait indication
    MainWindow.ProgressRing = Visibility.Hidden;

    ///Show Info message
    await MainWindow.ShowMessage(false, "Resources[\"dictionaryWord\"].ToString()");

    ///Show Confirm Dialog
    MessageDialogResult result = await MainWindow.ShowMessage(false, "Resources[\"dictionaryWord\"].ToString()" + " ", true);
    if (result == MessageDialogResult.Affirmative) { }

    ///Method For Sett Language of Each Page
    Language defaultLanguage = JsonConvert.DeserializeObject<Language>(App.Setting.DefaultLanguage);
    ///_ = MediaFunctions.SetLanguageDictionary(Resources, defaultLanguage.Value);

}


/// <summary>
/// Global Specific Methods For Customized Working  - OLDER,Was modernized
/// </summary>
private async void UsedSpecificMethodsForCustomizedWorking()
{

    #region Other Help Global Definitions and Methods
    ///Load Parameter From Table Parameters text is Parameter name
    var res = ServerCoreFunctions.ParameterCheck("someParameterName").Correct ? int.Parse(ServerCoreFunctions.ParameterCheck("someParameterName").Value) : 50;

    ///Set ComboBox Item By myValue (from selected record or another)
    int index = 0; ComboBox cb_defaultLanguage = new ComboBox();
    cb_defaultLanguage.Items.SourceCollection.Cast<Language>().ToList().ForEach(language => { if (language.Name == "myvalue") { cb_defaultLanguage.SelectedIndex = index; } index++; });

    ///Open File Dialog
    OpenFileDialog dlg = new OpenFileDialog
    { DefaultExt = ".exe", Filter = "Exe files |*.exe", Title = "Resources[\"fileOpenDescription\"].ToString()" };
    if (dlg.ShowDialog() == true) { } 
    #endregion

}



#region Other Custom Communications 
/// <summary>
/// Customized GET Call 
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void BtnApiTest_Click(object sender, RoutedEventArgs e)
{
    using (HttpClient httpClient = new HttpClient())
    {
        try
        {
            string json = await httpClient.GetStringAsync("someUrl");
            await MainWindow.ShowMessage(false, json);
        }
        catch (Exception ex) { await MainWindow.ShowMessage(true, "Exception Error : " + ex.StackTrace); }
    }
} 
#endregion

PAGE/AGENDA STANDARTIZED DEFINITION FOR CREATE NEW ANY SYSTEM STANDARD AGENGA

AGENDA (Page) IS BUILDED FROM STANDARTIZED METHODS FOR FULL CONTROL OF EACH STANDARD Agenda Page
	   Each FULL agenga has these Methods for work with SYSTEM CORE

AGENDA CONTAIN - DaTaModel Class File (Copied from Backend Server or DB Structure ScaffoldContext)
				 PreDefined XAML FORM (contain both LIST/FORM definitions) 
				 List od Global System Methods for Control Full Agenda in System Core

PAGE - AGENDA METHOD LIST
	Method InitializePage       - used by MenuClick - Load Dictionaries, Parameters, Translate Form Fields And Run 'LoadDataList' for Datalist/Dials, others, Set Record = False
	Method LoadDataList         - used by REFRESH Button - Call API for again load datasets in Page (DB Select)
	Method NewRecord            - used by NEW Button     - Open detail form for New Record
	Method EditRecord(false)    - used by EDIT Button    - Open detail form for edit Record
	Method EditRecord(true)     - used by COPY Button    - Open detail form for create copied Record (with ID=0)
	Method DeleteRecord         - used by DELETE Button  - Call delete API for selected record in datalist (DB Delete)

	Method Filter               - SEARCH Textbox - SIMPLE SEARCH in all defined columns in PAGE code - Method Filter
	Method DgListView_Translate - Translate Datalist column - translate column names by Xaml Language Dictionaries
	Method DgListView_MouseDoubleClick - Select and Open selected Record Detail
	Method DgListView_SelectionChanged - Select Record For control buttons enabling, show Report with join on Id

	Method BtnSave_Click    - Form to DataClassModel, send API (DB Insert/DB Update), Return to DataList View
	Method BtnCancel_Click  - Cancel Form and Return to DataListView
	Method SetRecord        - Load Selected Record (edit,copy) to Detail Form

	In Combined Forms with SubTable The methods Are copied as SubMethods (Translate,Data,Form Fields)

Standard SUBSELECT ComboBox/ListBox/ListView/Custom For Dial Join Record Selection (Addresses, Items, Etc.)

	Standard Method List for Full Mouse/Keyboard Control
	- SelectGotFocus - Call SubDataList Controller for Selection one Record for Selection 'UpdateCustomerSearchResults'
	- UpdateCustomerSearchResults - Control full SubData List, select, show Info message not exist, Select Founded Record
	- Customer_KeyDown - Keyboard Up/Down Event for Data listing in ListView Form Item/Input
	- SelectCustomer_Enter - Selection by Enter
	- MouseSelectCustomer_Click - Selection by Mouse
	- SetXxxxxx                 - Set Joined Fields From this Selection

	Standard Methods For SubDocItems INSERT/DELETE (Invoice Example)
	- dgSubListView_SelectionChanged - Select Item form List For Delete Control
	- BtnItemInsert_Click            - Insert new Item to SubDataList from SubFormInputFields
	- BtnItemDelete_Click            - Delete selected SubItem from DataList
	- ClearItemsFields               - Clear SubItemForm
	- SetSubListsNonActiveOnNewItem  - Load DataSources For SubItem Selections types (Dials -> ItemList, CurrencyList)

	Optional 
	- HideTiltButtons                - Hide/Show Button for show subDocument
	- TiltToInvoice_Click            - Open subDocument

Standard Tilt Documents (Next Joined Generating SubDoc Offer -> Order, etc)
	
	Standard Method List for full generation process
	- ImportInvoice - Import Existed Document (example in CreditNoteList)

PREPARED TEMPLATES FOR FAST DEVELOPING - Older was Modernized

SYSTEM TEMPLATES FOR MAKE ANY TOUCH/IS/ETC. SYSTEM

System HAS 4 Standard Data Form Types in Main Structure (System Templates)

Implemented Forms for build Robust Any System  
   TemplateListViewPage  - show DATALIST ONLY, used in Login history list
   TemplateListPage      - show DATALIST WITH DETAIL FORM, Standard Dials,  
                           used in Parameters, User, Roles, etc.
   TemplateListPageWithSubViewPage - show DATALIST WITH DETAIL FORM AND SUB TABLE DATAVIEW   
                                     used in Currency agenda 
   TemplateListPageWithSubPage - show DATALIST WITH DETAIL FORM AND SUB TABLE DATAVIEW + FORM 
                                 used in invoice, order for work 2Tables HEADER/Items in One time

System HAS 3 Form Types in Main Structure (All are in Templates)

DATALIST ONLY - TemplateListViewPage
Show Datalist only (Login history for example, views, etc..)

DATALIST WITH DETAIL FORM - TemplateListPage
Show Datalist and Detail Form for PAge Table ( Dials, Simple agendas with one primary table, etc...)

SETTING - TemplateSettingsPage
Customized Forms with unlimited posibilities,(Setting Form, special Form, special Page, Video, 3D, etc)

In System are implemented multimedia templates (MultiMedia Templates)

Implemented Special MultiMedia Forms
    TemplateDocumentViewPage - XPS,PDF,TXT,and more format direct viewer/Print
    TemplateSTLPage          - Show 3D STL project
    TemplateVideoPage        - Play MP4 Video player

Supported next implementation    
    GITHUB WPF TOOLS FOR SYSTEM IS / OS, HW can possible to implement for FREE

API communication - 4 TYPES is enough

For thinking, the development of tools and work with them worthy in the 21st century

It is so. INSERT/UPDATE/DETETE/SELECT are the mentioned types which are enough ensure the communication of any system. And top it all off with a single list of APIaddress calls and communication is resolved set up for this as a standardized automatic part of the kernel.

System kernel code dump, Where you just always add the address and don't care about anything else

System APIAddresList - all calls in one place

    /// <summary>
    /// ALL standard View AND Form API Call must end with "List" - These will automatic added for reports Definitions
    /// </summary>
    public enum ApiUrls
    {
        GlobalNETAttachmentList,
        GlobalNETAddressList,
        Authentication,
        BackendCheck,
        GlobalNETBranchList,
        GlobalNETCalendar,
        GlobalNETCreditNoteList,
        GlobalNETCreditNoteItemList,
        GlobalNETCurrencyList,
        GlobalNETDocumentAdviceList,
        GlobalNETExchangeRateList,
        GlobalNETIncomingInvoiceList,
        GlobalNETIncomingInvoiceItemList,
        GlobalNETIncomingOrderList,
        GlobalNETIncomingOrderItemList,

        GlobalNETTemplateClassList
    }

4 API Calls - SYSTEM Core module

    class ApiCommunication
    {
        public static async Task<Authentification> Authentification(ApiUrls apiUrl, string userName = null, string password = null)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes(userName + ":" + password)));
                    StringContent test = new StringContent("", Encoding.UTF8, "application/json");
                    HttpResponseMessage json = await httpClient.PostAsync(App.Setting.ApiAddress + "/" + apiUrl, test);
                    return JsonConvert.DeserializeObject<Authentification>(await json.Content.ReadAsStringAsync());
                }
                catch { return new Authentification() { Token = null, Expiration = null }; }
            }
        }

        public static async Task<T> GetApiRequest<T>(ApiUrls apiUrl, string key = null, string token = null) where T : new()
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try {
                    if (token != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); }
                    string json = await httpClient.GetStringAsync(App.Setting.ApiAddress + "/" + apiUrl + (!string.IsNullOrWhiteSpace(key) ? "/" + key : ""));
                    return JsonConvert.DeserializeObject<T>(json);
                } catch { return new T(); }
            }
        }

        public static async Task<DBResultMessage> PostApiRequest(ApiUrls apiUrl, HttpContent body, string key = null, string token = null)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    if (token != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); }
                    HttpResponseMessage json = await httpClient.PostAsync(App.Setting.ApiAddress + "/" + apiUrl + (!string.IsNullOrWhiteSpace(key) ? "/" + key : ""), body);
                    DBResultMessage result = JsonConvert.DeserializeObject<DBResultMessage>(await json.Content.ReadAsStringAsync());
                    if (result.ErrorMessage == null) { result.ErrorMessage = await json.Content.ReadAsStringAsync(); }
                    return result;
                }
                catch (Exception ex)
                { return new DBResultMessage() { RecordCount = 0, ErrorMessage = ex.Message + Environment.NewLine + ex.StackTrace, Status = "error" }; }
            }
        }

        public static async Task<DBResultMessage> PutApiRequest(ApiUrls apiUrl, HttpContent body, string key = null, string token = null)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    if (token != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); }
                    HttpResponseMessage json = await httpClient.PutAsync(App.Setting.ApiAddress + "/" + apiUrl + (!string.IsNullOrWhiteSpace(key) ? "/" + key : ""), body);
                    DBResultMessage result = JsonConvert.DeserializeObject<DBResultMessage>(await json.Content.ReadAsStringAsync());
                    if (result.ErrorMessage == null) { result.ErrorMessage = await json.Content.ReadAsStringAsync(); }
                    return result;
                }
                catch (Exception ex)
                { return new DBResultMessage() { RecordCount = 0, ErrorMessage = ex.Message + Environment.NewLine + ex.StackTrace, Status = "error" }; }
            }
        }

        public static async Task<DBResultMessage> DeleteApiRequest(ApiUrls apiUrl, string key = null, string token = null)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    if (token != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); }
                    HttpResponseMessage json = await httpClient.DeleteAsync(App.Setting.ApiAddress + "/" + apiUrl + (!string.IsNullOrWhiteSpace(key) ? "/" + key : ""));
                    return JsonConvert.DeserializeObject<DBResultMessage>(await json.Content.ReadAsStringAsync());
                }
                catch (Exception ex)
                { return new DBResultMessage() { RecordCount = 0, ErrorMessage = ex.Message + Environment.NewLine + ex.StackTrace, Status = "error" }; }
            }
        }

        public static async Task<bool> CheckApiConnection()
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    string json = await httpClient.GetStringAsync(App.Setting.ApiAddress + "/" + ApiUrls.BackendCheck);
                    return true;
                }
                catch
                { return false; }
            }
        }

    }

EASYBuilder Premade Templates

For thinking, the development of tools and work with them worthy in the 21st century

Pre-prepared templates are used to easily create a new agenda. Even if there are only a few of them, they are fully sufficient to create complex systems of more or less all types, not only IS Systems - for which 4 templates are enough, but also Special Systems, Media Systems, Management / BI, and many others. The system is nothing more than a list of very frequently repeated forms.

And you simply click on the graphic builder, which is part of Visual Studio. And that's the entire development of the system. Here is a list of prepared templates in the system for more than n IS SYSTEM


SystemTemplates - Media Templates --Older was modernized

  • TemplateListViewPage - Displays only the DataList. For example access history, Detailed form is not even needed

  • TemplateListPage - displays the DataList and the Detailed form both for displaying the list and editing the record. That is, the most common template where you just edit the fields according to the table.

  • TemplateListPageWithSubViewPage - displays the DataList and Detail form + additional DataList sub items. For example, the current exchange rate for currency. So it is a system type of Template

  • TemplateListPageWithSubPage - displays a DataList and a Detail Form + another DataList with a Detail Item Form. For example Invoice - Header + Items. And with these templates you can write, for example, the entire SAP.


MultiMediaTemplates - Media Templates --Older was modernized

TemplateVideoPage - Video player
TemplateSTLPage - STL representation of a 3D object
TemplateDocumentViewPage - Web browser that displays most file types
PDF, Docx, TXT, PNG, JPG, etc.


CustomTemplates - Custom templates - Just slanted forms after all

TemplateSettingsPage - sample template for creating a unique form These types, which you can click on in Visual Studio in the case of necessity, will reveal all unique types of forms when he wants anything atypical

Shared Agendas - Real Creation

In the SharedAgendas folder you will find approx. 50 Agendas - all forms already created forms for immediate use or as an inspiration for the creation of new agendas.

Code Examples

https://learn.microsoft.com/cs-cz/samples/browse/?terms=xaml


Literature

https://www.c-sharpcorner.com/article/what-is-power-bi-report-builder-and-how-to-design-paginated-report-using-power-b/ https://github.com/majorsilence/My-FyiReporting/releases https://mahapps.com/api/MahApps.Metro.Controls/ https://helix-toolkit.github.io/ https://www.c-sharpcorner.com/UploadFile/mahesh/viewing-word-documents-in-wpf/ https://techcohere.com/post/Create-PDF-File-From-WPF-Window-using-iTextsharp-1001 https://www.c-sharpcorner.com/UploadFile/mahesh/viewing-word-documents-in-wpf/ https://github.com/xceedsoftware/wpftoolkit https://www.tutorialspoint.com/wpf/wpf_3d_graphics.htm

Number Formats (For Parameters) https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings

Manual Builder https://github.com/EWSoftware/SHFB/releases https://github.com/psoares33/FyiReporting-Docs/wiki


all method in MainWindow from Agenda Page Example

((SchedulerPage)((MainWindowViewModel)DataContext).TabContents[0].Content).LoadScheduledTask();

Convert Project to ASPNETCORE project

https://learn.microsoft.com/cs-cz/dotnet/core/porting/upgrade-assistant-overview?WT.mc_id=dotnet-35129-website dotnet tool install -g --add-source "https://api.nuget.org/v3/index.json" --ignore-failed-sources upgrade-assistant upgrade-assistant upgrade převod na web

Connection string Example

Server=192.168.1.35,1433;Database=db;User ID=user;Password=pw;
Server=SQLSRV;DataBase=db;Trusted_Connection=True;Connect Timeout=30;

"RdlReader.exe" "C:\WorkListPrint.rdl" -p "&Search=%%&Id=0"

Report has dataset and you can insert field over right mouse/ insert / object /

Expressions PageBreak ={PersonalNumber} - new page by each personalNumber

functions in C# not MSSQL

using ="Filter:" + Replace({?Search}, "%", "") - Search is param, replace %%

for run report mut be set Default values for parameters =Fields!OperationNumber.Value + " " + {Note} =Sum({Amount})

Call from System Thread

volani funkce ze stejneho vlakna
this.Invoke(() => { if (ServiceStatus != Resources["running"].ToString()) reloadScheduledTasks(); });

Set Collor Icon programmaticaly

Application.Current.MainWindow.Icon = IconMaker.Icon(Colors.White);

Remove opened Page programatically

MetroWindow wnd = (MetroWindow)App.Current.MainWindow;
TabablzControl tc = (TabablzControl)wnd.FindName("InitialTabablzControl");
TabContent itc0 = (TabContent)tc.SelectedItem;
tc.RemoveFromSource(itc0);

rogram Help - Will be implemented

Adding Help
#region Help Added
        private DependencyObject CurrentHelpDO { get; set; }
        private Popup CurrentHelpPopup { get; set; }
        private bool HelpActive { get; set; }
        private MouseEventHandler _helpHandler = null;
        static bool isHelpMode = false;
#endregion

private void Window_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    if (isHelpMode && 1 == 0)
    {
        e.Handled = true;
        isHelpMode = false;
        Mouse.OverrideCursor = null;

        if (Help.MyHelpCommand.CanExecute(null, this))
        {
            Help.MyHelpCommand.Execute(null, this);
        }
    }
}

private void winMain_MouseMove(object sender, MouseEventArgs e)
{
    HitTestResult hitTestResult = VisualTreeHelper.HitTest(((Visual)sender), e.GetPosition(this));

    if (hitTestResult.VisualHit != null && CurrentHelpDO != hitTestResult.VisualHit)
    {
        DependencyObject checkHelpDO = hitTestResult.VisualHit;
        string helpText = AutomationProperties.GetHelpText(checkHelpDO);

        while (String.IsNullOrEmpty(helpText) && checkHelpDO != null && checkHelpDO != mainWindow)
        {
            checkHelpDO = VisualTreeHelper.GetParent(checkHelpDO);
            helpText = AutomationProperties.GetHelpText(checkHelpDO);
        }

        if (String.IsNullOrEmpty(helpText) && CurrentHelpPopup != null)
        {
            CurrentHelpPopup.IsOpen = false;
            CurrentHelpDO = null;
        }
        else if (!String.IsNullOrEmpty(helpText) && CurrentHelpDO != checkHelpDO)
        {
            CurrentHelpDO = checkHelpDO;
            if (CurrentHelpPopup != null)
            {
                CurrentHelpPopup.IsOpen = false;
            }

            CurrentHelpPopup = new Popup()
            {
                PopupAnimation = PopupAnimation.Scroll,
                PlacementTarget = (UIElement)hitTestResult.VisualHit,
                IsOpen = true,
                Child = new Border()
                {
                    CornerRadius = new CornerRadius(10),
                    BorderBrush = new SolidColorBrush(Colors.Goldenrod),
                    BorderThickness = new Thickness(2),
                    Background = new SolidColorBrush(Colors.LightYellow),
                    Child = new TextBlock()
                    {
                        Margin = new Thickness(10),
                        Text = helpText.Replace("\\r\\n", "\r\n"),
                        FontSize = 14,
                        FontWeight = FontWeights.Normal
                    }
                }
            };
            CurrentHelpPopup.IsOpen = true;
        }
    }
}

private void btnHelp_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    if (isHelpMode)
    {
        isHelpMode = false;
        Mouse.OverrideCursor = null;
    }
}

private void btn_LaunchHelp_Click(object sender, RoutedEventArgs e)
{
    System.Windows.Forms.Help.ShowHelp(null, "SIMTERM.chm");
}

private void ToggleHelp()
{
    CurrentHelpDO = null;
    if (CurrentHelpPopup != null)
    {
        CurrentHelpPopup.IsOpen = false;
    }

    HelpActive = !HelpActive;

    if (_helpHandler == null)
    {
        _helpHandler = new MouseEventHandler(winMain_MouseMove);
    }

    if (HelpActive)
    {
        mainWindow.MouseMove += _helpHandler;
    }
    else
    {
        mainWindow.MouseMove -= _helpHandler;
    }
    ToggleHelp(mainWindow);
}

private void ToggleHelp(DependencyObject dependObj)
{
    for (int x = 0; x < VisualTreeHelper.GetChildrenCount(dependObj); x++)
    {
        DependencyObject child = VisualTreeHelper.GetChild(dependObj, x);
        ToggleHelp(child);
    }

    if (dependObj is UIElement)
    {
        UIElement element = (UIElement)dependObj;

        if (HelpActive)
        {
            string helpText = AutomationProperties.GetHelpText(element);

            if (!String.IsNullOrEmpty(helpText))
            {
            }
        }
    }
}

Developing Page Code Help

/// <summary>
    /// Library with standardize Definitions and Methods For Develop Any System
    /// </summary>
    public class PageTemplatesCodeHelp {

        #region MyReStandartized Definitions

        /// <summary>
        /// Define Collection For ComboBox Example
        /// </summary>
        public ObservableCollection<Language> Languages = new ObservableCollection<Language>() {
                                                                new Language() { Name = "System", Value = "system" },
                                                                new Language() { Name = "Czech", Value = "cs-CZ" },
                                                             };

        #endregion MyReStandartized Definitions

        /// <summary>
        /// Special Method for input limitation as number only
        /// Its only for help
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void NumberValidationTextBox(object sender, TextCompositionEventArgs e) {
            Regex regex = new Regex("[^0-9]+");
            e.Handled = regex.IsMatch(e.Text);
        }

        /// <summary>
        /// Example of Load System Parameters for Page
        /// Add Call this method Before LoadDatalist and Tilt Documents
        /// LoadParameters() will be later translating Detail Fields
        /// </summary>
        private async void LoadParameters() {
            string itemVatPriceFormat = await DataOperations.ParameterCheck("ItemVatPriceFormat");
            string documentVatPriceFormat = await DataOperations.ParameterCheck("DocumentVatPriceFormat");
            int intValue = int.Parse(await DataOperations.ParameterCheck("DocumentRowHeight"));
        }

        /// <summary>
        /// Global Application Defined API Communication Types for Centralized using
        /// </summary>
        private async void DefinedAllAplicationApiComunicationTypes() {
            ///ApiUrls variable is List With All API calls

            ///DBResultMessage is Class for Global using of All API with all information of Request result
            DBResultMessage dBResult;

            /// Serialize Dataset for API sending INSERT/UPDATE
            TemplateClassList myRecord = new TemplateClassList();
            string json = JsonConvert.SerializeObject(myRecord);
            StringContent httpContent = new StringContent(json, Encoding.UTF8, "application/json");

            ///API for load/Select Data
            await ApiCommunication.GetApiRequest<List<TemplateClassList>>(ApiUrls.GlobalNETTemplateClassList, null, App.UserData.Authentification.Token);

            ///API for Data Insert
            dBResult = await ApiCommunication.PutApiRequest(ApiUrls.GlobalNETTemplateClassList, httpContent, null, App.UserData.Authentification.Token);

            ///API for Data Update
            dBResult = await ApiCommunication.PostApiRequest(ApiUrls.GlobalNETTemplateClassList, httpContent, null, App.UserData.Authentification.Token);

            ///API for Delete Data
            dBResult = await ApiCommunication.DeleteApiRequest(ApiUrls.GlobalNETTemplateClassList, "someId", App.UserData.Authentification.Token);
        }

Developing Global MainWindow Code Help

// <summary>
        /// Global Application available Methods for All Pages for Centralized using
        /// </summary>
        private async void DefinedGlobalMainWindowMethodsForAllPages() {
            ///Application Restart
            App.AppRestart();

            ///ProgresRing for Wait indication
            MainWindow.ProgressRing = Visibility.Hidden;

            ///Show Info message
            await MainWindow.ShowMessage(false, "Resources[\"dictionaryWord\"].ToString()");

            ///Show Confirm Dialog
            MessageDialogResult result = await MainWindow.ShowMessage(false, "Resources[\"dictionaryWord\"].ToString()" + " ", true);
            if (result == MessageDialogResult.Affirmative) { }

            ///Method For Sett Language of Each Page
            Language defaultLanguage = JsonConvert.DeserializeObject<Language>(App.Setting.DefaultLanguage);
            ///_ = SystemOperations.SetLanguageDictionary(Resources, defaultLanguage.Value);
        }

        /// <summary>
        /// Global Specific Methods For Customized Working
        /// </summary>
        private async void UsedSpecificMethodsForCustomizedWorking() {

            #region Other Help Global Definitions and Methods

            ///Load Parameter From Table Parameters text is Parameter name
            var res = int.Parse(await DataOperations.ParameterCheck("someParameterName"));

            ///Set ComboBox Item By myValue (from selected record or another)
            int index = 0; ComboBox cb_defaultLanguage = new ComboBox();
            cb_defaultLanguage.Items.SourceCollection.Cast<Language>().ToList().ForEach(language => { if (language.Name == "myvalue") { cb_defaultLanguage.SelectedIndex = index; } index++; });

            ///Open File Dialog
            OpenFileDialog dlg = new OpenFileDialog
            { DefaultExt = ".exe", Filter = "Exe files |*.exe", Title = "Resources[\"fileOpenDescription\"].ToString()" };
            if (dlg.ShowDialog() == true) { }

            #endregion Other Help Global Definitions and Methods
        }

Customizing Page Code Help

 /// <summary>
        /// Customized GET Call
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnApiTest_Click(object sender, RoutedEventArgs e) {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    string json = await httpClient.GetStringAsync("someUrl");
                    await MainWindow.ShowMessage(false, json);
                }
                catch (Exception ex) { await MainWindow.ShowMessage(true, "Exception Error : " + ex.StackTrace); }
            }
        }

 /// <summary>
    /// Typical Table schema for API which you copy from Generated Model in API Server
    /// On API server is Automatically generated by Scaffold command
    /// Class is Same as API result
    /// Example Load Data: listVariable = await ApiCommunication.GetApiRequest<List<TemplateClassList>>(ApiUrls.GlobalNETTemplateClassList, null, App.UserData.Authentification.Token);
    /// </summary>
    public partial class ExampleClassList {
        public int Id { get; set; } = 0;
        public string SystemName { get; set; } = null;
        public string Description { get; set; } = null;
        public int UserId { get; set; }
        public bool Active { get; set; }
        public DateTime TimeStamp { get; set; }
    }

    /// <summary>
    /// Extend API Class with Custom Column in One dataset
    /// !!!SYSTEM CONDITION: Name must contain "Extended" 
    /// !!!FOR NULL SET IN THE JOING FIELDS BEFORE SEND OVER API
    /// 
    /// Move the fields with SAME NAME as Joined Table on API to ExtendedClass
    /// Will be set to 'null' Before API send
    /// 
    /// Using: for Translation, Info about joined table, etc
    /// It must be cleaned by operation "NullSetInExtensionFields" before Database operation 
    /// for disable join control on API for valid independent table
    /// Other is valid join key for other Tables
    /// </summary>
    public partial class ExtendedExampleClassList : TemplateClassList {

        public string Currency { get; set; }  // its join to table Currency
        public string TotalCurrency { get; set; }


        public ExtendedExampleClassList() { }
        public ExtendedExampleClassList(ItemList ch) {
            foreach (var prop in ch.GetType().GetProperties())
            { this.GetType().GetProperty(prop.Name).SetValue(this, prop.GetValue(ch, null), null); }
        }
    }


    /// <summary>
    /// WARNING: If you Add the field with Same Name as joined table in Database Model
    /// you must set this field as 'null' before send Insert / Update
    /// in HttpContent must Be as 'null' value other is taken as Data Join by API Server
    ///
    /// SIMPLE USING
    /// API Class is extended on root level by custom fields
    /// Example Load Data and Fill custom Fields:
    ///
    /// listVariable = await ApiCommunication.GetApiRequest<List<TemplateClassList>>(ApiUrls.GlobalNETTemplateClassList, null, App.UserData.Authentification.Token);
    /// listVariable.ForEach(async rec => { rec.Translation = await DBOperations.DBTranslation(rec.SystemName); });
    /// </summary>
    public partial class ExampleClassListWithLocalTranslation {
        public int Id { get; set; } = 0;
        public string SystemName { get; set; } = null;
        public string Description { get; set; } = null;
        public int UserId { get; set; }
        public bool Active { get; set; }
        public DateTime TimeStamp { get; set; }

        public string Translation { get; set; } = null;
    }


MarkDown Template Help



SYSTEM PROJECT STRUCTURE - DECRIPTION

  1. APP Initialization - Starting APP with Welcome Page by JSON Setting
    - Initialize Technologies
    - Including Core Styles and themes
    - Set Global Properties
    - Set Global DataLists (Parameters, Setting, Tilts, System Classes, UserData, Erroer Handlers, API Security, etc)
    - Set CrashReporting join

  2. Welcome Page - Video Start Page with Mottos

  3. MainWindow - Central System Core Point where are All Global Shared methods for system core running

  4. LOGICAL HARD DEFINED SYSTEM STRUCTURE Namespaces
    - Pages - ALL Agendas must BE in PAGES ALL 3 TYPED FORMS (Defined in Templates)
    - Classes - EACH AGENDA has 2 FILES - CLASS WITH DB/BACKEND/CUSTOMIZED Class AND XAML FORM

  5. API Communications
    - Class File with API Definitions, All API URLs for communication with Backend, Response format, System Auth
    - GET,POST,PUT,DELETE universal API Cals for full system (All agendas) - Communication control
    - other Logics rules Are implemented in DB Structure - Foreign keys, Views, Procedures

  6. GLOBAL Styles - Styles for standardized show vies, form, menu, other or custom controls, inputs, list, menu, etc.

  7. GLOBAL Classes - Universal System Classes for correct work SYSTEM CORE
    -Parameters, Tilt Types, universal Doc Class, Server Set class, etc...

  8. GLOBAL Functions
    -MediaFunctions - Special methods for file formats work, mailSend, images functions, Project Version, System Dictionaries
    -FileFunctions - COPY,SAVE,DELETE,CHECK Files/Directories, etc.
    -ServerCoreFunctions - System Parameters, Advanced Filter Generator, etc.

  9. Languages Folder for XAML Language Files

  10. Manual Folder - WIN Developer Auto generated Help Files with All Core Reviews (F1 - Only for Developers) Generated by External OXYGEN

  11. TAB&SYSTEM - Methods and Definitions for CORE Graphics of SYSTEM Builder Tab control, definitions, models, crashReport, Delegates, Theme/Color Control, System Updater, Help etc.

  12. Data Folder - External image files, json, and all others external files, examples for system

  13. AGENDAS - Folder With All Agendas (Each Form=Agenda has unique defined format -> Class + Xaml Template Form or you can create custom any form)

     EACH Created FORM is AGENDA - EXAMPLE Calendar - One Table, unique (SETTING TYPE PAGE) Form
     All agendas you can create from SYSTEM Templates which existed in system. Its prepared for build Robust System, Multimedia system, Terminals, Etc.
    

MarkDown Item Template



EASYTOOLS

  • Addons for Touch panels, Controls,Data types, Forms, Media, Docs, 3D,
  • Are Fully Free for Download (Each Licence Package included)
  • Oppened OpenSource Community for including more than 1000 tools to system by community
  • There are tools for EASYSYSTEMBuilder only

IMPLEMENTED TOOLS

Calendar - Calendar Control for Calendar Agenda - Unique Agenda and System Page
CrashReporter - Autoatic Email sender to Developer if some fail in system core detected
SqlConnectionDialog - Connection Dialog for connect to MSSQL server for run SQL commands
TouchKeyboard - TouchKeyboard for implementing as TouchPanels/Terminal/Etc.
VNCServer - Implemented Remote connection support
ImageLibrary - Functionalities for Editing Images

POSIBILITIES

  • You can implement more than 1000 WPF tools and functionalities on Github For Free
  • Simple Github Implementations by WPF Library
  • None limitations for implementing any IS/OS/Other tools
  • BackWard Complatibility to WINDOWS XP+

MarkDown Item Template



FYI Reporting - FreeWare Full Report Designer and Viewer

for Printing All document Types with Images, Barcodes, EAN, QR, Graphs, SubReport, etc.

IMPORTANT INFO FOR REPORT DEVELOP

  • Reports are for developping setted Default Parameters.
  • If the report is called from the system - All parameters are replaced by system sended params
  • Each Report can has more Datasets (subreports not need for Header/Items Views)
  • More Examples are Defined
  • Full Developing of new reports are supported
  • Included commandline Tool, Report Viewer, Report Designer

JOINING WITH EASYSYSTEMBuilder - Calling Reports

Directly - System sending these parameters directly to opening Report
    connectionString [Connect] - For Report connection to Database
    table name [TableName] - primary tablename from datalist
    record ID [Id] - Selected record Id
    Simple Search Parameter [Search] - For simple search in Datalist Fields
    
Over DB  - System save all filter informations to table 'ReportQueueList' and 
           to all record with has selected Datalist Table. 
           After Saving to DB is Called open Report. Its for Reports with using DB  
           procedure 'ReportDataset' for Full DB defined Data Selections
           Direct parameters not need for this using

EASYSYSTEMBuilder SYSTEM Conditions for Reports

  • Connection String is Defined in setting for All reports in Application (Client)

  • All APIUrls with 'List' word on end are automaticaly added for insert Report for this Table

  • All System reports are Saved in Database - table 'ReportList'

  • For Print is downloaded and open with direct params everyTime

  • 'ReportQueueList' Definitions is second method for Print report,
    which the definition is full in DB (can be defined multi Datasets)

  • Report can combine both method for Load Datasets (Over stored procedure or direct selection with params)

  • Print Report Action you can set for Record Selection Only

  • Unlimited Print Reports you Define for Primary Table - DataList

  • System has these joins: Datalist, Rec ID, simple Search, Advanced Search

  • Each join [param] can be separated for run alone or combined with others

  • Full SQL and SQLexec are supported

"RdlReader.exe" "C:\WorkListPrint.rdl" -p "&Search=%%&Id=0"

Report has dataset and you can insert field over right mouse/ insert / object /

Expressions PageBreak ={PersonalNumber} - new page by each personalNumber

functions in C# not MSSQL

using ="Filter:" + Replace({?Search}, "%", "") - Search is param, replace %%

for run report mut be set Default values for parameters =Fields!OperationNumber.Value + " " + {Note} =Sum({Amount})

SET FMTONLY OFF;

SELECT
w.[Id],FORMAT([Date],'MM.yyyy') as Month,
FORMAT([Date],'dd.MM.yyyy') as Date,
CONCAT(FORMAT([Date],'MMyy'),w.[PersonalNumber]) as ListBreak,
w.[PersonalNumber],o.[PartNumber],w.[WorkPlace],w.[OperationNumber],
[WorkTime],[Pcs],[Amount],[WorkPower] ,[Name],[SurName],o.[Note]
FROM [WorkList] w,[PersonList] p,[OperationList] o 
WHERE w.PersonalNumber = p.PersonalNumber AND w.WorkPlace = o.WorkPlace 

AND o.OperationNumber = w.OperationNumber AND
(@Id = 0 AND ((LEN(@Search) > 2 AND w.Id LIKE @Search) OR LEN(@Search) = 2))
OR w.Id = @Id 

ORDER BY w.[Date] ASC, w.PersonalNumber, w.[OperationNumber]
--Select with simple search and Id selection
SELECT Id, UserName, TerminalName, Description, Timestamp 
FROM LoginHistoryList 
WHERE 1=1 AND (
( @Search <> '%%' AND id LIKE @Search )
OR ( @Search = '%%' AND @Id = 0  )
OR ( @Search = '%%' AND @Id <> 0 AND Id = @Id )
)
--Selection with direct params
SELECT Id, UserName, TerminalName, Description, Timestamp 
FROM LoginHistoryList 
WHERE 1=1 AND (
( @Search <> '%%' AND id LIKE @Search )
OR ( @Search = '%%' AND @Id = 0  )
OR ( @Search = '%%' AND @Id <> 0 AND Id = @Id )
)
--Select with advanced Filter

SET FMTONLY OFF;
DECLARE @whereClause NVARCHAR(MAX) = @Filter ;
DECLARE @sql NVARCHAR(MAX) = 'SELECT Id, UserName, TerminalName, Description, Timestamp FROM LoginHistoryList  WHERE @whereClause';

SELECT @sql = REPLACE(@sql, '@whereClause', @whereClause);

EXEC sp_executesql @sql;
--Selection with ReportQueueList definitions
SET FMTONLY OFF;
EXEC ReportDataset @TableName='tableName', @Sequence='SeqNr' 
--Selection with Formating and Dials Fields
SET FMTONLY OFF;

SELECT
w.[Id],FORMAT([Date],'MM.yyyy') as Month,
FORMAT([Date],'dd.MM.yyyy') as Date,
CONCAT(FORMAT([Date],'MMyy'),w.[PersonalNumber]) as ListBreak,
w.[PersonalNumber],o.[PartNumber],w.[WorkPlace],w.[OperationNumber],
[WorkTime],[Pcs],[Amount],[WorkPower] ,[Name],[SurName],o.[Note]
FROM [WorkList] w,[PersonList] p,[OperationList] o 
WHERE w.PersonalNumber = p.PersonalNumber AND w.WorkPlace = o.WorkPlace 

AND o.OperationNumber = w.OperationNumber AND
(@Id = 0 AND ((LEN(@Search) > 2 AND w.Id LIKE @Search) OR LEN(@Search) = 2))
OR w.Id = @Id 

ORDER BY w.[Date] ASC, w.PersonalNumber, w.[OperationNumber]

SYSTEM PRINTING

  • On Print Request

    1. Updated all filters in table 'ReportQueueList' on records for selected table
    2. download from DB and open report with sended these params for Direct SQL support Params
    • Search = Searched Value
    • Id = Record Id from table
    • Filter= Setted Filter command in sql syntax after WHERE clause
    • TableName - selected table Name
    • Connect - connection string from client settings
    1. Run report. Done
  • Report Types:

    • Alone Report file with ful own SQL command and use params for selection. Examples You can see in edited reports, Instalation folder and Help
    • Sql defined in ReportQueueList Table, in report is only command: SET FMTONLY OFF;EXEC ReportDataset @TableName='tablename', @Sequence='10'
  • Parameters are sending Every Time, For Debuging you can use MSSQL SQL Profiller

  • In database is Saved Stored Procedure: ReportDataset for folded filter, ReportQueueList table is managing

  • All report are shared for selected database

  • Each print is report again downloaded from database for new run

  • Each report can be exported in Reports menu

  • All reports are saved in instalation folder as Examples

  • All reports has same parameters

    Dynamic Filtering:

  • For managed SQL command can be 'Search' and 'Id' params ignored = Each Filter working independently Setted Priority: 1] Combined Filter 2] Id 3] Searched Value (searched columns are rardcoded in 'Filter' method on each Datalist) in Report must be hardcoded again

  • in stored Procedure: 'ReportDataset' if Both Searfh and Id Ignored - Filter is aply alone else all cobndition are joined with 'OR' clause for Each Filter setting: 'Id' and 'Search'

    Its Prepared for future MultiRows Selection

  • More Info Via Help File FYI Reporting Documentations on Github

  • In one Report you can setted more DATALists = DB SELECTS (Invoice Example - Header/Item) and you can set any field over Report Parameter for using in all Report Positions


MarkDown Item Template



GlobalNET

Contents

AccessRoleListPage type

Namespace

GlobalNET.Pages

Summary

AccessRoleListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

AddressListPage type

Namespace

GlobalNET.Pages

Summary

AddressListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ApiUrls type

Namespace

GlobalNET.Api

Summary

ALL standard View AND Form API Call must end with "List" - These will automatic added for reports Definitions

App type

Namespace

GlobalNET

Summary

App

#ctor() constructor

Summary

Application Global Exceptions Controls Definitions

Parameters

This constructor has no parameters.

SystemRuntimeData constants

Summary

Global Application Startup Settings Central Parameters / Languages / User / Configure TODO must centalize to Globall APP class

TiltReceiptDoc constants

Summary

Tilt Document types definitions

AppQuitRequest(silent) method

Summary

System or Quit

Parameters
NameTypeDescription
silentSystem.Boolean

AppRestart() method

Summary

System Restart Controller

Parameters

This method has no parameters.

ApplicationLogging(ex,customMessage) method

Summary

Full Application System logging Running If is AppSystemTimer is Enabled for disable other processes exceptions Full Application logging to file if enabled and to DB for solving by Developers Supported Custom Message Here Is Filling Local System Logger for Developers Logging to Database Are All non Developer working

Parameters
NameTypeDescription
exSystem.Exception
customMessageSystem.String

ApplicationQuit(sender,e) method

Summary

MainWindow Closing Handler for Cleaning TempData, disable AddOns / Tool and Third Party Software Closing Third Party processes

Parameters
NameTypeDescription
senderM:GlobalNET.App.ApplicationQuit

CurrentDomain_FirstChanceException(sender,e) method

Summary

FullSystem Logging Every Exception types are monitored for maximize correct running all processes, System addOns, systems, communications, threads, network All detail of application system add all used possibilities

Parameters

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

Main() method

Summary

Application Entry Point.

Parameters

This method has no parameters.

OnStartup(e) method

Summary

Connected Starting Video

Parameters
NameTypeDescription
eSystem.Windows.StartupEventArgs

RootAppKeyDownController(sender,e) method

Summary

Keyboard Pointer to Central Keyboard Reaction Definitions

Parameters

AppVersion type

Namespace

GlobalNET.Classes

Summary

Program version Class

AttachmentListPage type

Namespace

GlobalNET.Pages

Summary

AttachmentListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

Authentification type

Namespace

GlobalNET.GlobalClasses

Summary

Class for User Authentication information

BranchListPage type

Namespace

GlobalNET.Pages

Summary

BranchListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

CalendarPage type

Namespace

GlobalNET.Pages

Summary

CalendarPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ClientSettingsPage type

Namespace

GlobalNET.Pages

Summary

ClientSettingsPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

Config type

Namespace

GlobalNET.Classes

Summary

Client configuration Definition

CrashReporterSettings type

Namespace

GlobalNET.SystemConfiguration

Summary

Libreria condivisa

_ReportCrash constants

Summary

FirstRun

CreditNoteListPage type

Namespace

GlobalNET.Pages

Summary

CreditNoteListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

CurrencyListPage type

Namespace

GlobalNET.Pages

Summary

CurrencyListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

DBOperations type

Namespace

GlobalNET.GlobalOperations

Summary

Centralised DBFunctions as Load DB Congig, System Dials (Language, Params) Another Db functions As Saving System Loging, Language Dictionary Autofiling

DBTranslation(systemName,notCreateNew,comaList,lang) method

Summary

Centralised Method for Translating by DB Dictionary Service insert the news words for translate (After translate request) to Database Automaticaly with Empty Translate. Service return translate if is possible or requested word send back CamelCase ignored

Returns
Parameters
NameTypeDescription
systemNameSystem.String
notCreateNewSystem.Boolean
comaListSystem.Boolean
langSystem.String

LoadOrRefreshUserData() method

Summary

Centralised Method for Refresh All UserData params, for correct App running. Thinking for remove and new Load Actualy limited by DebugingHelpSetting Itr user After Succes User Login

Parameters

This method has no parameters.

LoadStartupDBData() method

Summary

Startup Load System Parameters ,Languages, System Controlling, Server Setting

Parameters

This method has no parameters.

SaveSystemFailMessage(message) method

Summary

Save Exception to DB Fail List (System Log) Write to System Logger

Parameters
NameTypeDescription
messageSystem.String

SetNonUserDataOnSuccessStartUp() method

Summary

SYSTEM: Set NonUser Startup Data for Correct Prepare System Its for All Status Possible - NODB,OS,IS,Network,etc. For check ANY possible problems out of System

Parameters

This method has no parameters.

DBResultMessage type

Namespace

GlobalNET.Api

Summary

Global API Definition of Result API calls for All Calling of Insert / Update / Delete

DataOperations type

Namespace

GlobalNET.GlobalOperations

Summary

Centralized DataOperations as Cleaning dataset Language Dictionary Auto filing

GetTranslatedApiList(listOnly,omitApiList) method

Summary

Global Method for Using API Uris as Unique Generic List for All API Call - logic is All standardized not only DataPages as automated Logic

Returns
Parameters
NameTypeDescription
listOnlySystem.Boolean
omitApiListSystem.Collections.Generic.List{System.String}

NullSetInExtensionFields``1() method

Summary

!!! SYSTEM RULE: ClassList with joining fields names must be null able before API operation !!! ClassName must contain: "Extended" WORD Extension field in Class - Dataset must be set as null before Database Operation else is joining to other dataset is valid and can be blocked by fail key Its Check Extended in ClassName - SYSTEM RULE

Returns
Parameters

This method has no parameters.

Generic Types
NameDescription
T

ParameterCheck(parameterName) method

Summary

Return Requested User or if not exist default DB parameter CamelCase Ignored

Returns
Parameters
NameTypeDescription
parameterNameSystem.String

DataViewSupport type

Namespace

GlobalNET.Classes

Summary

Actual List Item informations for Controls each Page in MainView

DocumentAdviceListPage type

Namespace

GlobalNET.Pages

Summary

DocumentAdviceListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

DocumentItemList type

Namespace

GlobalNET.GlobalClasses

Summary

Univessal Document List (Item) for Offer,Order,Invoice

DocumentTypeListPage type

Namespace

GlobalNET.Pages

Summary

DocumentTypeListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

DocumentationPage type

Namespace

GlobalNET.Pages

Summary

DocumentationPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ExchangeRateListPage type

Namespace

GlobalNET.Pages

Summary

ExchangeRateListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

FileOperations type

Namespace

GlobalNET.GlobalOperations

CopyFiles(sourcePath,destinationPath) method

Summary

Prepared Method for Files Copy

Parameters
NameTypeDescription
sourcePathSystem.String
destinationPathSystem.String

CreateFile(file) method

Summary

Prepared Method for Create empty file

Returns
Parameters
NameTypeDescription
fileSystem.String

FileDetectEncoding(FileName) method

Summary

Prepared Method for Get Information of File encoding UTF8,WIN1250,etc

Returns
Parameters
NameTypeDescription
FileNameSystem.String

LoadSettings() method

Summary

Application Startup Check and configure Data Structure in folder ProgramData And required files, load client configuration config.json

Returns
Parameters

This method has no parameters.

SaveSettings() method

Summary

Function for saving Application Configuration This is client configuration only

Returns
Parameters

This method has no parameters.

VncServerIniFile(path) method

Summary

Generate ini file for start vns server default password: groupware

Returns
Parameters
NameTypeDescription
pathSystem.String

GeneratedInternalTypeHelper type

Namespace

XamlGeneratedNamespace

Summary

GeneratedInternalTypeHelper

AddEventHandler() method

Summary

AddEventHandler

Parameters

This method has no parameters.

CreateDelegate() method

Summary

CreateDelegate

Parameters

This method has no parameters.

CreateInstance() method

Summary

CreateInstance

Parameters

This method has no parameters.

GetPropertyValue() method

Summary

GetPropertyValue

Parameters

This method has no parameters.

SetPropertyValue() method

Summary

SetPropertyValue

Parameters

This method has no parameters.

GlobalRuntimeMonitor type

Namespace

GlobalNET.GlobalClasses

Summary

!!!SYSTEM Global Runtime Monitor Definition For One Point monitoring For Processes and each other Definition For optimize the System Running

TODO

  • move All Central Definitions Here
  • create Monitor Window for managing

GraphsPage type

Namespace

GlobalNET.Pages

Summary

GraphsPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

GroupListPage type

Namespace

GlobalNET.Pages

Summary

GroupListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

HardwareOperations type

Namespace

GlobalNET.GlobalOperations

ApplicationKeyboardMaping(sender,e) method

Summary

Application Keyboard controller

Parameters
NameTypeDescription
senderSystem.Windows.Input.KeyEventArgs

IconMaker type

Namespace

GlobalNET.GlobalGenerators

Summary

System Online Icon Generator from custom Path Its for working with Icon over Database Dynamically

Icon(color,iconPath) method

Summary

Generate Custom Icon from Defined Path

Returns
Parameters
NameTypeDescription
colorSystem.Windows.Media.ColorThe color.
iconPathSystem.StringThe icon path.

IgnoredExceptionListPage type

Namespace

GlobalNET.Pages

Summary

IgnoredExceptionListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ImageGalleryListPage type

Namespace

GlobalNET.Pages

Summary

ImageGalleryListPage

ClearGallery() method

Summary

Phycical clear local storage and form

Parameters

This method has no parameters.

GrayscaleClick(sender,e) method

Summary

Images Effect Part

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

ImageChangesCancelClick(sender,e) method

Summary

Image Graphics Changes Controllers

Parameters

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

LoadFromServer() method

Summary

Last proccess

Returns
Parameters

This method has no parameters.

RefreshViewPhoto(selectedPhotoId) method

Summary
Parameters
NameTypeDescription
selectedPhotoIdSystem.Nullable{System.Int32}selectedPhotoId -1 is Select Last

SaveImageToServer(onlyThis) method

Summary

null For Full Folder else No of dbId, 0 = new

Returns
Parameters
NameTypeDescription
onlyThisSystem.Nullable{System.Int32}

IncomingInvoiceListPage type

Namespace

GlobalNET.Pages

Summary

IncomingInvoiceListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

IncomingOrderListPage type

Namespace

GlobalNET.Pages

Summary

IncomingOrderListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ItemListPage type

Namespace

GlobalNET.Pages

Summary

ItemListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

Language type

Namespace

GlobalNET.Classes

Summary

Language definition support

LanguageListPage type

Namespace

GlobalNET.Pages

Summary

LanguageListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

LicenseActivationFailListPage type

Namespace

GlobalNET.Pages

Summary

LicenseActivationFailListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

LicenseAlgorithmListPage type

Namespace

GlobalNET.Pages

Summary

LicenseAlgorithmListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

LoginHistoryListPage type

Namespace

GlobalNET.Pages

Summary

LoginHistoryListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

MainWindow type

Namespace

GlobalNET

Summary

MainWindow

#ctor() constructor

Summary

System Core AND ALL shared functionalities

Parameters

This constructor has no parameters.

_hackyIsFirstWindow constants

Summary

MainControls Screen Variables

DataGridSelected property

Summary

Indicator for Enable New DataGrid Button

DataGridSelectedIdListIndicator property

Summary

DataGrid have selected record indicator

DgRefresh property

Summary

Indicator for enable Refresh Button Indicator

DownloadShow property

Summary

Indicator for show Downloading area

DownloadStatus property

Summary

Downloading of update status variable

OperationRunning property

Summary

Indicator for mark operation status for any programmatic operations

ProgressRing property

Summary

ProgressRing Visibility indicator

RunReleaseMode property

ServerLoggerSource property

Summary

System Logger Source Status and Controller This is status of Settings System Logger Source

ServiceRunning property

Summary

Service Status description

ServiceStatus property

Summary

Service Status public Variable

ShowSystemLogger property

Summary

System Logger Activator by Setted Parametr Can be setted for All Apps or Every User individually

SystemLogger property

Summary

System Online Logger for EASY developing

UserLogged property

Summary

User Logged Status

VncRunning property

AddOrRemoveTab(headerName,tabPage,tagText) method

Summary

Tabs Pages control for Insert/Move/Change Pages

Parameters
NameTypeDescription
headerNameSystem.String
tabPageSystem.Object
tagTextSystem.String

BtnKeyboardClick(sender,e) method

Summary

System tools controllers

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

BtnShowLoggerClick(sender,e) method

Summary

Show System On line Logger

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

Btn_LaunchHelp_Click(sender,e) method

Summary

Help button controller for Show Help File

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

Btn_LaunchMetroTheme_Click(sender,e) method

Summary

Show Metro Theme possibilities

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

Btn_about_click(sender,e) method

Summary

about applications information

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

CbFilterDropDownClosed(sender,e) method

Summary

Full dynamic apply sett ed filter

Parameters
NameTypeDescription
senderSystem.Object
eSystem.EventArgs

CbPrintReportsSelected(sender,e) method

Summary

Print Report Selection Controller

Parameters

FilterField_SelectionChanged(sender,e) method

Summary

Full dynamic set sign DataGrid advanced filter type

Parameters

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

MainGrid_IsDraggingChanged(sender,e) method

Summary

Dragging and separate to more Applications: TabPanel drag Controller - not Used

Parameters

MainWindow_Closing(sender,e) method

Summary

Applications Close Request Controller

Parameters

MainWindow_KeyDown(sender,e) method

Summary

MainWindow Keyboard pointer to Keyboard Central Application controller

Parameters

MainWindow_Loaded(sender,e) method

Summary

Application Loaded Start Backend timer for check server set Theme

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

MainWindow_MouseLeave() method

Summary

Writing Last User action for monitoring Free Time Used by: SceenSaver

Parameters

This method has no parameters.

Summary

Auto Menu Alphabetical sorting for selected Application Language

Parameters

This method has no parameters.

Summary

THIS IS AUTOMATIC INCLUDE DATALIST VIEW MENU in FORMAT APIcallPage open or select existed TabPanel VERTICAL MENU - Copy and CHANGE ONLY Page Name AND Report CALL as /XXXX

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

Mi_filter_Click(sender,e) method

Summary

Full dynamic Show/Hidden DataGrid advanced Filter Menu

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

Mi_logout_Click(sender,e) method

Summary

Application Logout button Controller

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

RemoveFilterItem_Click(sender,e) method

Summary

Full dynamic Remove Item from DataGrid advanced Filter

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

SetServiceStop() method

Summary

Server is unavailable All operations are blocked

Parameters

This method has no parameters.

ShowLoginDialog() method

Summary

Application Login Dialog

Parameters

This method has no parameters.

ShowMessage(error,message,confirm) method

Summary

Central Application Message Dialog for All Info / Error / other messages for User

Returns
Parameters
NameTypeDescription
errorSystem.Boolean
messageSystem.String
confirmSystem.Boolean

StringToFilter(filterBox,advancedFilter) method

Summary

Full dynamic build filter on selected page from saved advanced filter

Returns
Parameters
NameTypeDescription
filterBoxSystem.Windows.Controls.ComboBox
advancedFilterSystem.String

SystemLoggerSourceChanged_Click(sender,e) method

Summary

System Logger Source Selector Server Logger has Source From Client Settings by WebSocket URL

Parameters
NameTypeDescription
senderSystem.ObjectThe source of the event.
eSystem.EventArgsThe EventArgs instance containing the event data.

SystemTimerController(sender,e) method

Summary

Backend System Timer for check server connection

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Timers.ElapsedEventArgs

TabPanelOnSelectionChange(sender,e) method

Summary

Tab click selection change reload ID and Pointers for ListView Buttons

Parameters
NameTypeDescription
senderSystem.ObjectThe sender.
eSystem.Windows.Controls.SelectionChangedEventArgsThe SelectionChangedEventArgs instance containing the event data.

TiltOpenForm(translateHeader) method

Summary

Tilts: Standardized Opening or create Tilt documents

Returns
Parameters
NameTypeDescription
translateHeaderSystem.String

MathTypeOperations type

Namespace

GlobalNET.GlobalOperations

CheckTypeValue() method

Summary

Global DataTypes Chwecker with Bool Result Used on System Parameters

Parameters

This method has no parameters.

MaturityListPage type

Namespace

GlobalNET.Pages

Summary

MaturityListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

MediaOperations type

Namespace

GlobalNET.GlobalOperations

ArrayToImage(array) method

Summary

Cresate Bitmap Image from DB array to Image for show preview

Returns
Parameters
NameTypeDescription
arraySystem.Byte[]

GetImageImmediatelly(path) method

Summary

Important Closing connections of openned files by Form and binding this is solution for close oppened file after load Solution for All Files

Parameters
NameTypeDescription
pathSystem.String

MottoListPage type

Namespace

GlobalNET.Pages

Summary

MottoListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

MyCustomLifeSpanHandler type

Namespace

GlobalNET.Pages.DocumentationPage

MyCustomLifeSpanHandler type

Namespace

GlobalNET.Pages.TemplateWebViewPage

OnBeforePopup(chromiumWebBrowser,browser,frame,targetUrl,targetFrameName,targetDisposition,userGesture,popupFeatures,windowInfo,browserSettings,noJavascriptAccess,newBrowser) method

Summary

Block open New Solo Window Frame as popup

Returns
Parameters
NameTypeDescription
chromiumWebBrowserCefSharp.IWebBrowser
browserCefSharp.IBrowser
frameCefSharp.IFrame
targetUrlSystem.String
targetFrameNameSystem.String
targetDispositionCefSharp.WindowOpenDisposition
userGestureSystem.Boolean
popupFeaturesCefSharp.IPopupFeatures
windowInfoCefSharp.IWindowInfo
browserSettingsCefSharp.IBrowserSettings
noJavascriptAccessSystem.Boolean@
newBrowserCefSharp.IWebBrowser@

OnBeforePopup(chromiumWebBrowser,browser,frame,targetUrl,targetFrameName,targetDisposition,userGesture,popupFeatures,windowInfo,browserSettings,noJavascriptAccess,newBrowser) method

Summary

Block open New Solo Window Frame as popup

Returns
Parameters
NameTypeDescription
chromiumWebBrowserCefSharp.IWebBrowser
browserCefSharp.IBrowser
frameCefSharp.IFrame
targetUrlSystem.String
targetFrameNameSystem.String
targetDispositionCefSharp.WindowOpenDisposition
userGestureSystem.Boolean
popupFeaturesCefSharp.IPopupFeatures
windowInfoCefSharp.IWindowInfo
browserSettingsCefSharp.IBrowserSettings
noJavascriptAccessSystem.Boolean@
newBrowserCefSharp.IWebBrowser@

NotesListPage type

Namespace

GlobalNET.Pages

Summary

NotesListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

OfferListPage type

Namespace

GlobalNET.Pages

Summary

OfferListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

OperationListPage type

Namespace

GlobalNET.Pages

Summary

OperationListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

OutgoingInvoiceListPage type

Namespace

GlobalNET.Pages

Summary

OutgoingInvoiceListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

OutgoingOrderListPage type

Namespace

GlobalNET.Pages

Summary

OutgoingOrderListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ParameterListPage type

Namespace

GlobalNET.Pages

Summary

ParameterListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

PartListPage type

Namespace

GlobalNET.Pages

Summary

PartListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

PaymentMethodListPage type

Namespace

GlobalNET.Pages

Summary

PaymentMethodListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

PaymentStatusListPage type

Namespace

GlobalNET.Pages

Summary

PaymentStatusListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

PersonListPage type

Namespace

GlobalNET.Pages

Summary

PersonListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ReceiptListPage type

Namespace

GlobalNET.Pages

Summary

ReceiptListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ReportListPage type

Namespace

GlobalNET.Pages

Summary

ReportListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ReportQueueListPage type

Namespace

GlobalNET.Pages

Summary

ReportQueueListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ReportSelection type

Namespace

GlobalNET.Classes

Summary

Report naming support

Resources type

Namespace

GlobalNET.Properties

Summary

Třída prostředků se silnými typy pro vyhledávání lokalizovaných řetězců atp.

Culture property

Summary

Potlačí vlastnost CurrentUICulture aktuálního vlákna pro všechna vyhledání prostředků pomocí třídy prostředků se silnými typy.

ResourceManager property

Summary

Vrací instanci ResourceManager uloženou v mezipaměti použitou touto třídou.

no_photo property

Summary

Vyhledává lokalizovaný prostředek typu System.Drawing.Bitmap.

ScreenSaverPage type

Namespace

GlobalNET.Pages

Summary

ScreenSaverPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ServerSettingKeys type

Namespace

GlobalNET.Classes

Summary

Server Configuration definition for Backend API EASYDATACenter

ServerSettingPage type

Namespace

GlobalNET.Pages

Summary

ServerSettingPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

SupportPage type

Namespace

GlobalNET.Pages

Summary

SupportPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

SvgIconListPage type

Namespace

GlobalNET.Pages

Summary

SvgIconListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

SystemFailListPage type

Namespace

GlobalNET.Pages

Summary

SystemFailListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

SystemLoggerHelper type

Namespace

GlobalNET.SystemHelper

Summary

System Logger Helper Defined Central WebSocket Monitor Controller

DisposeSystemLoggerWebSocketMonitor() method

Summary

Disable Server Logger When the System logger is enabled

Parameters

This method has no parameters.

SystemLoggerWebSocketMonitorOnOff() method

Summary

Systems the logger web socket monitor on/off. Full Control For Server WebSocket Logger

Parameters

This method has no parameters.

SystemLoggerWebSocketClass type

Namespace

GlobalNET.SystemHelper

Summary

System Logger WebSocket Monitor Controller Class Definition For Centralized Using

SystemOperations type

Namespace

GlobalNET.GlobalOperations

Summary

Centralised System Functions for work with Types, methods, Formats, Logic, supported methods

FilterToString(filterBox) method

Summary

SYSTEM Advanced Filter Conversion for API return existing filter for saving to string in selected Page

Returns
Parameters
NameTypeDescription
filterBoxSystem.Windows.Controls.ComboBox

GetExceptionMessages(exception,msgCount) method

Summary

Mining All Exception Information For Central System Logger Ignore Some selected Fails is possible by Ignored Exception Settings

Returns
Parameters
NameTypeDescription
exceptionSystem.Exception
msgCountSystem.Int32

GetExceptionMessagesAll(exception,msgCount) method

Summary

Mining All Exception Information For Local System Logger EveryTime Show All fails for Best Developing On Expert Level

Returns
Parameters
NameTypeDescription
exceptionSystem.Exception
msgCountSystem.Int32

IncreaseFileVersionBuild() method

Summary

Automatic Increase version System Ideal for small systems with more release in 1 day Increase Windows Correct 3 position for Widows Installation In Debug is increase last 4 position

Returns
Parameters

This method has no parameters.

RandomString(length) method

Summary

Generate Random String with defined length

Returns
Parameters
NameTypeDescription
lengthSystem.Int32The length.

RemoveAppNamespaceFromString(stringForRemoveNamespace) method

Summary

Its Solution for this is a solution for demanding and multiplied servers Or Running SHARP and Test System By One Backend Server Service API Urls with Namespaces in Name are for Backend model with More Same Database Schemas Backend Databases count in One Server Service is Unlimited

Parameters
NameTypeDescription
stringForRemoveNamespaceSystem.String

SendMailWithMailTo(address,subject,body,attach) method

Summary

System Mail sending

Parameters
NameTypeDescription
addressSystem.String
subjectSystem.String
bodySystem.String
attachSystem.String

SendMailWithServerSetting(message) method

Summary

Email Sender for send Direct Email by Server Configuration for Testing

Parameters
NameTypeDescription
messageSystem.StringThe message.

SetLanguageDictionary(Resources,languageDefault) method

Summary

Settings Local Application Translation dictionaries (Resources Files) for Pages Will be replaced by DBDictionary, but for Offline Running must be possible

Returns
Parameters
NameTypeDescription
ResourcesSystem.Windows.ResourceDictionary
languageDefaultSystem.String

StartExternalProccess(fullFilePath,startupPath,arguments) method

Summary

System External Process Starter for Conrtalized Using Return the processId when is started or null

TODO

  • create process Monitor
  • save the monitored procceses to System Monitor
  • must be refactored actual status
Returns
Parameters
NameTypeDescription
fullFilePathSystem.StringThe full file path.
startupPathSystem.StringThe startup path.
argumentsSystem.StringThe arguments.

SystemStatuses type

Namespace

GlobalNET.GlobalClasses

Summary

!!SYSTEM Global Definition for System Statuses

SYSTEM Running mode In debug mode is disabled the System Logger Visual Studio Debugger difficult operation has problem If you want you can enable SystemLogger by change to: DebugWithSystemLogger

Its Used as String EveryWhere Its good Soution for Centarized Statuses of System Errors Are Saved In SystemLogger or Database

SystemWindowDataModel type

Namespace

GlobalNET.SystemStructure

#ctor() constructor

Summary

Its Solution For MultiInstance Application If The InterTab Is Enabled Can be Dragged Tab To the New Application

Parameters

This constructor has no parameters.

TemplateClassListPage type

Namespace

GlobalNET.Pages

Summary

This standartized Template is only for list view od Data table Called from MainWindow.cs on open New Tab

#ctor() constructor

Summary

Initialize page with loading Dictionary and start loding data Manual work needed Translate All XAML fields by Resources Runned on start

Parameters

This constructor has no parameters.

dataViewSupport constants

Summary

Standartized declaring static page data and selected record for All Pages this method is for global working with pages Called from MainWindow.cs for Control of Button Menu and Selections (Report,Filter and more) All is setted as global Classes for All Pages and Work is Fully automatized by System core

DeleteRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on Delete button Click Show MainWindow Standartized Message with info About Delete and After confirm Send DeleteApiRequest Reload Datalist and cancel Selected Record

Parameters

This method has no parameters.

DgListView_MouseDoubleClick(sender,e) method

Summary

Standartized method for selecting and opening Detail Form. This is only View Page, that is only for Select record This is full automatic, not needed manual work This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working page its local control From XAML

Parameters

DgListView_Translate(sender,ex) method

Summary

Standartized method for translating column names of DatagidView (List Data) Manual Changing is needed for set Translate of Column Names via Dictionary Items Here you can set Format(Date,time, etc),Index position, Hide Column, Translate, change grahics Style This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with page internal reaction on DatagrigView DataFiling on Start Page Runned On Page Loading

Parameters
NameTypeDescription
senderSystem.Object
exSystem.EventArgs

EditRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on Edit button Click Only Set Record And Hide Dataview and Show Detail with selected Record

Parameters

This method has no parameters.

Filter(filter) method

Summary

Standartized method for searching match in setted columns. Searched value is from the simple 'Search Input' for DatagidView (List Data) Manual Changing is needed of filtered columns by Search Value This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs Dynamicaly Called Only from MainWindow.cs when Search value Inserted

Parameters
NameTypeDescription
filterSystem.String

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

LoadDataList() method

Summary

Standartized Method for Loading data. Manual Changing is needed for simple form is All changed By CLASNAME Chage, but If you need More API data for selection Here are Defined All incoming Data Loading is same centralized only change ClasName For Diferent Dataset

After all data for DatagridView (List Data) are loaded The ProgressRing is hidden This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs on Refresh button click Runned on Pageloading or Filter or View Change

Returns
Parameters

This method has no parameters.

NewRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on New button Click Only Set Record And Hide Dataview and Show Detail

Parameters

This method has no parameters.

TemplateClassListViewPage type

Namespace

GlobalNET.Pages

Summary

This standartized Template is only for list view od Data table Called from MainWindow.cs on open New Tab

#ctor() constructor

Summary

Initialize page with loading Dictionary and start loding data Runned on start

Parameters

This constructor has no parameters.

dataViewSupport constants

Summary

Standartized declaring static page data and selected record for All Pages this method is for global working with pages Called from MainWindow.cs for Control of Button Menu and Selections (Report,Filter and more) All is setted as global Classes for All Pages and Work is Fully automatized by System core

DgListView_MouseDoubleClick(sender,e) method

Summary

Standartized method for selecting and opening Detail Form. This is only View Page, that is only for Select record This is full automatic, not needed manual work This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working page its local control From XAML

Parameters

DgListView_Translate(sender,ex) method

Summary

Standartized method for translating column names of DatagidView (List Data) Here you can set Format(Date,time, etc),Index position, Hide Column, Translate, change grahics Style This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with page internal reaction on DatagrigView DataFiling on Start Page Runned On Page Loading

Parameters
NameTypeDescription
senderSystem.Object
exSystem.EventArgs

Filter(filter) method

Summary

Standartized method for searching match in setted columns. Searched value is from the simple 'Search Input' for DatagidView (List Data) Here you define which column of Dataset will be filtered This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs Dynamicaly Called Only from MainWindow.cs when Search value Inserted

Parameters
NameTypeDescription
filterSystem.String

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

LoadDataList() method

Summary

Standartized Method for Loading data. Manual Changing is needed for simple form is All changed By CLASNAME Chage, but If you need More API data for selection Here are Defined All incoming Data Loading is same centralized only change ClasName For Diferent Dataset

After all data for DatagridView (List Data) are loaded The ProgressRing is hidden This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs on Refresh button click Runned on Pageloading or Filter or View Change

Returns
Parameters

This method has no parameters.

TemplateClassListWithSubPage type

Namespace

GlobalNET.Pages

Summary

This standartized Template is only for list view od Data table Called from MainWindow.cs on open New Tab

#ctor() constructor

Summary

Initialize page with loading Dictionary and start loding data Manual work needed Translate All XAML fields by Resources Runned on start

Parameters

This constructor has no parameters.

dataViewSupport constants

Summary

Standartized declaring static page data and selected record for All Pages this method is for global working with pages Called from MainWindow.cs for Control of Button Menu and Selections (Report,Filter and more) All is setted as global Classes for All Pages and Work is Fully automatized by System core

HERE you Define All Data Variables For This Form

ClearItemsFields() method

Summary

Standartized Method for Clear SubRecord Input Fields with custom Dataset For Correct Using must be Fields changed for used dataset

Parameters

This method has no parameters.

Customer_KeyDown(sender,e) method

Summary

Standartized method for Keyboard control of SelectBox This is full automatic, not needed manual work

Parameters

DeleteRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on Delete button Click Show MainWindow Standartized Message with info About Delete and After confirm Send DeleteApiRequest Reload Datalist and cancel Selected Record

Parameters

This method has no parameters.

DgListView_MouseDoubleClick(sender,e) method

Summary

Standartized method for selecting and opening Detail Form. This is only View Page, that is only for Select record This is full automatic, not needed manual work This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working page its local control From XAML

Parameters

DgListView_Translate(sender,ex) method

Summary

Standartized method for translating column names of DatagidView (List Data) Manual Changing is needed for set Translate of Column Names via Dictionary Items Here you can set Format(Date,time, etc),Index position, Hide Column, Translate, change grahics Style This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with page internal reaction on DatagrigView DataFiling on Start Page Runned On Page Loading

Parameters
NameTypeDescription
senderSystem.Object
exSystem.EventArgs

DgSubListView_Translate(sender,ex) method

Summary

Standartized method for translating column names of SubDatagidView (List Data) Manual Changing is needed for set Translate of Column Names via Dictionary Items Here you can set Format(Date,time, etc),Index position, Hide Column, Translate, change grahics Style This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with page internal reaction on DatagrigView DataFiling on Start Page Runned On Page Loading

Parameters
NameTypeDescription
senderSystem.Object
exSystem.EventArgs

EditRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on Edit button Click Only Set Record And Hide Dataview and Show Detail with selected Record

Parameters

This method has no parameters.

Filter(filter) method

Summary

Standartized method for searching match in setted columns. Searched value is from the simple 'Search Input' for DatagidView (List Data) Manual Changing is needed of filtered columns by Search Value This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs Dynamicaly Called Only from MainWindow.cs when Search value Inserted

Parameters
NameTypeDescription
filterSystem.String

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

LoadDataList() method

Summary

Standartized Method for Loading data. Manual Changing is needed for simple form is All changed By CLASNAME Chage, but If you need More API data for selection Here are Defined All incoming Data Loading is same centralized only change ClasName For Diferent Dataset

After all data for DatagridView (List Data) are loaded The ProgressRing is hidden This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs on Refresh button click Runned on Pageloading or Filter or View Change

Returns
Parameters

This method has no parameters.

NewRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on New button Click Only Set Record And Hide Dataview and Show Detail

Parameters

This method has no parameters.

NotesChanged(sender,e) method

Summary

Standartized Maximal Simle Code with Reaction and Fill input After ParentComboboxSelection

Parameters

PartNumberGotFocus(sender,e) method

Summary

Standartized method indicate start loading all data of SubRecord after Selected in Combobox This is full automatic, not needed manual work

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

PartNumber_KeyDown(sender,e) method

Summary

Standartized method for Keyboard control of SelectBox This is full automatic, not needed manual work

Parameters

SelectCustomer_Enter(sender,e) method

Summary

Standartized methods with Indicate Customer Selection and Start Filling Input This is full automatic, not needed manual work

Parameters

SelectGotFocus(sender,e) method

Summary

Standartized method indicate start loading all data of SubRecord after Selected in Combobox This is full automatic, not needed manual work

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

SelectPartNumber_Enter(sender,e) method

Summary

Standartized methods with Indicate Customer Selection and Start Filling Input This is full automatic, not needed manual work

Parameters

SetCustomer(sender,e) method

Summary

Standartized methods For Filling Input after Selection This is full automatic, not needed manual work

Parameters

SetPartNumber(sender,e) method

Summary

Standartized methods For Filling Input after Selection This is full automatic, not needed manual work

Parameters

SetSubListsNonActiveOnNewItem() method

Summary

Standartized Method for Load All SubData which is needed for Working with SubRecord For Correct Using must be changed for actual datasets

Parameters

This method has no parameters.

UpdateCustomerSearchResults() method

Summary

Standartized method Filling Customer Input by Selected Value This is full automatic, not needed manual work

Parameters

This method has no parameters.

UpdatePartNumberSearchResults() method

Summary

Standartized method Filling Customer Input by Selected Value This is full automatic, not needed manual work

Parameters

This method has no parameters.

TemplateClassListWithSubViewPage type

Namespace

GlobalNET.Pages

Summary

This standartized Template is only for list view od Data table Called from MainWindow.cs on open New Tab

#ctor() constructor

Summary

Initialize page with loading Dictionary and start loding data Manual work needed Translate All XAML fields by Resources Runned on start

Parameters

This constructor has no parameters.

dataViewSupport constants

Summary

Standartized declaring static page data and selected record for All Pages this method is for global working with pages Called from MainWindow.cs for Control of Button Menu and Selections (Report,Filter and more) All is setted as global Classes for All Pages and Work is Fully automatized by System core

HERE you Define All Data Variables For This Form

DeleteRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on Delete button Click Show MainWindow Standartized Message with info About Delete and After confirm Send DeleteApiRequest Reload Datalist and cancel Selected Record

Parameters

This method has no parameters.

DgListView_MouseDoubleClick(sender,e) method

Summary

Standartized method for selecting and opening Detail Form. This is only View Page, that is only for Select record This is full automatic, not needed manual work This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working page its local control From XAML

Parameters

DgListView_Translate(sender,ex) method

Summary

Standartized method for translating column names of DatagidView (List Data) Manual Changing is needed for set Translate of Column Names via Dictionary Items Here you can set Format(Date,time, etc),Index position, Hide Column, Translate, change grahics Style This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with page internal reaction on DatagrigView DataFiling on Start Page Runned On Page Loading

Parameters
NameTypeDescription
senderSystem.Object
exSystem.EventArgs

DgSubListView_Translate(sender,ex) method

Summary

Standartized method for translating column names of SubDatagidView (List Data) Manual Changing is needed for set Translate of Column Names via Dictionary Items Here you can set Format(Date,time, etc),Index position, Hide Column, Translate, change grahics Style This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with page internal reaction on DatagrigView DataFiling on Start Page Runned On Page Loading

Parameters
NameTypeDescription
senderSystem.Object
exSystem.EventArgs

EditRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on Edit button Click Only Set Record And Hide Dataview and Show Detail with selected Record

Parameters

This method has no parameters.

Filter(filter) method

Summary

Standartized method for searching match in setted columns. Searched value is from the simple 'Search Input' for DatagidView (List Data) Manual Changing is needed of filtered columns by Search Value This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs Dynamicaly Called Only from MainWindow.cs when Search value Inserted

Parameters
NameTypeDescription
filterSystem.String

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

LoadDataList() method

Summary

Standartized Method for Loading data. Manual Changing is needed for simple form is All changed By CLASNAME Chage, but If you need More API data for selection Here are Defined All incoming Data Loading is same centralized only change ClasName For Diferent Dataset

After all data for DatagridView (List Data) are loaded The ProgressRing is hidden This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs on Refresh button click Runned on Pageloading or Filter or View Change

Returns
Parameters

This method has no parameters.

LoadSubDataList() method

Summary

Standartized Method for Loading SubData. Manual Changing is needed for simple form is All changed By CLASNAME Chage, but If you need More API data for selection Here are Defined All incoming Data Loading is same centralized only change ClasName For Diferent Dataset

After all data for DatagridView (List Data) are loaded The ProgressRing is hidden This is on Every page ('View' and 'Form' Types) without 'Setting' Type (Name=Setting and Tag=Setting in XAML part) this method is for global working with pages Called from MainWindow.cs on Refresh button click Runned on Pageloading or Filter or View Change

Returns
Parameters

This method has no parameters.

NewRecord() method

Summary

Standartized Method on All Pages with Forms for New Record ALL Needed changes Are done By Replace CLASSNAME not needed manual work Dynamicaly Called Only from MainWindow.cs on New button Click Only Set Record And Hide Dataview and Show Detail

Parameters

This method has no parameters.

TemplateDocumentViewPage type

Namespace

GlobalNET.Pages

Summary

Template Page For View document, pictures, text and and much more file formats opened in WebViewer

#ctor() constructor

Summary

Initialize page with loading Dictionary and direct show example file

Parameters

This constructor has no parameters.

dataViewSupport constants

Summary

Standartized declaring static page data for global vorking with pages

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

TemplateSTLPage type

Namespace

GlobalNET.Pages

Summary

TemplateSTLPage

dataViewSupport constants

Summary

Standartized declaring static page data for global vorking with pages

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

TemplateSettingsPage type

Namespace

GlobalNET.Pages

Summary

TemplateSettingsPage

#ctor() constructor

Summary

Initialize page with loading Dictionary and start loding data Manual work needed Translate All XAML fields by Resources Runned on start

Parameters

This constructor has no parameters.

Languages constants

Summary

Define Collection For Combobox

dataViewSupport constants

Summary

Standartized declaring static page data for global vorking with pages

BtnApiTest_Click(sender,e) method

Summary

Customized GET Call

Parameters
NameTypeDescription
senderSystem.Object
eSystem.Windows.RoutedEventArgs

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

TemplateVideoPage type

Namespace

GlobalNET.Pages

Summary

TemplateVideoPage

dataViewSupport constants

Summary

Standartized declaring static page data for global vorking with pages

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

TemplateWebViewPage type

Namespace

GlobalNET.Pages

Summary

Template Page For internet pages document, pictures, text and and much more file formats opened in WebViewer

#ctor() constructor

Summary

Initialize page with loading Dictionary and direct show example file

Parameters

This constructor has no parameters.

dataViewSupport constants

Summary

Standartized declaring static page data for global vorking with pages

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

TerminalPage type

Namespace

GlobalNET.Pages

Summary

TerminalPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

TiltTargets type

Namespace

GlobalNET.GlobalClasses

Summary

Tilt Document Types Definitions

ToolPanelDefinitionListPage type

Namespace

GlobalNET.Pages

Summary

ToolPanelDefinitionListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

ToolPanelListPage type

Namespace

GlobalNET.Pages

Summary

ToolPanelListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

TranslatedApiList type

Namespace

GlobalNET.GlobalClasses

Summary

Class for Using as customized list the List of API urls for Central using in the system One Api is One: Dataview / Right / Report Posibility / Menu Item / Page Exist rules for automatic processing in System Core Logic for simple Developing

UnitListPage type

Namespace

GlobalNET.Pages

Summary

UnitListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

UpdateVariant type

Namespace

GlobalNET.GlobalClasses

Summary

Global class for using Name/Value - Example Reports, Language and others

UsedLicenseListPage type

Namespace

GlobalNET.Pages

Summary

UsedLicenseListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

UserData type

Namespace

GlobalNET.GlobalClasses

Summary

Basic user data for login

UserListPage type

Namespace

GlobalNET.Pages

Summary

UserListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

UserRoleListPage type

Namespace

GlobalNET.Pages

Summary

UserRoleListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

VatListPage type

Namespace

GlobalNET.Pages

Summary

VatListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

WarehouseListPage type

Namespace

GlobalNET.Pages

Summary

WarehouseListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

WelcomePage type

Namespace

GlobalNET.Pages

Summary

WelcomePage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

WorkListPage type

Namespace

GlobalNET.Pages

Summary

WorkListPage

InitializeComponent() method

Summary

InitializeComponent

Parameters

This method has no parameters.

EN:

New in the menu "Absolutely unique EASY SYSTEM BUILDER" absolutely easy to create a 3-tier system (ANY DB, BACKEND-SERVER, FRONTEND-KLIENT) with excel knowledge Just create a Table for Data and a Form, all in graphic designers So you literally click on the system, 1 table every day = sales system with orders and offers per month And that's not all, by any chance. It doesn't have to be only a data system, but also a multimedia one without any problem, for cutting videos, working with photos or 3D or even a CONTROL SYSTEM for machine control (Currently SIEMENS PLC is supported), or any other Hardware after delivery of specifications. Or the Control system, Backup, DataWarehouse, Controlling, BI OLAP, Flow Processes, Production, Information or business touch Terminals. IT CAN ALSO BE USED ONLY AS AN EXTENSION OR CONNECTION OF SYSTEMS

The starting cost for the core is only 10,000 CZK / 400 Euro, and you can try it yourself or order cheaply what you want to add there. Don't bow down to the system, GET A CUSTOMIZED SYSTEM. For idea:

  • invoicing system with OBJ+NAB+MULTI BRANCHES, WAREHOUSE, CHECKOUT - 14 DAYS
  • implementation of a touch terminal in production for work reports - 4 DAYS
  • A system for hotels including room agency, invoicing and orders is currently being created - 1 MONTH
  • Free updates, 1 development for all clients via shared project agendas in code

Unlimited users, unlimited printing, unlimited options, tutorials, tips, tricks, advice, Prepared for all types of systems and terminals for MS WINDOWS

INTELLIGENT DOCUMENTATION: https://liborsvoboda.github.io/EASYSYSTEM-EASYSERVER-EN/
CODE: https://github.com/liborsvoboda/EASYSYSTEM-EASYSERVER-EN
ONLINE EXAMPLE: https://kliknetezde.cz

SO DON'T DELAY AND CALL TODAY BEFORE THE PRICE GOES UP BACKEND SERVER CAN BE USED INDEPENDENTLY FOR ANY OTHER MULTIPLATFORM PROJECT

IT Architect Libor Svoboda GroupWare-Solution.Eu Tel: 00420 724986873, email: Libor.Svoboda@GroupWare-Solution.Eu

UNIVERSAL MODERN BE + MS FE SOLUTION FOR BUILDING ANY 3-layer technological software or its parts

For thinking, the development of tools and work with them worthy in the 21st century

  • EASYDATACenter - Universal multi-platform MultiDatabase Backend server solution with all standard technologies implemented
  • EASYSYSTEMBuilder - Universal modern Metro WPF Frontend System Builder solution for quick and easy development of any system with minimal knowledge
  • Combined solution - is a simple solution for rapid development of any modern system, runs perfectly on prepared System Core and templates for Graphical/Click Development

Complete Development Documentation and Smart Search: https://liborsvoboda.github.io/EASYSYSTEM-EASYSERVER-EN

Complete free projects codes, templates, help, tips, trics, etc: https://github.com/liborsvoboda/EASYSYSTEM-EASYSERVER-EN


GroupWare-Solutions FOR Universal IT World

SolutionsVisions&Ideas.MD
AUTO_STEPS_Look_First.md
CoreStructureDefinition.md
DATABASES.md
EASYDATACENTER_Code_Help.MD
EASYSYSTEMBuilder_Code_Help.md
EASYTools_3rdFreeAddons.MD
FIYReporting.md
OS_GIT_GCLOUD_WIN_LIN_DOCKER_Help.md
SolutionsChangeLog.MD
3rdPartyVisionsTips.md
SUMMARY.md


EASY-SYSTEM-Builder

Visual Studio project solution EASYSYSTEMBuilder for

C# WPF Low/no code solution For immediate development of your own SYSTEM:

  • FOR EVERY Company/Data Management/IS/OS/HW
  • Multilingual WPF application supported
  • Full support for the creation of any MS system (modern SAP, etc.).
  • Control system with graph support
  • Support for a unique media system,
  • Touch terminals supported
  • Bussiness/City/Country/ANY touch touch terminals on Windows AIO monitors are supported
  • NEXT YEAR Web Convert Support for LINUX/WINDOWS
  • Thousands of IS/OS/etc. tools on Github for free
  • Transparent clean code
  • Low/no code development support - Click-to-click graphic development

For standard IT/terminal systems development, the XAML graphical Builder with Class Copy is all you need for development

  • System updates are free
  • Code updates and all changes are public
1. DataWorking/IO/PRINT/SHOW
With all types of data form templates for standardized:
DATAView / DATADetail / DATAView with SubDATAview / DATAView with SubFullDataDetail
3D / Document / Video
1. To build ANY information / multimedia / control / flow / reporting and other systems

COPY/PASTE DEVELOPMENT PRICE 5000CZK/200EURO - PROJECT LICENSE


EASY-DATA-CENTER

Visual Studio project solution EASYDATACenter ASPNETCORE6 providing:

Simple development of Universal secure Multiplatform MultiDB Backend Server With RESTFULL / WEBSOCKET implementations

  • With all types of templates for INSERT / UPDATE / DELETE / SELECT / PROCEDURE / SUBFORMDATA / etc.

  • WITH DATABASE, table template, Procerure template, view template,

  • Backup/restore/set DB rights and other examples

  • With tables, indexes, foreign keys in all standard DB uses

    **COPY/PASTE DEVELOPMENT PRICE 5000CZK/200EURO - PROJECT LICENSE**
    

FYI Reporting - Report Editor / Viewer

FreeWare Full Report Designer and Viewer for printing all types of documents / barcodes, EAN, QR


EASYTOOLS

  • Add-ons for touch panels, controls, data types, forms, media, documents, 3D,
  • They are completely free to download (including every license pack)
  • Open Source community to include more than 1000 tools in the system by community

EXISTING CLONE SYSTEMS CREATED IN 14 DAYS

  1. LicenseSrv MultiOS license server with listening API GET/POST server / generation of unlimited static/dynamic license CODES and application client to manage the Server
  2. GUIDES Windows XP+ Implementation of production sources in the production of a production company For office / touch panels with an unlimited number of clients and the possibility of printing
  3. ShoPingER Windows XP+ Multi Branch Quotation/Order/Invoicing system with multimedia files supported by unlimited clients and printing capabilities
  4. LicenceShoper MultiOS License Server PLUS Windows XP+ MultiBranches Billing System [LicenseSrv + ShoPingER]

SOLUTION - WHERE TO FIND COMPLETE INFORMATION

All documentation, license, case study, price list, media, developer information, help, manuals, technology information, installation, images, videos, downloads, etc. can be found here:

Complete Development Documentation and Smart Search: https://liborsvoboda.github.io/EASYSYSTEM-EASYSERVER-EN


Company contact for suppliers

Email:

  • Libor.Svoboda@GroupWare-Solution.eu
  • Libor.Svoboda@KlikneteZde.Cz

Address:
Street: Žlutava 173
City: Žlutava
PostCode: 761 63
State: Czech Republic
Phone: 00420 724 986 873