Exemple #1
0
        private int SortSpecialRows(InstanceReportRow top, InstanceReportRow bot)
        {
            //sort base or extended?
            if (top.IsBaseElement != bot.IsBaseElement)
            {
                if (top.IsBaseElement)
                {
                    return(-1);
                }
                else
                {
                    return(1);
                }
            }


            //sort unit
            if (top.Unit != bot.Unit)
            {
                if (top.IsMonetary != bot.IsMonetary)
                {
                    if (top.IsMonetary)
                    {
                        return(-1);
                    }
                    else
                    {
                        return(1);
                    }
                }

                if (top.IsShares != bot.IsShares)
                {
                    if (top.IsShares)
                    {
                        return(-1);
                    }
                    else
                    {
                        return(1);
                    }
                }

                if (top.Unit < bot.Unit)
                {
                    return(-1);
                }
                else
                {
                    return(1);
                }
            }



            if (top.IsEquityPrevioslyReportedAsRow != bot.IsEquityPrevioslyReportedAsRow)
            {
                if (top.IsEquityPrevioslyReportedAsRow)
                {
                    return(-1);
                }
                else
                {
                    return(1);
                }
            }



            if (top.IsEquityAdjustmentRow != bot.IsEquityAdjustmentRow)
            {
                if (top.IsEquityAdjustmentRow)
                {
                    return(-1);
                }
                else
                {
                    return(1);
                }
            }


            //we've already established that these are the same
            if (top.IsEquityPrevioslyReportedAsRow || top.IsEquityAdjustmentRow)
            {
                int cmp = baseReport.CompareSegments(top.EmbedRequirements.Segments, bot.EmbedRequirements.Segments);
                if (cmp != 0)
                {
                    return(cmp);
                }
            }


            return(0);
        }