public async Task <IActionResult> Create([FromRoute] Guid workerId, [FromBody] UpdateWorkerRequest request)
        {
            await _mediator.Send(new WorkerUpdateCommand(
                                     workerId,
                                     request.FirstName,
                                     request.LastName,
                                     request.Birthday,
                                     request.CityOfBirthday,
                                     request.Pesel,
                                     request.DocumentType,
                                     request.DocumentNumber,
                                     request.Gender,
                                     request.Street,
                                     request.PropertyNumber,
                                     request.ApartmentNumber,
                                     request.ZipCode,
                                     request.City,
                                     request.Country,
                                     request.ActNumber,
                                     request.MotherName,
                                     request.FatherName,
                                     request.Phone
                                     ));

            return(SuccessResponse("Pracownik został zaktualizowany"));
        }
Beispiel #2
0
        public void UpdateWorker(UpdateWorkerRequest request)
        {
            var worker = _databaseContext.Workers.FirstOrDefault(x => x.Id == request.WorkerId);

            if (worker == null)
            {
                throw new WorkerNotFoundException($"Worker with Id {request.WorkerId} not found");
            }

            worker.LastModifiedBy = request.ModifiedBy;
            worker.FirstName      = request.FirstName;
            worker.LastName       = request.LastName;
            worker.ContextFlag    = request.ContextFlag;
            worker.Role           = request.Role;
            worker.DateStart      = request.DateStart;
            worker.IsActive       = true;

            var workerTeams = GetTeams(request.Teams);

            worker.WorkerTeams = workerTeams.Select(t => new WorkerTeam {
                Team = t, Worker = worker
            }).ToList();
            _databaseContext.SaveChanges();

            // Update any assigned allocations to reflect the worker's new team
            var allocations = _databaseContext.Allocations.Where(x => x.WorkerId == request.WorkerId).ToList();

            if (!allocations.Any())
            {
                return;
            }

            var updatedTeam = _databaseContext.WorkerTeams.FirstOrDefault(x => x.WorkerId.Equals(worker.Id))?.Team;

            foreach (var allocation in allocations)
            {
                allocation.TeamId = updatedTeam?.Id;
                allocation.Team   = updatedTeam;
                _databaseContext.SaveChanges();
            }
        }
Beispiel #3
0
        public IActionResult EditWorker([FromBody] UpdateWorkerRequest request)
        {
            var validator         = new UpdateWorkerRequestValidator();
            var validationResults = validator.Validate(request);

            if (!validationResults.IsValid)
            {
                return(BadRequest(validationResults.ToString()));
            }

            try
            {
                _workersUseCase.ExecutePatch(request);
                return(NoContent());
            }
            catch (PatchWorkerException e)
            {
                return(UnprocessableEntity(e.Message));
            }
            catch (WorkerNotFoundException e)
            {
                return(UnprocessableEntity(e.Message));
            }
        }
Beispiel #4
0
 public void ExecutePatch(UpdateWorkerRequest updateWorkerRequest)
 {
     _databaseGateway.UpdateWorker(updateWorkerRequest);
 }