예제 #1
0
        public async Task <Response <CreateResult> > Handle(CreateSubDomain request)
        {
            var businessDomain = await _context.BusinessDomains.SingleOrDefaultAsync(x => x.Name.Equals(request.ParentDomainName));

            if (businessDomain == null)
            {
                return(new Response <CreateResult>(CreateResult.DependentObjectNotFound));
            }

            var businessSubDomain = new BusinessSubDomain()
            {
                Id          = Guid.NewGuid(),
                Name        = request.Name,
                Description = request.Description,
                ParentId    = businessDomain.Id
            };

            await _context.AddAsync(businessSubDomain);

            await _context.SaveChangesAsync();

            return(new Response <CreateResult>(CreateResult.Created));
        }
        public async Task <ActionResult> CreateDomainAsync([FromBody] BusinessSubDomain subDomain)
        {
            var createSubDomain = new CreateSubDomain()
            {
                Name             = subDomain.Name,
                Description      = subDomain.Description,
                ParentDomainName = subDomain.ParentBusinessDomain
            };

            var response = await _mediator.Send(createSubDomain);

            if (response.Result == CreateResult.DependentObjectNotFound)
            {
                return(BadRequest());
            }
            else if (response.Result == CreateResult.Created)
            {
                return(Created($"api/v1/business-sub-domains/{subDomain.Name}", null));
            }
            else
            {
                return(StatusCode(500)); //  result not contemplated
            }
        }