Exemplo n.º 1
0
        public void TestEnrollmentQuery()
        {
            var entityTypeResolver   = new StaticEntityTypeResolver();
            var entityTypeRepository = new DSEntityTypeRepository(new MemoryCache(), entityTypeResolver);

            var search = new DSSearch(DSEnrollment.EntityName);

            search.AddSelect(DSEnrollment.Attrs.EnrollmentID);
            search.AddSelect(DSEnrollment.Attrs.Student.LastName);
            search.AddSelect(DSEnrollment.Attrs.Student.ID);
            search.AddSelect(DSEnrollment.Attrs.Course.Title);
            search.AddSelect(DSEnrollment.Attrs.Course.Department.Name);
            search.AddSelect(DSEnrollment.Attrs.Grade);

            search.Where.DSContains(DSEnrollment.Attrs.Course.Title, "e");

            search.AddOrder(DSEnrollment.Attrs.Student.LastName);
            search.Page     = 1;
            search.PageSize = 25;

            var queryBuilder = DSSearchTestHelpers.CreateSearchBuilder(entityTypeRepository, search, true);

            var expectedQuery = "SELECT e.EnrollmentID, p.LastName [Student.LastName], p.ID [Student.ID], c.Title [Course.Title], d.Name [Course.Department.Name], e.Grade" +
                                " FROM dbo.Enrollment e WITH(NOLOCK)" +
                                " JOIN dbo.Person p WITH(NOLOCK) ON e.StudentID = p.ID" +
                                " JOIN dbo.Course c WITH(NOLOCK) ON e.CourseID = c.CourseID" +
                                " JOIN dbo.Department d WITH(NOLOCK) ON c.DepartmentID = d.DepartmentID" +
                                " WHERE c.Title LIKE '%'+@p0+'%'";

            Assert.AreEqual(DSSearchTestHelpers.AddDefaultQueryOrder(expectedQuery, "p.LastName, e.EnrollmentID"), queryBuilder.ToString());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Initializes static members of the <see cref="SearchController"/> class.
        /// </summary>
        static SearchController()
        {
            // TODO - Ultimately all of this should be handled by Unity (or some other IoC Container implementation).
            _cache = new MemoryCache();
            var entityTypeResolver   = new StaticEntityTypeResolver();
            var entityTypeRepository = new DSEntityTypeRepository(_cache, entityTypeResolver);
            var processor            = new DSSQLSearchProcessor(_cache, entityTypeRepository);

            _dataAccess = new DataAccessController(_cache, entityTypeRepository, processor);
        }