public CalificacionEstudianteViewModel(RegistroCalificacion registro) { this.CursoId = registro.CursoId; this.EstudianteId = registro.EstudianteId; this.DesafioId = registro.DesafioId; this.Valorada = registro.Valorada; }
public async Task <CalificacionDesafioViewModel> Get_Desafio( int estId, int cursoId, int desafioId) { var curso = await _data.Find_Curso(cursoId); if (curso == null || !curso.ContieneEstudiante(estId) || !curso.ContieneDesafio(desafioId)) { throw new ApplicationServicesException(""); } var model = await _data.Find_RegistroCalificacion( cursoId, estId, desafioId); if (model == null) { model = new RegistroCalificacion() { CursoId = cursoId, DesafioId = desafioId, EstudianteId = estId, Calificaciones = new List <Calificacion>() }; _data.Add(model); if (!await _data.SaveAllAsync()) { throw new ApplicationServicesException(""); } } return(new CalificacionDesafioViewModel(model)); }
public CalificacionDesafioViewModel(RegistroCalificacion model, List <Calificacion> calificacionesColaborador, int?siguienteDesafioId) { CursoId = model.CursoId; EstudianteId = model.EstudianteId; DesafioId = model.Desafio.Id; Nombre = model.Desafio.Nombre; Descripcion = model.Desafio.Descripcion; UrlEscenarioInicial = model.Desafio.DirDesafioInicial; SiguienteDesafioId = siguienteDesafioId.GetValueOrDefault(); if (calificacionesColaborador == null) { calificacionesColaborador = new List <Calificacion>(); } var cals = model.Calificaciones; cals.AddRange(calificacionesColaborador); Calificaciones = cals .Where(item => item.TiempoFinal != null) .Select(cal => cal.ToViewModel()) .OrderByDescending(cal => cal.TiempoFinal) .ToList(); var calPendiente = model.Calificaciones .FirstOrDefault(cal => cal.EnCurso); CalificacionPendiente = (calPendiente != null)? calPendiente.ToViewModel(): null; }
public void Add_RegistroCalificacion(RegistroCalificacion model) { Add(model); foreach (var calificacion in model.Calificaciones) { AddCalificacion(calificacion); } }
public CalificacionDesafioViewModel(RegistroCalificacion model) { Rel_CursoEstudiantes = model.Rel_CursoEstudiantes; Desafio = model.Desafio; Calificaciones = model.Calificaciones .Select(cal => new ResultadoDesafioViewModel(cal)) .ToList(); }
public CalificacionesViewModel(string nombreCurso, string nombreEstudiante, string nombreDesafio, List <CalificacionViewModel> calificacionList, RegistroCalificacion registro) { NombreCurso = nombreCurso; NombreEstudiante = nombreEstudiante; NombreDesafio = nombreDesafio; Registro = registro; CalificacionList = calificacionList; }
public async Task <ApiResult <CalificacionDesafioViewModel> > Get_Desafio( int estId, int cursoId, int desafioId) { var curso = await _data.Find_Curso(cursoId); if (curso == null || !curso.ContieneEstudiante(estId) || !curso.ContieneDesafio(desafioId)) { throw new ApiNotFoundException("El desafío al que intentas acceder no existe."); } var model = await _data.Find_RegistroCalificacion( cursoId, estId, desafioId); var calificacionesColaborador = new List <Calificacion>(); int?nextChallenge = null; if (model == null) { model = new RegistroCalificacion() { CursoId = cursoId, DesafioId = desafioId, EstudianteId = estId, Calificaciones = new List <Calificacion>() { new Calificacion() { Resultados = new List <ResultadoScratch>(), CursoId = cursoId, DesafioId = desafioId, EstudianteId = estId, DirArchivo = "" } } }; _data.Add_RegistroCalificacion(model); await _data.SaveAllAsync(); } else { var regEstudiante = await _data.Find_Rel_CursoEstudiantes(cursoId, estId); calificacionesColaborador = regEstudiante.Colaboraciones.Select(colab => colab.Calificacion) .Where(cal => cal.DesafioId == desafioId) .ToList(); nextChallenge = await GetNextChallenge(cursoId, estId, desafioId); } return(ApiResult <CalificacionDesafioViewModel> .Initialize( new CalificacionDesafioViewModel(model, calificacionesColaborador, nextChallenge), true)); }
public static RegistroCalificacionViewModel ToViewModel(this RegistroCalificacion model) { return(new RegistroCalificacionViewModel() { CursoId = model.CursoId, EstudianteId = model.EstudianteId, DesafioId = model.DesafioId, NombreDesafio = model.Desafio.Nombre, Iniciada = model.Iniciada, Terminada = model.Terminada, Valorada = model.Valorada, Calificaciones = model.Calificaciones.Where(cal => cal != null && cal.ResultadoGeneral != null).Select(cal => new CalificacionViewModel(cal, model.Desafio.InfoDesafio)).ToList() }); }