public async Task <PagedList <Mission> > GetMissions(MissionParams missionParams) { var missions = _context.Missions // .Include(u => u.User) // .Include(b => b.BusinessFunction) // .Include(i => i.Industry) // .Include(ms => ms.MissionStatus) // .Include(ma => ma.MissionAccelerators) // .ThenInclude(a => a.Accelerator) // .Include(mp => mp.MissionPlatforms) // .ThenInclude(p => p.Platform) // .Include(mt => mt.MissionTeam) .Where(mu => mu.UserId == missionParams.UserId).OrderBy(d => d.DateCreated) .AsQueryable(); return(await PagedList <Mission> .CreateAsync(missions, missionParams.PageNumber, missionParams.PageSize)); }
public async Task <IActionResult> GetMissions([FromQuery] MissionParams missionParams) { var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); missionParams.UserId = currentUserId; var missions = await _repo.GetMissions(missionParams); var missionsToReturn = (from mission in missions select new MissionToReturnDto { UserId = mission.UserId, UserName = mission.User.UserName, KnownAs = mission.User.KnownAs, Employee = mission.User.Employee, JobTitle = mission.User.JobTitle, MissionId = mission.Id, MissionName = mission.MissionName, IndustryId = mission.IndustryId, IndustryAlias = mission.Industry.IndustryAlias, BusinessFunctionId = mission.BusinessFunctionId, BusinessFunctionAlias = mission.BusinessFunction.BusinessFunctionAlias, MissionStatusId = mission.MissionStatusId, MissionStatusAlias = mission.MissionStatus.MissionStatusAlias, Challenge = mission.Challenge, DesiredOutcome = mission.DesiredOutcome, BusinessImpact = mission.BusinessImpact, EstimatedRoi = mission.EstimatedRoi, ActualRoi = mission.ActualRoi, ActualCost = mission.ActualCost, TimeFrame = mission.TimeFrame, Accelerators = (from accelerator in mission.MissionAccelerators.Select(a => a.Accelerator).ToList() select new MissionAcceleratorToReturnDto { Id = accelerator.Id, MissionId = mission.Id, AcceleratorName = accelerator.AcceleratorName, ModelType = accelerator.ModelType, DateCreated = accelerator.DateCreated, Description = accelerator.Description, Active = accelerator.Active }).ToList(), Platforms = (from platform in mission.MissionPlatforms.Select(a => a.Platform).ToList() select new MissionPlatformToReturnDto { Id = platform.Id, MissionId = platform.Id, PlatformName = platform.PlatformName, PlatformAlias = platform.PlatformAlias, Description = platform.Description, Type = platform.Type, DateCreated = platform.DateCreated, Active = platform.Active }).ToList(), /* MissionTeam = * (from missionTeam in mission.MissionTeams.Select(a => a.User).ToList() * select new MissionTeamToReturnDto * { * UserId = missionTeam.Id, * Username = missionTeam.UserName, * KnownAs = missionTeam.KnownAs, * Employee = missionTeam.Employee, * JobTitle = missionTeam.JobTitle, * Gender = missionTeam.Gender, * City = missionTeam.City, * Country = missionTeam.Country, * PhotoUrl = missionTeam.Photos.FirstOrDefault(p => p.IsMain).Url * }).ToList(), */ DateCreated = mission.DateCreated, Active = mission.Active, Public = mission.Public }).OrderByDescending(cr => cr.DateCreated); Response.AddPagination(missions.CurrentPage, missions.PageSize, missions.TotalCount, missions.TotalPages); return(Ok(missionsToReturn)); }