public async Task <IActionResult> Create(FriendPostDto dto)
        {
            var validationResult = await _app.Create(dto, User.Identity.Name);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors.Select(x => x.ErrorMessage).ToList()));
            }

            return(NoContent());
        }
        /* O mapeamento entre entidade e DTO pode ser automatizado por bibliotecas como AutoMapper,
         * porém, já ouvi várias opiniões positivas e negativas sobre o uso do AutoMapper. */
        private Friend CreateMapper(FriendPostDto dto, Guid idUser)
        {
            var friend = new Friend
            {
                IdUser   = idUser,
                Name     = dto.Name,
                Nickname = dto.Nickname,
                Whatsapp = dto.Whatsapp
            };

            return(friend);
        }
        public async Task <ValidationResult> Create(FriendPostDto dto, string username)
        {
            var user             = _accountApplicationService.GetByUsername(username);
            var friend           = CreateMapper(dto, user.Id);
            var validationResult = await _friendValidation.CreateValidation.ValidateAsync(friend);

            if (!validationResult.IsValid)
            {
                return(validationResult);
            }

            _uow.FriendRepository.Add(friend);
            await _uow.CommitAsync();

            return(validationResult);
        }