예제 #1
0
        public CircleGetAllOutputData Handle(CircleGetAllInputData request)
        {
            var circles    = circleRepository.FindAll();
            var circleData = circles.Select(toCircleData).ToList();

            return(new CircleGetAllOutputData(circleData));
        }
예제 #2
0
        public CircleGetAllResult GetAll()
        {
            var circles    = circleRepository.FindAll();
            var circleData = circles.Select(x => new CircleData(x)).ToList();

            return(new CircleGetAllResult(circleData));
        }
예제 #3
0
        public Task <CircleGetListOutputData> Handle(CircleGetListCommand command, CancellationToken cancellationToken)
        {
            var circles = _circleRepository
                          .FindAll()
                          .Select(x => new CircleData(x.Id.Value, x.Name.Value, x.Owner.Value, x.Members.Select(y => y.Value).ToList()))
                          .ToList();

            return(Task.FromResult(new CircleGetListOutputData(circles)));
        }
예제 #4
0
        public CircleGetRecommendResult GetRecommend(CircleGetRecommendRequest request)
        {
            var recommendCircleSpec = new CircleRecommendSpecification(now);
            var circles             = circleRepository.FindAll();
            var recommendCircles    = circles
                                      .Where(recommendCircleSpec.IsSatisfiedBy)
                                      .Take(10)
                                      .ToList();

            return(new CircleGetRecommendResult(recommendCircles));
        }
예제 #5
0
        public CircleGetSummariesResult GetSummaries(CircleGetSummariesCommand command)
        {
            // 모든 서클의 목록을 받아옴
            var all = circleRepository.FindAll();
            // 페이징 처리
            var circles = all
                          .Skip((command.Page - 1) * command.Size)
                          .Take(command.Size);
            var summaries = new List <CircleSummaryData>();

            foreach (var circle in circles)
            {
                // 각 서클의 서클장에 해당하는 사용자 정보 검색
                var owner = userRepository.Find(circle.Owner);
                summaries.Add(new CircleSummaryData(circle.Id.Value, owner.Name.Value));
            }
            return(new CircleGetSummariesResult(summaries));
        }
예제 #6
0
        public CircleGetSummariesResult GetSummaries(CircleGetSummariesCommand command)
        {
            // 全件取得して
            var all = circleRepository.FindAll();
            // その後にページング
            var circles = all
                          .Skip((command.Page - 1) * command.Size)
                          .Take(command.Size);
            var summaries = new List <CircleSummaryData>();

            foreach (var circle in circles)
            {
                // サークルのオーナーを改めて検索
                var owner = userRepository.Find(circle.Owner);
                summaries.Add(new CircleSummaryData(circle.Id.Value, owner.Name.Value));
            }
            return(new CircleGetSummariesResult(summaries));
        }
예제 #7
0
        public CircleGetSummariesResult GetSummaries(CircleGetSummariesCommand command)
        {
            // この段階ではデータを取得しない
            var all = circleRepository.FindAll();
            // ページング処理は条件を付与しているに過ぎないためデータを取得しない
            var chunk = all
                        .Skip((command.Page - 1) * command.Size)
                        .Take(command.Size);
            // ここではじめてコレクションが処理されるため、条件に応じてデータ取得がされる
            var summaries = chunk
                            .Select(x =>
            {
                var owner = userRepository.Find(x.Owner);
                return(new CircleSummaryData(x.Id.Value, owner.Name.Value));
            })
                            .ToList();

            return(new CircleGetSummariesResult(summaries));
        }
예제 #8
0
        public CircleGetSummariesResult GetSummaries(CircleGetSummariesCommand command)
        {
            // 아직은 데이터를 받아오지 않았다
            var all = circleRepository.FindAll();
            // 야기서는 페이징 처리 조건만 부여한 것으로 데이터를 받지는 않았다
            var chunk = all
                        .Skip((command.Page - 1) * command.Size)
                        .Take(command.Size);
            // 이 시점에서 처음으로 컬렉션의 요소에 접근했으므로 조건에 따라 데이터를 받아온다
            var summaries = chunk
                            .Select(x =>
            {
                var owner = userRepository.Find(x.Owner);
                return(new CircleSummaryData(x.Id.Value, owner.Name.Value));
            })
                            .ToList();

            return(new CircleGetSummariesResult(summaries));
        }
        public CircleGetSummariesResult GetSummaries(CircleGetSummariesCommand command)
        {
            var all = circleRepository.FindAll();

            var page = command.Page;
            var size = command.Size;

            var chunk = all
                        .Skip((page - 1) * size)
                        .Take(size);

            var summaries = chunk.Select(x =>
            {
                var owner = userRepository.Find(x.Owner);
                return(new CircleSummaryData(x.Id.Value, owner.Name.Value));
            })
                            .ToList();

            return(new CircleGetSummariesResult(summaries));
        }
예제 #10
0
        public CircleGetSummariesOutputData Handle(CircleGetSummariesInputData inputData)
        {
            var all = circleRepository.FindAll();

            var page = inputData.Page;
            var size = inputData.Size;

            var chunk = all
                        .Skip((page - 1) * size)
                        .Take(size);

            var summaries = chunk.Select(x =>
            {
                var owner = userRepository.Find(x.Owner);
                return(new CircleSummaryData(x.Id.Value, owner.Name.Value));
            })
                            .ToList();

            return(new CircleGetSummariesOutputData(summaries));
        }