Exemplo n.º 1
0
        public async Task <IActionResult> AddEmployeeAsync([FromBody] Infrastructure.Entities.Employee employee)
        {
            var userIdentity = Request.Headers["claims_userid"];

            if (userIdentity.Count == 0)
            {
                return(NotFound(new { Message = $"You are not authorized to add employee." }));
            }

            employee.CreatedBy = employee.ModifiedBy = userIdentity;

            try
            {
                // Commit Add Employee
                var addedEmployee = await _employeeService.AddEmployee(employee);

                var eployeeChangedEvent = new EmployeeAddIntegrationEvent(employee.Id,
                                                                          employee.FirstName,
                                                                          employee.LastName,
                                                                          employee.ModifiedBy);

                await _employeeIntegrationEventService.AddAndSaveEventAsync(eployeeChangedEvent);

                await _employeeIntegrationEventService.PublishEventsThroughEventBusAsync(eployeeChangedEvent);

                return(Ok(employee.Id));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> UpdateEmployeeAsync([FromBody] Infrastructure.Entities.Employee employeeToUpdate)
        {
            var userIdentity = Request.Headers["claims_userid"];

            if (userIdentity.Count == 0)
            {
                return(NotFound(new { Message = $"You are not authorized to add employee." }));
            }

            employeeToUpdate.ModifiedBy = userIdentity;
            var existingEmployee = await _employeeService.GetByIdAsync(employeeToUpdate.Id);

            if (existingEmployee == null)
            {
                return(NotFound(new { Message = $"Employee with id {employeeToUpdate.Id} not found." }));
            }
            else
            {
                // Update Employee
                existingEmployee.FirstName      = employeeToUpdate.FirstName;
                existingEmployee.LastName       = employeeToUpdate.LastName;
                existingEmployee.Address        = employeeToUpdate.Address;
                existingEmployee.Contact        = employeeToUpdate.Contact;
                existingEmployee.DepartmentName = employeeToUpdate.DepartmentName;
                existingEmployee.EmpCode        = employeeToUpdate.EmpCode;
                existingEmployee.IsActive       = employeeToUpdate.IsActive;
                existingEmployee.JoiningDate    = employeeToUpdate.JoiningDate;
                existingEmployee.ModifiedBy     = employeeToUpdate.ModifiedBy;

                // Subscribe Event
                var eployeeChangedEvent = new EmployeeChangedIntegrationEvent(employeeId: existingEmployee.Id,
                                                                              firstName: employeeToUpdate.FirstName,
                                                                              lastName: employeeToUpdate.LastName,
                                                                              address: employeeToUpdate.Address,
                                                                              contact: employeeToUpdate.Contact,
                                                                              departmentName: employeeToUpdate.DepartmentName,
                                                                              joiningDate: employeeToUpdate.JoiningDate,
                                                                              empCode: employeeToUpdate.EmpCode,
                                                                              isActive: employeeToUpdate.IsActive,
                                                                              modifiedBy: employeeToUpdate.ModifiedBy,
                                                                              // Default Values For Salary
                                                                              salary: 2000,
                                                                              startDate: DateTime.Now,
                                                                              endDate: DateTime.Now.AddDays(90));

                await _employeeIntegrationEventService.AddAndSaveEventAsync(eployeeChangedEvent);

                await _employeeIntegrationEventService.PublishEventsThroughEventBusAsync(eployeeChangedEvent);

                // Commit Update Employee
                await _employeeService.UpdateEmployee(existingEmployee);

                return(NoContent());
            }
        }