/// <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); }