/// <summary>
        /// Creates the vacancy detail.
        /// </summary>
        /// <param name="vacancyDetailInfo">The vacancy detail information.</param>
        /// <param name="hasApplied"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">vacancyDetailInfo</exception>
        public IVacancyDetail CreateVacancyDetail(IVacancyDetail vacancyDetailInfo, bool hasApplied)
        {
            if (vacancyDetailInfo == null)
            {
                throw new ArgumentNullException(nameof(vacancyDetailInfo));
            }

            var vacancyView = new VacancyDetail
            {
                VacancyId          = vacancyDetailInfo.VacancyId,
                CompanyId          = vacancyDetailInfo.CompanyId,
                CompanyName        = vacancyDetailInfo.CompanyName,
                CompanyState       = vacancyDetailInfo.CompanyState,
                DepartmentId       = vacancyDetailInfo.DepartmentId,
                Department         = vacancyDetailInfo.Department,
                JobTitleId         = vacancyDetailInfo.JobTitleId,
                JobTitle           = vacancyDetailInfo.JobTitle,
                GradeId            = vacancyDetailInfo.GradeId,
                Qualification      = vacancyDetailInfo.Qualification,
                Experience         = vacancyDetailInfo.Experience,
                NumberToEmploy     = vacancyDetailInfo.NumberToEmploy,
                OpenDate           = vacancyDetailInfo.OpenDate,
                Closedate          = vacancyDetailInfo.Closedate,
                JobDefinition      = vacancyDetailInfo.JobDefinition,
                JobFunction        = vacancyDetailInfo.JobFunction,
                QuestionCollection = vacancyDetailInfo.QuestionCollection,
                ProcessingMessage  = vacancyDetailInfo.ProcessingMessage,
                HasApplied         = hasApplied,
                CompanyAlias       = vacancyDetailInfo.CompanyAlias,
            };

            return(vacancyView);
        }
        /// <summary>
        /// </summary>
        /// <param name="vacancyInfo"></param>
        /// <param name="companyCollection"></param>
        /// <returns></returns>
        public IVacancyView EditVacancyView(IVacancyDetail vacancyInfo, IList <ICompanyDetail> companyCollection)
        {
            //Get Company
            var companyDDL = GetDropDownList.CompanyListItems(companyCollection, vacancyInfo.CompanyId);

            return(new VacancyView
            {
                CompanyDropDown = companyDDL,
                VacancyId = vacancyInfo.VacancyId,
                JobFunction = vacancyInfo.JobFunction,
                JobTitle = vacancyInfo.JobTitle,
                CompanyId = vacancyInfo.CompanyId,
                DepartmentId = vacancyInfo.DepartmentId,
                JobTitleId = vacancyInfo.JobTitleId,
                GradeId = vacancyInfo.GradeId,
                Qualification = vacancyInfo.Qualification,
                Experience = vacancyInfo.Experience,
                NumberToEmploy = vacancyInfo.NumberToEmploy,
                OpenDate = vacancyInfo.OpenDate,
                Closedate = vacancyInfo.Closedate,
                ProcessingMessage = vacancyInfo.ProcessingMessage,
            });
        }