public ActionConfirmation CreateRespuestasByEvaluacion(Guid evaluacionId) { var evaluacion = Get(evaluacionId); if (evaluacion == null) { return(ActionConfirmation.CreateFailure("item no existe")); } try { var responsesToCreate = new List <Estandar>(); var groups = _estandarService.GetGruposList(); foreach (var grupoEstandar in groups) { var headers = _estandarService.GetByGrupo(grupoEstandar.Id); foreach (var header in headers) { var estandares = _estandarService.GetByParent(header.Id); foreach (var estandar in estandares) { responsesToCreate.Add(estandar); var picklist = _estandarService.GetPicklist(estandar.Id); responsesToCreate.AddRange(picklist); var subEstandares = _estandarService.GetByParent(estandar.Id); foreach (var subEstandar in subEstandares) { responsesToCreate.Add(subEstandar); var subpicklist = _estandarService.GetPicklist(subEstandar.Id); responsesToCreate.AddRange(subpicklist); var childEstandares = _estandarService.GetByParent(subEstandar.Id); foreach (var childEstandar in childEstandares) { responsesToCreate.Add(childEstandar); var childpicklist = _estandarService.GetPicklist(childEstandar.Id); responsesToCreate.AddRange(childpicklist); var subchildEstandares = _estandarService.GetByParent(childEstandar.Id); foreach (var subchildEstandar in subchildEstandares) { responsesToCreate.Add(subchildEstandar); var subchildpicklist = _estandarService.GetPicklist(subchildEstandar.Id); responsesToCreate.AddRange(subchildpicklist); } } } } } } // Create Responses var respCreated = new List <Respuesta>(); if (responsesToCreate.Any()) { foreach (var estandar in responsesToCreate) { var respuesta = new Respuesta { Detalle = "", FechaRespuesta = DateTime.Now, CreadoPor = evaluacion.CreadoPor, CreadoEn = DateTime.Now, ActualizadoPor = evaluacion.ActualizadoPor, ActualizadoEn = DateTime.Now, Estandar = estandar, Evaluacion = evaluacion, Valor = (short)ValorRespuesta.Nulo }; var respConfirmation = _respuestaService.SaveOrUpdate(respuesta); if (respConfirmation.WasSuccessful) { if (estandar.TipoEstandar == (short)TipoEstandar.Estandar) { var dbResponse = _respuestaService.Get(respuesta.Id); var comment = new RespuestaComentario { Detalle = "", Valor = "", CreadoPor = evaluacion.CreadoPor, CreadoEn = DateTime.Now, ActualizadoPor = evaluacion.ActualizadoPor, ActualizadoEn = DateTime.Now, Respuesta = dbResponse }; var commentConfirm = _respuestaService.SaveOrUpdateComentario(comment); } respCreated.Add(respuesta); } } } return(ActionConfirmation.CreateSuccess($"respuestas creadas ({respCreated.Count})")); } catch (Exception exception) { _eventLogService.AddException(exception.Message, exception.StackTrace, EventCategory.GuardarObjeto.ToString(), exception, evaluacion.ActualizadoPor, EventSource.Sistema); return(ActionConfirmation.CreateFailure(exception.ToString())); } }