예제 #1
0
        public ResultadoScratch Map(int calId)
        {
            var res = new ResultadoScratch()
            {
                CalificacionId        = calId,
                General               = generalValoration,
                Nombre                = SpriteName,
                NumBloques            = BlockCount,
                NumScripts            = ScriptCount,
                DeadCodeCount         = DeadCodeCount,
                DuplicateScriptsCount = DuplicateScriptCount,
                Bloques               = BlockFrequency
                                        .Select(b =>
                {
                    return(new BloqueScratch()
                    {
                        Nombre = b.Item1,
                        Frecuencia = b.Item2
                    });
                }).ToList()
            };

            if (generalValoration)
            {
                res.IInfoScratch_General = (IInfoScratch_General)
                                           ((GeneralInfo)AdditionalInfo).Map();
            }
            else
            {
                res.IInfoScratch_Sprite = (IInfoScratch_Sprite)
                                          ((SpriteInfo)AdditionalInfo).Map();
            }

            return(res);
        }
 public DesafioCompletadoViewModel(int cursoId,
                                   ResultadoScratch resultado, Desafio siguienteDesafio)
 {
     this.CursoId          = cursoId;
     this.Resultado        = resultado;
     this.SiguienteDesafio = siguienteDesafio;
 }
예제 #3
0
 public ResultadoGeneralViewModel(ResultadoScratch model)
 {
     this.Nombre                = model.Nombre;
     this.NumScripts            = model.NumScripts;
     this.NumBloques            = model.NumBloques;
     this.DuplicateScriptsCount = model.DuplicateScriptsCount;
     this.DeadCodeCount         = model.DeadCodeCount;
 }
예제 #4
0
        public EvaluacionViewModel(ResultadoScratch resultadoGeneral,
                                   InfoDesafio infoDesafio)
        {
            var infoGeneral = resultadoGeneral.IInfoScratch_General;

            SpriteCount = infoGeneral.SpriteCount;

            EventsUse       = infoGeneral.EventsUse;
            MessageUse      = infoGeneral.MessageUse;
            SharedVariables = infoGeneral.SharedVariables;
            ListUse         = infoGeneral.ListUse;

            float Trans(int n, bool value)
            {
                return((value) ? (n / (float)SpriteCount) : -1f);
            }

            NonUnusedBlocks = Trans(infoGeneral.NonUnusedBlocks,
                                    infoDesafio.NonUnusedBlocks);
            UserDefinedBlocks = Trans(infoGeneral.UserDefinedBlocks,
                                      infoDesafio.UserDefinedBlocks);
            CloneUse = Trans(infoGeneral.CloneUse,
                             infoDesafio.CloneUse);
            SecuenceUse = Trans(infoGeneral.SecuenceUse,
                                infoDesafio.SecuenceUse);
            MultipleThreads = Trans(infoGeneral.MultipleThreads,
                                    infoDesafio.MultipleThreads);
            TwoGreenFlagTrhead = Trans(infoGeneral.TwoGreenFlagTrhead,
                                       infoDesafio.TwoGreenFlagThread);
            AdvancedEventUse = Trans(infoGeneral.AdvancedEventUse,
                                     infoDesafio.AdvancedEventUse);
            UseSimpleBlocks = Trans(infoGeneral.UseSimpleBlocks,
                                    infoDesafio.UseSimpleBlocks);
            UseMediumBlocks = Trans(infoGeneral.UseMediumBlocks,
                                    infoDesafio.UseMediumBlocks);
            UseNestedControl = Trans(infoGeneral.UseNestedControl,
                                     infoDesafio.UseNestedControl);
            BasicInputUse = Trans(infoGeneral.BasicInputUse,
                                  infoDesafio.BasicInputUse);
            VariableUse = Trans(infoGeneral.VariableUse,
                                infoDesafio.VariableUse);
            SpriteSensing = Trans(infoGeneral.SpriteSensing,
                                  infoDesafio.SpriteSensisng);
            VariableCreation = Trans(infoGeneral.VariableCreation,
                                     infoDesafio.NonCreatedVariableUse);
            BasicOperators = Trans(infoGeneral.BasicOperators,
                                   infoDesafio.BasicOperators);
            MediumOperators = Trans(infoGeneral.MediumOperators,
                                    infoDesafio.MediumOperators);
            AdvancedOperators = Trans(infoGeneral.AdvancedOperators,
                                      infoDesafio.NestedOperators);
        }
예제 #5
0
        //Resultados Scratch
        public void Add_ResultadoScratch(ResultadoScratch resultado)
        {
            Add <ResultadoScratch>(resultado);
            if (resultado.General)
            {
                Add_InfoScratch(resultado.IInfoScratch_General);
            }
            else
            {
                Add_InfoScratch(resultado.IInfoScratch_Sprite);
            }

            foreach (var bloque in resultado.Bloques)
            {
                Add <BloqueScratch>(bloque);
            }
        }
예제 #6
0
        public DesafioCompletadoViewModel(int cursoId,
                                          ResultadoScratch resultado, Desafio desafioCompletado, Desafio siguienteDesafio, float puntuacion)
        {
            CursoId = cursoId;

            ResultadoId           = resultado.Id;
            NumScripts            = resultado.NumScripts;
            NumBloques            = resultado.NumBloques;
            DuplicateScriptsCount = resultado.DuplicateScriptsCount;
            DeadCodeCount         = resultado.DeadCodeCount;
            Nombre = resultado.Nombre;

            AssessmentType = desafioCompletado.TipoEvaluacion;
            Param1         = desafioCompletado.Param1;
            Param2         = desafioCompletado.Param2;
            Param3         = desafioCompletado.Param3;
            Param4         = desafioCompletado.Param4;

            SiguienteDesafioId = siguienteDesafio.Id;
            Puntuacion         = puntuacion;
        }
예제 #7
0
        public static ResultadoScratchViewModel ToViewModel(this ResultadoScratch model)
        {
            return(new ResultadoScratchViewModel()
            {
                Id = model.Id,
                CalificacionId = model.CalificacionId,

                General = model.General,

                Nombre = model.Nombre,
                NumScripts = model.NumScripts,
                NumBloques = model.NumBloques,
                DuplicateScriptsCount = model.DuplicateScriptsCount,
                DeadCodeCount = model.DeadCodeCount,


                IInfoScratch_Sprite = model.IInfoScratch_Sprite != null?model.IInfoScratch_Sprite.ToViewModel() : null,

                                          IInfoScratch_General = model.IInfoScratch_General != null?model.IInfoScratch_General.ToViewModel() : null,
            });
        }