[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);
        }