public async Task <bool> Handle(ManageRequestRequest message, IOutputPort <ManageRequestResponse> outputPort) { var manageRequestResult = await _requestRepository.ManageRequest(message); outputPort.Handle(new ManageRequestResponse(true, null)); return(true); }
public async Task <bool> ManageRequest(ManageRequestRequest message) { var rId = new SqlParameter("@RequestId", message.RequestId); var uId = new SqlParameter("@UserId", message.UserId); var response = new SqlParameter("@Response", message.Answer); var status = new SqlParameter("@Status", message.Status); var command = _context.Database.GetDbConnection().CreateCommand(); command.CommandText = "RequestManage"; command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(rId); command.Parameters.Add(uId); command.Parameters.Add(response); command.Parameters.Add(status); if (command.Connection.State == ConnectionState.Closed) { await command.Connection.OpenAsync(); } var resultReader = await command.ExecuteReaderAsync(); await resultReader.ReadAsync(); await _eventBus.Trigger(new RequestAcceptedRejected() { OldStatus = (string)resultReader["OldStatus"], NewStatus = message.Status, RequestId = Guid.Parse(message.RequestId), UpdatedBy = Guid.Parse(message.UserId), ApproverFullName = (string)resultReader["ApproverFullName"], RequesterFullName = (string)resultReader["RequesterFullName"], RequesterId = (Guid)resultReader["RequesterId"], RequesterUsername = (string)resultReader["RequesterUsername"], RequesterEmail = (string)resultReader["RequesterEmail"], RequestTitle = (string)resultReader["Title"] }); return(true); }