Esempio n. 1
0
        public SubsetList CreateSubsets(IEnumerable <SubResult> subResults)
        {
            SubsetList result = new SubsetList();

            if (subResults == null)
            {
                return(result);
            }

            foreach (SubResult subResult in subResults)
            {
                DbSetInfo dbSetInfo = _metadata.DbSets[subResult.dbSetName];

                if (result.Any(r => r.dbSetName == subResult.dbSetName))
                {
                    throw new DomainServiceException(string.Format("The included sub results already have DbSet {0} entities", dbSetInfo.dbSetName));
                }

                RowGenerator rowGenerator = new RowGenerator(dbSetInfo, subResult.Result, _dataHelper);

                Subset current = new Subset
                {
                    dbSetName = dbSetInfo.dbSetName,
                    rows      = rowGenerator.CreateDistinctRows(),
                    names     = dbSetInfo.GetNames()
                };

                result.Add(current);
            }

            return(result);
        }
Esempio n. 2
0
        public SubsetList CreateSubsets(IEnumerable <SubResult> subResults)
        {
            var result = new SubsetList();

            if (subResults == null)
            {
                return(result);
            }
            var metadata = MetadataHelper.GetInitializedMetadata(_domainService);

            foreach (var subResult in subResults)
            {
                var dbSetInfo = metadata.dbSets[subResult.dbSetName];
                if (result.Any(r => r.dbSetName == subResult.dbSetName))
                {
                    throw new DomainServiceException(string.Format("The included results already have {0} entities", dbSetInfo.dbSetName));
                }
                var rowGenerator = new RowGenerator(dbSetInfo, subResult.Result, _dataHelper);
                var current      = new Subset
                {
                    dbSetName = dbSetInfo.dbSetName,
                    rows      = rowGenerator.CreateDistinctRows(),
                    names     = dbSetInfo.GetNames()
                };
                result.Add(current);
            }
            return(result);
        }
Esempio n. 3
0
            public void SetEntry(XivImc info, int subsetID = -1, string slot = "", bool allowNew = false)
            {
                // Variant IDs are 1 based, not 0 based.
                var index = subsetID - 1;

                // Invalid Index, return default.
                if ((index >= SubsetCount && !allowNew) || index < 0)
                {
                    index = -1;
                }

                // Test for getting default set.
                var subset = DefaultSubset;

                if (index >= 0)
                {
                    if (index >= SubsetCount)
                    {
                        subset = new List <XivImc>();
                        if (TypeIdentifier == ImcType.Set)
                        {
                            // Five entries for set types.
                            subset.Add(new XivImc());
                            subset.Add(new XivImc());
                            subset.Add(new XivImc());
                            subset.Add(new XivImc());
                            subset.Add(new XivImc());
                        }
                        else
                        {
                            // One entry for nonset types.
                            subset.Add(info);
                        }
                        SubsetList.Add(subset);
                    }
                    else
                    {
                        subset = SubsetList[index];
                    }
                }

                // Get which offset the slot uses.
                var idx = 0;

                if (slot != null && SlotOffsetDictionary.ContainsKey(slot) && SlotOffsetDictionary[slot] < subset.Count)
                {
                    idx = SlotOffsetDictionary[slot];
                }

                // Assign info.
                subset[idx] = info;
            }