Beispiel #1
0
 public bool PostWithImage(Employee employee)
 {
     try
     {
         var recordsByEmail = _dbContext.Employees.Where(r => r.Username == employee.Username).FirstOrDefault();
         if (recordsByEmail != null)
         {
             return(false); // because this user already exists
         }
         employee.Login.EncryptedPassword   = Encryptor.Encrypt(employee.Login.Password);
         employee.PersonalInfo.Picture      = _uploadndownloadService.UploadFileAsReference(employee.PersonalInfo.Picture, employee.Username, employee.PersonalInfo.FullName);
         employee.DateCreated               = System.DateTime.Now;
         employee.DateModified              = System.DateTime.Now;
         employee.PersonalInfo.DateCreated  = System.DateTime.Now;
         employee.PersonalInfo.DateModified = System.DateTime.Now;
         employee.DateOfJoining             = System.DateTime.Now;
         _dbContext.Add(employee);
         return(true);
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
Beispiel #2
0
        public void EmpUpdate(Employee employee, bool deleteAssociatedObjects = false)
        {
            // UploadFileAsReference ( Base64, Email, FullName )
            // Delete all associated data and re-enter everything in order to update deleted objects as well

            if (deleteAssociatedObjects == true)
            {
                var employeeToBeDeleted = _dbContext.Employees.AsNoTracking().Include(p => p.AllAttachments)
                                          .Include(p => p.Grievances)
                                          .Include(p => p.LanguageSkills)
                                          .Include(p => p.Letters)
                                          .Include(p => p.ProfessionalReferences)
                                          .Include(p => p.EmployeeCandidatesReferred)
                                          .Include(p => p.EducationalRecords)
                                          .Include(p => p.Dependents)
                                          .Include(p => p.WorkHistories)
                                          //.Include(p => p.Claims)
                                          .Include(p => p.TrainingRequests)
                                          .Include(p => p.Certifications)
                                          .Include(p => p.Queries)
                                          .Include(p => p.Role)
                                          .SingleOrDefault(p => p.Id == employee.Id);
                // removing attachments
                if (employeeToBeDeleted.AllAttachments.ToArray() != null && employeeToBeDeleted.AllAttachments.ToArray().Count() > 0)
                {
                    _dbContext.AllAttachments.RemoveRange(employeeToBeDeleted.AllAttachments.ToArray());
                }

                // removing referred candidates
                if (employeeToBeDeleted.EmployeeCandidatesReferred.ToArray() != null && employeeToBeDeleted.EmployeeCandidatesReferred.ToArray().Count() > 0)
                {
                    _dbContext.EmployeeCandidatesReferred.RemoveRange(employeeToBeDeleted.EmployeeCandidatesReferred.ToArray());
                }

                //removing Professional references
                if (employeeToBeDeleted.ProfessionalReferences.ToArray() != null && employeeToBeDeleted.ProfessionalReferences.ToArray().Count() > 0)
                {
                    _dbContext.ProfessionalReferences.RemoveRange(employeeToBeDeleted.ProfessionalReferences.ToArray());
                }

                //removing educational records
                if (employeeToBeDeleted.EducationalRecords.ToArray() != null && employeeToBeDeleted.EducationalRecords.ToArray().Count() > 0)
                {
                    _dbContext.EducationalRecords.RemoveRange(employeeToBeDeleted.EducationalRecords.ToArray());
                }

                //removing Dependents
                if (employeeToBeDeleted.Dependents.ToArray() != null && employeeToBeDeleted.Dependents.ToArray().Count() > 0)
                {
                    _dbContext.Dependents.RemoveRange(employeeToBeDeleted.Dependents.ToArray());
                }

                //removing work histories
                if (employeeToBeDeleted.WorkHistories.ToArray() != null && employeeToBeDeleted.WorkHistories.ToArray().Count() > 0)
                {
                    _dbContext.WorkHistories.RemoveRange(employeeToBeDeleted.WorkHistories.ToArray());
                }

                //removing claims
                //if (employeeToBeDeleted.Claims.ToArray() != null && employeeToBeDeleted.Claims.ToArray().Count() > 0)
                //    _dbContext.Claims.RemoveRange(employeeToBeDeleted.Claims.ToArray());

                // removing Grievances
                if (employeeToBeDeleted.Grievances.ToArray() != null && employeeToBeDeleted.Grievances.ToArray().Count() > 0)
                {
                    _dbContext.Grievances.RemoveRange(employeeToBeDeleted.Grievances.ToArray());
                }

                // removing TrainingRequests
                if (employeeToBeDeleted.TrainingRequests.ToArray() != null && employeeToBeDeleted.TrainingRequests.ToArray().Count() > 0)
                {
                    _dbContext.TrainingRequests.RemoveRange(employeeToBeDeleted.TrainingRequests.ToArray());
                }

                // removing Letters
                if (employeeToBeDeleted.Letters.ToArray() != null && employeeToBeDeleted.Letters.ToArray().Count() > 0)
                {
                    _dbContext.Letters.RemoveRange(employeeToBeDeleted.Letters.ToArray());
                }

                // removing Queries
                if (employeeToBeDeleted.Queries.ToArray() != null && employeeToBeDeleted.Queries.ToArray().Count() > 0)
                {
                    _dbContext.Queries.RemoveRange(employeeToBeDeleted.Queries.ToArray());
                }

                // removing ForgotEmails
                // _dbContext.ForgotEmails.RemoveRange(employeeToBeDeleted.Grievances.ToArray());

                // removing Certifications
                if (employeeToBeDeleted.Certifications.ToArray() != null && employeeToBeDeleted.Certifications.ToArray().Count() > 0)
                {
                    _dbContext.Certifications.RemoveRange(employeeToBeDeleted.Certifications.ToArray());
                }

                // LanguageSkills
                if (employeeToBeDeleted.LanguageSkills.ToArray() != null && employeeToBeDeleted.LanguageSkills.ToArray().Count() > 0)
                {
                    _dbContext.LanguageSkills.RemoveRange(employeeToBeDeleted.LanguageSkills.ToArray());
                }
            }
            employee.PersonalInfo.Picture = _uploadndownloadService.UploadFileAsReference(employee.PersonalInfo.Picture, employee.Username, employee.PersonalInfo.FullName);
            //update login object
            var oldEmployee = _dbContext.Employees.Where(s => s.Id == employee.Id).FirstOrDefault();

            if (oldEmployee != null && oldEmployee.Username != null)
            {
                _dbContext.Entry <Employee>(oldEmployee).State = EntityState.Detached;
                string officialEmail = oldEmployee.Username;
                var    loginObj      = _dbContext.Logins.Where(s => s.Email.Equals(officialEmail)).FirstOrDefault();
                if (loginObj != null && loginObj.Email != null)
                {
                    loginObj.Email = employee.Username;
                    _dbContext.Logins.Update(loginObj);
                }
                else
                {
                    throw new NullReferenceException("No login object to update");
                }
            }
            else
            {
                throw new NullReferenceException("Original employee doesn't exist");
            }

            //
            _dbContext.Employees.Update(employee);

            _dbContext.SaveChanges();
        }