Dev2.Data.Builders.RecordSetCollectionBuilder.Generate C# (CSharp) Method

Generate() public method

public Generate ( ) : IRecordSetCollection
return IRecordSetCollection
        public IRecordSetCollection Generate()
        {
            IDictionary<string, IList<IDev2Definition>> tmpCollections = new Dictionary<string, IList<IDev2Definition>>();
            IList<string> tmpNames = new List<string>();

            foreach(IDev2Definition tmp in ParsedOutput)
            {
                var rsName = DataListUtil.ExtractRecordsetNameFromValue(tmp.Value);
                var scanRsName = tmp.RecordSetName;
                
                if(IsOutput)
                {
                    if(IsDbService)
                    {
                        if(!string.IsNullOrEmpty(rsName))
                        {
                            scanRsName = rsName;
                        }
                    }
                }
                else
                {
                    scanRsName = DataListUtil.ExtractRecordsetNameFromValue(tmp.Value);
                }

                if(tmp.IsRecordSet)
                {
                    // is already present in the record set?
                    if(tmpCollections.ContainsKey(scanRsName))
                    {
                        tmpCollections[scanRsName].Add(tmp);
                    }
                    else
                    { // first time adding for this record set
                        IList<IDev2Definition> newList = new List<IDev2Definition>();
                        newList.Add(tmp);
                        tmpCollections.Add(scanRsName, newList);
                        tmpNames.Add(scanRsName);
                    }
                }
                // Handle scalars that are really recordsets ;)
                else if(!string.IsNullOrEmpty(scanRsName))
                {
                    // is already present in the record set?
                    if(tmpCollections.ContainsKey(scanRsName))
                    {
                        tmpCollections[scanRsName].Add(tmp); // ???
                    }
                    else
                    { // first time adding for this record set
                        IList<IDev2Definition> newList = new List<IDev2Definition>();
                        newList.Add(tmp);
                        tmpCollections.Add(scanRsName, newList);
                        tmpNames.Add(scanRsName);
                    }
                }
            }
            IList<IRecordSetDefinition> tmpDefs = new List<IRecordSetDefinition>();

            // ReSharper disable LoopCanBeConvertedToQuery
            foreach(string setName in tmpNames)
            {
                // ReSharper restore LoopCanBeConvertedToQuery
                IList<IDev2Definition> tmpOutput = tmpCollections[setName];
                tmpDefs.Add(new RecordSetDefinition(setName, tmpOutput));
            }

            IRecordSetCollection result = new RecordSetCollection(tmpDefs, tmpNames);

            return result;
        }

Usage Example

        static IRecordSetCollection RecordSetCollection(IList<IDev2Definition> parsedOutput, bool isOutput, bool isDbService)
        {
            RecordSetCollectionBuilder b = new RecordSetCollectionBuilder();

            b.SetParsedOutput(parsedOutput);
            b.IsOutput = isOutput;
            b.IsDbService = isDbService;
            IRecordSetCollection result = b.Generate();

            return result;
        }
All Usage Examples Of Dev2.Data.Builders.RecordSetCollectionBuilder::Generate
RecordSetCollectionBuilder