public bool update(EncuestaEvaluadorDTO encuestaEvaluadorDTO) { using (var context = getContext()) { try { encuestaEvaluadorDTO.Respuestas = new List <RespuestasDTO>(); for (int i = 0; i < encuestaEvaluadorDTO.listaRespuestas.Count; i++) { RespuestasDTO respuesta = new RespuestasDTO(); respuesta.IdRespuestas = encuestaEvaluadorDTO.listaIdRespuestas[i]; respuesta.IdPregunta = encuestaEvaluadorDTO.listaPreguntas[i]; respuesta.IdEvaluado = encuestaEvaluadorDTO.listaEvaluados[i]; respuesta.Valor = encuestaEvaluadorDTO.listaRespuestas[i]; encuestaEvaluadorDTO.Respuestas.Add(respuesta); } //// convert source data to DataTable DataTable table = encuestaEvaluadorDTO.Respuestas.ToDataTable(); //// create parameters var Accion = new SqlParameter("@Accion", SqlDbType.Int); Accion.Value = encuestaEvaluadorDTO.Accion; var IdEncuestaEvaluador = new SqlParameter("@IdEncuestaEvaluador", SqlDbType.Int); IdEncuestaEvaluador.Value = encuestaEvaluadorDTO.IdEncuestaEvaluador; var tvpRespuestas = new SqlParameter("@tvpRespuestas", table); tvpRespuestas.SqlDbType = SqlDbType.Structured; tvpRespuestas.TypeName = "TVP_Respuestas"; var intOutput = new SqlParameter("@intOutput", SqlDbType.Bit); //var totalCountParam = new SqlParameter("TotalCount", 0) { Direction = ParameterDirection.Output }; intOutput.Value = false; intOutput.Direction = ParameterDirection.Output; //// save using procedure with table value parameter context.ExecuteTableValueProcedure("SP_UpdateRespuestas", "@Accion,@IdEncuestaEvaluador,@tvpRespuestas,@intOutput OUTPUT", new object[] { Accion, IdEncuestaEvaluador, tvpRespuestas, intOutput }); return((bool)intOutput.Value); //for (int i = 0; i < encuestaEvaluadorDTO.listaRespuestas.Count; i++) //{ // var respuesta = context.Respuestas.AsEnumerable().Where(x => x.IdEncuestaEvaluador == encuestaEvaluadorDTO.IdEncuestaEvaluador && x.IdPregunta == encuestaEvaluadorDTO.listaPreguntas[i] && x.IdEvaluado == encuestaEvaluadorDTO.listaEvaluados[i]).SingleOrDefault(); // if (respuesta != null) // { // if (encuestaEvaluadorDTO.listaRespuestas[i] == "0" || encuestaEvaluadorDTO.listaRespuestas[i].Trim() == "") // context.Respuestas.Remove(respuesta); // else if (encuestaEvaluadorDTO.listaRespuestas[i] != respuesta.Valor) // respuesta.Valor = encuestaEvaluadorDTO.listaRespuestas[i]; // } // else // { // if (encuestaEvaluadorDTO.listaRespuestas[i] != "0" && encuestaEvaluadorDTO.listaRespuestas[i].Trim() != "") // { // Respuestas respuestaNew = new Respuestas(); // respuestaNew.IdEncuestaEvaluador = encuestaEvaluadorDTO.IdEncuestaEvaluador; // respuestaNew.IdPregunta = encuestaEvaluadorDTO.listaPreguntas[i]; // respuestaNew.IdEvaluado = encuestaEvaluadorDTO.listaEvaluados[i]; // respuestaNew.Valor = encuestaEvaluadorDTO.listaRespuestas[i]; // context.Respuestas.Add(respuestaNew); // } // } //} //if (encuestaEvaluadorDTO.Accion == 2) //Se ejecuta si se presiona "Enviar y Salir" //{ // var encuestaEvaluador = context.EncuestaEvaluador.Where(x => x.IdEncuestaEvaluador == encuestaEvaluadorDTO.IdEncuestaEvaluador).SingleOrDefault(); // encuestaEvaluador.EstaCompleto = true; //Encuesta terminada //} //context.SaveChanges(); //return true; } catch (Exception e) { return(false); } } }
public int add(EncuestaEvaluadorDTO encuestaEvaluadorDTO) { using (var context = getContext()) { try { //Ordenando las respuestas en encuestaEvaluadorDTO.Respuestas encuestaEvaluadorDTO.Respuestas = new List <RespuestasDTO>(); for (int i = 0; i < encuestaEvaluadorDTO.listaRespuestas.Count; i++) { if (!string.IsNullOrEmpty(encuestaEvaluadorDTO.listaRespuestas[i].Trim()) && encuestaEvaluadorDTO.listaRespuestas[i] != "0") { RespuestasDTO respuesta = new RespuestasDTO(); respuesta.IdRespuestas = encuestaEvaluadorDTO.listaIdRespuestas[i]; respuesta.IdPregunta = encuestaEvaluadorDTO.listaPreguntas[i]; respuesta.IdEvaluado = encuestaEvaluadorDTO.listaEvaluados[i]; respuesta.Valor = encuestaEvaluadorDTO.listaRespuestas[i]; encuestaEvaluadorDTO.Respuestas.Add(respuesta); } } //// convert source data to DataTable DataTable table = encuestaEvaluadorDTO.Respuestas.ToDataTable(); //// create parameters var IdEncuesta = new SqlParameter("@IdEncuesta", SqlDbType.Int); IdEncuesta.Value = encuestaEvaluadorDTO.IdEncuesta; var IdEvaluador = new SqlParameter("@IdEvaluador", SqlDbType.Int); IdEvaluador.Value = encuestaEvaluadorDTO.IdEvaluador; var CodEvaluador = new SqlParameter("@CodEvaluador", SqlDbType.NVarChar); CodEvaluador.Value = ""; var EstaCompleto = new SqlParameter("@EstaCompleto", SqlDbType.Bit); EstaCompleto.Value = encuestaEvaluadorDTO.EstaCompleto; var tvpRespuestas = new SqlParameter("@tvpRespuestas", table); tvpRespuestas.SqlDbType = SqlDbType.Structured; tvpRespuestas.TypeName = "TVP_Respuestas"; var output = new SqlParameter("@IdEncuestaEvaluador", SqlDbType.Int); output.Direction = ParameterDirection.Output; //// save using procedure with table value parameter var totalCountParam = new SqlParameter("TotalCount", 0) { Direction = ParameterDirection.Output }; context.ExecuteTableValueProcedure("SP_AddRespuestas", "@IdEncuesta,@IdEvaluador,@CodEvaluador,@EstaCompleto,@tvpRespuestas,@IdEncuestaEvaluador OUTPUT", new object[] { IdEncuesta, IdEvaluador, CodEvaluador, EstaCompleto, tvpRespuestas, output }); return((int)output.Value); ////Agrego la respuesta //EncuestaEvaluador encuestaEvaluador = new EncuestaEvaluador(); //encuestaEvaluador.IdEncuesta = encuestaEvaluadorDTO.IdEncuesta; //encuestaEvaluador.IdEvaluador = encuestaEvaluadorDTO.IdEvaluador; //encuestaEvaluador.CodEvaluador = ""; //encuestaEvaluador.EstaCompleto = encuestaEvaluadorDTO.EstaCompleto; //context.EncuestaEvaluador.Add(encuestaEvaluador); //foreach (var item in encuestaEvaluadorDTO.Respuestas) //{ // Respuestas respuesta = new Respuestas(); // respuesta.IdEncuestaEvaluador = encuestaEvaluador.IdEncuestaEvaluador; // respuesta.IdPregunta = item.IdPregunta; // respuesta.IdEvaluado = item.IdEvaluado; // respuesta.Valor = item.Valor; // encuestaEvaluador.Respuestas.Add(respuesta); //} //context.SaveChanges(); //return encuestaEvaluador.IdEncuestaEvaluador; } catch (Exception e) { return(0); } } }