/// <summary> /// This gets the right student evaluation number for the evaluation that is /// about to be displayed to the user. /// </summary> /// <param name="userId">The Current Users Id</param> /// <returns></returns> public StudentEvaluation GetNewStudentEvaluation(string evaluationId, string userId) { int currEvalNumber = 0; List<StudentEvaluation> seList = _db.GetStudentEvaluationListByUserId(userId); //Get Users list of Evaluations StudentEvaluation se; if (seList.Count >= 1) { //Is there student evaluations for the user? currEvalNumber = seList.Count; //Get the Number of evaluations the user has done se = new StudentEvaluation { Id = System.Guid.NewGuid().ToString(), UserId = userId, EvaluationId = evaluationId, TimeOfEvaluation = DateTime.Now, EvaluationCount = currEvalNumber }; _db.AddStudentEvaluation(se); //Add new studentEvaluation to DB } else //If Previous StudentEvaluations, Start a new StudentEvaluation { se = new StudentEvaluation { Id = System.Guid.NewGuid().ToString(), UserId = userId, EvaluationId = evaluationId, TimeOfEvaluation = DateTime.Now, EvaluationCount = 1 }; _db.AddStudentEvaluation(se); //Add new studentEvaluation to DB } return se; }
private static StudentEvaluationModel CreateStudentEvaluationModel(StudentEvaluation evaluation) { return(new StudentEvaluationModel { StudentId = evaluation.StudentId, TeacherId = evaluation.TeacherId, Content = evaluation.Content, IsNew = false }); }
public async Task <int> DeleteStudentEvaluationAsync(StudentEvaluationModel model) { var evaluation = new StudentEvaluation { StudentId = model.StudentId, TeacherId = model.TeacherId }; using (var dataService = DataServiceFactory.CreateDataService()) { return(await dataService.DeleteStudentEvaluationAsync(evaluation)); } }
public void Tests_HasPassed_Passed() { //Arrange int grade = 10; string expectedResult = "Passed"; var mockLog = new Mock <ILogService>(); //Act StudentEvaluation evaluation = new StudentEvaluation(mockLog.Object); string actualResult = evaluation.HasPassed(grade); //Assert Assert.IsTrue(expectedResult.Equals(actualResult), "The student didn't pass as expected."); mockLog.VerifyNoOtherCalls(); }
public async Task <int> AddOrUpdateStudentEvaluationAsync(StudentEvaluationModel model) { using (var dataService = DataServiceFactory.CreateDataService()) { StudentEvaluation evaluation = new StudentEvaluation(); UpdateEvaluationFromModel(evaluation, model); var result = await dataService.AddOrUpdateStudentEvaluationAsync(evaluation); var newEvaluation = await GetStudentEvaluationAsync(evaluation.TeacherId, evaluation.StudentId); newEvaluation.IsNew = false; model.Merge(newEvaluation); return(result); } }
public async Task <int> AddOrUpdateStudentEvaluationAsync(StudentEvaluation evaluation) { if (await _dataSource.StudentEvaluations.AsNoTracking() .Where(x => x.StudentId.Equals(evaluation.StudentId) && x.TeacherId.Equals(evaluation.TeacherId)) .FirstOrDefaultAsync() != null) { _dataSource.StudentEvaluations.Update(evaluation); } else { await _dataSource.StudentEvaluations.AddAsync(evaluation); } return(await _dataSource.SaveChangesAsync()); }
public void Tests_HasPassed_Invalid_Grade() { //Arrange int invalidGrade = 13; string expectedResult = string.Empty; var mockLog = new Mock <ILogService>(); string expectedLogMessage = $"An attempt to evaluate the invalid grade {invalidGrade} was made."; //Act StudentEvaluation evaluation = new StudentEvaluation(mockLog.Object); string actualResult = evaluation.HasPassed(invalidGrade); //Assert Assert.IsTrue(expectedResult.Equals(actualResult), "Invalid grade wasn't handled as expected."); mockLog.Verify(log => log.Log(expectedLogMessage), "The expected message wasn't logged."); mockLog.VerifyNoOtherCalls(); }
public OpResult AddStudentEvaluation(StudentEvaluation addStudentEvaluation) { var result = new OpResult(); //try //{ using (var cmd = new SqlCommand()) { // Build the command cmd.Connection = Cxn; cmd.CommandText = "INSERT INTO [EnglishDB].[dbo].[StudentEvaluations]([StudentEvaluationId],[UserId],[EvaluationId],[TimeOfEvaluation],[EvaluationCount]) " + "VALUES (@seid, @uid, @eid, @toe, @ec)"; cmd.Parameters.Add(new SqlParameter("seid", addStudentEvaluation.Id)); cmd.Parameters.Add(new SqlParameter("uid", addStudentEvaluation.UserId)); cmd.Parameters.Add(new SqlParameter("eid", addStudentEvaluation.EvaluationId)); cmd.Parameters.Add(new SqlParameter("toe", addStudentEvaluation.TimeOfEvaluation)); cmd.Parameters.Add(new SqlParameter("ec", addStudentEvaluation.EvaluationCount)); // Execute the Insert if (Cxn.State == ConnectionState.Open) Cxn.Close(); Cxn.Open(); var insertCount = cmd.ExecuteNonQuery(); Cxn.Close(); if (insertCount != 1) { result.OperationWasSuccessful = false; result.Error = new ArgumentException(string.Format("{0} schedules were inserted when only 1 should have been inserted.", insertCount)); } else { result.OperationWasSuccessful = true; } } //} //catch (Exception ex) //{ // result.OperationWasSuccessful = false; // result.Error = ex; //} return result; }
private static void UpdateEvaluationFromModel(StudentEvaluation target, StudentEvaluationModel source) { target.StudentId = source.StudentId; target.TeacherId = source.TeacherId; target.Content = source.Content; }
public OpResult UpdateStudentEvaluation(StudentEvaluation StudentEvaluationToUpdate) { var result = new OpResult(); try { using (var cmd = new SqlCommand()) { // Build the command cmd.Connection = Cxn; cmd.CommandText = "UPDATE [EnglishDB].[dbo].[StudentEvaluations] " + "SET [StudentEvaluationId] = @seid ,[UserId] = @uid,[EvaluationId] = @eid,[TimeOfEvaluation] = @toe,[EvaluationCount] = @ec " + "WHERE StudentEvaluationId = @seid"; cmd.Parameters.Add(new SqlParameter("seid", StudentEvaluationToUpdate.Id)); cmd.Parameters.Add(new SqlParameter("uid", StudentEvaluationToUpdate.UserId)); cmd.Parameters.Add(new SqlParameter("eid", StudentEvaluationToUpdate.EvaluationId)); cmd.Parameters.Add(new SqlParameter("toe", StudentEvaluationToUpdate.TimeOfEvaluation)); cmd.Parameters.Add(new SqlParameter("ec", StudentEvaluationToUpdate.EvaluationCount)); // Execute the update Cxn.Open(); var updateCount = cmd.ExecuteNonQuery(); Cxn.Close(); if (updateCount != 1) { result.OperationWasSuccessful = false; result.Error = new ArgumentException(string.Format("{0} StudentEvaluations were updated when only 1 should have been updated.", updateCount)); } else { result.OperationWasSuccessful = true; } } } catch (Exception ex) { result.OperationWasSuccessful = false; result.Error = ex; } return result; }
public List<StudentEvaluation> GetStudentEvaluationListByUserId(string userId) { var StudentEvaluationList = new List<StudentEvaluation>(); var cmd = new SqlCommand("SELECT StudentEvaluationId, UserId, EvaluationId, TimeOfEvaluation, EvaluationCount" + " FROM StudentEvaluations" + " WHERE UserId = @userId", Cxn); cmd.Parameters.Add(new SqlParameter("userId", userId)); // Open the connection Cxn.Open(); // Perform the query var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); while (reader.Read()) { // Set the basic properties var StudentEvaluation = new StudentEvaluation { Id = reader.GetGuid(0).ToString(), UserId = reader.GetGuid(1).ToString(), EvaluationId = reader.GetGuid(2).ToString(), TimeOfEvaluation = reader.GetDateTime(3), EvaluationCount = reader.GetInt32(4) }; StudentEvaluationList.Add(StudentEvaluation); } return StudentEvaluationList; }
public StudentEvaluation GetStudentEvaluation(string studentEvaluationId) { StudentEvaluation studentEvaluation = new StudentEvaluation(); var cmd = new SqlCommand("SELECT StudentEvaluationId, UserId, EvaluationId, TimeOfEvaluation, EvaluationCount" + " FROM StudentEvaluations" + " WHERE StudentEvaluationId = @StudentEvaluationId", Cxn); cmd.Parameters.Add(new SqlParameter("StudentEvaluationId", studentEvaluationId)); // Open the connection Cxn.Open(); // Perform the query var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); while (reader.Read()) { studentEvaluation.Id = reader.GetGuid(0).ToString(); studentEvaluation.UserId = reader.GetGuid(1).ToString(); studentEvaluation.EvaluationId = reader.GetGuid(2).ToString(); studentEvaluation.TimeOfEvaluation = reader.GetDateTime(3); studentEvaluation.EvaluationCount = reader.GetInt32(4); } return studentEvaluation; }
public async Task <int> DeleteStudentEvaluationAsync(StudentEvaluation evaluation) { _dataSource.StudentEvaluations.Remove(evaluation); return(await _dataSource.SaveChangesAsync()); }