public EvaluarRubricaExposeViewModel(String RubricaId, String TipoArtefacto, String CodigoEvaluadoId, String CodigoEvaluadorId, String GUID, Int32? CodigoEvaluacionPlantilla, String RutaCancelado) { this.GUID = GUID; this.RutaCancelado = RutaCancelado; Rubrica = RubricOnRepositoryFactory.GetVersionesRubricasRepository().GetWhere(x=>x.RubricaId == RubricaId && x.TipoArtefacto == TipoArtefacto && x.EsActual == true).First(); Categorias = RubricOnRepositoryFactory.GetCategoriasRubricasRepository().GetWhere(x=>x.RubricaId == RubricaId && x.TipoArtefacto == TipoArtefacto && x.Version == Rubrica.Version,x=>x.Orden); var CategoriasId = Categorias.Select(x => x.CategoriaRubricaId); Aspectos = RubricOnRepositoryFactory.GetAspectosRubricaRepository().GetWhere(x => CategoriasId.Contains(x.CategoriaRubricaId), x => x.Orden); var AspectosId = Aspectos.Select(x => x.AspectoRubricaId); Criterios = RubricOnRepositoryFactory.GetCriterioRubricaRepository().GetWhere(x => AspectosId.Contains(x.AspectoRubricaId), x => x.Orden); Evaluacion = new EvaluacionesBE() { CodigoEvaluadoId = CodigoEvaluadoId, CodigoEvaluadorId = CodigoEvaluadorId, }; RespuestasPlantilla = new List<RespuestasRubricaBE>(); if (CodigoEvaluacionPlantilla.HasValue) { RespuestasPlantilla = RubricOnRepositoryFactory.GetRespuestasRubricaRepository().GetWhere(x => x.EvaluacionId == CodigoEvaluacionPlantilla.Value); } }
public EvaluarRubricaViewModel(String RubricaId,String TipoArtefacto, String CodigoEvaluadoId,String CodigoEvaluadorId) { Rubrica = RubricOnRepositoryFactory.GetVersionesRubricasRepository().GetWhere(x=>x.RubricaId == RubricaId && x.TipoArtefacto == TipoArtefacto && x.EsActual == true).First(); Categorias = RubricOnRepositoryFactory.GetCategoriasRubricasRepository().GetWhere(x=>x.RubricaId == RubricaId && x.TipoArtefacto == TipoArtefacto && x.Version == Rubrica.Version,x=>x.Orden); var CategoriasId = Categorias.Select(x => x.CategoriaRubricaId); Aspectos = RubricOnRepositoryFactory.GetAspectosRubricaRepository().GetWhere(x => CategoriasId.Contains(x.CategoriaRubricaId), x => x.Orden); var AspectosId = Aspectos.Select(x => x.AspectoRubricaId); Criterios = RubricOnRepositoryFactory.GetCriterioRubricaRepository().GetWhere(x => AspectosId.Contains(x.AspectoRubricaId), x => x.Orden); Evaluacion = new EvaluacionesBE() { CodigoEvaluadoId = CodigoEvaluadoId, CodigoEvaluadorId = CodigoEvaluadorId, }; }
public ActionResult EvaluarRubrica(String RubricaId, String Version, String TipoArtefacto, String CodigoEvaluadoId, String CodigoEvaluadorId, FormCollection formCollection) { var Respuestas = new List<RespuestasRubricaBE>(); var MyBoolean = false; foreach (var actualKey in formCollection) { var key = actualKey.ToString(); if (!key.StartsWith("EvalA")) continue; if (Boolean.TryParse(formCollection[key], out MyBoolean) != false) continue; key = key.Remove(0, "EvalA".Length); var splitted = key.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries); if (splitted.Count() != 2 || !splitted[1].StartsWith("C")) continue; splitted[1] = splitted[1].Remove(0, 1); if (!splitted[1].IsInteger()) continue; Respuestas.Add(new RespuestasRubricaBE() { CriterioRubricaId = splitted[1].ToInteger() }); } if (Respuestas.Count == 0) { PostMessage("No hay informacion que requiera ser grabada.", MessageType.Info); } else { var CriteriosId = Respuestas.Select(x => x.CriterioRubricaId); var Criterios = RubricOnRepositoryFactory.GetCriterioRubricaRepository().GetWhere(x => CriteriosId.Contains(x.CriterioRubricaId)).ToList(); var Evaluacion = new EvaluacionesBE() { CodigoEvaluadoId = CodigoEvaluadoId, CodigoEvaluadorId = CodigoEvaluadorId, FechaEvaluacion = DateTime.Now, RubricaId = RubricaId, TipoArtefacto = TipoArtefacto, Version = Version }; var ResultadoString = ""; try { ResultadoString = Criterios.Sum(x => x.Valor).ToString(); } catch (Exception ex) { } var Resultado = new ResultadosRubricasBE() { Resultado = ResultadoString, }; try { using (TransactionScope scope = new TransactionScope()) { RubricOnRepositoryFactory.GetEvaluacionesRepository().InsertIdentity(Evaluacion, true); foreach (var respuesta in Respuestas) respuesta.EvaluacionId = Evaluacion.EvaluacionId; Resultado.EvaluacionId = Evaluacion.EvaluacionId; RubricOnRepositoryFactory.GetResultadosRubricasRepository().Insert(Resultado); RubricOnRepositoryFactory.GetRespuestasRubricaRepository().Insert(Respuestas); RubricOnRepositoryFactory.SubmitChanges(true); scope.Complete(); PostMessage("La rubrica ha sido evaluada exitosamente.", MessageType.Success); } } catch (Exception ex) { PostMessage("Ha ocurrido un error.", MessageType.Error); } } return View("Mensaje"); }
public ActionResult EvaluarRubrica(String GUID, FormCollection formCollection) { try { var RubricaId = Session[GUID + "RubricaId"].ToString(); var TipoArtefacto = Session[GUID + "TipoArtefacto"].ToString(); var CodigoEvaluadoId = Session[GUID + "CodigoEvaluadoId"].ToString(); var CodigoEvaluadorId = Session[GUID + "CodigoEvaluadorId"].ToString(); var ParametroResultado = Session[GUID + "ParametroResultado"].ToString(); var ParametroCodigoEvaluacion = Session[GUID + "ParametroCodigoEvaluacion"].ToString(); var RutaRetorno = Session[GUID + "RutaRetorno"].ToString(); var Version = Session[GUID + "Version"].ToString(); var Respuestas = new List<RespuestasRubricaBE>(); var MyBoolean = false; foreach (var actualKey in formCollection) { var key = actualKey.ToString(); if (!key.StartsWith("EvalA")) continue; if (Boolean.TryParse(formCollection[key], out MyBoolean) != false) continue; key = key.Remove(0, "EvalA".Length); var splitted = key.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries); if (splitted.Count() != 2 || !splitted[1].StartsWith("C")) continue; splitted[1] = splitted[1].Remove(0, 1); if (!splitted[1].IsInteger()) continue; Respuestas.Add(new RespuestasRubricaBE() { CriterioRubricaId = splitted[1].ToInteger() }); } if (Respuestas.Count == 0) { PostMessage("No hay informacion que requiera ser grabada.", MessageType.Info); } else { var CriteriosId = Respuestas.Select(x => x.CriterioRubricaId); var Criterios = RubricOnRepositoryFactory.GetCriterioRubricaRepository().GetWhere(x => CriteriosId.Contains(x.CriterioRubricaId)).ToList(); var Evaluacion = new EvaluacionesBE() { CodigoEvaluadoId = CodigoEvaluadoId, CodigoEvaluadorId = CodigoEvaluadorId, FechaEvaluacion = DateTime.Now, RubricaId = RubricaId, TipoArtefacto = TipoArtefacto, Version = Version }; var ResultadoString = ""; try { ResultadoString = Criterios.Sum(x => x.Valor).ToString(); } catch (Exception ex) { } var Resultado = new ResultadosRubricasBE() { Resultado = ResultadoString, }; try { using (TransactionScope scope = new TransactionScope()) { RubricOnRepositoryFactory.GetEvaluacionesRepository().InsertIdentity(Evaluacion, true); var UriBuilder = new UriBuilder(RutaRetorno); if (ParametroResultado != String.Empty) UriBuilder.Query += String.Format("&{0}={1}", ParametroResultado, ResultadoString); if (ParametroCodigoEvaluacion != String.Empty) UriBuilder.Query += String.Format("&{0}={1}", ParametroCodigoEvaluacion, Evaluacion.EvaluacionId); UriBuilder.Query = UriBuilder.Query.Replace("?", ""); foreach (var respuesta in Respuestas) respuesta.EvaluacionId = Evaluacion.EvaluacionId; Resultado.EvaluacionId = Evaluacion.EvaluacionId; RubricOnRepositoryFactory.GetResultadosRubricasRepository().Insert(Resultado); RubricOnRepositoryFactory.GetRespuestasRubricaRepository().Insert(Respuestas); RubricOnRepositoryFactory.SubmitChanges(true); scope.Complete(); return Redirect(UriBuilder.Uri.ToString()); } } catch (Exception ex) { PostMessage("Oops! Al parecer ha ocurrido un error.", MessageType.Error); } } } catch (Exception ex) { PostMessage("Oops! Al parecer ha ocurrido un error.", MessageType.Error); } return View("Mensaje"); }