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);
        }
Example #2
0
        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));
        }