Jellyfish.Commands.RequestLog.GetExecutedCommandsAsString C# (CSharp) Method

GetExecutedCommandsAsString() public method

public GetExecutedCommandsAsString ( ) : string
return string
        public string GetExecutedCommandsAsString()
        {
            if (allExecutedCommands.IsValueCreated == false)
                return String.Empty;
            try
            {
                var aggregatedCommandsExecuted = new Dictionary<string, int>();
                var aggregatedCommandExecutionTime = new Dictionary<string, int>();

                StringBuilder builder = new StringBuilder();
                int estimatedLength = 0;

                foreach (var command in allExecutedCommands.Value)
                {
                    builder.Clear();
                    builder.Append(command.CommandName);

                    var events = command.ExecutionEvents.ToArray();
                    //if (events.Length > 0)
                    //{
                    //    Array.Sort(events);

                    //    //replicate functionality of Arrays.toString(events.toArray()) to append directly to existing StringBuilder
                    //    builder.Append("[");
                    //    foreach (var evt in events)
                    //    {
                    //        switch (evt) {
                    //            case EMIT:
                    //                int numEmissions = command.getNumberEmissions();
                    //                if (numEmissions > 1)
                    //                {
                    //                    builder.append(event).append("x").append(numEmissions).append(", ");
                    //                }
                    //                else
                    //                {
                    //                    builder.append(event).append(", ");
                    //                }
                    //                break;
                    //            case FALLBACK_EMIT:
                    //                int numFallbackEmissions = command.getNumberFallbackEmissions();
                    //                if (numFallbackEmissions > 1)
                    //                {
                    //                    builder.append(event).append("x").append(numFallbackEmissions).append(", ");
                    //                }
                    //                else
                    //                {
                    //                    builder.append(event).append(", ");
                    //                }   
                    //                break;
                    //            default:
                    //                builder.append(event).append(", ");
                    //        }
                    //    }
                    //    builder.setCharAt(builder.length() - 2, ']');
                    //    builder.setLength(builder.length() - 1);
                    //} else {
                    builder.Append("[Executed]");
                    //}

                    var display = builder.ToString();
                    estimatedLength += display.Length + 12; //add 12 chars to display length for appending totalExecutionTime and count below
                    int counter;
                    if (aggregatedCommandsExecuted.TryGetValue(display, out counter))
                    {
                        aggregatedCommandsExecuted[display] = counter + 1;
                    }
                    else
                    {
                        // add it
                        aggregatedCommandsExecuted.Add(display, 1);
                    }

                    int executionTime = command.ExecutionTimeInMilliseconds;
                    if (executionTime < 0)
                    {
                        // do this so we don't create negative values or subtract values
                        executionTime = 0;
                    }
                   
                    if (aggregatedCommandExecutionTime.TryGetValue(display, out counter) && executionTime > 0)
                    {
                        // add to the existing executionTime (sum of executionTimes for duplicate command displayNames)
                        aggregatedCommandExecutionTime[display] = counter + executionTime;
                    }
                    else
                    {
                        // add it
                        aggregatedCommandExecutionTime.Add(display, executionTime);
                    }

                }

                builder.Clear();
                builder.EnsureCapacity(estimatedLength);
                foreach (var kv in aggregatedCommandsExecuted)
                {
                    if (builder.Length > 0)
                    {
                        builder.Append(", ");
                    }
                    builder.Append(kv.Key);

                    int totalExecutionTime;
                    aggregatedCommandExecutionTime.TryGetValue(kv.Key, out totalExecutionTime);
                    builder.Append("[").Append(totalExecutionTime).Append("ms]");

                    int count = kv.Value;
                    if (count > 1)
                    {
                        builder.Append("x").Append(count);
                    }
                }
                return builder.ToString();
            }
            catch (Exception )
            {
                //logger.error("Failed to create RequestLog response header string.", e);
                // don't let this cause the entire app to fail so just return "Unknown"
                return "Unknown";
            }
        }
    }