コード例 #1
0
        private void AddResultItemOrAddToItemResultListLog(IDebugItemResult itemToAdd, bool isDeserialize)
        {
            if (!string.IsNullOrWhiteSpace(itemToAdd.GroupName) && itemToAdd.GroupIndex > MaxItemDispatchCount && !isDeserialize)
            {
                _fileName = string.Format("{0}.txt", _itemId);
                var shouldCreateMoreLink = itemToAdd.GroupIndex == MaxItemDispatchCount + 1 && !_isMoreLinkCreated;
                if (shouldCreateMoreLink)
                {
                    ClearFile(_fileName);
                    _stringBuilder.AppendLine(itemToAdd.GetMoreLinkItem());
                    var clonedItem = itemToAdd.Clone();
                    var moreLink   = SaveFile(_stringBuilder.ToString(), _fileName);
                    _stringBuilder.Clear();
                    clonedItem.MoreLink = moreLink;
                    ResultsList.Add(clonedItem);
                    _isMoreLinkCreated = true;
                    return;
                }

                _stringBuilder.AppendLine(itemToAdd.GetMoreLinkItem());

                FlushResultListLogIfNeeded(itemToAdd);
                return;
            }

            TruncateItemResultIfNeeded(itemToAdd);

            ResultsList.Add(itemToAdd);
        }
コード例 #2
0
 private void FlushResultListLogIfNeeded(IDebugItemResult itemToAdd)
 {
     if (itemToAdd.Type == DebugItemResultType.Value || itemToAdd.Type == DebugItemResultType.Variable || _stringBuilder.Length > 10000)
     {
         SaveFile(_stringBuilder.ToString(), _fileName);
         _stringBuilder.Clear();
     }
 }
コード例 #3
0
 public DebugLineItem(IDebugItemResult result)
 {
     Type = result.Type;
     Value = result.Value;
     MoreLink = result.MoreLink;
     Label = result.Label;
     Variable = result.Variable;
     Operator = result.Operator;
 }
コード例 #4
0
ファイル: DebugLineItem.cs プロジェクト: won21kr/Warewolf
 public DebugLineItem(IDebugItemResult result)
 {
     Type     = result.Type;
     Value    = result.Value;
     MoreLink = result.MoreLink;
     Label    = result.Label;
     Variable = result.Variable;
     Operator = result.Operator;
 }
コード例 #5
0
        internal void TruncateItemResultIfNeeded(IDebugItemResult itemToAdd)
        {
            var valueOrVariable    = itemToAdd.Type == DebugItemResultType.Value || itemToAdd.Type == DebugItemResultType.Variable;
            var valueLengthTooLong = !string.IsNullOrEmpty(itemToAdd.Value) && itemToAdd.Value.Length > MaxCharDispatchCount;

            if (valueOrVariable && valueLengthTooLong)
            {
                itemToAdd.MoreLink = SaveFile(itemToAdd.Value, string.Format("{0}-{1}.txt", DateTime.Now.ToString("s"), Guid.NewGuid()));
                itemToAdd.Value    = itemToAdd.Value.Substring(0, ActCharDispatchCount);
            }
        }
コード例 #6
0
        public void TryCache(IDebugItemResult item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            if (!string.IsNullOrEmpty(item.Value) && item.Value.Length > MaxCharDispatchCount)
            {
                item.MoreLink = SaveFile(item.Value, string.Format("{0}-{1}.txt", DateTime.Now.ToString("s"), Guid.NewGuid()));
                item.Value    = item.Value.Substring(0, ActCharDispatchCount);
            }
        }
コード例 #7
0
        public void Add(IDebugItemResult itemToAdd, bool isDeserialize = false)
        {
            if (!string.IsNullOrWhiteSpace(itemToAdd.GroupName) && itemToAdd.GroupIndex > MaxItemDispatchCount)
            {
                if (!isDeserialize)
                {
                    _fileName = string.Format("{0}.txt", _itemId);
                    if (itemToAdd.GroupIndex == (MaxItemDispatchCount + 1) && !_isMoreLinkCreated)
                    {
                        ClearFile(_fileName);
                        _stringBuilder.AppendLine(itemToAdd.GetMoreLinkItem());
                        ResultsList.Add(new DebugItemResult {
                            MoreLink = SaveFile(_stringBuilder.ToString(), _fileName), GroupName = itemToAdd.GroupName, GroupIndex = itemToAdd.GroupIndex
                        });
                        _stringBuilder.Clear();
                        _isMoreLinkCreated = true;
                        return;
                    }

                    _stringBuilder.AppendLine(itemToAdd.GetMoreLinkItem());
                    if (itemToAdd.Type == DebugItemResultType.Value ||
                        itemToAdd.Type == DebugItemResultType.Variable)
                    {
                        SaveFile(_stringBuilder.ToString(), _fileName);
                        _stringBuilder.Clear();
                    }


                    if (_stringBuilder.Length > 10000)
                    {
                        SaveFile(_stringBuilder.ToString(), _fileName);
                        _stringBuilder.Clear();
                    }

                    return;
                }
            }

            if (itemToAdd.Type == DebugItemResultType.Value ||
                itemToAdd.Type == DebugItemResultType.Variable)
            {
                TryCache(itemToAdd);
            }

            ResultsList.Add(itemToAdd);
        }
