Пример #1
0
        /// <summary>
        /// The recalculate number policy counter.
        /// </summary>
        /// <param name="numberPolicy">
        /// The number policy.
        /// </param>
        public void RecalculateNumberPolicyCounter(string numberPolicy)
        {
            if (string.IsNullOrEmpty(numberPolicy) || numberPolicy.Length != 16)
            {
                return;
            }

            var session = ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession();

            // Получаем ТФОМС по коду, входящему в ЕНП
            var facet = EnpChecker.GetTfFacet(numberPolicy);

            // ищем запись
            var numberPolicyCounter = GetById(facet) ?? new NumberPolicyCounter {
                Id = facet, CurrentNumber = 1
            };

            // назначем новый номер, либо сохраняем старый
            var number = int.Parse(numberPolicy.Substring(10, 5)) + 1;

            numberPolicyCounter.CurrentNumber = Math.Max(numberPolicyCounter.CurrentNumber, number);
            session.SaveOrUpdate(numberPolicyCounter);
        }