/// <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;
    }
Example #2
0
 private static StudentEvaluationModel CreateStudentEvaluationModel(StudentEvaluation evaluation)
 {
     return(new StudentEvaluationModel
     {
         StudentId = evaluation.StudentId,
         TeacherId = evaluation.TeacherId,
         Content = evaluation.Content,
         IsNew = false
     });
 }
Example #3
0
        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));
            }
        }
Example #4
0
        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();
        }
Example #5
0
        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());
        }
Example #7
0
        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;
    }
Example #9
0
 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());
 }