public async Task <IActionResult> Put(int id, SaveEquipmentDto equipmentDto)
        {
            var validator        = new SaveEquipmentResourceValidator();
            var validationResult = await validator.ValidateAsync(equipmentDto);

            var requestIsInvalid = id == 0 || !validationResult.IsValid;

            if (requestIsInvalid)
            {
                return(BadRequest(validationResult.Errors));
            }

            if (!EquipmentExists(id))
            {
                return(NotFound());
            }

            var equipment = _mapper.Map <SaveEquipmentDto, Equipment>(equipmentDto);

            try
            {
                await _equipmentService.UpdateEquipment(id, equipment);

                var updatedEquipment = await _equipmentService.GetEquipmentById(id);

                var updatedEquipmentResource = _mapper.Map <Equipment, EquipmentDto>(updatedEquipment);

                return(Ok(updatedEquipmentResource));
            }
            catch (Exception)
            {
                throw new Exception(StatusCodes.Status500InternalServerError.ToString());
            }
        }
        public async Task <ActionResult <EquipmentDto> > Post(SaveEquipmentDto equipmentDto)
        {
            var validator        = new SaveEquipmentResourceValidator();
            var validationResult = await validator.ValidateAsync(equipmentDto);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors));
            }

            var equipmentToCreate = _mapper.Map <SaveEquipmentDto, Equipment>(equipmentDto);

            var newEquipment = await _equipmentService.CreateEquipment(equipmentToCreate);

            var equipment = await _equipmentService.GetEquipmentById(newEquipment.Id);

            var equipmentResource = _mapper.Map <Equipment, EquipmentDto>(equipment);

            return(Ok(equipmentResource));
        }