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); }