public async Task <IEnumerable <TeacherAssignmentModel> > getTeacherForAssignment() { var query = await(from teacher in PIDBContext.Users join userRole in PIDBContext.UserRoles on teacher.Id equals userRole.UserId join role in PIDBContext.Roles on userRole.RoleId equals role.Id join assignment in PIDBContext.Assignments on teacher.Id equals assignment.UserId into TA from subassignment in TA.DefaultIfEmpty() join area in PIDBContext.Areas on subassignment.AreaId equals area.Id into SA from subarea in SA.DefaultIfEmpty() where role.NormalizedName == "PROFESOR" && teacher.Status == true && (subassignment == null ? true :(subassignment.Status == true ? true : false)) select new TeacherAssignmentModel { Id = teacher.Id, Name = teacher.Name, LastName = teacher.LastName, RoleName = role.Name, City = teacher.City, Degree = teacher.Degree, Email = teacher.Email, AreaId = subassignment.AreaId, AreaName = subarea.Name ?? "Sin Area", AssignmentId = subassignment.Id.GetValueOrDefault() }).AsNoTracking().ToArrayAsync(); return(query); }
public async Task <TeacherAssignmentModel> getAssignment(string userId) { /* * var query = await(from a in PIDBContext.Assignments * join ar in PIDBContext.Areas on a.AreaId equals ar.Id * join u in PIDBContext.Users on a.UserId equals u.Id * where a.Status == true && ar.Status == true && u.Status == true && * u.Id == userId * select new AssignmentRequestModel * { * id = a.Id.GetValueOrDefault(), * nameArea = ar.Name, * nameUser = u.Name + " " + u.LastName, * areaId = ar.Id, * userId = u.Id * } * ).AsNoTracking().FirstOrDefaultAsync(); * return query; */ var query = await(from teacher in PIDBContext.Users join userRole in PIDBContext.UserRoles on teacher.Id equals userRole.UserId join role in PIDBContext.Roles on userRole.RoleId equals role.Id join assignment in PIDBContext.Assignments on teacher.Id equals assignment.UserId into TA from subassignment in TA.DefaultIfEmpty() join area in PIDBContext.Areas on subassignment.AreaId equals area.Id into SA from subarea in SA.DefaultIfEmpty() where role.NormalizedName == "PROFESOR" && teacher.Status == true && teacher.Id == userId && (subassignment == null ? true : (subassignment.Status == true ? true : false)) select new TeacherAssignmentModel { Id = teacher.Id, Name = teacher.Name, LastName = teacher.LastName, RoleName = role.Name, City = teacher.City, Degree = teacher.Degree, Email = teacher.Email, AreaId = subassignment.AreaId, AreaName = subarea.Name ?? "Sin Area", AssignmentId = subassignment.Id.GetValueOrDefault() }).AsNoTracking().FirstOrDefaultAsync(); return(query); }