public async Task <IActionResult> UpdateJob(int userId, string jobNum, JobForUpdateDto jobForUpdateDto)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var jobFromRepo = await _repo.GetJob(userId, jobNum);

            _mapper.Map(jobForUpdateDto, jobFromRepo);

            if (await _repo.SaveAll())
            {
                return(CreatedAtRoute("GetJob", new { jobNum = jobFromRepo.JobNumber, userId = userId }, jobForUpdateDto));
            }

            var newData = _mapper.Map(jobForUpdateDto, jobFromRepo);

            if (jobFromRepo == newData)
            {
                return(Ok(jobForUpdateDto));
            }

            throw new Exception($"Updating job lot {jobNum} failed on save");
        }
        public async Task <IActionResult> AddOperation(int userId, OperationForCreationDto opForCreationDto)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var op = _mapper.Map <Operation>(opForCreationDto);

            var jobInfo = await _repo.GetJob(userId, opForCreationDto.JobNumber);

            op.JobNumber = jobInfo.JobNumber;
            op.userId    = userId;

            _repo.Add(op);

            if (await _repo.SaveAll())
            {
                var opToReturn = _mapper.Map <OperationForReturnDto>(op);
                return(CreatedAtRoute("GetOp", new { jobNum = op.JobNumber, opNum = op.OpNumber, userId = userId }, opToReturn));
            }

            throw new Exception("Creation of op lot failed on save");
        }