public CalificacionViewModel(Calificacion cal, InfoDesafio infoDesafio) { Id = cal.Id; CursoId = cal.CursoId; EstudianteId = cal.EstudianteId; DesafioId = cal.DesafioId; Calificacion = cal; Evaluacion = new EvaluacionViewModel(cal.ResultadoGeneral, infoDesafio); }
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); }
public CalificacionViewModel(Calificacion cal, InfoDesafio infoDesafio) { Id = cal.Id; CursoId = cal.CursoId; EstudianteId = cal.EstudianteId; DesafioId = cal.DesafioId; Tiempoinicio = cal.Tiempoinicio; TiempoFinal = cal.TiempoFinal; if (cal.CalificacionCualitativa != null) { CalificacionCualitativaId = cal.CalificacionCualitativa.Id; } ResultadoSprites = cal.Resultados.Where(item => !item.General) .Select(item => item.ToViewModel()).ToList(); ResultadoGeneral = cal.ResultadoGeneral.ToViewModel(); Evaluacion = new EvaluacionViewModel(cal.ResultadoGeneral, infoDesafio); }
public IQueryable <Desafio> GetAll_Desafios(int?cursoId = null, int?profesorId = null, string searchString = "", InfoDesafio similarInfo = null, bool equality = false, float avgValoration = 0) { IQueryable <Desafio> query = Enumerable.Empty <Desafio>() .AsQueryable(); if (cursoId != null) { query = _context .Rel_Cursos_Desafios .Include(rel => rel.Desafio) .Include("Desafio.InfoDesafio") .Include("Desafio.Profesor") .Include("Desafio.Ratings") .Include("Desafio.Cursos") .Where(rel => rel.CursoId == cursoId) .Select(rel => rel.Desafio); } else { query = _context.Desafios .Include(d => d.InfoDesafio) .Include(d => d.Profesor) .Include(d => d.Ratings) .Include(d => d.Cursos) .Where(d => d.AverageRating >= avgValoration); } if (!string.IsNullOrWhiteSpace(searchString)) { query = query .Where(d => d.Nombre.Contains(searchString)); } if (similarInfo != null && !similarInfo.IsFalse) { if (equality) { query = query .Where(d => d.InfoDesafio.IsEqualTo(similarInfo)); } else { query = query .Where(d => d.InfoDesafio.IsSimilarTo(similarInfo)); } } if (profesorId != null) { query = query .Where(d => d.ProfesorId == profesorId); } return(query.OrderByDescending(d => d.AverageRating) .ThenByDescending(d => d.RatingCount) .ThenBy(d => d.Nombre)); }