public async Task <JsonResult> GetAllLeads(bool includeDeleted = false) => await JsonAsync(_leadService.GetAllLeadsAsync(includeDeleted));
/// <summary> /// Get all user task by name and assigned task /// </summary> /// <param name="userId"></param> /// <param name="userName"></param> /// <param name="request"></param> /// <returns></returns> public async Task <ResultModel <PagedResult <GetTaskViewModel> > > GetAllUserTasksAsync(Guid userId, string userName, PageRequest request) { if (userId == Guid.Empty) { return(ExceptionMessagesEnum.NullParameter.ToErrorModel <PagedResult <GetTaskViewModel> >()); } var allLeadsRequest = (await _leadService.GetAllLeadsAsync(false)).Result.ToList(); var query = _context.Tasks .Include(x => x.AssignedUsers) .Include(i => i.TaskType) .Where(x => (x.UserId == userId || x.AssignedUsers.Any(c => c.UserId.Equals(userId))) || (x.Author == userName)); if (request.PageRequestFilters.Select(s => s.Propriety).Contains("AssignedUsers")) { query = await CustomFilterTask(query, request); request.PageRequestFilters = request.PageRequestFilters.Where(s => s.Propriety != "AssignedUsers"); } var queryTest = query .Select(s => new GetTaskViewModel { Id = s.Id, TaskNumber = s.TaskNumber, StartDate = s.StartDate, EndDate = s.EndDate, Description = s.Description, Name = s.Name, Status = s.Status, TaskPriority = s.TaskPriority, IsDeleted = s.IsDeleted, UserId = s.UserId, Author = s.Author, LeadId = s.LeadId, TaskTypeId = s.TaskTypeId, TaskType = s.TaskType, LeadName = s.LeadId.HasValue ? allLeadsRequest.FirstOrDefault(i => i.Id == s.LeadId.Value) == null ? "" : allLeadsRequest.FirstOrDefault(i => i.Id == s.LeadId.Value).Name : "", }); var paginatedResult = await queryTest.GetPagedAsync(request); var test = paginatedResult.Result; foreach (var item in test) { var task = await query.FirstOrDefaultAsync(x => x.Id == item.Id); if (task == null) { continue; } item.ModifiedBy = task.ModifiedBy.IsNullOrEmpty() ? task.Author : task.ModifiedBy; item.UserTeam = task.AssignedUsers?.Select(x => x.UserId); item.AccessLevel = GetTaskAccessLevel(task, userId).ToString(); item.StatusItem = new TaskEnumItem { Value = (int)task.Status, Text = task.Status.ToString() }; item.TaskPriorityItem = new TaskEnumItem { Value = (int)task.TaskPriority, Text = task.TaskPriority.ToString() }; item.AssignedUsers = GetUsersByListId(task.AssignedUsers?.Select(x => x.UserId)); } paginatedResult.Result = test; //var pageResult = await query.GetPagedAsync(request); return(new SuccessResultModel <PagedResult <GetTaskViewModel> >(paginatedResult)); }