コード例 #8
0
 public void Add(IDebugItemResult itemToAdd, bool isDeserialize)
 {
     AddResultItemOrAddToItemResultListLog(itemToAdd, isDeserialize);
 }
コード例 #9
0
 public void Add(IDebugItemResult itemToAdd) => Add(itemToAdd, false);
コード例 #10
0
ファイル: DebugItem.cs プロジェクト: Robin--/Warewolf
        public void Add(IDebugItemResult itemToAdd, bool isDeserialize = false)
        {
            if(!string.IsNullOrWhiteSpace(itemToAdd.GroupName) && itemToAdd.GroupIndex > MaxItemDispatchCount)
            {

                if(!isDeserialize)
                {
                    _fileName = string.Format("{0}.txt", _itemId);
                    if(itemToAdd.GroupIndex == MaxItemDispatchCount + 1 && !_isMoreLinkCreated)
                    {
                        ClearFile(_fileName);
                        _stringBuilder.AppendLine(itemToAdd.GetMoreLinkItem());
                        ResultsList.Add(new DebugItemResult { MoreLink = SaveFile(_stringBuilder.ToString(), _fileName), GroupName = itemToAdd.GroupName, GroupIndex = itemToAdd.GroupIndex });
                        _stringBuilder.Clear();
                        _isMoreLinkCreated = true;
                        return;
                    }

                    _stringBuilder.AppendLine(itemToAdd.GetMoreLinkItem());
                    if(itemToAdd.Type == DebugItemResultType.Value ||
                        itemToAdd.Type == DebugItemResultType.Variable)
                    {
                        SaveFile(_stringBuilder.ToString(), _fileName);
                        _stringBuilder.Clear();
                    }


                    if(_stringBuilder.Length > 10000)
                    {
                        SaveFile(_stringBuilder.ToString(), _fileName);
                        _stringBuilder.Clear();
                    }

                    return;
                }

            }

            if(itemToAdd.Type == DebugItemResultType.Value ||
                itemToAdd.Type == DebugItemResultType.Variable)
            {
                TryCache(itemToAdd);
            }

            ResultsList.Add(itemToAdd);
        }
コード例 #11
0
ファイル: DebugItem.cs プロジェクト: Robin--/Warewolf
        public void TryCache(IDebugItemResult item)
        {
            if(item == null)
            {
                throw new ArgumentNullException("item");
            }

            if(!string.IsNullOrEmpty(item.Value) && item.Value.Length > MaxCharDispatchCount)
            {
                item.MoreLink = SaveFile(item.Value, string.Format("{0}-{1}.txt", DateTime.Now.ToString("s"), Guid.NewGuid()));
                item.Value = item.Value.Substring(0, ActCharDispatchCount);
            }
        }
コード例 #12
0
        static void BuildBindableListFromDebugItems(DebugLine list, Dictionary <string, DebugLineGroup> groups, IDebugItemResult result, bool isInputs)
        {
            if (string.IsNullOrEmpty(result.GroupName))
            {
                list.LineItems.Add(new DebugLineItem(result));
            }
            else
            {
                if (!groups.TryGetValue(result.GroupName, out DebugLineGroup group))
                {
                    var label = isInputs ? string.Format("{0} = ", result.Label) : result.Label;
                    group = new DebugLineGroup(result.GroupName, label)
                    {
                        MoreLink = result.MoreLink
                    };

                    groups.Add(group.GroupName, group);
                    list.LineItems.Add(group);
                }

                if (!group.Rows.TryGetValue(result.GroupIndex, out DebugLineGroupRow row))
                {
                    row = new DebugLineGroupRow();
                    group.Rows.Add(result.GroupIndex, row);
                }
                row.LineItems.Add(new DebugLineItem(result));
            }
        }