示例#1
0
        public async Task <ResponseViewModel> DeleteAsync(string guidUser, string guidProfile)
        {
            // Obs: Fiz pensando em ser um para um entre usuário e perfil, poderia ser um para muitos e ai neste caso não excluiria o perfil quando o usuário fosse excluido

            using (_unitOfWork)
            {
                // Inicia a transação
                _unitOfWork.BeginTransaction();

                // Remove o Usuário
                UserDeleteCommand userDeleteCommand = new UserDeleteCommand(guidUser);
                ResponseCommand   userAddResponse   = await _mediator.Send(userDeleteCommand, CancellationToken.None).ConfigureAwait(true);

                if (!userAddResponse.Success)
                {
                    return(new ResponseViewModel(false, userAddResponse.Object));
                }

                // Deleta o Perfil
                ProfileDeleteCommand profileDeleteCommand  = new ProfileDeleteCommand(guidProfile);
                ResponseCommand      profileDeleteResponse = await _mediator.Send(profileDeleteCommand, CancellationToken.None).ConfigureAwait(true);

                if (!profileDeleteResponse.Success)
                {
                    return(new ResponseViewModel(false, profileDeleteResponse.Object));
                }

                // Comita e Retorna
                _unitOfWork.CommitTransaction();
                return(new ResponseViewModel(true, "User deleted"));
            }
        }
        public void Delete(ProfileDeleteCommand request)
        {
            const string sql = "" +
                               " DELETE FgjCqrsProfile " +
                               " WHERE Guid = @Guid";

            _unitOfWork.Connection.Execute(sql, request, _unitOfWork.Transaction);
        }