Example #1
0
        public async Task <IActionResult> GetEmployees([FromQuery] int count, [FromQuery] int pageIndex = 0)
        {
            var totalItems = await _context.Employees
                             .LongCountAsync();

            var itemsOnPage = await _context.Employees
                              .OrderBy(e => e.EmpLastName)
                              .ThenBy(e => e.EmpLastName)
                              .ThenBy(e => e.EmpMiddleName)
                              .Skip(count * pageIndex)
                              .Take(count)
                              .ToListAsync();

            var employeesToReturn = new List <DisplayEmployeeVM>();

            if (itemsOnPage.Count > 0)
            {
                foreach (var item in itemsOnPage)
                {
                    item.setEmployeeImageFullUrl(baseUrl: _employeesImagesPublicBaseUrl);
                    var employeeToReturn = new BasicDisplayEmployeeVM
                    {
                        Id              = item.EmpId.ToString(),
                        Code            = item.EmpCode,
                        LastName        = item.EmpLastName,
                        FirstName       = item.EmpFirstName,
                        MiddleName      = item.EmpMiddleName,
                        Salary          = item.EmpSalary,
                        UCTRegisteredOn = item.UctregisteredOn,
                        Title           = item.EmpTitle,
                        Image           = item.EmpImage,
                        UCTStartDate    = item.UctstartDate
                    };

                    var originalManager = item.getMaNanager(_context);
                    BasicDisplayEmployeeVM managerToReturn = null;
                    if (originalManager != null)
                    {
                        originalManager.setEmployeeImageFullUrl(baseUrl: _employeesImagesPublicBaseUrl);

                        managerToReturn = new BasicDisplayEmployeeVM
                        {
                            Id              = originalManager.EmpId.ToString(),
                            Code            = originalManager.EmpCode,
                            LastName        = originalManager.EmpLastName,
                            FirstName       = originalManager.EmpFirstName,
                            MiddleName      = originalManager.EmpMiddleName,
                            Salary          = originalManager.EmpSalary,
                            UCTRegisteredOn = originalManager.UctregisteredOn,
                            Title           = originalManager.EmpTitle,
                            Image           = originalManager.EmpImage,
                            UCTStartDate    = originalManager.UctstartDate
                        };
                    }
                    var originalListOfSubordinates = item.getSubordinates(_context);

                    List <BasicDisplayEmployeeVM> listOfSubordinatesToReturn = null;

                    if (originalListOfSubordinates != null && originalListOfSubordinates.Count > 0)
                    {
                        listOfSubordinatesToReturn = new List <BasicDisplayEmployeeVM>();
                        foreach (var subordinate in originalListOfSubordinates)
                        {
                            subordinate.setEmployeeImageFullUrl(baseUrl: _employeesImagesPublicBaseUrl);
                            listOfSubordinatesToReturn.Add(new BasicDisplayEmployeeVM
                            {
                                Id              = subordinate.EmpId.ToString(),
                                Code            = subordinate.EmpCode,
                                LastName        = subordinate.EmpLastName,
                                FirstName       = subordinate.EmpFirstName,
                                MiddleName      = subordinate.EmpMiddleName,
                                Salary          = subordinate.EmpSalary,
                                UCTRegisteredOn = subordinate.UctregisteredOn,
                                Title           = subordinate.EmpTitle,
                                Image           = subordinate.EmpImage,
                                UCTStartDate    = subordinate.UctstartDate
                            });
                        }
                    }

                    employeesToReturn.Add(new DisplayEmployeeVM(employeeToReturn, managerToReturn, listOfSubordinatesToReturn));
                }
            }


            if (_envConfig.IsDevelopment())
            {
                Response.Headers.Add("Access-Control-Allow-Origin", "http://localhost:4200");
            }

            return(Ok(new PaginatedResponse <DisplayEmployeeVM>(pageIndex, count, totalItems, employeesToReturn)));
        }
Example #2
0
        public async Task <IActionResult> GetEmployeeByIdOrCode(string idOrCode)
        {
            //check the field idOrCode
            var result = await _context.Employees.Where(emp => emp.EmpId.ToString().Equals(idOrCode.Trim()) || emp.EmpCode.Equals(idOrCode.Trim(), StringComparison.OrdinalIgnoreCase)).ToListAsync();

            if (result.Count != 1)
            {
                return(NotFound());
            }
            else
            {
                var currentEmp = result[0];

                currentEmp.setEmployeeImageFullUrl(baseUrl: _employeesImagesPublicBaseUrl);
                var employeeToReturn = new BasicDisplayEmployeeVM
                {
                    Id              = currentEmp.EmpId.ToString(),
                    Code            = currentEmp.EmpCode,
                    LastName        = currentEmp.EmpLastName,
                    FirstName       = currentEmp.EmpFirstName,
                    MiddleName      = currentEmp.EmpMiddleName,
                    Salary          = currentEmp.EmpSalary,
                    UCTRegisteredOn = currentEmp.UctregisteredOn,
                    Title           = currentEmp.EmpTitle,
                    Image           = currentEmp.EmpImage,
                    UCTStartDate    = currentEmp.UctstartDate
                };

                var originalManager = currentEmp.getMaNanager(_context);
                BasicDisplayEmployeeVM managerToReturn = null;
                if (originalManager != null)
                {
                    originalManager.setEmployeeImageFullUrl(baseUrl: _employeesImagesPublicBaseUrl);

                    managerToReturn = new BasicDisplayEmployeeVM
                    {
                        Id              = originalManager.EmpId.ToString(),
                        Code            = originalManager.EmpCode,
                        LastName        = originalManager.EmpLastName,
                        FirstName       = originalManager.EmpFirstName,
                        MiddleName      = originalManager.EmpMiddleName,
                        Salary          = originalManager.EmpSalary,
                        UCTRegisteredOn = originalManager.UctregisteredOn,
                        Title           = originalManager.EmpTitle,
                        Image           = originalManager.EmpImage,
                        UCTStartDate    = originalManager.UctstartDate
                    };
                }
                var originalListOfSubordinates = currentEmp.getSubordinates(_context);

                List <BasicDisplayEmployeeVM> listOfSubordinatesToReturn = null;

                if (originalListOfSubordinates != null && originalListOfSubordinates.Count > 0)
                {
                    listOfSubordinatesToReturn = new List <BasicDisplayEmployeeVM>();
                    foreach (var subordinate in originalListOfSubordinates)
                    {
                        subordinate.setEmployeeImageFullUrl(baseUrl: _employeesImagesPublicBaseUrl);
                        listOfSubordinatesToReturn.Add(new BasicDisplayEmployeeVM
                        {
                            Id              = subordinate.EmpId.ToString(),
                            Code            = subordinate.EmpCode,
                            LastName        = subordinate.EmpLastName,
                            FirstName       = subordinate.EmpFirstName,
                            MiddleName      = subordinate.EmpMiddleName,
                            Salary          = subordinate.EmpSalary,
                            UCTRegisteredOn = subordinate.UctregisteredOn,
                            Title           = subordinate.EmpTitle,
                            Image           = subordinate.EmpImage,
                            UCTStartDate    = subordinate.UctstartDate
                        });
                    }
                }

                return(Ok(new DisplayEmployeeVM(employeeToReturn, managerToReturn, listOfSubordinatesToReturn)));
            }
        }