Example #1
0
        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);
        }
Example #2
0
        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);
        }