Example #1
0
        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));
        }
Example #2
0
        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"));
        }
Example #3
0
        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));
        }
Example #4
0
        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));
            }
        }
Example #5
0
        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));
        }
Example #6
0
        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));
            }
        }