示例#1
0
        public QueryTypes FetchByFilter(RepositoryFilter filter)
        {
            try
            {
                using (IDbConnection db = new SqlConnection(ConnectionString))
                {
                    var result = new QueryTypes();

                    var query = "SELECT COUNT(Id) FROM QueryCategory";
                    result.TotalItems = db.Query <int>(query).FirstOrDefault();

                    query = "SELECT qc.[Id], qc.[Name], COUNT(q.CategoryId) AS [AssociatedQueries] " +
                            "FROM QueryCategory qc LEFT JOIN Query q ON qc.Id = q.CategoryId " +
                            "GROUP BY qc.Id, qc.Name " +
                            $"ORDER BY {filter.SortColumn} {filter.SortDirection} " +
                            $"OFFSET {filter.Offset} ROWS FETCH NEXT {filter.PageSize} ROWS ONLY;";
                    result.Items = db.Query <QueryType>(query)?.ToList();

                    return(result);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        public Papers FetchByFilter(RepositoryFilter filter)
        {
            try
            {
                using (IDbConnection db = new SqlConnection(ConnectionString))
                {
                    var result = new Papers();

                    var query = "SELECT COUNT(Id) FROM Paper";
                    result.TotalItems = db.Query <int>(query).FirstOrDefault();

                    query = "SELECT p.[Id], pc.[Name] as Category, CategoryId, [Title], [Year], [Description], [Publish] " +
                            "FROM Paper p JOIN PaperCategory pc ON p.CategoryId = pc.Id " +
                            $"ORDER BY {filter.SortColumn} {filter.SortDirection} " +
                            $"OFFSET {filter.Offset} ROWS FETCH NEXT {filter.PageSize} ROWS ONLY;";

                    result.Items = db.Query <PaperMetadata>(query)?.ToList();

                    return(result);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        public Queries FetchByFilter(RepositoryFilter filter, string paperId)
        {
            try
            {
                using (IDbConnection db = new SqlConnection(ConnectionString))
                {
                    var result = new Queries();

                    var query = "SELECT COUNT(Id) FROM Query Where PaperId = @PaperId";
                    result.TotalItems = db.Query <int>(query, new { PaperId = paperId }).FirstOrDefault();

                    query = "SELECT q.[Id], [PaperId], qc.[Name] As Category, q.[CategoryId], [Question], [Answer], [Option1], " +
                            "[Option2], [Option3] FROM Query q JOIN QueryCategory qc ON q.CategoryId = qc.Id " +
                            $"WHERE PaperId = '{paperId}' " +
                            $"ORDER BY {filter.SortColumn} {filter.SortDirection} " +
                            $"OFFSET {filter.Offset} ROWS FETCH NEXT {filter.PageSize} ROWS ONLY;";
                    result.Items = db.Query <Query>(query)?.ToList();

                    return(result);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
示例#4
0
 public void TestIncrementDate()
 {
     Assert.AreEqual(new DateTime(2008, 01, 02), RepositoryFilter.IncrementDateByRepositoryFilter(new DateTime(2008, 01, 01), RepositoryFilterType.ByDay));
     Assert.AreEqual(new DateTime(2008, 01, 01, 02, 00, 00), RepositoryFilter.IncrementDateByRepositoryFilter(new DateTime(2008, 01, 01, 01, 00, 00), RepositoryFilterType.ByHour));
     Assert.AreEqual(new DateTime(2008, 01, 01, 01, 01, 00), RepositoryFilter.IncrementDateByRepositoryFilter(new DateTime(2008, 01, 01, 01, 00, 00), RepositoryFilterType.ByMinute));
     Assert.AreEqual(new DateTime(2008, 02, 01), RepositoryFilter.IncrementDateByRepositoryFilter(new DateTime(2008, 01, 01), RepositoryFilterType.ByMonth));
     Assert.AreEqual(new DateTime(2008, 01, 08), RepositoryFilter.IncrementDateByRepositoryFilter(new DateTime(2008, 01, 01), RepositoryFilterType.ByWeek));
     Assert.AreEqual(new DateTime(2009, 01, 01), RepositoryFilter.IncrementDateByRepositoryFilter(new DateTime(2008, 01, 01), RepositoryFilterType.ByYear));
 }
示例#5
0
        public void TestTrimDate()
        {
            DateTime t = new DateTime(2008, 02, 01, 15, 33, 14);

            Assert.AreEqual(new DateTime(2008, 02, 01), RepositoryFilter.TrimDateTime(t, RepositoryFilterType.ByDay));
            Assert.AreEqual(new DateTime(2008, 02, 01, 15, 00, 00), RepositoryFilter.TrimDateTime(t, RepositoryFilterType.ByHour));
            Assert.AreEqual(new DateTime(2008, 02, 01, 15, 33, 00), RepositoryFilter.TrimDateTime(t, RepositoryFilterType.ByMinute));
            Assert.AreEqual(new DateTime(2008, 02, 01, 00, 00, 00), RepositoryFilter.TrimDateTime(t, RepositoryFilterType.ByMonth));
            Assert.AreEqual(new DateTime(2008, 01, 27, 00, 00, 00), RepositoryFilter.TrimDateTime(t, RepositoryFilterType.ByWeek));
            Assert.AreEqual(new DateTime(2008, 01, 01, 00, 00, 00), RepositoryFilter.TrimDateTime(t, RepositoryFilterType.ByYear));
        }
示例#6
0
        public async Task ShouldNotFilterWhenSearchFails()
        {
            var collaborationFactory = Substitute.For <ICollaborationFactory>();

            collaborationFactory.CollaborationPlatform.Search(null).ThrowsForAnyArgs(new Exception());

            IRepositoryFilter subject = new RepositoryFilter(collaborationFactory, Substitute.For <INuKeeperLogger>());

            var result = await subject.ContainsDotNetProjects(MakeSampleRepository());

            Assert.True(result);
        }
示例#7
0
        public async Task ShouldNotFilterWhenMatchFound()
        {
            var collaborationFactory = Substitute.For <ICollaborationFactory>();

            collaborationFactory.CollaborationPlatform.Search(null).ReturnsForAnyArgs(Task.FromResult(new SearchCodeResult(1)));

            IRepositoryFilter subject = new RepositoryFilter(collaborationFactory, Substitute.For <INuKeeperLogger>());

            var result = await subject.ContainsDotNetProjects(MakeSampleRepository());

            Assert.True(result);
        }
示例#8
0
        public async Task ShouldNotFilterWhenSearchFails()
        {
            var githubClient = Substitute.For <IGitHub>();

            githubClient.Search(null).ThrowsForAnyArgs(new Exception());

            IRepositoryFilter subject = new RepositoryFilter(githubClient, Substitute.For <INuKeeperLogger>());

            var result = await subject.ContainsDotNetProjects(MakeSampleRepository());

            Assert.True(result);
        }
示例#9
0
        public async Task ShouldNotFilterWhenMatchFound()
        {
            var githubClient = Substitute.For <IGitHub>();

            githubClient.Search(null).ReturnsForAnyArgs(Task.FromResult(new SearchCodeResult(1, false, null)));

            IRepositoryFilter subject = new RepositoryFilter(githubClient, Substitute.For <INuKeeperLogger>());

            var result = await subject.ContainsDotNetProjects(MakeSampleRepository());

            Assert.True(result);
        }
 public Task <PagedList <RepositoryModel> > GetRepositoriesAsync(RepositoryFilter filter, ListOptions listOptions)
 {
     throw new NotImplementedException();
 }
示例#11
0
 public QueryTypes Fetch(RepositoryFilter filter)
 {
     return(_queryTypeRepository.FetchByFilter(filter));
 }
示例#12
0
 public FileFilter SetFilter(RepositoryFilter filter)
 {
     _repositoryFilter = filter;
     FillData();
     return(this);
 }
示例#13
0
 public Papers Fetch(RepositoryFilter filter)
 {
     return(_paperRepository.FetchByFilter(filter));
 }
示例#14
0
 public PaperCategories Fetch(RepositoryFilter filter)
 {
     return(_paperTypeRepository.FetchByFilter(filter));
 }
示例#15
0
 public Queries Fetch(RepositoryFilter filter, string paperId)
 {
     return(_queryRepository.FetchByFilter(filter, paperId));
 }
 public FileFilterParameters(RepositoryFilter filter)
 {
     _filter = filter;
 }