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)); }
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)); }