Example #1
0
        public EmployeeModel Update(int id, EmployeeInsertUpdateRequest request)
        {
            Employee employeeObj   = _context.Employees.FirstOrDefault(x => x.EmployeeId == id);
            var      loginDataList = _context.LoginData.ToList();
            var      personList    = _context.People.ToList();

            foreach (var x in loginDataList)
            {
                foreach (var y in personList)
                {
                    if (y.PersonId == employeeObj.PersonId && x.LoginDataId == y.LoginDataId)
                    {
                        if (x.Username == "adminDesktop" || x.Username == "branchEmployeeDesktop")
                        {
                            throw new UserException("This asset cannot be updated!");
                        }

                        break;
                    }
                }
            }

            if (employeeObj != null)
            {
                employeeObj.BranchId       = request.BranchId;
                employeeObj.EmployeeCode   = request.EmployeeCode;
                employeeObj.JobDescription = request.JobDescription;
                employeeObj.Active         = request.Active;
                employeeObj.HireDate       = request.HireDate;
            }


            Person personObj = _context.People.FirstOrDefault(x => x.PersonId == employeeObj.PersonId);

            if (personObj != null)
            {
                personObj.FirstName   = request.FirstName;
                personObj.LastName    = request.LastName;
                personObj.DateOfBirth = request.DateOfBirth;
                personObj.City        = request.City;
                personObj.CountryId   = request.CountryId;
                personObj.Address     = request.Address;
                personObj.Email       = request.Email;
                personObj.PhoneNumber = request.PhoneNumber;
            }


            request.PasswordSalt = HelperClass.GenerateSalt();
            request.PasswordHash = HelperClass.GenerateHash(request.PasswordSalt, request.CleasPassword);
            LoginData loginDataObj = _context.LoginData.FirstOrDefault(x => x.LoginDataId == personObj.LoginDataId);

            if (loginDataObj != null)
            {
                loginDataObj.Username     = request.Username;
                loginDataObj.PasswordSalt = request.PasswordSalt;
                loginDataObj.PasswordHash = request.PasswordHash;
            }



            EmployeeEmployeeRole emplEmplRolesObj =
                _context.EmployeeEmployeeRoles.FirstOrDefault(x => x.EmployeeId == employeeObj.EmployeeId);

            if (emplEmplRolesObj != null)
            {
                emplEmplRolesObj.EmployeeRolesId = request.EmployeeRoleId;
                emplEmplRolesObj.ChangeDate      = DateTime.Now;
            }


            _context.SaveChanges();
            return(_mapper.Map <EmployeeModel>(employeeObj));
        }
Example #2
0
        public EmployeeModel Insert(EmployeeInsertUpdateRequest request)
        {
            var LoginDataCheck = _context.LoginData.FirstOrDefault(x => x.Username == request.Username);

            if (LoginDataCheck != null)
            {
                throw new UserException("Username already exists, try another one!");
            }

            var personCheck = _context.People.FirstOrDefault(x => x.Email == request.Email);

            if (personCheck != null)
            {
                throw new UserException("Email already exists, try another one!");
            }

            request.PasswordSalt = HelperClass.GenerateSalt();
            request.PasswordHash = HelperClass.GenerateHash(request.PasswordSalt, request.CleasPassword);

            LoginData newData = new LoginData
            {
                Username     = request.Username,
                PasswordSalt = request.PasswordSalt,
                PasswordHash = request.PasswordHash
            };

            _context.LoginData.Add(newData);
            _context.SaveChanges();


            Person newPerson = new Person
            {
                Address     = request.Address,
                City        = request.City,
                CountryId   = request.CountryId,
                DateOfBirth = request.DateOfBirth,
                FirstName   = request.FirstName,
                LastName    = request.LastName,
                Email       = request.Email,
                PhoneNumber = request.PhoneNumber,
                LoginDataId = newData.LoginDataId
            };

            _context.Add(newPerson);
            _context.SaveChanges();


            Employee newEmployee = new Employee
            {
                Active         = request.Active,
                BranchId       = request.BranchId,
                EmployeeCode   = request.EmployeeCode,
                HireDate       = request.HireDate,
                PersonId       = newPerson.PersonId,
                JobDescription = request.JobDescription
            };

            _context.Employees.Add(newEmployee);
            _context.SaveChanges();


            EmployeeEmployeeRole newEmployeeRoles = new EmployeeEmployeeRole
            {
                ChangeDate      = DateTime.Now,
                EmployeeRolesId = request.EmployeeRoleId,
                EmployeeId      = newEmployee.EmployeeId
            };

            _context.EmployeeEmployeeRoles.Add(newEmployeeRoles);
            _context.SaveChanges();

            return(_mapper.Map <EmployeeModel>(newEmployee));
        }