// *** Start programmer edit section *** (СеместрБС CustomMembers)

        // *** End programmer edit section *** (СеместрБС CustomMembers)


        // *** Start programmer edit section *** (OnUpdateСеместр CustomAttributes)

        // *** End programmer edit section *** (OnUpdateСеместр CustomAttributes)
        public virtual ICSSoft.STORMNET.DataObject[] OnUpdateСеместр(IIS.Product_58826.Семестр UpdatedObject)
        {
            // *** Start programmer edit section *** (OnUpdateСеместр)

            return(new ICSSoft.STORMNET.DataObject[0]);
            // *** End programmer edit section *** (OnUpdateСеместр)
        }
        // *** Start programmer edit section *** (СеместрБС CustomMembers)

        // *** End programmer edit section *** (СеместрБС CustomMembers)


        // *** Start programmer edit section *** (OnUpdateСеместр CustomAttributes)

        // *** End programmer edit section *** (OnUpdateСеместр CustomAttributes)
        public virtual ICSSoft.STORMNET.DataObject[] OnUpdateСеместр(IIS.Product_58826.Семестр UpdatedObject)
        {
            // *** Start programmer edit section *** (OnUpdateСеместр)
            if (UpdatedObject.GetStatus() == ICSSoft.STORMNET.ObjectStatus.Deleted)
            {
                DataService.LoadObject(UpdatedObject);
                UpdatedObject.SetStatus(ICSSoft.STORMNET.ObjectStatus.Altered);
                UpdatedObject.Актуальность = false;
                var approve = ((SQLDataService)DataService).Query <Модуль>(Модуль.Views.МодульE).Where(k => k.Семестр.__PrimaryKey == UpdatedObject.__PrimaryKey).ToArray();

                foreach (var app in approve)
                {
                    app.SetStatus(ICSSoft.STORMNET.ObjectStatus.Deleted);
                }

                return(approve);
            }
            return(new ICSSoft.STORMNET.DataObject[0]);
            // *** End programmer edit section *** (OnUpdateСеместр)
        }
        // *** Start programmer edit section *** (СеместрБС CustomMembers)

        // *** End programmer edit section *** (СеместрБС CustomMembers)


        // *** Start programmer edit section *** (OnUpdateСеместр CustomAttributes)

        // *** End programmer edit section *** (OnUpdateСеместр CustomAttributes)
        public virtual ICSSoft.STORMNET.DataObject[] OnUpdateСеместр(IIS.Product_58826.Семестр UpdatedObject)
        {
            // *** Start programmer edit section *** (OnUpdateСеместр)
            if (UpdatedObject.GetStatus() == ICSSoft.STORMNET.ObjectStatus.Deleted)
            {
                DataService.LoadObject(UpdatedObject);
                UpdatedObject.SetStatus(ICSSoft.STORMNET.ObjectStatus.Altered);
                UpdatedObject.Актуальность = false;
                var approve = ((SQLDataService)DataService).Query <Модуль>(Модуль.Views.МодульE).Where(k => k.Семестр.__PrimaryKey == UpdatedObject.__PrimaryKey).ToArray();

                foreach (var app in approve)
                {
                    app.SetStatus(ICSSoft.STORMNET.ObjectStatus.Deleted);
                }

                return(approve);
            }

            if (UpdatedObject.Номер > 0)
            {
                var array = ((SQLDataService)DataService).Query <Семестр>(Семестр.Views.СеместрE).Where(k => k.__PrimaryKey != UpdatedObject.__PrimaryKey).Where(k => k.Актуальность == true).ToArray();
                foreach (var arr in array)
                {
                    if (UpdatedObject.Актуальность == true)
                    {
                        if (arr.Номер == UpdatedObject.Номер)
                        {
                            throw new Exception("Семестр с таким номером уже существует!");
                        }
                    }
                }

                var array2 = ((SQLDataService)DataService).Query <Семестр>(Семестр.Views.СеместрE).Where(k => k.Актуальность == true).Where(k => k.__PrimaryKey != UpdatedObject.__PrimaryKey).ToArray();
                foreach (var arr in array2)
                {
                    if (UpdatedObject.Актуальность == true)
                    {
                        var begin = UpdatedObject.Начало;
                        var end   = UpdatedObject.Конец;
                        if ((begin >= arr.Начало) && (begin <= arr.Конец))
                        {
                            throw new Exception("Даты семестров пересекаются!");
                        }
                        if ((end >= arr.Начало) && (end <= arr.Конец))
                        {
                            throw new Exception("Даты семестров пересекаются!"); //подразумевается, что все семестры примерно одинаковой длины
                        } //не может быть так, что один семестр 3 месяца, а другой 6 и полностью включает в себя первый (иначе бы проверка не сработала).
                        if (begin >= end)
                        {
                            throw new Exception("Некорректная запись дат семестра!");
                        }
                    }
                }
            }
            else
            {
                throw new Exception("Номер семестра должен быть положительным числом!");
            }

            return(new ICSSoft.STORMNET.DataObject[0]);
            // *** End programmer edit section *** (OnUpdateСеместр)
        }