//End Herman public Employee CreateEmployee(string firstName, string lastName, string initials, string emailAddress, string persalNumber, int?headOfDepartmentId, int?supervisorId, string phoneNumber, string mobilePhoneNumber, int?genderId, int?raceId, string idNumber, int?jobPositionId, int?payPointId, int serviceOfficeId, int?salaryLevelId, bool isShiftWorker, bool isCasualWorker, bool isActive, bool isDeleted, DateTime dateCreated, string createdBy, bool isSocialWorker, string practiceNumber, int UserId) { Employee newEmployee; using (var dbContext = new SDIIS_DatabaseEntities()) { User newUser; var user = new User { User_Name = string.Format("{0}{1}", firstName.Substring(0, 1), lastName), Password = "******", First_Name = firstName, Last_Name = lastName, Initials = initials, Email_Address = emailAddress, Is_Active = isActive, Is_Deleted = isDeleted, Date_Created = dateCreated, Created_By = createdBy }; try { int NumberOfUserNames = (from a in dbContext.Users where a.User_Name.Contains(user.User_Name) select a).Count(); if (NumberOfUserNames > 1) { user.User_Name += NumberOfUserNames; } newUser = dbContext.Users.Add(user); dbContext.SaveChanges(); } catch (Exception) { return(null); } if (newUser == null) { return(null); } var employee = new Employee { User_Id = newUser.User_Id, Persal_Number = persalNumber, Head_Of_Department_Id = headOfDepartmentId, Supervisor_Id = supervisorId, Phone_Number = phoneNumber, Mobile_Phone_Number = mobilePhoneNumber, Gender_Id = genderId, Race_Id = raceId, ID_Number = idNumber, Job_Position_Id = jobPositionId, Paypoint_Id = payPointId, Service_Office_Id = serviceOfficeId, Salary_Level_Id = salaryLevelId, Is_Shift_Worker = isShiftWorker, Is_Casual_Worker = isCasualWorker, Is_Active = isActive, Is_Deleted = isDeleted, Is_SocialWorker = isSocialWorker, Date_Created = dateCreated, Created_By = createdBy }; try { newEmployee = dbContext.Employees.Add(employee); dbContext.SaveChanges(); if (isSocialWorker == true) { int userid = newEmployee.User_Id; //get the supervisor employee ID to be used to get the user id that we will unse to link the social worker table correctly var employeeUserId = dbContext.Employees.Where(x => x.Employee_Id == newEmployee.Supervisor_Id).Select(y => y.User_Id).FirstOrDefault(); //get socialworker id for the supervisor var supervisorSocialWorkerID = dbContext.Social_Workers.Where(x => x.User_Id == employeeUserId).Select(y => y.Social_Worker_Id).FirstOrDefault(); var socialWorkerDetails = (from s in dbContext.Social_Workers where s.User_Id == userid select s).FirstOrDefault(); if (socialWorkerDetails == null) { Social_Worker sw = new Social_Worker(); sw.Gender_Id = newEmployee.Gender_Id; sw.ID_Number = newEmployee.ID_Number; sw.User_Id = newEmployee.User_Id; sw.Is_Active = newEmployee.Is_Active; sw.Is_Deleted = newEmployee.Is_Deleted; sw.Mobile_Phone_Number = newEmployee.Mobile_Phone_Number; sw.Modified_By = createdBy; sw.Organization_Id = 1;//Thabiso to verify sw.Service_Office_Id = newEmployee.Service_Office_Id; sw.SocialWorkerPracticeNumber = practiceNumber; sw.Date_Created = DateTime.Now; sw.Date_Last_Modified = DateTime.Now; sw.Created_By = createdBy; sw.Phone_Number = newEmployee.Phone_Number; if (supervisorId != null) { sw.Reports_To_Social_Worker_Id = supervisorSocialWorkerID; } dbContext.Social_Workers.Add(sw); dbContext.SaveChanges(); } else { socialWorkerDetails.Gender_Id = newEmployee.Gender_Id; socialWorkerDetails.ID_Number = newEmployee.ID_Number; socialWorkerDetails.Is_Active = newEmployee.Is_Active; socialWorkerDetails.Is_Deleted = newEmployee.Is_Deleted; socialWorkerDetails.Mobile_Phone_Number = newEmployee.Mobile_Phone_Number; socialWorkerDetails.Modified_By = createdBy; socialWorkerDetails.Organization_Id = 1;//Thabiso to verify socialWorkerDetails.Service_Office_Id = newEmployee.Service_Office_Id; socialWorkerDetails.SocialWorkerPracticeNumber = practiceNumber; socialWorkerDetails.Date_Created = DateTime.Now; socialWorkerDetails.Date_Last_Modified = DateTime.Now; socialWorkerDetails.Created_By = createdBy; socialWorkerDetails.Phone_Number = newEmployee.Phone_Number; if (supervisorId != null) { socialWorkerDetails.Reports_To_Social_Worker_Id = supervisorSocialWorkerID; } dbContext.SaveChanges(); } } } catch (Exception) { return(null); } //if (selectedEmployeeService_Ids != null && selectedJobPosition_Ids != null) //{ // var employeeService = new EmployeeService(); // foreach (var itemss in selectedEmployeeService_Ids) // { // employeeService.Employee_Id = (from a in dbContext.Employees // where a.User_Id == newUser.User_Id // select a.Employee_Id).FirstOrDefault(); // employeeService.Problem_Category_Id = itemss; // employeeService.CreatedTimeStamp = DateTime.Now; // employeeService.Created_By = UserId; // employeeService.Is_Active = Convert.ToBoolean(1); // employeeService.Is_Deleted = Convert.ToBoolean(0); // dbContext.EmployeeServices.Add(employeeService); // dbContext.SaveChanges(); // } // var jobPosition = new EmployeeRole(); // foreach (var itemsss in selectedJobPosition_Ids) // { // jobPosition.Employee_Id = (from a in dbContext.Employees // where a.User_Id == newUser.User_Id // select a.Employee_Id).FirstOrDefault(); // jobPosition.JobPosition_Id = itemsss; // jobPosition.CreatedTimeStamp = DateTime.Now; // jobPosition.Created_By = UserId; // jobPosition.Is_Active = Convert.ToBoolean(1); // jobPosition.Is_Deleted = Convert.ToBoolean(0); // dbContext.EmployeeRoles.Add(jobPosition); // dbContext.SaveChanges(); // } //} } return(newEmployee); }
public Employee EditEmployee(int employeeId, string firstName, string lastName, string initials, string emailAddress, string persalNumber, int?headOfDepartmentId, int?supervisorId, string phoneNumber, string mobilePhoneNumber, int?genderId, int?raceId, string idNumber, int?jobPositionId, int?payPointId, int serviceOfficeId, int?salaryLevelId, bool isShiftWorker, bool isCasualWorker, bool isActive, bool isDeleted, DateTime dateLastModified, string modifiedBy, bool isSocialWorker, string practiceNumber, int?facilityId) { Employee editEmployee; using (var dbContext = new SDIIS_DatabaseEntities()) { try { editEmployee = (from e in dbContext.Employees where e.Employee_Id.Equals(employeeId) select e).FirstOrDefault(); if (editEmployee == null) { return(null); } editEmployee.User.First_Name = firstName; editEmployee.User.Last_Name = lastName; editEmployee.User.Initials = initials; editEmployee.User.Email_Address = emailAddress; editEmployee.Persal_Number = persalNumber; editEmployee.Head_Of_Department_Id = headOfDepartmentId; editEmployee.Supervisor_Id = supervisorId; editEmployee.Phone_Number = phoneNumber; editEmployee.Mobile_Phone_Number = mobilePhoneNumber; editEmployee.Gender_Id = genderId; editEmployee.Race_Id = raceId; editEmployee.ID_Number = idNumber; editEmployee.Job_Position_Id = jobPositionId; editEmployee.Paypoint_Id = payPointId; editEmployee.Service_Office_Id = serviceOfficeId; editEmployee.Salary_Level_Id = salaryLevelId; editEmployee.Is_Shift_Worker = isShiftWorker; editEmployee.Is_Casual_Worker = isCasualWorker; editEmployee.Is_Active = isActive; editEmployee.Is_Deleted = isDeleted; editEmployee.Date_Last_Modified = dateLastModified; editEmployee.Modified_By = modifiedBy; editEmployee.Is_SocialWorker = isSocialWorker; editEmployee.Facility_Id = facilityId; dbContext.SaveChanges(); if (isSocialWorker == true) { int userid = editEmployee.User_Id; //get the supervisor employee ID to be used to get the user id that we will unse to link the social worker table correctly var employeeUserId = dbContext.Employees.Where(x => x.Employee_Id == editEmployee.Supervisor_Id).Select(y => y.User_Id).FirstOrDefault(); //get socialworker id for the supervisor var supervisorSocialWorkerID = dbContext.Social_Workers.Where(x => x.User_Id == employeeUserId).Select(y => y.Social_Worker_Id).FirstOrDefault(); var socialWorkerDetails = (from s in dbContext.Social_Workers where s.User_Id == userid select s).FirstOrDefault(); if (socialWorkerDetails == null) { Social_Worker sw = new Social_Worker(); sw.Gender_Id = editEmployee.Gender_Id; sw.ID_Number = editEmployee.ID_Number; sw.User_Id = editEmployee.User_Id; sw.Is_Active = editEmployee.Is_Active; sw.Is_Deleted = editEmployee.Is_Deleted; sw.Mobile_Phone_Number = editEmployee.Mobile_Phone_Number; sw.Modified_By = modifiedBy; sw.Organization_Id = 1;//Thabiso to verify sw.Service_Office_Id = editEmployee.Service_Office_Id; sw.SocialWorkerPracticeNumber = practiceNumber; sw.Date_Created = DateTime.Now; sw.Date_Last_Modified = DateTime.Now; sw.Created_By = modifiedBy; sw.Phone_Number = editEmployee.Phone_Number; if (supervisorId != null) { sw.Reports_To_Social_Worker_Id = supervisorSocialWorkerID; } dbContext.Social_Workers.Add(sw); dbContext.SaveChanges(); } else { socialWorkerDetails.Gender_Id = editEmployee.Gender_Id; socialWorkerDetails.ID_Number = editEmployee.ID_Number; socialWorkerDetails.Is_Active = editEmployee.Is_Active; socialWorkerDetails.Is_Deleted = editEmployee.Is_Deleted; socialWorkerDetails.Mobile_Phone_Number = editEmployee.Mobile_Phone_Number; socialWorkerDetails.Modified_By = modifiedBy; socialWorkerDetails.Organization_Id = 1;//Thabiso to verify socialWorkerDetails.Service_Office_Id = editEmployee.Service_Office_Id; socialWorkerDetails.SocialWorkerPracticeNumber = practiceNumber; socialWorkerDetails.Date_Created = DateTime.Now; socialWorkerDetails.Date_Last_Modified = DateTime.Now; socialWorkerDetails.Created_By = modifiedBy; socialWorkerDetails.Phone_Number = editEmployee.Phone_Number; if (supervisorId != null) { socialWorkerDetails.Reports_To_Social_Worker_Id = supervisorSocialWorkerID; } dbContext.SaveChanges(); } } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } throw raise; } } return(editEmployee); }
public Social_Worker CreateSocialWorker(string firstName, string lastName, string initials, string emailAddress, string phoneNumber, string mobilePhoneNumber, int?genderId, int?raceId, string idNumber, bool isActive, bool isDeleted, DateTime dateCreated, string createdBy) { Social_Worker newSocialWorker; using (var dbContext = new SDIIS_DatabaseEntities()) { User newUser; var user = new User { User_Name = string.Format("{0}{1}", firstName.Substring(0, 1), lastName), Password = "******", First_Name = firstName, Last_Name = lastName, Initials = initials, Email_Address = emailAddress, Is_Active = isActive, Is_Deleted = isDeleted, Date_Created = dateCreated, Created_By = createdBy }; try { newUser = dbContext.Users.Add(user); dbContext.SaveChanges(); } catch (Exception) { return(null); } if (newUser == null) { return(null); } var employee = new Social_Worker { User_Id = newUser.User_Id, Phone_Number = phoneNumber, Mobile_Phone_Number = mobilePhoneNumber, Gender_Id = genderId, Race_Id = raceId, ID_Number = idNumber, Is_Active = isActive, Is_Deleted = isDeleted, Date_Created = dateCreated, Created_By = createdBy }; try { newSocialWorker = dbContext.Social_Workers.Add(employee); dbContext.SaveChanges(); } catch (Exception) { return(null); } } return(newSocialWorker); }