public DoneSession Update(DoneSession doneSessionChanges) { var doneSession = dBContext.DoneSessions.Attach(doneSessionChanges); doneSession.State = EntityState.Modified; dBContext.SaveChanges(); return(doneSessionChanges); }
public async Task <IActionResult> MarkSession([FromBody] DoneSession doneSession) { var lang = Request.Headers["language"].ToString(); var errorMessages = new List <string>(); if (string.IsNullOrEmpty(doneSession.UserID) || doneSession.SessionId == null) { errorMessages.Add(_translator.GetTranslation("ERROR", lang)); return(BadRequest(new { errors = errorMessages })); } try { var user = await _userManager.FindByIdAsync(doneSession.UserID); var session = _sessionRepository.FindById(doneSession.SessionId.Value); if (user == null || session == null) { errorMessages.Add(_translator.GetTranslation("ERROR", lang)); return(BadRequest(new { errors = errorMessages })); } if (session.Section.Course.Class == null || !_classRepository.IsUserInClass(session.Section.Course.Class.Id, user.Id)) { errorMessages.Add(_translator.GetTranslation("CLASSES.USER_NOT_ENROLLED", lang)); return(BadRequest(new { errors = errorMessages })); } var ds = _doneSessionRepository.FindBySessionAndUser(session.Id, user.Id); if (ds == null) { var newDoneSession = new DoneSession() { User = user, UserID = user.Id, Session = session, SessionId = session.Id, DoneDateTime = DateTime.Now }; var createdDoneSession = _doneSessionRepository.Create(newDoneSession); if (createdDoneSession == null) { errorMessages.Add(_translator.GetTranslation("ERROR", lang)); return(BadRequest(new { errors = errorMessages })); } var courseId = session.Section.Course.Id; var doneSessions = _doneSessionRepository.GetDoneSessionsByUserAndCourse(doneSession.UserID, courseId); var courseSessionsCount = _sessionRepository.GetSessionsByCourseId(courseId).Count; var doneSessionsCount = doneSessions.Count; var donePercentage = ((doneSessionsCount * 100) / courseSessionsCount); return(Ok(new { createdDoneSession, donePercentage })); } else { var courseId = session.Section.Course.Id; var doneSessions = _doneSessionRepository.GetDoneSessionsByUserAndCourse(doneSession.UserID, courseId); var courseSessionsCount = _sessionRepository.GetSessionsByCourseId(courseId).Count; var doneSessionsCount = doneSessions.Count; var donePercentage = ((doneSessionsCount * 100) / courseSessionsCount); return(Ok(new { createdDoneSession = ds, donePercentage })); } } catch { errorMessages.Add(_translator.GetTranslation("ERROR", lang)); return(BadRequest(new { errors = errorMessages })); } }
public DoneSession Create(DoneSession doneSession) { dBContext.DoneSessions.Add(doneSession); dBContext.SaveChanges(); return(doneSession); }