Пример #1
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");
        }
Пример #2
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");
        }