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));
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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));
        }