示例#1
0
        public void RecalculateRowNumber(CustomReportRow item)
        {
            if (RecalculateNow)
            {
                return;
            }
            RecalculateNow = true;
            //все номера в таблице, которые больше этого N, изменяются как N+1
            var rows = CustomReportRows.Where(c => (c.idfsCustomReportType == item.idfsCustomReportType) && (c.intRowOrder >= item.intRowOrder) && (c.idfReportRows != item.idfReportRows)).ToList();

            rows.Sort(new CompareRows());
            for (var i = 0; i < rows.Count; i++)
            {
                rows[i].intRowOrder = item.intRowOrder + i + 1;
            }

            RecalculateNow = false;

            /* старый алгоритм
             *
             * Паша сказал переделать на нынешний 13 марта 2014 года в рамках исправления бага 9068
             *
             * //пересчет всех номеров строк вниз от этой строки (порядок строк жестко сортирован по возрастанию и не меняется пользователем)
             * var list = CustomReportRows.Where(c => c.idfsSummaryReportType == item.idfsSummaryReportType).ToList();
             * var index = list.IndexOf(item);
             * if (index < 0) return;
             * RecalculateNow = true;
             * var numRow = item.intRowOrder;
             * for (var i = index + 1; i < list.Count; i++)
             * {
             *  list[i].intRowOrder = numRow + (i - index);
             * }
             */
        }
示例#2
0
 protected static void CustomValidations(CustomReportRow crr)
 {
     if (crr.Master == null) return;
     if (crr.Master.CustomReportRows == null) return;
     if (crr.Master.CustomReportRows.Count(s => (s.GetKey() == crr.GetKey()) && (s.idfReportRows != crr.idfReportRows) && !s.IsMarkedToDelete) > 0)
     {
         throw new ValidationModelException("msgCustomReportRowsUniqueID", "idfsCustomReportType", "idfsCustomReportType", new object[] { }, null, ValidationEventType.Error, crr);
     }
 }