public void InsertCalendars(decimal calendarTypeID, int year, IList <CalendarCellInfo> calendars) { using (NHibernateSessionManager.Instance.BeginTransactionOn()) { try { this.CheckUserInterfaceRuleGroup(); DateTime yearStart, yearEnd; if (BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { string date = String.Format("{0}/01/01", year); yearStart = Utility.ToMildiDate(date); date = String.Format("{0}/12/{1}", year, Utility.GetEndOfPersianMonth(year, 12)); yearEnd = Utility.ToMildiDate(date); } else { yearStart = new DateTime(year, 1, 1); yearEnd = new DateTime(year, 12, Utility.GetEndOfMiladiMonth(year, 12)); } IList <DateTime> oldCalDateList = calendarRepository.GetAllCalendarDateByTypeId(calendarTypeID); calendarRepository.DeleteCalendarsByType(calendarTypeID, yearStart, yearEnd); foreach (CalendarCellInfo cell in calendars) { Calendar cal = cell.Export(year); cal.CalendarType = new CalendarType() { ID = calendarTypeID }; calendarRepository.Save(cal); } NHibernateSessionManager.Instance.CommitTransactionOn(); this.UpdateCFPByCalendar(calendarTypeID, year, oldCalDateList, calendars); } catch (Exception ex) { NHibernateSessionManager.Instance.RollbackTransactionOn(); LogException(ex, "BCalendarType", "InsertCalendars"); throw ex; } } }