Пример #1
0
        // Get Employee
        public EmployeeResponse GetEmployee(EmployeeRequest request)
        {
            var response = new EmployeeResponse();

            #region *** Intercepted Method ***
            // Try to add employee from AlienDB to Nexus if the employee already exist then try to refresh the information
            request.EmployeeId = SaveEmployee(new EmployeeRequest { Employee = _employeeAdapter.GetEmployee(request).Employee}).EmployeeId;

            #endregion

            // Validate if the item is from Nexus
            if (request.EmployeeId > 0)
            {
                var employeeFound = Olympus._Enterprise.Employees.Where(x => x.Id == request.EmployeeId).SingleOrDefault();
                response.Employee = Mapper.Map<EmployeeDto>(employeeFound);
            }
            return response;
        }
Пример #2
0
        // Add aditional results to the search
        public void SearchEmployee(EmployeeRequest request, EmployeeResponse response)
        {
            var maximunResultRows = Convert.ToInt32(Resources.MaximunSearchResults);

            // Apply the search with the pattern given
            var searchResults = Asgard._Foreing.PLA_EMPLEADOS
                                .Where(x => x.EMP_Nombre.ToUpper().Contains(request.SearchEmployeeQuery.ToUpper()) &&
                                            x.CIA_Codigo.Equals("01") &&
                                            x.EMP_Activo.Equals("S"))
                                .OrderBy(y => y.EMP_Nombre)
                                .Take(maximunResultRows)
                                .ToList();

            if (request.SearchEmployeeQuery == "") UpdateSalariesInSearch(response);

            // Fill the response with the result found
            foreach (var employee in searchResults) //Por cada empleada encontrado en DIALCOM
            {
                // Check if the employee is already binded
                var bindedEmployee = response.EmployeeList.Where(x => x.Code == Convert.ToString(employee.EMP_Numero)).FirstOrDefault();
                if (bindedEmployee == null)
                {
                    var employeeDto = new EmployeeDto
                                          {
                                              UserAccountId = 0,
                                              Code = Convert.ToString(employee.EMP_Numero),
                                              SalaryByHour = Convert.ToDecimal(employee.EMP_SalarioXHora),
                                              Person = new PersonDto
                                                           {
                                                               Name = employee.EMP_Nombre,
                                                               LastName = ""
                                                           }
                                          };
                    response.EmployeeList.Add(employeeDto);
                }
                else
                {
                    bindedEmployee.SalaryByHour = Convert.ToDecimal(employee.EMP_SalarioXHora);
                    //bindedEmployee.Person.Name = employee.EMP_Nombre;
                }
            }
        }
Пример #3
0
        // Save Item
        public EmployeeResponse SaveEmployee(EmployeeRequest request)
        {
            var response = new EmployeeResponse();

            if (request.Employee != null)
            {
                Employee employee = null;
                // Check if Edit or Add
                if (request.Employee.Id > 0)
                {
                    // Edit
                    employee = Olympus._Enterprise.Employees.Where(x => x.Id == request.Employee.Id).SingleOrDefault();

                    if (employee != null)
                    {
                        // Overrides the Salary By Hour
                        //request.Employee.SalaryByHour = employee.SalaryByHour;
                        //Mapper.Map(request.Employee, employee);
                    }
                }
                else
                {
                    // Add
                    if (request.Employee.Code != null)
                    {
                        // Check some info from AlienDB
                        employee = new Employee();
                        Mapper.Map(request.Employee, employee);
                        Olympus._Enterprise.Employees.AddObject(employee);
                    }
                }
                Olympus._Enterprise.SaveChanges();
                if (employee != null) response.EmployeeId = employee.Id;
            }
            return response;
        }
Пример #4
0
        // Search Employee
        public EmployeeResponse SearchEmployee(EmployeeRequest request)
        {
            var response = new EmployeeResponse { EmployeeList = new List<EmployeeDto>() };

            // Search employee
            var employeesFound = Olympus._Enterprise.Employees.Where(x => x.Person.Name.Contains(request.SearchEmployeeQuery) ||
                                                                          x.Code.Contains(request.SearchEmployeeQuery))
                                                              .OrderBy(y => y.Person.Name)
                                                              .Take(Convert.ToInt32(Properties.Resources.MaximunResultRows))
                                                              .Distinct()
                                                              .ToList();

            if (employeesFound.Count > 0)
            {
                response.EmployeeList = Mapper.Map<List<EmployeeDto>>(employeesFound);
            }

            // Intercepted Method
            _employeeAdapter.SearchEmployee(request, response);

            // Sorted again the list
            response.EmployeeList = response.EmployeeList.OrderBy(x => x.Person.Name).ToList();

            return response;
        }
Пример #5
0
        // Get Employee from Alien DB
        public EmployeeResponse GetEmployee(EmployeeRequest request)
        {
            var response = new EmployeeResponse();

            if (request.Employee != null)
            {
                // Check for update an item
                if (request.EmployeeId > 0)
                {
                    #region Update Data
                    var code = Convert.ToDouble(request.Employee.Code);
                    //var code = Convert.ToDouble(request.Employee.Code.Substring(0, request.Employee.Code.Length - 2));

                    // Search the item to update data
                    var bindedEmployeeFound = Asgard._Foreing.PLA_EMPLEADOS.Where(x => x.EMP_Numero.Equals(code) &&
                                                                                 x.CIA_Codigo.Equals("01") &&
                                                                                 x.EMP_Activo.Equals("S")).FirstOrDefault();

                    if (bindedEmployeeFound != null)
                    {
                        // Create an object to be mapped later
                        response.Employee = new EmployeeDto
                        {
                            Id = request.EmployeeId,
                            PersonId = request.Employee.PersonId,
                            Code = Convert.ToString(bindedEmployeeFound.EMP_Numero).Trim(),
                            UserAccountId = 0,
                            SalaryByHour = Convert.ToDecimal(bindedEmployeeFound.EMP_SalarioXHora)
                            //Falta actualizar los datos de la persona (Nombre y Apellidos)
                        };
                    }
                    #endregion
                }
                else
                {
                    #region Get Item
                    // Search the item
                    var code = Convert.ToDouble(request.Employee.Code);
                    //var code = Convert.ToDouble(request.Employee.Code.Substring(0, request.Employee.Code.Length - 2));
                    var employeeFound = Asgard._Foreing.PLA_EMPLEADOS.Where(x => x.EMP_Numero.Equals(code) &&
                                                                                 x.CIA_Codigo.Equals("01") &&
                                                                                 x.EMP_Activo.Equals("S")).FirstOrDefault();

                    if (employeeFound != null)
                    {
                        response.Employee = new EmployeeDto
                        {
                            Code = Convert.ToString(employeeFound.EMP_Numero).Trim(),
                            UserAccountId = 0,
                            SalaryByHour = Convert.ToDecimal(employeeFound.EMP_SalarioXHora),
                            Person = new PersonDto
                                         {
                                             Name = employeeFound.EMP_Nombre,
                                             LastName = ""
                                         }
                        };
                    }
                    #endregion
                }
            }
            return response;
        }
Пример #6
0
 private void Search(string query)
 {
     var request = new EmployeeRequest { SearchEmployeeQuery = query };
     ShowSearchResults(new EmployeeFactory().SearchEmployee(request).EmployeeList);
 }
Пример #7
0
 // Search
 public EmployeeResponse SearchEmployee(EmployeeRequest request)
 {
     return _employeeService.SearchEmployee(request);
 }
Пример #8
0
 // Get
 public EmployeeResponse GetEmployee(EmployeeRequest request)
 {
     return _employeeService.GetEmployee(request);
 }