public async Task Patch(string codemp, string codcon, string nrocon, int nroext, DateTime fechacierreot, JsonPatchDocument patchDocument) { Cvmcth contrato = await Repository.RecuperaContrato(codemp, codcon, nrocon, nroext); if (contrato is null) { throw new NotFoundException("Contrato inexistente"); } object nuevoEstado = patchDocument.Operations[0].value; Logger.Information($"Nuevo estado a asignar: {nuevoEstado}"); ResultadoPatchContrato resultadoPatch = await Repository.Patch(contrato, fechacierreot, nuevoEstado.ToString()); if (resultadoPatch.actualizado == "N") { throw new BadRequestException(resultadoPatch.errmsg); } }
public async Task <ResultadoPatchContrato> Patch(Cvmcth contrato, DateTime fechacierreot, string nuevoEstado) { string actualizado = "N"; string errmsg = ""; using (SqlConnection sql = new SqlConnection(Connectionstring)) { using (SqlCommand cmd = new SqlCommand("ALM_WS_CambioEstadoContrato", sql)) { cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@Codemp", contrato.CvmcthCodemp)); cmd.Parameters.Add(new SqlParameter("@Codcon", contrato.CvmcthCodcon)); cmd.Parameters.Add(new SqlParameter("@Nrocon", contrato.CvmcthNrocon)); cmd.Parameters.Add(new SqlParameter("@Nroext", contrato.CvmcthNroext)); cmd.Parameters.Add(new SqlParameter("@FchcieOT", fechacierreot)); cmd.Parameters.Add(new SqlParameter("@NewEst", nuevoEstado)); await sql.OpenAsync(); using (var reader = await cmd.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { actualizado = (string)reader["actualizado"]; errmsg = (string)reader["errmsg"]; } } } } ResultadoPatchContrato resultado = new ResultadoPatchContrato(); resultado.actualizado = actualizado; resultado.errmsg = errmsg; return(resultado); }