Skip to content

This project is envisioned as a work-in-progress aimed at making it more efficient and organized in the future. Moreover, it's my first desktop app. The current version serves as a starting point, with room for further improvements and developments.

Notifications You must be signed in to change notification settings

mralibatu/GUI_EmployeeManagerDemo

Repository files navigation

What is the purpose of the classes and class libraries?

Company.DataAccess

Abstract

The IEntityRepository interface specifies what is required for entity data access. On the other hand, IEmployeeDal indicates that its subclasses are responsible for the Employee Data Access.

Concrete

I use EntityFramework in this project.

CompanyContext class allows to return a DbSet of our database.

EfEntityRepositoryBase is a generic class that takes TEntity and TContext. (TEntity must be a class of IEntity and TContext is the DbContext)

In this class the program does all of the database actions. Furthermore I use a class that EfEmployeeDal, which inherits from EfEntityRepositoryBase. It allows to if we add new table in our database, we have to just add new class such as EfNewTableDal.

Company.Entities

Abstract

I create an interface called IEntity to understand which class implements this interface. In other words, which class is an entity class.

Concrete

Employee class keeps the columns of the Employee table.

Company.Business

Business class library was created for controlling data access.

Abstract

IEmployeeService is an interface that keeps data access methods. Even if I change the data access type, I have to just change the I...Dal object.

Concrete

In this class I have all of the queries. I use dal interfaces methods. I also check validation rules in this area.

DependencyResolvers

From SOLID rule D, for escape create too much new IDals I use Ninject. In BusineesModule I load all of I use interfaces with NinjectModule. Then I created a InstanceFactory to return BusineesModule's kernel.

ValidationRules & Utilities

EmployeeValidator class keeps rule for data access. It allows escape empty inputs or wrong get accesses. On the other hand, ValidationTool throw exceptions when there is a problem in validation of Validator.

Screenshots and features

Main page

main_page

You can search employee with first name, last name, work position or all of them.

search

Add Employee

add_employee

Update Employee

If you click an employee from table and click the "Update Employee" box, full name and work position automatically filled.

update_employee_gif

Delete Employee

Filling automatically is also here.

delete_employee_gif

About

This project is envisioned as a work-in-progress aimed at making it more efficient and organized in the future. Moreover, it's my first desktop app. The current version serves as a starting point, with room for further improvements and developments.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages