Example #1
0
        public void Add(Program type)
        {
            lock (type)
            {
                if (Count == ProgramId.Length)
                {
                    var newLength  = ProgramId.Length + 4;
                    var _ProgramId = new string[newLength];
                    ProgramId.CopyTo(_ProgramId);
                    ProgramId = _ProgramId;
                    var _Name = new string[newLength];
                    Name.CopyTo(_Name);
                    Name = _Name;
                    var _Duration = new string[newLength];
                    Duration.CopyTo(_Duration);
                    Duration = _Duration;
                    var _Limit = new int[newLength];
                    Limit.CopyTo(_Limit);
                    Limit = _Limit;
                    var _DepartmentId = new string[newLength];
                    DepartmentId.CopyTo(_DepartmentId);
                    DepartmentId = _DepartmentId;
                    var _Specializations = new SpecializationDM[newLength];
                    Specializations.CopyTo(_Specializations);
                    Specializations = _Specializations;
                    var _mountedCourseDM = new MountedCourseDM[newLength];
                    MountedCourses.CopyTo(_mountedCourseDM);
                    MountedCourses = _mountedCourseDM;
                }
                ProgramId.Span[Count]    = type.ProgramId;
                Name.Span[Count]         = type.Name;
                Duration.Span[Count]     = type.Duration;
                Limit.Span[Count]        = type.Limit;
                DepartmentId.Span[Count] = type.DepartmentId;

                Specializations.Span[Count] = new SpecializationDM(length);
                if (type.Specializations?.Count > 0)
                {
                    foreach (var t in type.Specializations)
                    {
                        Specializations.Span[Count].Add(t);
                    }
                }

                MountedCourses.Span[Count] = new MountedCourseDM(length);
                if (type.MountedCourses?.Count > 0)
                {
                    foreach (var t in type.MountedCourses)
                    {
                        MountedCourses.Span[Count].Add(t);
                    }
                }
                Count++;
            }
        }