public async Task <PersonOverviewStatsDto> GetPersonOverviewStatistics(Guid personId)
        {
            PersonOverviewStatsDto result = new PersonOverviewStatsDto();

            var tasks = await taskRepository.GetManyByCondition(x => x.AuthorId == personId ||
                                                                x.AttendantId == personId);

            var project = await personInProjectRepository.GetOpenPersonProjectsWithChildEntities(personId);

            if ((tasks == null || !tasks.Any()) && (project == null || !project.Any()))
            {
                return(result);
            }

            result.ConcludedTasks = tasks.Where(x => x.StatusId == (int)EStatus.Finished)
                                    .OrderByDescending(x => x.ConcludedDate.Value)
                                    .Select(x => mapper.Map <TaskSimpleViewDto>(x))
                                    .Take(3)
                                    .ToList();

            result.TasksDueSoon = tasks.Where(x => x.StatusId != (int)EStatus.Finished &&
                                              x.ConclusionDate != null &&
                                              (x.ConclusionDate.Value >= DateTime.Now.AddDays(-5) && x.ConclusionDate.Value <= DateTime.Now))
                                  .Select(s => mapper.Map <TaskSimpleViewDto>(s))
                                  .Take(3)
                                  .ToList();

            result.RecentProjects = project.Select(s => mapper.Map <ProjectSimpleViewDto>(s.Project))
                                    .Take(3)
                                    .ToList();

            return(result);
        }