C#C
C#2y ago
DAMINKO

an error occured while sending an update request

This my method :
 public async Task<IActionResult> Update([FromRoute] string matricule, [FromBody] UpdateUserRequestDTO updateDto)
        {

           
            var user = await _utilisateurService.GetByMatriculeAsync(matricule);
            if (user == null)
            {
                return NotFound();
            }

           if (user.Data.Role == "Transporteur")
            {
                var transporteur = await _transporteurService.GetByMatriculeAsync(user.Data);
                if (transporteur == null)
                {
                    return NotFound("Transporteur not found");
                }

                if (transporteur.Data!.VehiculeId != updateDto.VehiculeId)
                {
                    var switchNew = await _vehiculeService.SwitchLibre(updateDto.VehiculeId!);
                    var switchOld = await _vehiculeService.SwitchLibre(transporteur.Data.VehiculeId!);

                    if (!switchNew.Success || !switchOld.Success)
                    {
                        // Roll back the switch operation if either fails
                        if (!switchNew.Success)
                        {
                            await _vehiculeService.SwitchLibre(transporteur.Data.VehiculeId!);
                        }
                        if (!switchOld.Success)
                        {
                            await _vehiculeService.SwitchLibre(updateDto.VehiculeId!);
                        }
                        return BadRequest("Failed to switch vehicle availability");
                    }
                }

                var updatedTransporteur = await _transporteurService.UpdateTransporteur(updateDto, matricule);
                return updatedTransporteur.Success ? Ok(updatedTransporteur.Data) : BadRequest(updatedTransporteur.Message);
            }
           
            else
            {
                return BadRequest("Invalid role");
            }
        }
Was this page helpful?