Пример #1
0
        public IEnumerable <Task> Find(TaskQueryParam options)
        {
            var results = Context.Tasks.AsQueryable();

            if (options?.Include?.User == true)
            {
                results = results.Include(t => t.User);
            }

            if (options?.Filter?.UserId != null)
            {
                results = results.Where(x => x.UserId == options.Filter.UserId);
            }

            if (options?.Sort?.Latest == true)
            {
                results = results.OrderByDescending(x => x.Time);
            }

            if (options?.Pagination?.Offset > 0)
            {
                results = results.Skip(options.Pagination.Offset.Value);
            }

            if (options?.Pagination?.Limit > 1)
            {
                results = results.Take(options.Pagination.Limit.Value);
            }

            var tmp = results.ToList();

            return(ConvertToDomainType(tmp));
        }
Пример #2
0
        public HttpResponseMessage Get([FromUri] TaskQueryParam options)
        {
            var request = new GetTasksRequest {
                QueryParams = options
            };

            var response = _taskService.GetTasks(request);

            return(_responseBuilder.BuildResponse(Request, response));
        }
Пример #3
0
        public IEnumerable <Task> Find(TaskQueryParam options)
        {
            var results = Context.Tasks.AsEnumerable();

            if (options?.Filter?.UserId != null)
            {
                results = results.Where(x => x.UserId == options.Filter.UserId);
            }

            return(ConvertToDomainType(results));
        }
Пример #4
0
        public void FindTest()
        {
            var user1 = new User {
                Id          = Guid.NewGuid(),
                FirstName   = "test",
                LastName    = "test",
                Country     = "UK",
                City        = "London",
                Street      = "Baker streer",
                HouseNumber = "221B"
            };

            var user2 = new User {
                Id          = Guid.NewGuid(),
                FirstName   = "test2",
                LastName    = "test2",
                Country     = "US",
                City        = "New York",
                Street      = "Test street",
                HouseNumber = "123"
            };

            var task1 = new Task {
                Id     = Guid.NewGuid(),
                Name   = "test",
                Time   = DateTime.Now,
                User   = user1,
                UserId = user1.Id
            };

            var task2 = new Task {
                Id     = Guid.NewGuid(),
                Name   = "test2",
                Time   = DateTime.Now,
                User   = user2,
                UserId = user2.Id
            };

            var tasks = new List <Task> {
                task1,
                task2
            };

            var mockUow = new Mock <IUnitOfWork>();

            var mockContext = new Mock <IDomainContext>();

            mockContext.Setup(x => x.Tasks).Returns(tasks);

            var mockFactory = new Mock <IDataContextFactory <IDomainContext> >();

            mockFactory.Setup(x => x.Create()).Returns(mockContext.Object);

            var mockMapper = new Mock <ITaskDatabaseMapper>();

            mockMapper.Setup(x => x.ConvertToDomainType(task1, mockContext.Object))
            .Returns(new Domain.Task.Task {
                Id   = task1.Id,
                Name = task1.Name,
                Time = task1.Time,
                User = new Domain.User.User {
                    Id        = task1.User.Id,
                    FirstName = task1.User.FirstName,
                    LastName  = task1.User.LastName,
                    Address   = new Address {
                        Country     = task1.User.Country,
                        City        = task1.User.City,
                        Street      = task1.User.Street,
                        HouseNumber = task1.User.HouseNumber
                    }
                }
            });

            mockMapper.Setup(x => x.ConvertToDomainType(task2, mockContext.Object))
            .Returns(new Domain.Task.Task {
                Id   = task2.Id,
                Name = task2.Name,
                Time = task2.Time,
                User = new Domain.User.User {
                    Id        = task2.User.Id,
                    FirstName = task2.User.FirstName,
                    LastName  = task2.User.LastName,
                    Address   = new Address {
                        Country     = task2.User.Country,
                        City        = task2.User.City,
                        Street      = task2.User.Street,
                        HouseNumber = task2.User.HouseNumber
                    }
                }
            });

            var repo = new TaskRepository(mockUow.Object, mockFactory.Object, mockMapper.Object);

            var queryParams = new TaskQueryParam();

            var result = repo.Find(queryParams);

            Assert.AreEqual(2, result.Count());

            var first = result.First();

            Assert.AreEqual(task1.Id, first.Id);
            Assert.AreEqual(task1.Name, first.Name);
            Assert.AreEqual(task1.Time, first.Time);
            Assert.AreEqual(task1.User.FirstName, first.User.FirstName);
            Assert.AreEqual(task1.User.LastName, first.User.LastName);
            Assert.AreEqual(task1.User.Country, first.User.Address.Country);
            Assert.AreEqual(task1.User.City, first.User.Address.City);
            Assert.AreEqual(task1.User.Street, first.User.Address.Street);
            Assert.AreEqual(task1.User.HouseNumber, first.User.Address.HouseNumber);

            var last = result.Last();

            Assert.AreEqual(task2.Id, last.Id);
            Assert.AreEqual(task2.Name, last.Name);
            Assert.AreEqual(task2.Time, last.Time);
            Assert.AreEqual(task2.User.FirstName, last.User.FirstName);
            Assert.AreEqual(task2.User.LastName, last.User.LastName);
            Assert.AreEqual(task2.User.Country, last.User.Address.Country);
            Assert.AreEqual(task2.User.City, last.User.Address.City);
            Assert.AreEqual(task2.User.Street, last.User.Address.Street);
            Assert.AreEqual(task2.User.HouseNumber, last.User.Address.HouseNumber);
        }