public IActionResult Post([FromBody] PetitionTrace PetitionTrace)
        {
            int idPetitionTrace = 0;

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            using (var transaction = new TransactionScope())
            {
                try
                {
                    string idUser = User.Claims.Where(c => c.Type.Equals(ClaimTypes.PrimarySid)).FirstOrDefault().Value;
                    PetitionTrace.IdUser = int.Parse(idUser);
                    idPetitionTrace      = _unitOfWork.PetitionTrace.Insert(PetitionTrace);
                    Petition petition = _unitOfWork.Petition.GetById(PetitionTrace.IdPetition);
                    if (petition.State.Equals("A"))
                    {
                        petition.State = "P";
                    }
                    _unitOfWork.Petition.Update(petition);
                    transaction.Complete();
                }
                catch (Exception ex)
                {
                    transaction.Dispose();
                    return(StatusCode(500, "Internal server error: " + ex.Message));
                }
            }
            return(Ok(idPetitionTrace));
        }
 public IActionResult Put([FromBody] PetitionTrace PetitionTrace)
 {
     try
     {
         if (ModelState.IsValid && _unitOfWork.PetitionTrace.Update(PetitionTrace))
         {
             return(Ok(new { Message = "La petición se ha actualizado" }));
         }
         else
         {
             return(BadRequest());
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(500, "Internal server error: " + ex.Message));
     }
 }