public IEnumerable <Hourage> GetUserHourageRecordsWithProject(string userId)
        {
            var dbHourageRecords = _hourageManagement.GetUserHourageRecordsWithProject(userId);
            var records          = Mapper.Map <IEnumerable <HourageEntity>, IEnumerable <Hourage> >(dbHourageRecords);

            return(records);
        }
        public IEnumerable <ProjectWithTotalHours> GetUserProjectsWithOverallTime(string userId)
        {
            var projectsUserTakePart     = _projectManagement.GetProjectsUserTakePart(userId);
            var houragesGroupedByProject = _hourageManagement.GetUserHourageRecordsWithProject(userId)
                                           .GroupBy(h => h.Project)
                                           .Select(hg =>
                                                   new
            {
                Project    = hg.Key,
                TotalHours = hg.Sum(r => r.Hours)
            });
            var projectsWithTotalHours = from pu in projectsUserTakePart
                                         join hourageRecord in houragesGroupedByProject on pu equals hourageRecord.Project into allProjects
                                         from p in allProjects.DefaultIfEmpty()
                                         select new { Project = pu, TotalHours = p?.TotalHours ?? 0 };

            var result = projectsWithTotalHours.Select(h => new ProjectWithTotalHours
            {
                Project = Mapper.Map <Project>(h.Project),
                Hours   = h.TotalHours
            });

            return(result);
        }