private void HandleTransactionFlow(TransactionLogEntry methodLogEntry,
                                           InvocationContext invocationContext, IBaseHandler targetObject, object result, Exception ex)
        {
            methodLogEntry.Duration          = _stopWatch.ElapsedMilliseconds;
            methodLogEntry.LoggingMethodName = invocationContext.GetExecutingMethodFullName();
            methodLogEntry.ErrorMessage      = ex == null ?
                                               (string.IsNullOrWhiteSpace(methodLogEntry.ErrorMessage) ?
                                                "None" : methodLogEntry.ErrorMessage) :
                                               !string.IsNullOrWhiteSpace(this.loggingAttribute.ErrorMessage) ?
                                               this.loggingAttribute.ErrorMessage : ex.Message;

            methodLogEntry.TransactionStatus = ex == null ? TransactionStatus.Success : TransactionStatus.Fail;
            if (this.loggingAttribute.InputLoggingReuired && invocationContext.Invocation.Arguments != null)
            {
                var serialier = JsonConvert.SerializeObject(invocationContext.Invocation.Arguments);
                serialier = serialier.Replace("\"", "'");
                serialier = serialier.Replace(",", ";");
                methodLogEntry.ExtendedProperties["inputData"] = "\"" + serialier + "\"";
                if (result != null)
                {
                    serialier = JsonConvert.SerializeObject(result);
                    serialier = serialier.Replace("\"", "'");
                    serialier = serialier.Replace(",", ";");
                    methodLogEntry.ExtendedProperties["outputData"] = "\"" + serialier + "\"";
                }
            }

            if (!this.loggingAttribute.IsFlowBreakReuired)
            {
                if (methodLogEntry.ExtendedProperties == null)
                {
                    methodLogEntry.ExtendedProperties = new Dictionary <string, object>();
                }
                methodLogEntry.ExtendedProperties["isPartialError"] = "True";
            }

            // Log
            Log.Info(methodLogEntry);
        }