public override async Task <bool> process() { // Return result value. Display it on the console. try { m_base.MsgIn = MsgIn; //assign my output to the intput of the decorated instance if (await m_base.process()) //execute the process of the decorated instance { Debug += m_base.Debug; _msgIn = m_base.MsgOut; if (MsgIn.IsPossiblyGZippedString()) { MsgOut = cComp.Unzip(MsgIn); } else { MsgOut = MsgIn; } return(true); } else { Debug += m_base.Debug; return(false); } } catch (Exception ex) { Debug += string.Format("ERROR: {0}", ex.Message); return(false); } }