Пример #1
0
 public GroupType(NotificationFacade notificationFacade, UserGroupFacade userGroupFacade,
                  GroupSubjectFacade groupSubjectFacade)
 {
     Field(x => x.Id);
     Field <StringGraphType>("name",
                             resolve: context => context.Source.Name);
     Field <ListGraphType <NotificationType> >(
         "notifications",
         resolve: context => notificationFacade.GetByGroupId(context.Source.Id));
     Field <ListGraphType <UserGroupType> >(
         "userGroups",
         resolve: context => userGroupFacade.GetByGroupId(context.Source.Id));
     Field <ListGraphType <GroupSubjectType> >(
         "groupSubjects",
         resolve: context => groupSubjectFacade.GetByGroupId(context.Source.Id));
     Field <NotificationType>("notification",
                              arguments: new QueryArguments(new QueryArgument <IntGraphType> {
         Name = "id"
     }),
                              resolve: context => notificationFacade.GetById(context.GetArgument <int>("id")));
     Field <UserGroupType>("userGroup",
                           arguments: new QueryArguments(new QueryArgument <IntGraphType> {
         Name = "id"
     }),
                           resolve: context => userGroupFacade.GetById(context.GetArgument <int>("id")));
     Field <GroupSubjectType>("groupSubject",
                              arguments: new QueryArguments(new QueryArgument <IntGraphType> {
         Name = "id"
     }),
                              resolve: context => groupSubjectFacade.GetById(context.GetArgument <int>("id")));
 }
Пример #2
0
        public Mutations(MarkFacade markFacade, UserFacade userFacade, GroupFacade groupFacade,
                         GroupSubjectFacade groupSubjectFacade, NotificationFacade notificationFacade,
                         NotificationStudentFacade notificationStudentFacade, SubjectFacade subjectFacade,
                         UserGroupFacade userGroupFacade, UserMarkFacade userMarkFacade, UserRoleFacade userRoleFacade)
        {
            AddMarkMutations(markFacade);

            AddUserMutations(userFacade, userRoleFacade, userGroupFacade, groupFacade);

            AddGroupMutations(groupFacade);

            AddGroupSubjectMutations(groupSubjectFacade, userFacade);

            AddNotificationMutations(notificationFacade, groupFacade, notificationStudentFacade);

            AddNotificationStudentMutations(notificationStudentFacade);

            AddSubjectMutations(subjectFacade);

            AddUserGroupMutations(userGroupFacade);

            AddUserMarkMutations(userMarkFacade);

            AddUserRoleMutations(userRoleFacade);
        }
Пример #3
0
        private void AddGroupSubjectMutations(GroupSubjectFacade groupSubjectFacade, UserFacade userFacade)
        {
            Field <GroupSubjectType>("addGroupSubject",
                                     arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > {
                Name = "userId"
            },
                                                                   new QueryArgument <NonNullGraphType <GroupSubjectInputType> > {
                Name = "groupSubject"
            }),
                                     resolve: context => {
                var group = context.GetArgument <GroupSubject>("groupSubject");
                return(groupSubjectFacade.Add(group));
            }
                                     );

            Field <GroupSubjectType>("deleteGroupSubject",
                                     arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > {
                Name = "groupSubjectId"
            }),
                                     resolve: context => {
                var groupSubjectId = context.GetArgument <int>("groupSubjectId");
                return(groupSubjectFacade.Delete(groupSubjectFacade.GetById(groupSubjectId)));
            }
                                     );
        }
Пример #4
0
 public UserType(UserGroupFacade userGroupFacade, UserMarkFacade userMarkFacade, UserRoleFacade userRoleFacade,
                 GroupFacade groupFacade, GroupSubjectFacade groupSubjectFacade)
 {
     Field(x => x.Id);
     Field <StringGraphType>("login",
                             resolve: context => context.Source.Login);
     Field <StringGraphType>("password",
                             resolve: context => context.Source.Password);
     Field <StringGraphType>("firstName",
                             resolve: context => context.Source.FirstName);
     Field <StringGraphType>("lastName",
                             resolve: context => context.Source.LastName);
     Field <StringGraphType>("secondName",
                             resolve: context => context.Source.SecondName);
     Field <ListGraphType <GroupType> >("group",
                                        resolve: context => {
         return(userGroupFacade.GetByUserId(context.Source.Id, groupFacade));
     }
                                        );
     Field <ListGraphType <UserMarkType> >("userMarks",
                                           resolve: context => userMarkFacade.GetByUserId(context.Source.Id)
                                           );
     Field <UserMarkType>("userMark",
                          arguments: new QueryArguments(new QueryArgument <IntGraphType> {
         Name = "id"
     }),
                          resolve: context => userMarkFacade.GetById(context.GetArgument <int>("id")));
     Field <UserRoleType>(
         "userRole",
         resolve: context => userRoleFacade.GetById(context.Source.UserRoleId)
         );
 }
Пример #5
0
        public Queries(MarkFacade markFacade, UserFacade userFacade, GroupFacade groupFacade,
                       GroupSubjectFacade groupSubjectFacade, NotificationFacade notificationFacade,
                       NotificationStudentFacade notificationStudentFacade, SubjectFacade subjectFacade,
                       UserGroupFacade userGroupFacade, UserMarkFacade userMarkFacade, UserRoleFacade userRoleFacade)
        {
            AddMarkQueries(markFacade);

            AddUserQueries(userFacade, userRoleFacade);

            AddGroupQueries(groupFacade);

            AddGroupSubjectQueries(groupSubjectFacade, subjectFacade, userFacade);

            AddNotificationQueries(notificationFacade);

            AddNotificationStudentQueries(notificationStudentFacade);

            AddSubjectQueries(subjectFacade);

            AddUserGroupQueries(userGroupFacade);

            AddUserMarkQueries(userMarkFacade);

            AddUserRoleQueries(userRoleFacade);

            AddAuthorizeQueries(userFacade, userRoleFacade);
        }
