[Authorize(Roles = "Labourer")] //TODO: consider to remove the function, bc there is no option to add labourer's job from client public ActionResult <LabourerJobVM> PostLabourerJob([FromBody] LabourerJobVM labourerJobVM) { if (ModelState.IsValid) { try { var userId = _userManager.GetUserId(User); var result = _labourerJobsRepo.AddLabourerJob(labourerJobVM, userId); return(Ok(result)); } catch (Exception e) { return(StatusCode(500, new { message = e.Message })); } } return(BadRequest()); }
public LabourerJobVM AddLabourerJob(LabourerJobVM labourerJobVM, string userId) { var labourerSkill = _context.LabourerSkills.Where(ls => ls.SkillId == labourerJobVM.SkillId.Value).Include(ls => ls.Labourer).Where(ls => ls.Labourer.UserId == userId).FirstOrDefault(); var labourerJob = new LabourerJob { JobId = labourerJobVM.JobId.Value, SkillId = labourerSkill.SkillId, Labourer = labourerSkill.Labourer, Date = labourerJobVM.Date, JobRating = labourerJobVM.JobRating, QualityRating = labourerJobVM.QualityRating, SafetyRating = labourerJobVM.SafetyRating, WageAmount = labourerJobVM.WageAmount }; _context.LabourerJobs.Add(labourerJob); _context.SaveChanges(); labourerJobVM.Id = labourerJob.Id; return(labourerJobVM); }