/// <summary>
        /// Creates the admin dash board view.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="company">The company.</param>
        /// <param name="companyCollection">The company collection.</param>
        /// <param name="levelCollection">The level collection.</param>
        /// <param name="gradeCollection">The grade collection.</param>
        /// <param name="jobTitleCollection">The job title collection.</param>
        /// <param name="disciplineCollection">The discipline collection.</param>
        /// <param name="leaveRequestModel">The leave request model.</param>
        /// <param name="departmentCollection">The department collection.</param>
        /// <param name="trainingCollection">The training collection.</param>
        /// <param name="employeeCollection">The employee collection.</param>
        /// <param name="employmentHistory">The employment history.</param>
        /// <param name="educationHistory">The education history.</param>
        /// <param name="skillSet">The skill set.</param>
        /// <param name="digitalFile">The digital file.</param>
        /// <param name="pendingLeaveRequests">The pending leave requests.</param>
        /// <param name="pendingLoanRequest">The pending loan request.</param>
        /// <param name="pendingTrainingRequest">The pending training request.</param>
        /// <param name="processingMessage">The processing message.</param>
        /// <returns></returns>
        public IEmployeeProfileView CreateAdminDashBoardView(IUserDetail user, IEmployee employeeInfo, ICompanyDetail company, IList <ICompanyDetail> companyCollection, IList <ILevel> levelCollection, IList <IGrade> gradeCollection,
                                                             IList <IJobTitle> jobTitleCollection, IList <IDiscipline> disciplineCollection, IList <ILeaveRequestModel> leaveRequestModel, IList <IDepartment> departmentCollection,
                                                             IList <ITraining> trainingCollection, IList <IEmployee> employeeCollection, IList <IEmploymentHistory> employmentHistory, IList <IEducationHistory> educationHistory, IList <ISkillSetModel> skillSet,
                                                             IDigitalFile digitalFile, IList <ILeaveRequestModel> pendingLeaveRequests, IList <IEmployeeLoan> pendingLoanRequest, IList <IEmployeeTrainingModel> pendingTrainingRequest, string processingMessage)
        {
            var returnModel = new EmployeeProfileView
            {
                User                   = user,
                Company                = company,
                EducationHistory       = educationHistory,
                EmploymentHistory      = employmentHistory,
                SkillSet               = skillSet,
                ProfilePictureDetail   = digitalFile,
                QueryCollection        = disciplineCollection,
                LeaveTypeCollection    = leaveRequestModel,
                DepartmentCollection   = departmentCollection,
                TrainingCollection     = trainingCollection,
                ProcessingMessage      = processingMessage,
                EmployeeCollection     = employeeCollection,
                LevelCollection        = levelCollection,
                GradeCollection        = gradeCollection,
                JobTitle               = jobTitleCollection,
                PendingLeaveRquest     = pendingLeaveRequests,
                PendingLoanRequest     = pendingLoanRequest,
                PendingTrainingRequest = pendingTrainingRequest,
                CompanyCollection      = companyCollection,
                Employee               = employeeInfo
            };

            return(returnModel);
        }
        /// <summary>
        /// Creates the dash board view.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="employee">The employee.</param>
        /// <param name="companyCollection">The company collection.</param>
        /// <param name="disciplineCollection">The discipline collection.</param>
        /// <param name="leaveRequestModel">The leave request model.</param>
        /// <param name="departmentCollection">The department collection.</param>
        /// <param name="trainingCollection">The training collection.</param>
        /// <param name="trainingRequestCollection">The training request collection.</param>
        /// <param name="leaveRequest">The leave request.</param>
        /// <param name="employeeCollection">The employee collection.</param>
        /// <param name="employmentHistory">The employment history.</param>
        /// <param name="educationHistory">The education history.</param>
        /// <param name="skillSet">The skill set.</param>
        /// <param name="digitalFile">The digital file.</param>
        /// <param name="processingMessage">The processing message.</param>
        /// <returns></returns>
        public IEmployeeProfileView CreateDashBoardView(IUserDetail user, IEmployee employee, IList <ICompanyDetail> companyCollection, IList <IDiscipline> disciplineCollection,
                                                        IList <ILeaveRequestModel> leaveRequestModel, IList <IDepartment> departmentCollection, IList <ITraining> trainingCollection, IList <IEmployeeTrainingModel> trainingRequestCollection, ILeaveRequestModel leaveRequest, IList <IEmployee> employeeCollection,
                                                        IList <IEmploymentHistory> employmentHistory, IList <IEducationHistory> educationHistory, IList <ISkillSetModel> skillSet, IDigitalFile digitalFile, string processingMessage)
        {
            var returnModel = new EmployeeProfileView
            {
                User                      = user,
                EducationHistory          = educationHistory,
                EmploymentHistory         = employmentHistory,
                SkillSet                  = skillSet,
                Employee                  = employee,
                ProfilePictureDetail      = digitalFile,
                QueryCollection           = disciplineCollection,
                LeaveTypeCollection       = leaveRequestModel,
                CompanyCollection         = companyCollection,
                DepartmentCollection      = departmentCollection,
                TrainingCollection        = trainingCollection,
                ProcessingMessage         = processingMessage,
                EmployeeCollection        = employeeCollection,
                TrainingRequestCollection = trainingRequestCollection,
                LeaveRequest              = leaveRequest,
            };

            return(returnModel);
        }
        /// <summary>
        /// Creates the employee view.
        /// </summary>
        /// <param name="employee">The employee.</param>
        /// <param name="user">The user.</param>
        /// <param name="companyColletion">The company colletion.</param>
        /// <param name="discipline">The discipline.</param>
        /// <param name="leaveRequestModel">The leave request model.</param>
        /// <param name="employmentHistory">The employment history.</param>
        /// <param name="educationHistory">The education history.</param>
        /// <param name="skillSet">The skill set.</param>
        /// <param name="digitalFile">The digital file.</param>
        /// <param name="processingMessage">The processing message.</param>
        /// <returns></returns>
        public IEmployeeProfileView CreateEmployeeView(IEmployee employee, IUserDetail user, IList <ICompanyDetail> companyColletion, IList <IDiscipline> discipline, IList <ILeaveRequestModel> leaveRequestModel, IList <IEmploymentHistory> employmentHistory,
                                                       IList <IEducationHistory> educationHistory, IList <ISkillSetModel> skillSet, IDigitalFile digitalFile,
                                                       IList <ISpouseModel> spouseModel, IList <IEmergency> emergency,
                                                       IList <IChildrenModel> childrenModel, IList <IBeneficiariesModel> beneficiariesModel,
                                                       IList <INextOfKin> nextOfKin, string processingMessage)
        {
            var returnModel = new EmployeeProfileView
            {
                Employee             = employee,
                User                 = user,
                EducationHistory     = educationHistory,
                EmploymentHistory    = employmentHistory,
                SkillSet             = skillSet,
                ProfilePictureDetail = digitalFile,
                QueryCollection      = discipline,
                LeaveTypeCollection  = leaveRequestModel,
                CompanyCollection    = companyColletion,
                ProcessingMessage    = processingMessage,
                spouseModel          = spouseModel,
                emergencyModel       = emergency,
                nextOfKinModel       = nextOfKin,
                childrenModel        = childrenModel,
                beneficiaryModel     = beneficiariesModel
            };

            return(returnModel);
        }