示例#1
0
 protected override Command CreateDeleteCommand(Student entity, IAuthenticatedUser user, string selector)
 {
     return(Command
            .NonQuery()
            .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
            .StoredProcedure("[ClassBoundedContext].[pStudent_Delete]")
            .Parameters(
                p => p.Name("studentId").Value(entity.Id)
                ));
 }
示例#2
0
        public override IEnumerable <Student> GetAll()
        {
            var result = Query <Student>
                         .Collection()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[pStudent_GetAll]")
                         .Execute();

            return(result.Records);
        }
示例#3
0
        public async override Task <IEnumerable <Class> > GetAllAsync()
        {
            var result = await Query <Class>
                         .Collection()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[pClass_GetAll]")
                         .ExecuteAsync();

            return(result.Records);
        }
示例#4
0
        public (int, IEnumerable <Student>) GetNotEnrolled(CollectionQueryParameters queryParameters)
        {
            var result = Query <Student>
                         .Collection()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[Student_GetNotEnrolled]")
                         .QueryParameters(queryParameters)
                         .Parameters(p => p.Name("count").Count())
                         .Execute();

            return(result.Count, result.Records);
        }
示例#5
0
        public async override Task <(int, IEnumerable <Student>)> GetAsync(CollectionQueryParameters queryParameters)
        {
            var result = await Query <Student>
                         .Collection()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[pStudent_Get]")
                         .QueryParameters(queryParameters)
                         .Parameters(p => p.Name("count").Count())
                         .ExecuteAsync();

            return(result.Count, result.Records);
        }
示例#6
0
        public IEnumerable <Class> GetAllClassesForStudent(int studentId)
        {
            var result = Query <Class>
                         .Collection()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[pStudent_GetAllClasses]")
                         .Parameters(
                p => p.Name("studentId").Value(studentId)
                )
                         .Execute();

            return(result.Records);
        }
示例#7
0
        public async override Task <Class> GetByIdAsync(int classId)
        {
            var result = await Query <Class>
                         .Single()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[pClass_GetById]")
                         .Parameters(
                p => p.Name("classId").Value(classId)
                )
                         .ExecuteAsync();

            return(result.Record);
        }
示例#8
0
        public IEnumerable <Student> GetAllStudentsForClass(int classId)
        {
            var result = Query <Student>
                         .Collection()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[pClass_GetAllStudents]")
                         .Parameters(
                p => p.Name("classId").Value(classId)
                )
                         .Execute();

            return(result.Records);
        }
示例#9
0
        public override Student GetById(int studentId)
        {
            var result = Query <Student>
                         .Single()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[pStudent_GetById]")
                         .Parameters(
                p => p.Name("studentId").Value(studentId)
                )
                         .Execute();

            return(result.Record);
        }
示例#10
0
        public override (int, IEnumerable <Class>) Get(CollectionQueryParameters queryParameters)
        {
            var result = Query <Class>
                         .Collection()
                         .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                         .StoredProcedure("[ClassBoundedContext].[pClass_Get]")
                         .QueryParameters(queryParameters)
                         .Parameters(p => p.Name("count").Count())
                         .Execute();

            var count = (int)result.GetParameter("count").Value;

            return(count, result.Records);
        }
示例#11
0
        protected override Command CreateUpdateCommand(Student entity, IAuthenticatedUser user, string selector)
        {
            if (user != null)
            {
                entity.UpdatedBy = (int)user.Id;
            }

            return(Command
                   .NonQuery()
                   .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                   .StoredProcedure("[ClassBoundedContext].[pStudent_Update]")
                   .Parameters(
                       p => p.Name("studentId").Value(entity.Id),
                       p => p.Name("firstName").Value(entity.FirstName),
                       p => p.Name("updatedBy").Value(entity.UpdatedBy)
                       ));
        }
示例#12
0
        protected override Command CreateInsertCommand(Student entity, IAuthenticatedUser user, string selector)
        {
            if (user != null)
            {
                entity.CreatedBy = (int)user.Id;
            }

            var command = Query <Student>
                          .Single()
                          .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                          .StoredProcedure("[ClassBoundedContext].[pStudent_Insert]")
                          .Parameters(
                p => p.Name("firstName").Value(entity.FirstName),
                p => p.Name("createdBy").Value(entity.CreatedBy)
                )
                          .RecordInstance(entity)
                          .MapProperties(
                p => p.Name("Id").Index(0)
                );

            return(command);
        }
 public CreateClassCommandAggregate(ClassInputDto @class, EntityDependency[] dependencies = null) : base(new DomainFramework.DataAccess.RepositoryContext(ClassesWithStudentsConnectionClass.GetConnectionName()))
 {
     Initialize(@class, dependencies);
 }
 public ReplaceClassStudentsCommandAggregate(ReplaceClassStudentsInputDto enrollment, EntityDependency[] dependencies = null) : base(new DomainFramework.DataAccess.RepositoryContext(ClassesWithStudentsConnectionClass.GetConnectionName()))
 {
     Initialize(enrollment, dependencies);
 }
 public CreateClassCommandAggregate() : base(new DomainFramework.DataAccess.RepositoryContext(ClassesWithStudentsConnectionClass.GetConnectionName()))
 {
 }
示例#16
0
        public GetNotEnrolledStudentsQueryAggregate() : base(new DomainFramework.DataAccess.RepositoryContext(ClassesWithStudentsConnectionClass.GetConnectionName()))
        {
            var context = (DomainFramework.DataAccess.RepositoryContext)RepositoryContext;

            StudentQueryRepository.Register(context);
        }
示例#17
0
        protected override Command CreateInsertCommand(ClassEnrollment entity, IAuthenticatedUser user, string selector)
        {
            if (user != null)
            {
                entity.CreatedBy = (int)user.Id;
            }

            var command = Command
                          .NonQuery()
                          .Connection(ClassesWithStudentsConnectionClass.GetConnectionName())
                          .StoredProcedure("[ClassBoundedContext].[pClassEnrollment_Insert]")
                          .Parameters(
                p => p.Name("startedDateTime").Value(entity.StartedDateTime),
                p => p.Name("createdBy").Value(entity.CreatedBy)
                )
                          .OnBeforeCommandExecuted(cmd =>
            {
                var dependencies = Dependencies();

                if (!dependencies.Any())
                {
                    cmd.Parameters(
                        p => p.Name("classId").Value(entity.Id.ClassId),
                        p => p.Name("studentId").Value(entity.Id.StudentId)
                        );
                }
                else
                {
                    switch (selector)
                    {
                    case "Classes":
                        {
                            var student = (Student)dependencies.ElementAt(0).Entity;

                            cmd.Parameters(
                                p => p.Name("classId").Value(entity.Id.ClassId),
                                p => p.Name("studentId").Value(student.Id)
                                );
                        }
                        break;

                    case "Students":
                        {
                            var @class = (Class)dependencies.ElementAt(0).Entity;

                            cmd.Parameters(
                                p => p.Name("classId").Value(@class.Id),
                                p => p.Name("studentId").Value(entity.Id.StudentId)
                                );
                        }
                        break;

                    default:
                        {
                            var @class = (Class)dependencies.Single(d => d.Selector == "Classes").Entity;

                            var student = (Student)dependencies.Single(d => d.Selector == "Students").Entity;

                            entity.Id = new ClassEnrollmentId
                            {
                                ClassId   = @class.Id,
                                StudentId = student.Id
                            };

                            cmd.Parameters(
                                p => p.Name("classId").Value(@class.Id),
                                p => p.Name("studentId").Value(student.Id)
                                );
                        }
                        break;
                    }
                }
            });

            return(command);
        }