public void EditStudentNickname()
        {
            AddStudentRequest request = new AddStudentRequest()
            {
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            StudentFacade      studentFacade = new StudentFacade();
            AddStudentResponse response      = studentFacade.AddStudentNickname(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);

            EditStudentNicknameRequest editStudentNicknameRequest = new EditStudentNicknameRequest()
            {
                Nickname = AlphaNumericStringGenerator.GetString(10)
            };

            EditStudentNicknameResponse editStudentNicknameResponse = studentFacade.EditStudentNickname(response.StudentID, editStudentNicknameRequest);

            Assert.AreEqual(HttpStatusCode.OK, editStudentNicknameResponse.Status);
            Assert.IsTrue(editStudentNicknameResponse.Result);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                var nickname = context.Nicknames.FirstOrDefault(n => n.StudentId == response.StudentID);

                Assert.AreEqual(editStudentNicknameRequest.Nickname, nickname.NickName);
            }
        }
示例#2
0
        public AddStudentResponse AddStudent(AddStudentRequest request)
        {
            var study = _context.Studies.FirstOrDefault(s => s.Name == request.Studies);

            if (study == null)
            {
                throw new Exception("There is no such study");
            }
            var enrollment = _context.Enrollment.Where(enr => enr.IdStudy == study.IdStudy && enr.Semester == request.Semester).FirstOrDefault();

            if (enrollment == null)
            {
                enrollment = new Enrollment()
                {
                    IdEnrollment = _context.Enrollment.Max(enr => enr.IdEnrollment) + 1,
                    Semester     = request.Semester,
                    IdStudy      = study.IdStudy,
                    StartDate    = DateTime.Now
                };
                _context.Enrollment.Add(enrollment);
            }

            if (_context.Student.FirstOrDefault(s => s.IndexNumber == request.IndexNumber) != null)
            {
                throw new Exception("Student with such index number already exists");
            }
            var student = new Student()
            {
                IndexNumber  = request.IndexNumber,
                BirthDate    = request.Birthdate,
                FirstName    = request.FirstName,
                LastName     = request.LastName,
                IdEnrollment = enrollment.IdEnrollment
            };

            _context.Student.Add(student);
            var response = new AddStudentResponse()
            {
                Semester  = enrollment.Semester,
                LastName  = student.LastName,
                StartDate = enrollment.StartDate
            };

            _context.SaveChanges();
            return(response);
        }
        public void EditStudentNicknameExists()
        {
            AddStudentRequest request = new AddStudentRequest()
            {
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            StudentFacade      studentFacade = new StudentFacade();
            AddStudentResponse response      = studentFacade.AddStudentNickname(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);

            EditStudentNicknameRequest editStudentNicknameRequest = new EditStudentNicknameRequest()
            {
                Nickname = request.Nickname
            };

            EditStudentNicknameResponse editStudentNicknameResponse = studentFacade.EditStudentNickname(response.StudentID, editStudentNicknameRequest);

            Assert.AreEqual(HttpStatusCode.BadRequest, editStudentNicknameResponse.Status);
        }
        /// <summary>
        /// Used to add a student nickname to the system
        /// </summary>
        /// <param name="request">The information required to add a student nickname</param>
        /// <returns>A response indictaes if the action was successful</returns>
        public AddStudentResponse AddStudentNickname(AddStudentRequest request)
        {
            AddStudentResponse response = new AddStudentResponse();

            try
            {
                response = (AddStudentResponse)request.CheckValidation(response);

                if (response.Status == HttpStatusCode.BadRequest)
                {
                    return(response);
                }

                StudentDatalayer studentDatalayer = new StudentDatalayer();
                var nickname = studentDatalayer.GetStudentNicknameByNickname(request.Nickname);

                if (nickname != null)
                {
                    response.Status = HttpStatusCode.BadRequest;
                    response.StatusMessages.Add(new StatusMessage(HttpStatusCode.BadRequest, "This nickname is already being used."));
                    return(response);
                }

                var dataLayer = new StudentDatalayer();
                int id        = dataLayer.AddStudentNickname(request);

                response.StudentID = id;
                response.Status    = HttpStatusCode.OK;
            }
            catch (Exception ex)
            {
                s_logger.Error(ex, "Unable to add a nickname");
                response.Status = HttpStatusCode.InternalServerError;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to add a nickname"));
            }

            return(response);
        }
        /// <summary>
        /// This method is used to check in into the helpdesk system
        /// </summary>
        /// <param name="request">The request containing the specified UnitID</param>
        /// <returns>A response indicating success or failure</returns>
        public CheckInResponse CheckIn(CheckInRequest request)
        {
            CheckInResponse response = new CheckInResponse();

            try
            {
                response = (CheckInResponse)request.CheckValidation(response);

                if (response.Status == HttpStatusCode.BadRequest)
                {
                    return(response);
                }

                StudentFacade studentFacade = new StudentFacade();

                if (!request.StudentID.HasValue)
                {
                    if (studentFacade.GetStudentByNickname(request.Nickname).Status != HttpStatusCode.NotFound)
                    {
                        response.Status = HttpStatusCode.BadRequest;
                        return(response);
                    }

                    AddStudentRequest addStudentRequest = new AddStudentRequest()
                    {
                        SID      = request.SID,
                        Nickname = request.Nickname
                    };

                    AddStudentResponse addStudentResponse = studentFacade.AddStudentNickname(addStudentRequest);

                    request.StudentID = addStudentResponse.StudentID;
                }

                using (helpdesksystemContext context = new helpdesksystemContext())
                {
                    if (context.Nicknames.FirstOrDefault(n => n.StudentId == request.StudentID) == null)
                    {
                        throw new NotFoundException("No student found for id " + request.StudentID);
                    }
                }

                CheckInDataLayer dataLayer = new CheckInDataLayer();
                int checkInID = dataLayer.CheckIn(request);

                response.StudentID = request.StudentID.Value;
                response.CheckInID = checkInID;
                response.Status    = HttpStatusCode.OK;
            }
            catch (NotFoundException ex)
            {
                s_logger.Warn(ex, "No student found for id " + request.SID);
                response.Status = HttpStatusCode.NotFound;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.NotFound, "No student found for id " + request.SID));
            }
            catch (Exception ex)
            {
                s_logger.Error(ex, "Unable to check in");
                response.Status = HttpStatusCode.InternalServerError;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to check in"));
            }
            return(response);
        }
示例#6
0
 public TestDataNickname(AddStudentRequest request, AddStudentResponse response)
 {
     Request  = request;
     Response = response;
 }