public async Task <Guid> CreateDonorPF(DonorPFCreateDto donorPFDto) { User user = new User(Guid.NewGuid(), donorPFDto.Login.ToLower(), donorPFDto.Password.ToSHA512(), LoginType.DONOR_PF, Guid.NewGuid(), true); var donorPF = this.Mapper.Map <DonorPF>(donorPFDto); donorPF.Id = Guid.NewGuid(); donorPF.UserId = user.Id; var lstRole = await RoleRepository.GetWhereAsync(r => r.Name.ToLower().Equals("donor_pf")); if (!lstRole.Any()) { throw new Exception("Cannot find role donor_pf"); } await UserRoleRepository.AddAsync(new UserRole() { User = user, RoleId = lstRole.First().Id }); await this.Repository.AddAsync(donorPF); await this.Repository.SaveAsync(); return(donorPF.Id); }
public async Task <IActionResult> CreateDonorPF([FromBody] DonorPFCreateDto donorDto) { var userDto = await UserApplication.GetUserDto(u => u.Login.ToLower().Equals(donorDto.Login.ToLower())); if (userDto != null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O usuário, {donorDto.Login}, já existe."); return(BadRequest(error)); } // Check if the donor already exists bool hasDonor = await DonorPFapplication.ExistDonorPF((d) => d.CPF.Equals(donorDto.CPF.ToLower())); if (hasDonor) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O doador PF, {donorDto.CPF}, já existe."); return(BadRequest(error)); } var donorId = await DonorPFapplication.CreateDonorPF(donorDto); return(CreatedAtRoute("GetDonorPFById", new { id = donorId }, null)); }