Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var crossQuery1 = from r in context.TimeSheetWeeklyRequirements
- let reqKey = new TimeSheetTaskService.ReqKey() { TeamId = r.TeamId, WorkItemId = r.WorkItemId }
- join f in context.TeamForecast on reqKey equals new TimeSheetTaskService.ReqKey() { TeamId = f.TeamId, WorkItemId = f.WorkItemId }
- let parents = (
- from fh in context.TeamForecastHierarchy
- where fh.ChildId == f.Id
- join f2 in context.TeamForecast on fh.ParentId equals f2.Id
- select f2
- )
- let isInView = parents.Any(fp => fp.TfsFeatureView.Any())
- where f.HistoryId == null && !isInView
- select new ProductPlanCrossData()
- {
- ProjectId = r.TimeSheetWeeklyReleases.ProjectRelease.ProjectId,
- UniqueId = r.Id,
- PlanId = r.TimeSheetWeeklyReleases.WeeklyTaskPlan.Id,
- ProjectReleaseId = r.TimeSheetWeeklyReleases.ProjectRelease.Id,
- RequirementId = r.Id,
- RequirementId2 = null,
- TeamId = r.TfsTeams.Id,
- UserId = r.TimeSheetWeeklyReleases.WeeklyTaskPlan.UserCache.Id,
- ForecastId = f.Id,
- WeeklyReleaseId = r.TimeSheetWeeklyReleases.Id,
- Hours = r.Hours,
- WorkItemId = r.WorkItemId,
- IsPrimary = r.TimeSheetWeeklyReleases.IsPrimary,
- WeekStart = r.TimeSheetWeeklyReleases.WeeklyTaskPlan.WeekStart
- };
- var crossQuery2 = from r in context.TimesheetWeeklyRequirementsWithoutRelease
- from p in r.TfsTeams.Projects
- let reqKey = new TimeSheetTaskService.ReqKey() { TeamId = r.TeamId, WorkItemId = r.WorkItemId }
- join f in context.TeamForecast on reqKey equals new TimeSheetTaskService.ReqKey() { TeamId = f.TeamId, WorkItemId = f.WorkItemId }
- let parents = (
- from fh in context.TeamForecastHierarchy
- where fh.ChildId == f.Id
- join f2 in context.TeamForecast on fh.ParentId equals f2.Id
- select f2
- )
- let isInView = parents.Any(fp => fp.TfsFeatureView.Any())
- where f.HistoryId == null && !isInView
- select new ProductPlanCrossData()
- {
- ProjectId = p.Id,
- UniqueId = r.Id,
- PlanId = r.WeeklyTaskPlan.Id,
- ProjectReleaseId = null,
- RequirementId = null,
- RequirementId2 = r.Id,
- TeamId = r.TfsTeams.Id,
- UserId = r.WeeklyTaskPlan.UserCache.Id,
- ForecastId = f.Id,
- WeeklyReleaseId = null,
- Hours = r.Hours,
- WorkItemId = r.WorkItemId,
- IsPrimary = r.IsPrimary,
- WeekStart = r.WeeklyTaskPlan.WeekStart
- };
- var crossQuery3 = from r in context.WeeklyPlansWithoutRelease
- select new ProductPlanCrossData()
- {
- ProjectId = r.ProjectId,
- UniqueId = r.Id,
- PlanId = r.WeeklyTaskPlan.Id,
- ProjectReleaseId = null,
- RequirementId = null,
- RequirementId2 = null,
- TeamId = null,
- UserId = r.WeeklyTaskPlan.UserCache.Id,
- ForecastId = null,
- WeeklyReleaseId = null,
- Hours = r.Hours,
- WorkItemId = null,
- IsPrimary = false,
- WeekStart = r.WeeklyTaskPlan.WeekStart
- };
- var crossQueryAll = crossQuery1.Concat(crossQuery2).Concat(crossQuery3).Where(r => r.ProjectId == project.Id);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement