public IActionResult AddJob() { ClientJobViewModel model = new ClientJobViewModel(); string userId = _userManager.GetUserId(HttpContext.User); var clientInfo = _clientRepository.GetClientByUserId(userId); model.ClientID = clientInfo.Id; if (model.businessstreams.Count == 0) { model.businessstreams = new List <SelectListItem>(); model.businessstreams.Add(new SelectListItem { Value = "", Text = "-- 業界選択 --" }); var businessstreams = _businessRepository.GetAll(); foreach (var BusinessStrem in businessstreams) { model.businessstreams.Add(new SelectListItem { Value = Convert.ToString(BusinessStrem.Id), Text = BusinessStrem.Name_jp }); } } if (model.Provinces.Count == 0) { model.Provinces = new List <SelectListItem>(); model.Provinces.Add(new SelectListItem { Value = "", Text = "--Choose--" }); var provinces = _provinceRepository.GetAll(); foreach (var province in provinces) { model.Provinces.Add(new SelectListItem { Value = Convert.ToString(province.Id), Text = province.Name }); } } return(View(model)); }
public async Task <IActionResult> IndexAsync() { List <ClientJobViewModel> model = new List <ClientJobViewModel>(); if (!_signInManager.IsSignedIn(User)) { return(Redirect("~/Account/LoginClient")); } else { System.Security.Claims.ClaimsPrincipal currentUser = User; var isClient = currentUser.IsInRole("client") || currentUser.IsInRole("client-editor"); if (isClient) { var user = await _userManager.GetUserAsync(User); var client = _clientRepository.GetClientByUserId(user.Id); IEnumerable <Job> jobs = _jobsRepository.Find(x => x.ClientId == client.Id); foreach (var job in jobs) { ClientJobViewModel clientjobmodel = new ClientJobViewModel(); var jobcategory = _jobCategoryRepository.GetById(job.JobCategoryId); clientjobmodel.JobId = job.Id; clientjobmodel.JobTitle = jobcategory.CategoryName_JP; clientjobmodel.JapaneseLevel = job.JapaneseLevel_Text; clientjobmodel.Workinghour = job.Workinghour; clientjobmodel.WorkingDaysPerWeek = job.WorkingdaysPerweek; //clientjobmodel.ContractType = job.WorkinghourPerday; clientjobmodel.Address = job.WorkLocationAddress; clientjobmodel.ProvinceName = job.provinceName; clientjobmodel.Salary = job.Salary_Hourly; clientjobmodel.PostDate = job.PostDate; clientjobmodel.Status = job.Status; var jobapplied = _jobApplyRepository.GetAppliedCount(job.Id); clientjobmodel.CandidateApplied = jobapplied.Count; model.Add(clientjobmodel); } return(View(model)); } } return(Redirect("~/Account/LoginClient")); }
public async Task <IActionResult> JobDetail(long id) { var jobdetail = await _jobsRepository.GetJobsByIdAsync(id); var model = new ClientJobViewModel() { JobTitle = jobdetail.JobCategory.CategoryName_JP, BusinessstreamName = jobdetail.BusinessStream.Name_jp, JobId = jobdetail.Id, JapaneseLevel = jobdetail.JapaneseLevel_Text, ContractType = jobdetail.ContractType_Text, businessstream = jobdetail.BusinessStream, Workinghour = jobdetail.Workinghour, WorkingDaysPerWeek = jobdetail.WorkingdaysPerweek, NeededStaff = jobdetail.NeededStaff, Salary_Monthly = jobdetail.Salary_Monthly, Salary_Hourly = jobdetail.Salary_Hourly }; return(View(model)); }
public IActionResult EditJob(ClientJobViewModel model) { if (ModelState.IsValid) { model.businessstreams = new List <SelectListItem>(); model.businessstreams.Add(new SelectListItem { Value = "", Text = "-- 業界選択 --" }); var businessstreams = _businessRepository.GetAll(); foreach (var BusinessStrem in businessstreams) { model.businessstreams.Add(new SelectListItem { Value = Convert.ToString(BusinessStrem.Id), Text = BusinessStrem.Name_jp }); } var jobcategory = _jobCategoryRepository.GetById(Convert.ToInt32(model.JobCategoryId)); var job = _jobsRepository.GetJobsById(model.JobId); job.JobCategory = jobcategory; job.JobTitle = jobcategory.CategoryName; job.ContractType_Text = model.ContractType; job.Salary_Hourly = model.Salary_Hourly; job.Salary_Monthly = model.Salary_Monthly; job.WorkingdaysPerweek = model.WorkingDaysPerWeek; job.Workinghour = model.Workinghour; job.Role = model.JobTitle; //here job title and role is same job.JapaneseLevel_Text = model.JapaneseLevel; job.Transporationfee = model.TransportationFee; job.WorkLocationAddress = model.Address; job.Client = _clientRepository.GetById(model.ClientID); job.CompanyName = job.Client.CompanyName; job.BusinessStream = _businessRepository.GetById(model.BusinessstreamID); job.NeededStaff = model.NeededStaff; job.provinceName = model.ProvinceName; //string workingTime = $"{model.WorkStartTime}-{model.WorkEndTime}"; job.StartWorkingTime = model.WorkStartTime; job.EndWorkingTime = model.WorkEndTime; job.MinAge = model.MinAge; job.MaxAge = model.MaxAge; //string requiredAge = $"{model.MinAge}-{model.MaxAge}"; //job.RequiredAge = requiredAge; job.Status = model.Status; job.PostDate = DateTime.Now; int result = _jobsRepository.Update(job); if (result > 0) { if (User.IsInRole("admin")) { //ViewData["success"] = "Job updated successfully"; return(Redirect("/admin/jobinfo/index")); //return View(job.Id); } return(Redirect("~/clients")); } else { ViewData["error"] = "Error in editing data"; return(View(model)); } } else { ViewData["error"] = "Validation Failed"; return(View(model)); } }
public async Task <IActionResult> EditJob(long id) { ClientJobViewModel model = new ClientJobViewModel(); model.businessstreams = new List <SelectListItem>(); model.businessstreams.Add(new SelectListItem { Value = "", Text = "-- 業界選択 --" }); var businessstreams = _businessRepository.GetAll(); foreach (var BusinessStrem in businessstreams) { model.businessstreams.Add(new SelectListItem { Value = Convert.ToString(BusinessStrem.Id), Text = BusinessStrem.Name_jp }); } if (model.Provinces.Count == 0) { model.Provinces = new List <SelectListItem>(); model.Provinces.Add(new SelectListItem { Value = "", Text = "--Choose--" }); var provinces = _provinceRepository.GetAll(); foreach (var prov in provinces) { model.Provinces.Add(new SelectListItem { Value = Convert.ToString(prov.Id), Text = prov.Name_Jp }); } } Job job = _jobsRepository.GetJobsById(id); var jobCategories = await _jobCategoryRepository.FindByAsyn(x => x.BusinessStreamId == job.BusinessStreamID); var postalCode = _postalCodeRepository.GetById(job.PostalCodeId); var province = _provinceRepository.GetById(postalCode.ProvinceID); List <SelectListItem> jobCategoryList = new List <SelectListItem>(); foreach (var jobcategory in jobCategories) { jobCategoryList.Add(new SelectListItem() { Value = Convert.ToString(jobcategory.Id), Text = jobcategory.CategoryName_JP, }); } var postalArry = postalCode.Code.Split('-'); if (postalArry.Length > 0) { model.PostalAddrss1 = postalArry[0]; model.PostalAddrss2 = postalArry[1]; } model.ProvinceID = province.Id; model.CityName = postalCode.CityName; model.Town = postalCode.Town; model.JobCategories = jobCategoryList; model.JobId = job.Id; model.Workinghour = job.Workinghour; model.WorkingDaysPerWeek = job.WorkingdaysPerweek; model.JapaneseLevel = job.JapaneseLevel_Text; model.BusinessstreamID = job.BusinessStreamID; model.ClientID = job.ClientId; model.ContractType = job.ContractType_Text; model.Salary_Monthly = job.Salary_Monthly; model.Salary_Hourly = job.Salary_Hourly; model.NeededStaff = job.NeededStaff; model.TransportationFee = job.Transporationfee; model.Address = job.WorkLocationAddress; model.ProvinceName = job.provinceName; model.JobCategoryId = job.JobTitle; model.WorkStartTime = job.StartWorkingTime; model.WorkEndTime = job.EndWorkingTime; model.Status = job.Status; //if (!string.IsNullOrEmpty(job.WorkingTime)) //{ // string []workingtime = job.WorkingTime.Split("-"); // if(workingtime.Length > 0) // { // model.WorkStartTime = workingtime[0]; // model.WorkEndTime = workingtime[1]; // } //} model.MinAge = job.MinAge; model.MaxAge = job.MaxAge; //if (!string.IsNullOrEmpty(job.RequiredAge)) //{ // string[] requiredages = job.RequiredAge.Split("-"); // if(requiredages.Length > 0) // { // model.MinAge = Convert.ToInt32(requiredages[0]); // model.MaxAge = Convert.ToInt32(requiredages[1]); // } //} return(View(model)); }
public IActionResult AddJob(ClientJobViewModel model) { if (ModelState.IsValid) { if (model.businessstreams.Count == 0) { model.businessstreams = new List <SelectListItem>(); model.businessstreams.Add(new SelectListItem { Value = "", Text = "-- 業界選択 --" }); var businessstreams = _businessRepository.GetAll(); foreach (var BusinessStrem in businessstreams) { model.businessstreams.Add(new SelectListItem { Value = Convert.ToString(BusinessStrem.Id), Text = BusinessStrem.Name_jp }); } } var jobcategory = _jobCategoryRepository.GetById(Convert.ToInt32(model.JobCategoryId)); var job = new Job(); job.JobCategory = jobcategory; job.JobTitle = jobcategory.CategoryName; job.ContractType_Text = model.ContractType; job.Salary_Hourly = model.Salary_Hourly; job.Salary_Monthly = model.Salary_Monthly; job.WorkingdaysPerweek = model.WorkingDaysPerWeek; job.Workinghour = model.Workinghour; job.Role = model.JobTitle; //here job title and role is same job.JapaneseLevel_Text = model.JapaneseLevel; job.Transporationfee = model.TransportationFee; job.WorkLocationAddress = model.Address; job.Client = _clientRepository.GetById(model.ClientID); job.CompanyName = job.Client.CompanyName; job.BusinessStream = _businessRepository.GetById(model.BusinessstreamID); job.NeededStaff = model.NeededStaff; job.provinceName = model.ProvinceName; //string workingTime = $"{model.WorkStartTime}-{model.WorkEndTime}"; job.Status = model.Status; job.StartWorkingTime = model.WorkStartTime; job.EndWorkingTime = model.WorkEndTime; //string requiredAge = $"{model.MinAge}-{model.MaxAge}"; //job.RequiredAge = requiredAge; job.MinAge = model.MinAge; job.MaxAge = model.MaxAge; job.PostDate = DateTime.Now; string postalCodeValue = model.PostalAddrss1 + "-" + model.PostalAddrss2; var postalCode = _postalCodeRepository.Find(x => x.Code == postalCodeValue).FirstOrDefault(); job.PostalCode = postalCode; job.WorkLocationAddress = model.Address; job.ContractType = new ContractType(); job.JapaneseLevel = new JapaneseLevel(); int result = _jobsRepository.Create(job); if (result > 0) { return(Redirect("~/Clients")); } else { ViewData["error"] = "Error in saving data"; return(View(model)); } } else { ViewBag.ErrorMsg = "Validation Failed"; return(View(model)); } }