コード例 #1
0
        public void Add_StudentHaveValidProperties_ShouldAddTheStudent()
        {
            bool isItemAdded = false;
            var repository = Mock.Create<IRepository<Student>>();

            StudentFullModel student = new StudentFullModel()
            {
                FirstName = "Peter",
                LastName = "Petrov",
                Grade = 5,
                Age = 18
            };
            Student studentEntity = new Student()
            {
                StudentId = 1,
                FirstName = student.FirstName,
                LastName = student.LastName,
                Grade = student.Grade,
                Age = student.Age
            };

            Mock.Arrange(() => repository.Add(Arg.IsAny<Student>()))
                .DoInstead(() => isItemAdded = true)
                .Returns(studentEntity);

            var controller = new StudentsController(repository);
            SetupController(controller);

            controller.Post(student);

            Assert.IsTrue(isItemAdded);
        }
コード例 #2
0
        // GET api/students/5
        public StudentFullModel Get(int id)
        {
            var student = this.studentsRepository.Get(id);

            StudentFullModel studentModel = new StudentFullModel();
            if (student!=null)
            {
                studentModel.TransformFromEntity(student);
            }
            
            return studentModel;
        }
コード例 #3
0
        // api/students?subject=S&value=V
        public ICollection<StudentFullModel> Get(string subject, int value)
        {
            var students = this.studentsRepository.All().Where(s => s.Marks.Any(
                m => m.Subjeckt == subject && m.Value > value)).ToList();
            ICollection<StudentFullModel> studentModels = new List<StudentFullModel>();
            foreach (var entity in students)
            {
                StudentFullModel stud = new StudentFullModel();
                stud.TransformFromEntity(entity);
                studentModels.Add(stud);
            }

            return studentModels;
        }
コード例 #4
0
        // POST api/students
        public HttpResponseMessage Post(StudentFullModel student)
        {
            var entityToAdd = new Student()
            {
                FirstName = student.FirstName,
                LastName = student.LastName,
                Age = student.Age,
                Grade = student.Grade
            };

            if (student.School != null)
            {
                entityToAdd.School = new School()
                {
                    SchoolId = student.School.SchoolId,
                    Name = student.School.Name,
                    Location = student.School.Location
                };
            }
            if (entityToAdd.Marks != null)
            {
                entityToAdd.Marks = (
                from mark in student.Marks
                select new Mark()
                {
                    MarkId = mark.MarkId,
                    Subjeckt = mark.Subjeckt,
                    Value = mark.Value
                }).ToList();
            }

            var createdEntity = this.studentsRepository.Add(entityToAdd);


            StudentFullModel studentModel = new StudentFullModel();
            studentModel.TransformFromEntity(createdEntity);
            

            var response = Request.CreateResponse<StudentFullModel>(HttpStatusCode.Created, studentModel);
            var resourceLink = Url.Link("DefaultApi", new { id = studentModel.StudentId });

            response.Headers.Location = new Uri(resourceLink);
            return response;
        }