Beispiel #1
0
        public IEnumerable <TaskResponseDto> GetTasks(TaskQuerySearch criterias)
        {
            var tasks = _context.Task
                        .Include(t => t.CompensationRate).AsQueryable()
                        .Filter(criterias)
                        .Select(x => new TaskResponseDto
            {
                Description      = x.Description,
                Id               = x.Id,
                Name             = x.Name,
                Locked           = x.Locked,
                Favorite         = false,
                CompensationRate = EnsureCompensationRate(x.CompensationRate),
                Project          = new ProjectResponseDto
                {
                    Id       = x.ProjectNavigation.Id,
                    Name     = x.ProjectNavigation.Name,
                    Customer = new CustomerDto
                    {
                        Id             = x.ProjectNavigation.CustomerNavigation.Id,
                        Name           = x.ProjectNavigation.CustomerNavigation.Name,
                        ContactEmail   = x.ProjectNavigation.CustomerNavigation.ContactEmail,
                        ContactPerson  = x.ProjectNavigation.CustomerNavigation.ContactPerson,
                        ContactPhone   = x.ProjectNavigation.CustomerNavigation.ContactPhone,
                        InvoiceAddress = x.ProjectNavigation.CustomerNavigation.InvoiceAddress
                    }
                }
            }).ToList();

            return(tasks);
        }
Beispiel #2
0
        public IEnumerable <TaskResponseDto> GetUsersTasks(TaskQuerySearch criterias, int userId)
        {
            var usersFavoriteTaskIds = _context.TaskFavorites.Where(x => x.UserId == userId).Select(x => x.TaskId).ToList();

            var tasks = GetTasks(criterias);

            foreach (var task in tasks)
            {
                task.Favorite = usersFavoriteTaskIds.Contains(task.Id);
            }

            return(tasks);
        }
Beispiel #3
0
        public static IQueryable <Task> Filter(this IQueryable <Task> query, TaskQuerySearch criterias)
        {
            if (criterias.Locked != null)
            {
                query = query.Where(task => task.Locked == criterias.Locked);
            }
            if (criterias.Name != null)
            {
                query = query.Where(task => task.Name == criterias.Name);
            }
            if (criterias.Project != null)
            {
                query = query.Where(task => task.Project == criterias.Project);
            }
            if (criterias.Id != null)
            {
                query = query.Where(task => task.Id == criterias.Id);
            }

            return(query);
        }