Exemplo n.º 1
0
        public async Task <IActionResult> ShareContact([FromBody] ShareDto shareDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userEmail = HttpContextHelpers.GetCurrentUserEmail(User);
            var user      = await _userService.FindByEmailAsync(userEmail);

            var shareKardCommand = new ShareContactCommand(shareDto.ContactId, shareDto.RecipientUserId, user.Id);

            await _commandBus.Send(shareKardCommand);

            return(Ok());
        }
Exemplo n.º 2
0
        public Task <Unit> Handle(ShareContactCommand request, CancellationToken cancellationToken)
        {
            try
            {
                using (var context = _dbContext)
                {
                    var aggregate        = _someDataWriteRepository.Get(request.ContactId, context);
                    var copyWithNewOwner = aggregate.SendTo(request.RecipientUserId);
                    _someDataWriteRepository.Create(copyWithNewOwner, context);

                    context.SaveChanges();
                }

                return(Unit.Task);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }