Exemplo n.º 1
0
        public async Task SearchForItem_Invalid_Null()
        {
            // Arrange
            var search = new SearchAgileItemDto
            {
                BoardId     = Guid.NewGuid(),
                ItemType    = Models.Types.AgileItemType.SuperStory,
                SearchQuery = "z"
            };

            // Act
            var items = await _agileItemRepository.SearchForAgileItem(search);

            Assert.IsEmpty(items);
        }
        public async Task <List <AgileItemShortVm> > SearchForAgileItem(SearchAgileItemDto search)
        {
            try
            {
                // search on any key fields...
                if (search.ItemType == Models.Types.AgileItemType.SuperStory)
                {
                    return(await _context.AgileItems
                           .Where(a => a.AgileItemType == search.ItemType && a.BoardId == search.BoardId)
                           .Where(a => a.Title.Contains(search.SearchQuery) ||
                                  a.Description.Contains(search.SearchQuery) ||
                                  a.AssigneeName.Contains(search.SearchQuery))
                           .Select(i => new AgileItemShortVm()
                    {
                        Id = i.Id,
                        Title = i.Title
                    }).Take(5).ToListAsync());
                }
                else
                {
                    var items = await _context.AgileItems
                                .Where(a => a.AgileItemType == search.ItemType && a.BoardId == search.BoardId)
                                .Where(a => a.Title.Contains(search.SearchQuery) ||
                                       a.Description.Contains(search.SearchQuery) ||
                                       a.AssigneeName.Contains(search.SearchQuery))
                                .Select(i => new AgileItemShortVm()
                    {
                        Id    = i.Id,
                        Title = i.Title
                    }).Take(5).ToListAsync();

                    foreach (var item in items)
                    {
                        item.Order = await _context.AgileItems
                                     .Where(s => s.ParentId == item.Id)
                                     .OrderByDescending(i => i.Order)
                                     .Select(i => i.Order)
                                     .FirstOrDefaultAsync();
                    }
                    return(items);
                }
            }
            catch (Exception e)
            {
                _logger.LogError("Exception when creating searching for item, Exception:" + e + "Stack trace:" + e.StackTrace + "Search Term: " + search.SearchQuery);
            }
            return(null);
        }
Exemplo n.º 3
0
        public async Task SearchForItem_Valid_Success()
        {
            // Arrange
            var search = new SearchAgileItemDto
            {
                BoardId     = Guid.Parse("aada6f2a-8854-4a5e-a907-2244f43408a1"),
                ItemType    = Models.Types.AgileItemType.SuperStory,
                SearchQuery = "stub"
            };

            // Act
            var items = await _agileItemRepository.SearchForAgileItem(search);

            Assert.IsNotNull(items);
            Assert.AreEqual(1, items.Count);
            Assert.AreEqual("A stub creation of a story", items[0].Title);
        }
        public async Task SearchAgileItems_Valid_Success()
        {
            // Arrange
            _mockAgileItemsRepository.Setup(m => m.SearchForAgileItem(It.IsAny <SearchAgileItemDto>()))
            .ReturnsAsync(_stubShortVmList);

            var stubSearchVm = new SearchAgileItemDto
            {
                BoardId     = Guid.NewGuid(),
                ItemType    = Models.Types.AgileItemType.Story,
                SearchQuery = "Stub Search"
            };

            // Act
            var items = await _agileItemsController.SearchAgileItems(stubSearchVm) as OkObjectResult;

            // Assert
            Assert.IsNotNull(items);
            Assert.AreEqual(items.StatusCode, 200);
            Assert.AreEqual(items.Value, _stubShortVmList);
            _mockAgileItemsRepository.Verify(m => m.SearchForAgileItem(It.IsAny <SearchAgileItemDto>()), Times.Once);
        }
Exemplo n.º 5
0
        public async Task <IActionResult> SearchAgileItems(SearchAgileItemDto search)
        {
            var items = await _agileItemRepository.SearchForAgileItem(search);

            return(Ok(items));
        }