Пример #6
0
        public SubjectType(GroupSubjectFacade groupSubjectFacade)
        {
            Field(x => x.Id);
            Field <StringGraphType>("subjectName"
                                    ,
                                    resolve: context => context.Source.SubjectName);
            Field <ListGraphType <GroupSubjectType> >("groupSubjects",
                                                      resolve: context => groupSubjectFacade.GetBySubjectId(context.Source.Id)
                                                      );

            Field <GroupSubjectType>("groupSubject",
                                     arguments: new QueryArguments(new QueryArgument <IntGraphType> {
                Name = "id"
            }),
                                     resolve: context => groupSubjectFacade.GetById(context.GetArgument <int>("id")));
        }
Пример #7
0
        public UserMarkType(GroupSubjectFacade groupSubjectFacade, UserFacade userFacade, MarkFacade markFacade)
        {
            Field(x => x.Id);

            Field <DateTimeGraphType>("issueData",
                                      resolve: context => context.Source.IssueData
                                      );

            Field <GroupSubjectType>("groupSubject",
                                     resolve: context => groupSubjectFacade.GetById(context.Source.GroupSubjectId)
                                     );

            Field <UserType>("user",
                             resolve: context => userFacade.GetById(context.Source.StudentId)
                             );

            Field <MarkType>("mark",
                             resolve: context => markFacade.GetById(context.Source.MarkId)
                             );

            Field <StringGraphType>("stringData",
                                    resolve: context => context.Source.IssueData.ToString()
                                    );
        }
Пример #8
0
        private void AddGroupSubjectQueries(GroupSubjectFacade groupSubjectFacade, SubjectFacade subjectFacade,
                                            UserFacade userFacade)
        {
            Field <ListGraphType <GroupSubjectType> >(
                "allGroupSubjects",
                resolve: context => groupSubjectFacade.GetAll()
                );

            Field <ListGraphType <GroupSubjectType> >("subjectListOnWeek",
                                                      arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > {
                Name = "groupId"
            }),
                                                      resolve: context => {
                var groupId = context.GetArgument <int>("groupId");

                IEnumerable <GroupSubject> groupSubjects = groupSubjectFacade.GetByGroupId(groupId);

                foreach (var groupSubject in groupSubjects)
                {
                    groupSubject.Subject = subjectFacade.GetById(groupSubject.SubjectId);
                    groupSubject.Teacher = userFacade.GetById(groupSubject.TeacherId);
                }

                return(groupSubjects);
            }
                                                      );

            Field <ListGraphType <GroupSubjectType> >("subjectsForTeacher",
                                                      arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > {
                Name = "teacherId"
            }),
                                                      resolve: context => {
                var teacherId = context.GetArgument <int>("teacherId");

                IEnumerable <GroupSubject> groupSubjects = groupSubjectFacade.GetScheduleByTeacherId(teacherId);

                foreach (var groupSubject in groupSubjects)
                {
                    groupSubject.Subject = subjectFacade.GetById(groupSubject.SubjectId);
                    groupSubject.Teacher = userFacade.GetById(groupSubject.TeacherId);
                }

                return(groupSubjects);
            }
                                                      );

            Field <ListGraphType <GroupSubjectType> >("teachersDisabled",
                                                      arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > {
                Name = "dayOfWeek"
            },
                                                                                    new QueryArgument <NonNullGraphType <IntGraphType> > {
                Name = "orderNumber"
            },
                                                                                    new QueryArgument <ListGraphType <IntGraphType> > {
                Name = "teachers"
            }),
                                                      resolve: context => {
                var teachers    = context.GetArgument <List <int> >("teachers");
                var dayOfWeek   = context.GetArgument <int>("dayOfWeek");
                var orderNumber = context.GetArgument <int>("orderNumber");

                List <GroupSubject> groupSubjects = new List <GroupSubject>();

                foreach (var teacher in teachers)
                {
                    GroupSubject groupSubject =
                        groupSubjectFacade.GetByDayAndOrderAndTeacher(dayOfWeek, orderNumber, teacher);
                    if (groupSubject != null)
                    {
                        groupSubjects.Add(groupSubject);
                    }
                }

                return(groupSubjects);
            }
                                                      );

            Field <ListGraphType <GroupSubjectType> >("subjectsOnDay",
                                                      arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > {
                Name = "groupId"
            },
                                                                                    new QueryArgument <NonNullGraphType <IntGraphType> > {
                Name = "dayOfWeek"
            }),
                                                      resolve: context => {
                var groupId   = context.GetArgument <int>("groupId");
                var dayOfWeek = context.GetArgument <int>("dayOfWeek");

                return(groupSubjectFacade.GetByDayAndGroup(groupId, dayOfWeek));
            }
                                                      );

            Field <GroupSubjectType>("groupSubject",
                                     arguments: new QueryArguments(new QueryArgument <IntGraphType> {
                Name = "id"
            }),
                                     resolve: context => {
                var id = context.GetArgument <int?>("id");

                return(id != null ? (groupSubjectFacade.GetById((int)id)) : null);
            }
                                     );
        }