public static IQueryable <HourRate> Filter(this IQueryable <HourRate> query, HourRateQuerySearch criterias) { if (criterias.FromDate != null) { query = query.Where(hourRate => hourRate.FromDate == criterias.FromDate); } if (criterias.Rate != null) { query = query.Where(hourRate => hourRate.Rate == criterias.Rate); } if (criterias.TaskId != null) { query = query.Where(hourRate => hourRate.TaskId == criterias.TaskId); } return(query); }
public IEnumerable <HourRateResponseDto> GetHourRates(HourRateQuerySearch criterias) { return(_context.HourRate .Include(h => h.Task).ThenInclude(t => t.CompensationRate) .AsQueryable() .Filter(criterias) .Select(x => new HourRateResponseDto { FromDate = x.FromDate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture), Id = x.Id, Rate = x.Rate, Task = new TaskResponseDto { Description = x.Task.Description, Id = x.Task.Id, Favorite = false, Locked = x.Task.Locked, Name = x.Task.Name, CompensationRate = EnsureCompensationRate(x.Task.CompensationRate), Project = new ProjectResponseDto { Id = x.Task.ProjectNavigation.Id, Name = x.Task.ProjectNavigation.Name, Customer = new CustomerDto { Id = x.Task.ProjectNavigation.CustomerNavigation.Id, Name = x.Task.ProjectNavigation.CustomerNavigation.Name, InvoiceAddress = x.Task.ProjectNavigation.CustomerNavigation.InvoiceAddress, ContactPhone = x.Task.ProjectNavigation.CustomerNavigation.ContactPhone, ContactEmail = x.Task.ProjectNavigation.CustomerNavigation.ContactEmail, ContactPerson = x.Task.ProjectNavigation.CustomerNavigation.ContactPerson } }, } }) .ToList()); }