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")); }
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(); } }
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)); } }
public void ExecutePatch(UpdateWorkerRequest updateWorkerRequest) { _databaseGateway.UpdateWorker(updateWorkerRequest); }