示例#1
0
        public async Task <bool> Do_Calificar(int idProf, int idCurso,
                                              int idEstudiante, int idDesafio, CalificarViewModel model)
        {
            if (!await _data.Exist_Desafio(idDesafio, idCurso, idProf))
            {
                return(false);
            }

            var estUserId = (await _usrService
                             .Get_EstudianteUserId(idEstudiante)).GetValueOrDefault();
            var desafio = await _data.Find_Desafio(idDesafio);

            var curso = await _data.Find_Curso(idCurso);

            _data.Add(model.Map());
            _data.Do_PushNotification(
                NotificationType.NotificationDesafioCalificado, estUserId,
                new Dictionary <string, string>
            {
                ["IdCurso"]       = $"{idCurso}",
                ["IdDesafio"]     = $"{idDesafio}",
                ["NombreDesafio"] = desafio.Nombre,
                ["NombreCurso"]   = curso.Nombre
            });
            return(await _data.SaveAllAsync());
        }
        public async Task <IActionResult> Calificar(int idCurso,
                                                    int idEstudiante, int idDesafio, CalificarViewModel model)
        {
            if (ModelState.IsValid)
            {
                var profId = _usrService.Get_ProfesorId(User.Claims);
                var res    = await _ctrlService.Do_Calificar(profId, idCurso,
                                                             idEstudiante, idDesafio, model);

                if (!res)
                {
                    this.SetAlerts("error-alerts", "Error al insertar " +
                                   "la calificación");
                }
            }
            return(RedirectToAction("Calificar",
                                    new
            {
                idCurso,
                idEstudiante,
                idDesafio
            }));
        }