public async Task <IActionResult> Put(int id, [FromBody] InMachineTypeDTO inMachineTypeDto) { try { await _machineTypeService.UpdateMachineTypeAsync(id, inMachineTypeDto); return(NoContent()); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e.Message)); } }
public async Task <IActionResult> Post([FromBody] InMachineTypeDTO inMachineTypeDto) { try { var result = await _machineTypeService.CreateMachineTypeAsync(inMachineTypeDto); return(Created(nameof(Post), result)); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e.Message)); } }
public async Task <OutMachineTypeDTO> CreateMachineTypeAsync(InMachineTypeDTO inMachineDto) { var machineType = MachineTypeMapping.InDtoToMachineType(inMachineDto); foreach (var mto in machineType.machineTypeOperations) { mto.machinetype = machineType; } var machineTypeResult = await _machineTypeRepository.Create(machineType); foreach (var mto in machineTypeResult.machineTypeOperations) { var op = await _operationRepository.GetById(mto.OperationId); mto.operation = op; } return(MachineTypeMapping.MachineTypeToOutDto(machineTypeResult)); }
public static MachineType InDtoToMachineType(InMachineTypeDTO machineTypeDTO) { ICollection <MachineTypeOperation> lstMachineTypeOperation = new List <MachineTypeOperation>(); foreach (var operationId in machineTypeDTO.Operations) { lstMachineTypeOperation.Add(new MachineTypeOperation() { OperationId = operationId }); } var machine = new MachineType { NameMachineType = (machineTypeDTO.Name), Description = (machineTypeDTO.Description), machineTypeOperations = lstMachineTypeOperation }; return(machine); }
public async Task <OutMachineTypeDTO> UpdateMachineTypeAsync(int machineTypeId, InMachineTypeDTO machineTypeDto) { //TODO: HERE! var machineType = await _machineTypeRepository.GetById(machineTypeId); if (machineType == null) { throw new ApplicationException("Machine Type not found"); } machineType.Description = machineTypeDto.Description; machineType.NameMachineType = machineTypeDto.Name; // Delete all old machine - operations relations machineType.machineTypeOperations.ToList() .ForEach(m => _machineTypeOperationRepository.Delete(m)); var machineTypeOperations = new List <MachineTypeOperation>(); foreach (var operationId in machineTypeDto.Operations) { var foundMachineTypeOp = await _machineTypeOperationRepository.GetById(machineTypeId, operationId); if (foundMachineTypeOp != null) { machineTypeOperations.Add(foundMachineTypeOp); } else { var operation = await _operationRepository.GetById(operationId); if (operation == null) { throw new ApplicationException("Operation not found"); } var newMachineTypeOp = new MachineTypeOperation() { machinetype = machineType, MachineTypeId = machineTypeId, operation = operation, OperationId = operationId }; newMachineTypeOp = await _machineTypeOperationRepository.Create(newMachineTypeOp); machineTypeOperations.Add(newMachineTypeOp); } } machineType.machineTypeOperations = machineTypeOperations; var machineTypes = await _machineTypeRepository.Update(machineType); return(MachineTypeMapping.MachineTypeToOutDto(machineTypes)); }