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,
                    };
        }
Beispiel #3
0
        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");
        }
Beispiel #4
0
        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");
        }