예제 #1
0
        public async Task <CompanyDTO> PutAsync(CompanyCreateDTO car)
        {
            this.Logger.LogTrace($"{nameof(this.PutAsync)} called");

            var result = await this.CompanyCreateService.CreateAsync(this.Mapper.Map <CompanyUpdateModel>(car));

            return(this.Mapper.Map <CompanyDTO>(result));
        }
예제 #2
0
        public async Task <Response <CompanyDTO> > Create(Guid userId, CompanyCreateDTO dto)
        {
            var entityCompany = new CompanyModel
            {
                Name        = dto.Name,
                Address     = dto.Address,
                CreatedDate = DateTime.UtcNow,
                CreatorId   = userId
            };

            entityCompany = await _repository.Create(entityCompany);

            await _companiesUsersRepository.AddCompanyUser(entityCompany.Id, userId, MembershipStatus.SuperAdmin);

            var result = _mapper.Map <CompanyModel, CompanyDTO>(entityCompany);

            return(new Response <CompanyDTO>
            {
                Data = result
            });
        }
예제 #3
0
        public async Task <ActionResult <CompanyDTO> > CreateCompany(
            [FromBody] CompanyCreateDTO companyCreateDTO)
        {
            var company = this.mapper.Map <Company>(companyCreateDTO);

            this.companyRepository.AddCompany(company);
            await this.companyRepository.SaveAsync();

            var companyDTO    = this.mapper.Map <CompanyDTO>(company);
            var links         = this.CreateLinksForCompany(company.Id, null);
            var shapedCompany = companyDTO.ShapeData(null);

            shapedCompany.TryAdd("links", links);

            // CreatedAtRoute 可以在响应的Location头返回一个路由(使用RouteName定义)用于定位新创建的资源
            return(this.CreatedAtRoute(
                       nameof(GetCompany),
                       // 匿名类型的成员名称需要与路由模板的参数匹配
                       new { companyId = company.Id },
                       shapedCompany));
        }
예제 #4
0
        public async Task <Response <CompanyDTO> > CreateCompany(CompanyCreateDTO dto, ClaimsPrincipal claims)
        {
            var result = await _service.Create(claims.GetUserId(), dto);

            return(result);
        }
예제 #5
0
        public async Task <Response <SignUpStepDTO <CompanyDTO> > > SignUpCompany(CompanyCreateDTO dto, ClaimsPrincipal claims)
        {
            var result = await _service.SignUpCompany(claims.GetUserId(), dto);

            return(result);
        }
예제 #6
0
 public Task <Response <CompanyDTO> > CreateCompany([Required, FromBody] CompanyCreateDTO dto)
 {
     return(_handler.CreateCompany(dto, User));
 }
예제 #7
0
        public async Task <Response <SignUpStepDTO <CompanyDTO> > > SignUpCompany(Guid userId, CompanyCreateDTO dto)
        {
            var step = await _repository.GetRegistrationStepByUserId(userId);

            var stepValidate = ValidateStep <CompanyDTO>(step, RegistrationStep.CompanyCreated);

            if (!stepValidate.IsSuccess)
            {
                return(stepValidate);
            }

            if (step.Status == MembershipStatus.Member)
            {
                return(new ForbiddenErrorResponse <SignUpStepDTO <CompanyDTO> >(new Error
                {
                    Code = ErrorCodes.Security.Forbidden,
                    Message = ErrorMessages.Security.Forbidden
                }));
            }

            var company = await _companiesService.Create(userId, dto);

            if (company.IsSuccess)
            {
                step = await _repository.SetRegistrationStep(userId, RegistrationStep.CompanyCreated);
            }


            return(new Response <SignUpStepDTO <CompanyDTO> >
            {
                Data = new SignUpStepDTO <CompanyDTO>
                {
                    Data = company.Data,
                    RegistrationStep = _mapper.Map <UserRegistrationStepModel, UserRegistrationStepDTO>(step)
                }
            });
        }
예제 #8
0
 public async Task <Response <SignUpStepDTO <CompanyDTO> > > CreateCompany([Required, FromBody] CompanyCreateDTO dto)
 {
     return(await _handler.SignUpCompany(dto, User));
 }