public async Task <IEnumerable <Project> > GetUserProjectsAndBuildConfigs(string username)
        {
            try
            {
                IEnumerable <Data.Entities.Project> userProjects = await CiDashboardService.GetProjects(username);

                IEnumerable <Project> mappedUserProjects = Mapper.Map <IEnumerable <Data.Entities.Project>, IEnumerable <Project> >(userProjects);

                return(mappedUserProjects);
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Error requesting all project for {username}", username);
            }

            return(new List <Project>());
        }
        public async Task GetProjects_ReturnCorrectData()
        {
            _fixture.Customize <BuildConfig>(c => c.Without(f => f.Project));
            IQueryable <Project> projects = _fixture
                                            .CreateMany <Project>()
                                            .AsQueryable();
            string username = projects.First().User;

            DbSet <Project> projectsSet = A.Fake <DbSet <Project> >(builder => builder
                                                                    .Implements(typeof(IQueryable <Project>))
                                                                    .Implements(typeof(IDbAsyncEnumerable <Project>)));

            A.CallTo(() => ((IDbAsyncEnumerable <Project>)projectsSet).GetAsyncEnumerator())
            .Returns(new TestDbAsyncEnumerator <Project>(projects.GetEnumerator()));
            A.CallTo(() => ((IQueryable <Project>)projectsSet).Provider)
            .Returns(new TestDbAsyncQueryProvider <Project>(projects.Provider));
            A.CallTo(() => ((IQueryable <Project>)projectsSet).Expression).Returns(projects.Expression);
            A.CallTo(() => ((IQueryable <Project>)projectsSet).ElementType).Returns(projects.ElementType);
            A.CallTo(() => ((IQueryable <Project>)projectsSet).GetEnumerator()).Returns(projects.GetEnumerator());

            ICiDashboardContext context = A.Fake <ICiDashboardContext>();

            A.CallTo(() => context.Projects).Returns(projectsSet);

            ICiDashboardContextFactory factory = A.Fake <ICiDashboardContextFactory>();

            A.CallTo(() => factory.Create()).Returns(context);

            _fixture.Inject(factory);
            _fixture.Inject(context);

            CiDashboardService service = _fixture.Create <CiDashboardService>();

            IEnumerable <Project> result = await service.GetProjects(username);

            result.Should()
            .NotBeNull()
            .And.NotBeEmpty()
            .And.BeEquivalentTo(projects.Where(p => p.User == username));
        }