Exemplo n.º 1
0
        public CircleCreateOutputData Handle(CircleCreateInputData inputData)
        {
            using var transaction = new TransactionScope();

            var ownerId = new UserId(inputData.OwnerId);
            var owner   = userRepository.Find(ownerId);

            if (owner == null)
            {
                throw new UserNotFoundException(ownerId, "서클장이 될 사용자가 없음");
            }

            var name   = new CircleName(inputData.Name);
            var circle = circleFactory.Create(name, owner);

            if (circleService.Exists(circle))
            {
                throw new CanNotRegisterCircleException(circle, "이미 등록된 서클임");
            }

            circleRepository.Save(circle);

            transaction.Complete();

            return(new CircleCreateOutputData(circle.Id.Value));
        }
Exemplo n.º 2
0
        public CirclePostResponseModel Post([FromBody] CirclePostRequestModel request)
        {
            var command = new CircleCreateInputData(request.CircleName, request.OwnerId);
            var result  = bus.Handle(command);

            return(new CirclePostResponseModel(result.CreatedCircleId));
        }